{"id":4452,"name":"nox","ecosystem":"pip","repository_url":"https://github.com/wntrblm/nox","issues_count":285,"created_at":"2025-06-06T16:30:29.492Z","updated_at":"2025-06-06T16:30:29.492Z","purl":"pkg:pypi/nox","metadata":{"id":2821803,"name":"nox","ecosystem":"pypi","description":"Flexible test automation.","homepage":null,"licenses":"apache-2.0","normalized_licenses":["Apache-2.0"],"repository_url":"https://github.com/wntrblm/nox","keywords_array":["automation","testing","tox"],"namespace":null,"versions_count":24,"first_release_published_at":"2018-08-24T03:32:47.000Z","latest_release_published_at":"2025-05-01T16:35:46.000Z","latest_release_number":"2025.5.1","last_synced_at":"2025-06-05T08:01:59.566Z","created_at":"2022-04-10T11:46:36.871Z","updated_at":"2025-06-05T08:01:59.567Z","registry_url":"https://pypi.org/project/nox/","install_command":"pip install nox --index-url https://pypi.org/simple","documentation_url":"https://nox.readthedocs.io/","metadata":{"funding":null,"documentation":null,"classifiers":["Development Status :: 5 - Production/Stable","Environment :: Console","Intended Audience :: Developers","Operating System :: MacOS","Operating System :: Microsoft :: Windows","Operating System :: POSIX","Operating System :: Unix","Programming Language :: Python","Programming Language :: Python :: 3 :: Only","Programming Language :: Python :: 3.10","Programming Language :: Python :: 3.11","Programming Language :: Python :: 3.12","Programming Language :: Python :: 3.13","Programming Language :: Python :: 3.8","Programming Language :: Python :: 3.9","Topic :: Software Development :: Testing"],"normalized_name":"nox"},"repo_metadata":{"id":36963952,"uuid":"52413187","full_name":"wntrblm/nox","owner":"wntrblm","description":"Flexible test automation for Python","archived":false,"fork":false,"pushed_at":"2024-07-12T16:56:34.000Z","size":5316,"stargazers_count":1261,"open_issues_count":65,"forks_count":146,"subscribers_count":21,"default_branch":"main","last_synced_at":"2024-07-12T17:41:55.381Z","etag":null,"topics":["automation","python","testing"],"latest_commit_sha":null,"homepage":"https://nox.thea.codes","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wntrblm.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":{"open_collective":"python-nox"}},"created_at":"2016-02-24T04:02:58.000Z","updated_at":"2024-07-14T18:19:03.956Z","dependencies_parsed_at":"2023-12-04T23:12:06.701Z","dependency_job_id":"1b599fb7-2c25-417d-8303-32b34937e4be","html_url":"https://github.com/wntrblm/nox","commit_stats":{"total_commits":587,"total_committers":106,"mean_commits":5.537735849056604,"dds":0.8943781942078365,"last_synced_commit":"4fec3b45bcc0eea4564f40c45f3119380e7088ad"},"previous_names":["theacodes/nox"],"tags_count":55,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wntrblm","download_url":"https://codeload.github.com/wntrblm/nox/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":217792514,"owners_count":16231032,"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":"wntrblm","name":"Winterbloom","uuid":"80853958","kind":"organization","description":"Magical Music Machines","email":"support@winterbloom.com","website":"https://winterbloom.com","location":"Atlanta, Georgia","twitter":"wntrblm","company":null,"icon_url":"https://avatars.githubusercontent.com/u/80853958?v=4","repositories_count":29,"last_synced_at":"2024-03-25T20:22:09.899Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/wntrblm","funding_links":[],"total_stars":2303,"followers":155,"following":0,"created_at":"2022-11-02T16:30:47.200Z","updated_at":"2024-03-25T20:22:11.416Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wntrblm","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wntrblm/repositories"},"tags":[{"name":"2024.04.15","sha":"5656fcedc31a1ea37d016e4d94d00185330cc528","kind":"commit","published_at":"2024-04-15T14:04:04.000Z","download_url":"https://codeload.github.com/wntrblm/nox/tar.gz/2024.04.15","html_url":"https://github.com/wntrblm/nox/releases/tag/2024.04.15","dependencies_parsed_at":"2024-04-17T04:54:21.168Z","dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/2024.04.15","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/2024.04.15/manifests"},{"name":"2024.03.02","sha":"4c8e89164d90718312e4819a48243797924f55a9","kind":"commit","published_at":"2024-03-02T23:37:06.000Z","download_url":"https://codeload.github.com/wntrblm/nox/tar.gz/2024.03.02","html_url":"https://github.com/wntrblm/nox/releases/tag/2024.03.02","dependencies_parsed_at":"2024-03-04T04:29:36.435Z","dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/2024.03.02","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/2024.03.02/manifests"},{"name":"2023.04.22","sha":"2e8d24a2f21c8b752344ba61222b88238aac901f","kind":"commit","published_at":"2023-04-23T01:30:43.000Z","download_url":"https://codeload.github.com/wntrblm/nox/tar.gz/2023.04.22","html_url":"https://github.com/wntrblm/nox/releases/tag/2023.04.22","dependencies_parsed_at":"2023-06-01T00:10:16.992Z","dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/2023.04.22","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/2023.04.22/manifests"},{"name":"2022.11.21","sha":"6957a4c1bf4f8f403fc30664812cbb19eb0b2417","kind":"commit","published_at":"2022-11-21T15:58:51.000Z","download_url":"https://codeload.github.com/wntrblm/nox/tar.gz/2022.11.21","html_url":"https://github.com/wntrblm/nox/releases/tag/2022.11.21","dependencies_parsed_at":"2023-06-01T00:10:17.044Z","dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/2022.11.21","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/2022.11.21/manifests"},{"name":"2022.8.7","sha":"ccade46a207e121c2d827fdc314907e46c5b4276","kind":"commit","published_at":"2022-08-08T00:13:58.000Z","download_url":"https://codeload.github.com/wntrblm/nox/tar.gz/2022.8.7","html_url":"https://github.com/wntrblm/nox/releases/tag/2022.8.7","dependencies_parsed_at":"2023-05-31T14:11:57.574Z","dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/2022.8.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/2022.8.7/manifests"},{"name":"2022.1.7.post1","sha":"c459e48f5e11737a64a6da66d6d3d9c171ffa994","kind":"commit","published_at":"2022-01-12T15:38:25.000Z","download_url":"https://codeload.github.com/wntrblm/nox/tar.gz/2022.1.7.post1","html_url":"https://github.com/wntrblm/nox/releases/tag/2022.1.7.post1","dependencies_parsed_at":"2023-05-31T14:11:58.031Z","dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/2022.1.7.post1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/2022.1.7.post1/manifests"},{"name":"2022.1.7","sha":"386659e446aacdd681b5e1f25db6a2c03180a287","kind":"commit","published_at":"2022-01-07T23:23:23.000Z","download_url":"https://codeload.github.com/wntrblm/nox/tar.gz/2022.1.7","html_url":"https://github.com/wntrblm/nox/releases/tag/2022.1.7","dependencies_parsed_at":"2023-05-31T14:11:58.479Z","dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/2022.1.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/2022.1.7/manifests"},{"name":"2021.10.1","sha":"73d14b11e6f45d3269544811ddcb0000875ce312","kind":"commit","published_at":"2021-10-01T13:02:43.000Z","download_url":"https://codeload.github.com/wntrblm/nox/tar.gz/2021.10.1","html_url":"https://github.com/wntrblm/nox/releases/tag/2021.10.1","dependencies_parsed_at":"2023-05-31T14:11:58.908Z","dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/2021.10.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/2021.10.1/manifests"},{"name":"2021.6.12","sha":"787dfaa87eb47c590e407acb0b5a63922725c291","kind":"commit","published_at":"2021-06-13T05:04:18.000Z","download_url":"https://codeload.github.com/wntrblm/nox/tar.gz/2021.6.12","html_url":"https://github.com/wntrblm/nox/releases/tag/2021.6.12","dependencies_parsed_at":"2023-05-31T14:11:59.487Z","dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/2021.6.12","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/2021.6.12/manifests"},{"name":"2021.6.6","sha":"da48d3c7a034dffdd21e0141ca499a8eb329f759","kind":"commit","published_at":"2021-06-06T13:14:18.000Z","download_url":"https://codeload.github.com/wntrblm/nox/tar.gz/2021.6.6","html_url":"https://github.com/wntrblm/nox/releases/tag/2021.6.6","dependencies_parsed_at":"2023-05-31T14:11:59.977Z","dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/2021.6.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/2021.6.6/manifests"},{"name":"2020.12.31","sha":"319c796f6de7d5706d75da107ec20568ad5baf51","kind":"commit","published_at":"2021-01-01T01:11:36.000Z","download_url":"https://codeload.github.com/wntrblm/nox/tar.gz/2020.12.31","html_url":"https://github.com/wntrblm/nox/releases/tag/2020.12.31","dependencies_parsed_at":"2023-05-31T14:12:00.367Z","dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/2020.12.31","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/2020.12.31/manifests"},{"name":"2020.8.22","sha":"7107cd5ea0e3086de4388561889c7cc19f41e940","kind":"commit","published_at":"2020-08-23T02:09:56.000Z","download_url":"https://codeload.github.com/wntrblm/nox/tar.gz/2020.8.22","html_url":"https://github.com/wntrblm/nox/releases/tag/2020.8.22","dependencies_parsed_at":"2023-05-31T14:12:00.794Z","dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/2020.8.22","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/2020.8.22/manifests"},{"name":"2020.5.24","sha":"a3cb034accf1ce8ebe10d92a6bf81f3f251478a9","kind":"commit","published_at":"2020-05-25T03:54:52.000Z","download_url":"https://codeload.github.com/wntrblm/nox/tar.gz/2020.5.24","html_url":"https://github.com/wntrblm/nox/releases/tag/2020.5.24","dependencies_parsed_at":"2023-05-31T14:12:01.230Z","dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/2020.5.24","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/2020.5.24/manifests"},{"name":"2019.11.9","sha":"aa9290713a4b664ea4ef4da0554afb09a626d7e1","kind":"commit","published_at":"2019-11-10T05:36:06.000Z","download_url":"https://codeload.github.com/wntrblm/nox/tar.gz/2019.11.9","html_url":"https://github.com/wntrblm/nox/releases/tag/2019.11.9","dependencies_parsed_at":"2023-05-31T14:12:01.640Z","dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/2019.11.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/2019.11.9/manifests"},{"name":"2019.8.20","sha":"7b94cc6c7b261b876bf40395dadc5d1c31a89ab3","kind":"commit","published_at":"2019-08-20T20:38:21.000Z","download_url":"https://codeload.github.com/wntrblm/nox/tar.gz/2019.8.20","html_url":"https://github.com/wntrblm/nox/releases/tag/2019.8.20","dependencies_parsed_at":"2023-05-31T14:12:02.091Z","dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/2019.8.20","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/2019.8.20/manifests"},{"name":"2019.5.30","sha":"bf4977d74d07e8630b2ee142bc59dcb4f2e319b9","kind":"commit","published_at":"2019-05-30T16:59:45.000Z","download_url":"https://codeload.github.com/wntrblm/nox/tar.gz/2019.5.30","html_url":"https://github.com/wntrblm/nox/releases/tag/2019.5.30","dependencies_parsed_at":"2023-05-31T14:12:02.433Z","dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/2019.5.30","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/2019.5.30/manifests"},{"name":"2019.4.11","sha":"69aab1c2d3c83c8c06166ad7950ae9516ca81f95","kind":"commit","published_at":"2019-04-11T19:35:37.000Z","download_url":"https://codeload.github.com/wntrblm/nox/tar.gz/2019.4.11","html_url":"https://github.com/wntrblm/nox/releases/tag/2019.4.11","dependencies_parsed_at":"2023-05-31T14:12:02.803Z","dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/2019.4.11","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/2019.4.11/manifests"},{"name":"2018.10.17","sha":"9df3c3cdbc8bc198f10c08416ec139d5f4cd6c4e","kind":"commit","published_at":"2018-10-17T17:48:22.000Z","download_url":"https://codeload.github.com/wntrblm/nox/tar.gz/2018.10.17","html_url":"https://github.com/wntrblm/nox/releases/tag/2018.10.17","dependencies_parsed_at":"2023-05-31T14:12:03.124Z","dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/2018.10.17","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/2018.10.17/manifests"},{"name":"2018.10.15","sha":"fe831d7bfb4eb9ba6508495daf3248f14fbf5e18","kind":"commit","published_at":"2018-10-15T18:25:05.000Z","download_url":"https://codeload.github.com/wntrblm/nox/tar.gz/2018.10.15","html_url":"https://github.com/wntrblm/nox/releases/tag/2018.10.15","dependencies_parsed_at":"2023-05-31T14:12:03.434Z","dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/2018.10.15","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/2018.10.15/manifests"},{"name":"2018.10.9","sha":"6c70b36c40392521dfcd76682ed1cf6438313699","kind":"commit","published_at":"2018-10-10T04:52:25.000Z","download_url":"https://codeload.github.com/wntrblm/nox/tar.gz/2018.10.9","html_url":"https://github.com/wntrblm/nox/releases/tag/2018.10.9","dependencies_parsed_at":"2023-05-31T14:12:03.770Z","dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/2018.10.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/2018.10.9/manifests"},{"name":"2018.9.14","sha":"ccb9129e086ab8e144f2264de32ad9e8134be45a","kind":"commit","published_at":"2018-09-14T20:15:36.000Z","download_url":"https://codeload.github.com/wntrblm/nox/tar.gz/2018.9.14","html_url":"https://github.com/wntrblm/nox/releases/tag/2018.9.14","dependencies_parsed_at":"2023-05-31T14:12:04.149Z","dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/2018.9.14","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/2018.9.14/manifests"},{"name":"2018.8.28","sha":"90d09053f8dd9e20cad38af1b96cbc67c8461ef9","kind":"commit","published_at":"2018-08-28T21:21:55.000Z","download_url":"https://codeload.github.com/wntrblm/nox/tar.gz/2018.8.28","html_url":"https://github.com/wntrblm/nox/releases/tag/2018.8.28","dependencies_parsed_at":"2023-05-31T14:12:04.581Z","dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/2018.8.28","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/2018.8.28/manifests"},{"name":"2018.8.23","sha":"fe5276969d3073faeeb4bb1e4803cd9e32960415","kind":"commit","published_at":"2018-08-24T03:32:20.000Z","download_url":"https://codeload.github.com/wntrblm/nox/tar.gz/2018.8.23","html_url":"https://github.com/wntrblm/nox/releases/tag/2018.8.23","dependencies_parsed_at":"2023-05-31T14:12:04.924Z","dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/2018.8.23","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/2018.8.23/manifests"},{"name":"2018.7.31dev1","sha":"75aa5f711d3c0757d61e966b5fa3ef316b38b937","kind":"commit","published_at":"2018-08-01T05:52:30.000Z","download_url":"https://codeload.github.com/wntrblm/nox/tar.gz/2018.7.31dev1","html_url":"https://github.com/wntrblm/nox/releases/tag/2018.7.31dev1","dependencies_parsed_at":"2023-05-31T14:12:05.301Z","dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/2018.7.31dev1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/2018.7.31dev1/manifests"},{"name":"v0.19.1","sha":"903fd97f0c3e19a39c3e0847072b652639044d30","kind":"commit","published_at":"2018-07-03T20:05:05.000Z","download_url":"https://codeload.github.com/wntrblm/nox/tar.gz/v0.19.1","html_url":"https://github.com/wntrblm/nox/releases/tag/v0.19.1","dependencies_parsed_at":"2023-05-31T14:12:05.670Z","dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/v0.19.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/v0.19.1/manifests"},{"name":"v0.19.0","sha":"a6d3247524caf31225781682c900a17d35253b84","kind":"commit","published_at":"2018-05-28T16:49:49.000Z","download_url":"https://codeload.github.com/wntrblm/nox/tar.gz/v0.19.0","html_url":"https://github.com/wntrblm/nox/releases/tag/v0.19.0","dependencies_parsed_at":"2023-05-31T14:12:06.050Z","dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/v0.19.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/v0.19.0/manifests"},{"name":"v0.18.2","sha":"7360b26a2e07f7a5af748b3b6b404480fea5d45e","kind":"commit","published_at":"2017-10-12T22:09:11.000Z","download_url":"https://codeload.github.com/wntrblm/nox/tar.gz/v0.18.2","html_url":"https://github.com/wntrblm/nox/releases/tag/v0.18.2","dependencies_parsed_at":"2023-05-31T14:12:06.509Z","dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/v0.18.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/v0.18.2/manifests"},{"name":"v0.18.1","sha":"832b7cf256375615dcfba65d7d150035a2c22f6c","kind":"commit","published_at":"2017-09-19T21:30:13.000Z","download_url":"https://codeload.github.com/wntrblm/nox/tar.gz/v0.18.1","html_url":"https://github.com/wntrblm/nox/releases/tag/v0.18.1","dependencies_parsed_at":"2023-05-31T14:12:06.907Z","dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/v0.18.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/v0.18.1/manifests"},{"name":"v0.18.0","sha":"f87525654265afdb3da086d4116fdfb5867154f6","kind":"commit","published_at":"2017-09-18T19:33:36.000Z","download_url":"https://codeload.github.com/wntrblm/nox/tar.gz/v0.18.0","html_url":"https://github.com/wntrblm/nox/releases/tag/v0.18.0","dependencies_parsed_at":"2023-05-31T14:12:07.271Z","dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/v0.18.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/v0.18.0/manifests"},{"name":"v0.17.0","sha":"23f56de1ef4cbfe3723465e0d49bd9bb92abd4c1","kind":"commit","published_at":"2017-06-21T04:24:43.000Z","download_url":"https://codeload.github.com/wntrblm/nox/tar.gz/v0.17.0","html_url":"https://github.com/wntrblm/nox/releases/tag/v0.17.0","dependencies_parsed_at":"2023-05-31T14:12:07.665Z","dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/v0.17.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/v0.17.0/manifests"},{"name":"v0.16.1","sha":"defa6b0aa550ee9099a5770883292c97555a3108","kind":"commit","published_at":"2017-05-25T19:06:10.000Z","download_url":"https://codeload.github.com/wntrblm/nox/tar.gz/v0.16.1","html_url":"https://github.com/wntrblm/nox/releases/tag/v0.16.1","dependencies_parsed_at":"2023-05-31T14:12:08.013Z","dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/v0.16.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/v0.16.1/manifests"},{"name":"v0.16.0","sha":"9a48c33774de2413cbd5906923abd1bc485ded96","kind":"commit","published_at":"2017-05-25T16:46:15.000Z","download_url":"https://codeload.github.com/wntrblm/nox/tar.gz/v0.16.0","html_url":"https://github.com/wntrblm/nox/releases/tag/v0.16.0","dependencies_parsed_at":"2023-05-31T14:12:08.317Z","dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/v0.16.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/v0.16.0/manifests"},{"name":"v0.15.0","sha":"f8738f8396b06146f94dab873bc90878a1b92b7e","kind":"commit","published_at":"2017-05-16T02:38:03.000Z","download_url":"https://codeload.github.com/wntrblm/nox/tar.gz/v0.15.0","html_url":"https://github.com/wntrblm/nox/releases/tag/v0.15.0","dependencies_parsed_at":"2023-05-31T14:12:08.678Z","dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/v0.15.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/v0.15.0/manifests"},{"name":"v0.14.0","sha":"c984bbfa5df17470bd29330c9c9dee8f9b8bde04","kind":"commit","published_at":"2017-05-15T23:33:37.000Z","download_url":"https://codeload.github.com/wntrblm/nox/tar.gz/v0.14.0","html_url":"https://github.com/wntrblm/nox/releases/tag/v0.14.0","dependencies_parsed_at":"2023-05-31T14:12:09.034Z","dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/v0.14.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/v0.14.0/manifests"},{"name":"v0.13.0","sha":"c9c61253fa6724d2f61191f032e81b0f50c52c69","kind":"commit","published_at":"2017-05-15T19:42:22.000Z","download_url":"https://codeload.github.com/wntrblm/nox/tar.gz/v0.13.0","html_url":"https://github.com/wntrblm/nox/releases/tag/v0.13.0","dependencies_parsed_at":"2023-05-31T14:12:09.335Z","dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/v0.13.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/v0.13.0/manifests"},{"name":"v0.12.0","sha":"f42c49d5041f4e8ce2d8378d52c6ec21a99e28a5","kind":"commit","published_at":"2017-05-03T18:23:55.000Z","download_url":"https://codeload.github.com/wntrblm/nox/tar.gz/v0.12.0","html_url":"https://github.com/wntrblm/nox/releases/tag/v0.12.0","dependencies_parsed_at":"2023-05-31T14:12:09.745Z","dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/v0.12.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/v0.12.0/manifests"},{"name":"v0.11.2","sha":"41e7ff2f22c1111460be980a9804bb88d843e299","kind":"commit","published_at":"2017-03-23T16:50:10.000Z","download_url":"https://codeload.github.com/wntrblm/nox/tar.gz/v0.11.2","html_url":"https://github.com/wntrblm/nox/releases/tag/v0.11.2","dependencies_parsed_at":"2023-05-31T14:12:10.068Z","dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/v0.11.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/v0.11.2/manifests"},{"name":"v0.11.1","sha":"48b99a232a5fccd9e0b789dfe9dca4833e8f47f1","kind":"commit","published_at":"2017-03-22T21:56:07.000Z","download_url":"https://codeload.github.com/wntrblm/nox/tar.gz/v0.11.1","html_url":"https://github.com/wntrblm/nox/releases/tag/v0.11.1","dependencies_parsed_at":"2023-05-31T14:12:10.425Z","dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/v0.11.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/v0.11.1/manifests"},{"name":"v0.11.0","sha":"10c1b27f0f958dd1ed924ad4f052447aa44e1222","kind":"commit","published_at":"2017-03-22T19:23:38.000Z","download_url":"https://codeload.github.com/wntrblm/nox/tar.gz/v0.11.0","html_url":"https://github.com/wntrblm/nox/releases/tag/v0.11.0","dependencies_parsed_at":"2023-05-31T14:12:10.777Z","dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/v0.11.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/v0.11.0/manifests"},{"name":"v0.10.0","sha":"3f6d1df8d613c76b0cc7a5aec4797d389b3b86da","kind":"commit","published_at":"2017-03-13T17:06:47.000Z","download_url":"https://codeload.github.com/wntrblm/nox/tar.gz/v0.10.0","html_url":"https://github.com/wntrblm/nox/releases/tag/v0.10.0","dependencies_parsed_at":"2023-05-31T14:12:11.146Z","dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/v0.10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/v0.10.0/manifests"},{"name":"v0.9.1","sha":"2752220a4a3a267e90dcb76ae7249504fe92e24c","kind":"commit","published_at":"2017-02-17T00:44:12.000Z","download_url":"https://codeload.github.com/wntrblm/nox/tar.gz/v0.9.1","html_url":"https://github.com/wntrblm/nox/releases/tag/v0.9.1","dependencies_parsed_at":"2023-05-31T14:12:11.430Z","dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/v0.9.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/v0.9.1/manifests"},{"name":"v0.9.0","sha":"89999dee2b96f4da402095d93ef376d4080eac29","kind":"commit","published_at":"2017-02-02T19:10:35.000Z","download_url":"https://codeload.github.com/wntrblm/nox/tar.gz/v0.9.0","html_url":"https://github.com/wntrblm/nox/releases/tag/v0.9.0","dependencies_parsed_at":"2023-05-31T14:12:11.792Z","dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/v0.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/v0.9.0/manifests"},{"name":"v0.8.0","sha":"b9a6af03f08d88e23466ce474a27cbf9a598da24","kind":"commit","published_at":"2016-12-15T00:11:55.000Z","download_url":"https://codeload.github.com/wntrblm/nox/tar.gz/v0.8.0","html_url":"https://github.com/wntrblm/nox/releases/tag/v0.8.0","dependencies_parsed_at":"2023-05-31T14:12:12.142Z","dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/v0.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/v0.8.0/manifests"},{"name":"v0.7.1","sha":"8c7193b51d7b714312d842415559d0991dff3978","kind":"commit","published_at":"2016-11-28T22:56:20.000Z","download_url":"https://codeload.github.com/wntrblm/nox/tar.gz/v0.7.1","html_url":"https://github.com/wntrblm/nox/releases/tag/v0.7.1","dependencies_parsed_at":"2023-05-31T14:12:12.544Z","dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/v0.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/v0.7.1/manifests"},{"name":"v0.7.0","sha":"9d8bd839601724f23b404a08b39856704bcf4357","kind":"commit","published_at":"2016-11-22T22:18:07.000Z","download_url":"https://codeload.github.com/wntrblm/nox/tar.gz/v0.7.0","html_url":"https://github.com/wntrblm/nox/releases/tag/v0.7.0","dependencies_parsed_at":"2023-05-31T14:12:12.862Z","dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/v0.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/v0.7.0/manifests"},{"name":"v0.6.0","sha":"0d16fe5873054c69bce4571615f06d4b447ad32e","kind":"commit","published_at":"2016-10-28T18:00:12.000Z","download_url":"https://codeload.github.com/wntrblm/nox/tar.gz/v0.6.0","html_url":"https://github.com/wntrblm/nox/releases/tag/v0.6.0","dependencies_parsed_at":"2023-05-31T14:12:13.215Z","dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/v0.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/v0.6.0/manifests"},{"name":"v0.5.1","sha":"65ab723a7e47b10673e3d80e6d18bc349f76ee67","kind":"commit","published_at":"2016-10-28T05:46:31.000Z","download_url":"https://codeload.github.com/wntrblm/nox/tar.gz/v0.5.1","html_url":"https://github.com/wntrblm/nox/releases/tag/v0.5.1","dependencies_parsed_at":"2023-05-31T14:12:13.546Z","dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/v0.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/v0.5.1/manifests"},{"name":"v0.5.0","sha":"c3caebdec3225c925df096865c313302e084e872","kind":"commit","published_at":"2016-10-28T05:43:17.000Z","download_url":"https://codeload.github.com/wntrblm/nox/tar.gz/v0.5.0","html_url":"https://github.com/wntrblm/nox/releases/tag/v0.5.0","dependencies_parsed_at":"2023-05-31T14:12:13.937Z","dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/v0.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/v0.5.0/manifests"},{"name":"v0.4.0","sha":"32b901ef98daa5ce5a9010cc591bb355dc110857","kind":"commit","published_at":"2016-10-27T21:29:10.000Z","download_url":"https://codeload.github.com/wntrblm/nox/tar.gz/v0.4.0","html_url":"https://github.com/wntrblm/nox/releases/tag/v0.4.0","dependencies_parsed_at":"2023-05-31T14:12:14.272Z","dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/v0.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/v0.4.0/manifests"},{"name":"v0.3.0","sha":"5e7fd5624ccdbb9d9cbb25c62aebbca7ea1ae028","kind":"commit","published_at":"2016-09-01T04:35:13.000Z","download_url":"https://codeload.github.com/wntrblm/nox/tar.gz/v0.3.0","html_url":"https://github.com/wntrblm/nox/releases/tag/v0.3.0","dependencies_parsed_at":"2023-05-31T14:12:15.059Z","dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/v0.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/v0.3.0/manifests"},{"name":"v0.2.1","sha":"6e36400bb28157444f6e900b1cd05f95a45c24d9","kind":"commit","published_at":"2016-03-06T01:15:19.000Z","download_url":"https://codeload.github.com/wntrblm/nox/tar.gz/v0.2.1","html_url":"https://github.com/wntrblm/nox/releases/tag/v0.2.1","dependencies_parsed_at":"2023-05-31T14:12:15.827Z","dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/v0.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/v0.2.1/manifests"},{"name":"v0.2.0","sha":"bf80cb1414864d1e8195370161c9fef02758481c","kind":"commit","published_at":"2016-03-05T00:44:46.000Z","download_url":"https://codeload.github.com/wntrblm/nox/tar.gz/v0.2.0","html_url":"https://github.com/wntrblm/nox/releases/tag/v0.2.0","dependencies_parsed_at":"2023-05-31T14:12:16.195Z","dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/v0.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/v0.2.0/manifests"},{"name":"v0.1.1","sha":"62c40fbed35e0a12a2bf87f68bf752c7ff5d49f9","kind":"tag","published_at":"2016-03-04T02:21:09.000Z","download_url":"https://codeload.github.com/wntrblm/nox/tar.gz/v0.1.1","html_url":"https://github.com/wntrblm/nox/releases/tag/v0.1.1","dependencies_parsed_at":"2023-05-31T14:12:16.524Z","dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/v0.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/v0.1.1/manifests"},{"name":"v0.1.0","sha":"bac8a176e92b4a4f656f12646cae15ba304cb4f2","kind":"tag","published_at":"2016-03-03T02:16:53.000Z","download_url":"https://codeload.github.com/wntrblm/nox/tar.gz/v0.1.0","html_url":"https://github.com/wntrblm/nox/releases/tag/v0.1.0","dependencies_parsed_at":"2023-05-31T14:12:16.859Z","dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/v0.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/v0.1.0/manifests"},{"name":"v0.0.1","sha":"d98908be5edf2edfe59fee7c2d74615641a09ac4","kind":"commit","published_at":"2016-03-02T07:46:51.000Z","download_url":"https://codeload.github.com/wntrblm/nox/tar.gz/v0.0.1","html_url":"https://github.com/wntrblm/nox/releases/tag/v0.0.1","dependencies_parsed_at":"2023-05-31T14:12:17.392Z","dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/v0.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wntrblm%2Fnox/tags/v0.0.1/manifests"}]},"repo_metadata_updated_at":"2024-09-06T23:05:16.193Z","dependent_packages_count":409,"downloads":4279302,"downloads_period":"last-month","dependent_repos_count":1552,"rankings":{"downloads":0.33776407397773683,"dependent_repos_count":0.28783043066343394,"dependent_packages_count":0.06816076066649453,"stargazers_count":null,"forks_count":null,"docker_downloads_count":0.31820831252764864,"average":0.2529908944588285},"purl":"pkg:pypi/nox","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/nox","docker_dependents_count":740,"docker_downloads_count":507543385,"usage_url":"https://repos.ecosyste.ms/usage/pypi/nox","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/nox/dependencies","status":null,"funding_links":["https://opencollective.com/python-nox"],"critical":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/nox/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/nox/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/nox/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/nox/related_packages","maintainers":[{"uuid":"lukesneeringer","login":"lukesneeringer","name":null,"email":null,"url":null,"packages_count":9,"html_url":"https://pypi.org/user/lukesneeringer/","role":null,"created_at":"2022-12-10T12:28:27.433Z","updated_at":"2022-12-10T12:28:27.433Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/lukesneeringer/packages"},{"uuid":"theacodes","login":"theacodes","name":null,"email":null,"url":null,"packages_count":15,"html_url":"https://pypi.org/user/theacodes/","role":null,"created_at":"2022-12-10T12:28:27.421Z","updated_at":"2022-12-10T12:28:27.421Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/theacodes/packages"},{"uuid":"bossylobster","login":"bossylobster","name":null,"email":null,"url":null,"packages_count":8,"html_url":"https://pypi.org/user/bossylobster/","role":null,"created_at":"2022-12-10T12:28:27.427Z","updated_at":"2022-12-10T12:28:27.427Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/bossylobster/packages"},{"uuid":"crwilcox","login":"crwilcox","name":null,"email":null,"url":null,"packages_count":4,"html_url":"https://pypi.org/user/crwilcox/","role":null,"created_at":"2022-12-10T12:28:27.430Z","updated_at":"2022-12-10T12:28:27.430Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/crwilcox/packages"},{"uuid":"stsewd","login":"stsewd","name":null,"email":null,"url":null,"packages_count":14,"html_url":"https://pypi.org/user/stsewd/","role":null,"created_at":"2022-12-10T12:28:27.438Z","updated_at":"2022-12-10T12:28:27.438Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/stsewd/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":689804,"maintainers_count":292519,"namespaces_count":0,"keywords_count":228482,"github":"pypi","metadata":{"funded_packages_count":48953},"icon_url":"https://github.com/pypi.png","created_at":"2022-04-04T15:19:23.364Z","updated_at":"2025-06-05T05:19:27.498Z","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":172,"unique_repositories_count_past_30_days":2,"recent_issues":[{"uuid":"4873842501","node_id":"PR_kwDOJnW9387xExWh","number":369,"state":"closed","title":"Update nox requirement from \u003e=2026.4.10 to \u003e=2026.7.11 in /is-unicode-supported","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-07-14T02:22:44.000Z","author_association":null,"state_reason":null,"created_at":"2026-07-13T12:58:29.000Z","updated_at":"2026-07-14T02:22:46.000Z","time_to_close":48255,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Update","packages":[{"name":"nox","old_version":"\u003e=2026.4.10","new_version":"\u003e=2026.7.11","repository_url":"https://github.com/wntrblm/nox"}],"path":"/is-unicode-supported","ecosystem":"pip"},"body":"Updates the requirements on [nox](https://github.com/wntrblm/nox) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/wntrblm/nox/blob/main/CHANGELOG.md\"\u003enox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003e2026.07.11\u003c/h2\u003e\n\u003cp\u003eThis release drops Python 3.9 and brings a batch of performance improvements,\nlike caching uv detection and interpreter discovery, plus lazy module imports\non Python 3.15. Various bugs were fixed as well.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SAY-5\"\u003e\u003ccode\u003e@​SAY-5\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Himanshuagrawal4\"\u003e\u003ccode\u003e@​Himanshuagrawal4\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TejasAmle\"\u003e\u003ccode\u003e@​TejasAmle\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/felixfontein\"\u003e\u003ccode\u003e@​felixfontein\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1049\"\u003ewntrblm/nox#1049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ereturn_code\u003c/code\u003e property to \u003ccode\u003eCommandFailed\u003c/code\u003e exception by \u003ca href=\"https://github.com/felixfontein\"\u003e\u003ccode\u003e@​felixfontein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1129\"\u003ewntrblm/nox#1129\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePerformance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCache session-name normalization, uv detection, interpreter discovery, and metadata reads by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1113\"\u003ewntrblm/nox#1113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLazy modules on Python 3.15 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1115\"\u003ewntrblm/nox#1115\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eScript-mode pip resolution on Windows and \u003ccode\u003e--download-python\u003c/code\u003e fallback by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1110\"\u003ewntrblm/nox#1110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't crash when a parametrized session has an empty parameter list by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1109\"\u003ewntrblm/nox#1109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHash fully non-ASCII session names instead of returning the envdir by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1108\"\u003ewntrblm/nox#1108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInterpreter-resolution edge cases in \u003ccode\u003evirtualenv.py\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/wntrblm/nox/pull/1111\"\u003ewntrblm/nox#1111\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate missing parent directories for the session cache dir by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1104\"\u003ewntrblm/nox#1104\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnforce \u003ccode\u003e--error-on-external-run\u003c/code\u003e even when \u003ccode\u003elog=False\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/wntrblm/nox/pull/1107\"\u003ewntrblm/nox#1107\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle \u003ccode\u003e=\u003c/code\u003e in \u003ccode\u003eset_env\u003c/code\u003e values and out-of-tree \u003ccode\u003echange_dir\u003c/code\u003e in \u003ccode\u003etox-to-nox\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/wntrblm/nox/pull/1105\"\u003ewntrblm/nox#1105\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReturn empty dict from \u003ccode\u003eload_toml\u003c/code\u003e when script file is missing by \u003ca href=\"https://github.com/SAY-5\"\u003e\u003ccode\u003e@​SAY-5\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1096\"\u003ewntrblm/nox#1096\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow envvars in CLI help by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1085\"\u003ewntrblm/nox#1085\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd PyO3 as a user by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1123\"\u003ewntrblm/nox#1123\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eList micromamba in \u003ccode\u003e--default-venv-backend\u003c/code\u003e supported names by \u003ca href=\"https://github.com/SAY-5\"\u003e\u003ccode\u003e@​SAY-5\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1092\"\u003ewntrblm/nox#1092\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClarify \u003ccode\u003esession.notify\u003c/code\u003e target docs by \u003ca href=\"https://github.com/Himanshuagrawal4\"\u003e\u003ccode\u003e@​Himanshuagrawal4\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1099\"\u003ewntrblm/nox#1099\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocument venv backend for EOL Python by \u003ca href=\"https://github.com/Himanshuagrawal4\"\u003e\u003ccode\u003e@​Himanshuagrawal4\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1101\"\u003ewntrblm/nox#1101\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typo in README installation section by \u003ca href=\"https://github.com/TejasAmle\"\u003e\u003ccode\u003e@​TejasAmle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1097\"\u003ewntrblm/nox#1097\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal changes:\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/3284968a16fa5bd7fc0cc64a69a531404ccb4756\"\u003e\u003ccode\u003e3284968\u003c/code\u003e\u003c/a\u003e chore: prepare release 2026.07.11 (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1132\"\u003e#1132\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/d73f96a257af685c948326cd37a3125ffbe778dc\"\u003e\u003ccode\u003ed73f96a\u003c/code\u003e\u003c/a\u003e ci: add Python 3.15 to the test matrix and classifiers (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1133\"\u003e#1133\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/53919851d49123393a6502df05a1350b0c2cfe0b\"\u003e\u003ccode\u003e5391985\u003c/code\u003e\u003c/a\u003e test: isolate run_nox envdir to fix flaky test_main_requires (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1134\"\u003e#1134\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/390d8170819d239b278137503e691419c065fa6d\"\u003e\u003ccode\u003e390d817\u003c/code\u003e\u003c/a\u003e feat: add return_code to CommandFailed. (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1129\"\u003e#1129\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/f1d521079f2c8d9d22494ce30d0f31e8a9cd7b86\"\u003e\u003ccode\u003ef1d5210\u003c/code\u003e\u003c/a\u003e chore(deps): bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1125\"\u003e#1125\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/0894b7340d4012220e146bd56657edde41d91000\"\u003e\u003ccode\u003e0894b73\u003c/code\u003e\u003c/a\u003e chore(deps): bump the pre-commit group with 4 updates (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1126\"\u003e#1126\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/9b747edbc2c72f147325742add03c2c201d7f018\"\u003e\u003ccode\u003e9b747ed\u003c/code\u003e\u003c/a\u003e ci: experimental MSYS2/MinGW test run (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1122\"\u003e#1122\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/8a44270d63c7d232bf4dd0773a12e1d8b43649d4\"\u003e\u003ccode\u003e8a44270\u003c/code\u003e\u003c/a\u003e docs: add PyO3 as a user (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1123\"\u003e#1123\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/5bd0f8357ef4bee910b03373b1cdb24de0a71f35\"\u003e\u003ccode\u003e5bd0f83\u003c/code\u003e\u003c/a\u003e perf: lazy modules on Python 3.15 (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1115\"\u003e#1115\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/982fcfa6a5a5fa10c7777be0d60acd784121e319\"\u003e\u003ccode\u003e982fcfa\u003c/code\u003e\u003c/a\u003e chore(deps): bump dependency-groups in the pre-commit group (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1121\"\u003e#1121\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/wntrblm/nox/compare/2026.04.10...2026.07.11\"\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/adamlui/python-utils/pull/369","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/adamlui%2Fpython-utils/issues/369","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/369/packages"},{"uuid":"4814778822","node_id":"PR_kwDOOHh4U87uIDjT","number":166,"state":"open","title":"chore(deps): Bump the python-minor-and-patch group across 1 directory with 12 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-07-05T23:06:42.000Z","updated_at":"2026-07-05T23:08:21.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): Bump","group_name":"python-minor-and-patch","update_count":12,"packages":[{"name":"typing-extensions","old_version":"4.15.0","new_version":"4.16.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"pytest","old_version":"9.0.2","new_version":"9.1.1","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"nox","old_version":"2026.2.9","new_version":"2026.4.10","repository_url":"https://github.com/wntrblm/nox"},{"name":"ruff","old_version":"0.15.9","new_version":"0.15.20","repository_url":"https://github.com/astral-sh/ruff"},{"name":"pre-commit","old_version":"4.5.1","new_version":"4.6.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"argcomplete","old_version":"3.6.3","new_version":"3.7.0","repository_url":"https://github.com/kislyuk/argcomplete"},{"name":"distlib","old_version":"0.4.0","new_version":"0.4.3","repository_url":"https://github.com/pypa/distlib"},{"name":"filelock","old_version":"3.25.2","new_version":"3.29.5","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"humanize","old_version":"4.15.0","new_version":"4.16.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"identify","old_version":"2.6.18","new_version":"2.6.19","repository_url":"https://github.com/pre-commit/identify"},{"name":"packaging","old_version":"26.0","new_version":"26.2","repository_url":"https://github.com/pypa/packaging"},{"name":"platformdirs","old_version":"4.9.4","new_version":"4.10.0","repository_url":"https://github.com/tox-dev/platformdirs"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-minor-and-patch group with 12 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.15.0` | `4.16.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.2` | `9.1.1` |\n| [nox](https://github.com/wntrblm/nox) | `2026.2.9` | `2026.4.10` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.9` | `0.15.20` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.5.1` | `4.6.0` |\n| [argcomplete](https://github.com/kislyuk/argcomplete) | `3.6.3` | `3.7.0` |\n| [distlib](https://github.com/pypa/distlib) | `0.4.0` | `0.4.3` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.25.2` | `3.29.5` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.15.0` | `4.16.0` |\n| [identify](https://github.com/pre-commit/identify) | `2.6.18` | `2.6.19` |\n| [packaging](https://github.com/pypa/packaging) | `26.0` | `26.2` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.9.4` | `4.10.0` |\n\n\nUpdates `typing-extensions` from 4.15.0 to 4.16.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/typing_extensions/releases\"\u003etyping-extensions's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.16.0\u003c/h2\u003e\n\u003cp\u003eNo changes since 4.16.0rc2.\u003c/p\u003e\n\u003cp\u003eChanges since 4.15.0:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003etyping_extensions.TypeAliasType\u003c/code\u003e's \u003ccode\u003e__module__\u003c/code\u003e attribute writable. Backport of CPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/149172\"\u003e#149172\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix setting of \u003ccode\u003e__required_keys__\u003c/code\u003e and \u003ccode\u003e__optional_keys__\u003c/code\u003e when inheriting keys with the same name.\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003eAsyncIterator\u003c/code\u003e, \u003ccode\u003eio.Reader\u003c/code\u003e, \u003ccode\u003eio.Writer\u003c/code\u003e and \u003ccode\u003eos.PathLike\u003c/code\u003e protocols as bases for other protocols.\u003c/li\u003e\n\u003cli\u003eFix incorrect behaviour on Python 3.9 and Python 3.10 that meant that calling \u003ccode\u003eisinstance\u003c/code\u003e with \u003ccode\u003etyping_extensions.Concatenate[...]\u003c/code\u003e or \u003ccode\u003etyping_extensions.Unpack[...]\u003c/code\u003e as the first argument could have a different result in some situations depending on whether or not a profiling function had been set using \u003ccode\u003esys.setprofile\u003c/code\u003e. This affected both CPython and PyPy implementations. Patch by Brian Schubert.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003e__init_subclass__()\u003c/code\u003e behavior in the presence of multiple inheritance involving an \u003ccode\u003e@deprecated\u003c/code\u003e-decorated base class. Backport of CPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/138210\"\u003e#138210\u003c/a\u003e by Brian Schubert.\u003c/li\u003e\n\u003cli\u003eRaise \u003ccode\u003eTypeError\u003c/code\u003e when attempting to subclass \u003ccode\u003etyping_extensions.ParamSpec\u003c/code\u003e on Python 3.9. The \u003ccode\u003etyping\u003c/code\u003e implementation has always raised an error, and the \u003ccode\u003etyping_extensions\u003c/code\u003e implementation has raised an error on Python 3.10+ since \u003ccode\u003etyping_extensions\u003c/code\u003e v4.6.0. Patch by Brian Schubert.\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003ebound\u003c/code\u003e, \u003ccode\u003ecovariant\u003c/code\u003e, \u003ccode\u003econtravariant\u003c/code\u003e, and \u003ccode\u003einfer_variance\u003c/code\u003e parameters to \u003ccode\u003eTypeVarTuple\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eOfficially support the \u003ccode\u003ebound\u003c/code\u003e, \u003ccode\u003ecovariant\u003c/code\u003e, \u003ccode\u003econtravariant\u003c/code\u003e and \u003ccode\u003einfer_variance\u003c/code\u003e parameters to \u003ccode\u003eParamSpec\u003c/code\u003e. Improve the validation of these parameters at runtime.\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003etyping_extensions.Sentinel\u003c/code\u003e to \u003ccode\u003etyping_extensions.sentinel\u003c/code\u003e, following the name that has been adopted for \u003ccode\u003ebuiltins.sentinel\u003c/code\u003e on Python 3.15. \u003ccode\u003etyping_extensions.Sentinel\u003c/code\u003e is retained as a soft-deprecated alias for backwards compatibility.\u003c/li\u003e\n\u003cli\u003eAdd support for pickling sentinels.\u003c/li\u003e\n\u003cli\u003eSentinels now preserve their identity when copied or deep-copied.\u003c/li\u003e\n\u003cli\u003eDeprecate passing \u003ccode\u003ename\u003c/code\u003e as a keyword argument or \u003ccode\u003erepr\u003c/code\u003e as a positional argument to the \u003ccode\u003esentinel\u003c/code\u003e constructor.\u003c/li\u003e\n\u003cli\u003eThe default repr of a sentinel \u003ccode\u003eX = sentinel(\u0026quot;X\u0026quot;)\u003c/code\u003e is now \u003ccode\u003eX\u003c/code\u003e rather than \u003ccode\u003e\u0026lt;X\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eDeprecate arbitrary attribute assignments to sentinels.\u003c/li\u003e\n\u003cli\u003eDeprecate subclassing sentinels.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.15.\u003c/li\u003e\n\u003cli\u003eAvoid a \u003ccode\u003eDeprecationWarning\u003c/code\u003e when \u003ccode\u003edeprecated\u003c/code\u003e is applied to a coroutine function on Python 3.14.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.16.0rc2\u003c/h2\u003e\n\u003cp\u003eChanges since 4.16.0rc1:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid a \u003ccode\u003eDeprecationWarning\u003c/code\u003e when \u003ccode\u003edeprecated\u003c/code\u003e is applied to a coroutine function on Python 3.14.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eChanges since 4.15.0:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003etyping_extensions.TypeAliasType\u003c/code\u003e's \u003ccode\u003e__module__\u003c/code\u003e attribute writable. Backport of CPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/149172\"\u003e#149172\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix setting of \u003ccode\u003e__required_keys__\u003c/code\u003e and \u003ccode\u003e__optional_keys__\u003c/code\u003e when inheriting keys with the same name.\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003eAsyncIterator\u003c/code\u003e, \u003ccode\u003eio.Reader\u003c/code\u003e, \u003ccode\u003eio.Writer\u003c/code\u003e and \u003ccode\u003eos.PathLike\u003c/code\u003e protocols as bases for other protocols.\u003c/li\u003e\n\u003cli\u003eFix incorrect behaviour on Python 3.9 and Python 3.10 that meant that calling \u003ccode\u003eisinstance\u003c/code\u003e with \u003ccode\u003etyping_extensions.Concatenate[...]\u003c/code\u003e or \u003ccode\u003etyping_extensions.Unpack[...]\u003c/code\u003e as the first argument could have a different result in some situations depending on whether or not a profiling function had been set using \u003ccode\u003esys.setprofile\u003c/code\u003e. This affected both CPython and PyPy implementations. Patch by Brian Schubert.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003e__init_subclass__()\u003c/code\u003e behavior in the presence of multiple inheritance involving an \u003ccode\u003e@deprecated\u003c/code\u003e-decorated base class. Backport of CPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/138210\"\u003e#138210\u003c/a\u003e by Brian Schubert.\u003c/li\u003e\n\u003cli\u003eRaise \u003ccode\u003eTypeError\u003c/code\u003e when attempting to subclass \u003ccode\u003etyping_extensions.ParamSpec\u003c/code\u003e on Python 3.9. The \u003ccode\u003etyping\u003c/code\u003e implementation has always raised an error, and the \u003ccode\u003etyping_extensions\u003c/code\u003e implementation has raised an error on Python 3.10+ since \u003ccode\u003etyping_extensions\u003c/code\u003e v4.6.0. Patch by Brian Schubert.\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003ebound\u003c/code\u003e, \u003ccode\u003ecovariant\u003c/code\u003e, \u003ccode\u003econtravariant\u003c/code\u003e, and \u003ccode\u003einfer_variance\u003c/code\u003e parameters to \u003ccode\u003eTypeVarTuple\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eOfficially support the \u003ccode\u003ebound\u003c/code\u003e, \u003ccode\u003ecovariant\u003c/code\u003e, \u003ccode\u003econtravariant\u003c/code\u003e and \u003ccode\u003einfer_variance\u003c/code\u003e parameters to \u003ccode\u003eParamSpec\u003c/code\u003e. Improve the validation of these parameters at runtime.\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003etyping_extensions.Sentinel\u003c/code\u003e to \u003ccode\u003etyping_extensions.sentinel\u003c/code\u003e, following the name that has been adopted for \u003ccode\u003ebuiltins.sentinel\u003c/code\u003e on Python 3.15. \u003ccode\u003etyping_extensions.Sentinel\u003c/code\u003e is retained as a soft-deprecated alias for backwards compatibility.\u003c/li\u003e\n\u003cli\u003eAdd support for pickling sentinels.\u003c/li\u003e\n\u003cli\u003eSentinels now preserve their identity when copied or deep-copied.\u003c/li\u003e\n\u003cli\u003eDeprecate passing \u003ccode\u003ename\u003c/code\u003e as a keyword argument or \u003ccode\u003erepr\u003c/code\u003e as a positional argument to the \u003ccode\u003esentinel\u003c/code\u003e constructor.\u003c/li\u003e\n\u003cli\u003eThe default repr of a sentinel \u003ccode\u003eX = sentinel(\u0026quot;X\u0026quot;)\u003c/code\u003e is now \u003ccode\u003eX\u003c/code\u003e rather than \u003ccode\u003e\u0026lt;X\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eDeprecate arbitrary attribute assignments to sentinels.\u003c/li\u003e\n\u003cli\u003eDeprecate subclassing sentinels.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.15.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.16.0rc1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003etyping_extensions.TypeAliasType\u003c/code\u003e's \u003ccode\u003e__module__\u003c/code\u003e attribute writable. Backport of CPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/149172\"\u003e#149172\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix setting of \u003ccode\u003e__required_keys__\u003c/code\u003e and \u003ccode\u003e__optional_keys__\u003c/code\u003e when inheriting keys with the same 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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/typing_extensions/blob/main/CHANGELOG.md\"\u003etyping-extensions's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease 4.16.0 (July 2, 2025)\u003c/h1\u003e\n\u003cp\u003eNo user-facing changes since 4.16.0rc2.\u003c/p\u003e\n\u003ch1\u003eRelease 4.16.0rc2 (June 25, 2026)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid a \u003ccode\u003eDeprecationWarning\u003c/code\u003e when \u003ccode\u003edeprecated\u003c/code\u003e is applied to a coroutine function on\nPython 3.14.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eRelease 4.16.0rc1 (June 24, 2026)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003etyping_extensions.TypeAliasType\u003c/code\u003e's \u003ccode\u003e__module__\u003c/code\u003e attribute writable.\nBackport of CPython PR\n\u003ca href=\"https://redirect.github.com/python/cpython/pull/149172\"\u003e#149172\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix setting of \u003ccode\u003e__required_keys__\u003c/code\u003e and \u003ccode\u003e__optional_keys__\u003c/code\u003e when inheriting\nkeys with the same name.\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003eAsyncIterator\u003c/code\u003e, \u003ccode\u003eio.Reader\u003c/code\u003e, \u003ccode\u003eio.Writer\u003c/code\u003e and \u003ccode\u003eos.PathLike\u003c/code\u003e protocols\nas bases for other protocols.\u003c/li\u003e\n\u003cli\u003eFix incorrect behaviour on Python 3.9 and Python 3.10 that meant that\ncalling \u003ccode\u003eisinstance\u003c/code\u003e with \u003ccode\u003etyping_extensions.Concatenate[...]\u003c/code\u003e or\n\u003ccode\u003etyping_extensions.Unpack[...]\u003c/code\u003e as the first argument could have a different\nresult in some situations depending on whether or not a profiling function had been\nset using \u003ccode\u003esys.setprofile\u003c/code\u003e. This affected both CPython and PyPy implementations.\nPatch by Brian Schubert.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003e__init_subclass__()\u003c/code\u003e behavior in the presence of multiple inheritance involving\nan \u003ccode\u003e@deprecated\u003c/code\u003e-decorated base class. Backport of CPython PR\n\u003ca href=\"https://redirect.github.com/python/cpython/pull/138210\"\u003e#138210\u003c/a\u003e by Brian Schubert.\u003c/li\u003e\n\u003cli\u003eRaise \u003ccode\u003eTypeError\u003c/code\u003e when attempting to subclass \u003ccode\u003etyping_extensions.ParamSpec\u003c/code\u003e on\nPython 3.9. The \u003ccode\u003etyping\u003c/code\u003e implementation has always raised an error, and the\n\u003ccode\u003etyping_extensions\u003c/code\u003e implementation has raised an error on Python 3.10+ since\n\u003ccode\u003etyping_extensions\u003c/code\u003e v4.6.0. Patch by Brian Schubert.\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003ebound\u003c/code\u003e, \u003ccode\u003ecovariant\u003c/code\u003e, \u003ccode\u003econtravariant\u003c/code\u003e, and \u003ccode\u003einfer_variance\u003c/code\u003e parameters\nto \u003ccode\u003eTypeVarTuple\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eOfficially support the \u003ccode\u003ebound\u003c/code\u003e, \u003ccode\u003ecovariant\u003c/code\u003e, \u003ccode\u003econtravariant\u003c/code\u003e and \u003ccode\u003einfer_variance\u003c/code\u003e\nparameters to \u003ccode\u003eParamSpec\u003c/code\u003e. Improve the validation of these parameters at runtime.\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003etyping_extensions.Sentinel\u003c/code\u003e to \u003ccode\u003etyping_extensions.sentinel\u003c/code\u003e, following the\nname that has been adopted for \u003ccode\u003ebuiltins.sentinel\u003c/code\u003e on Python 3.15.\n\u003ccode\u003etyping_extensions.Sentinel\u003c/code\u003e is retained as a soft-deprecated alias for backwards\ncompatibility.\u003c/li\u003e\n\u003cli\u003eAdd support for pickling sentinels.\u003c/li\u003e\n\u003cli\u003eSentinels now preserve their identity when copied or deep-copied.\u003c/li\u003e\n\u003cli\u003eDeprecate passing \u003ccode\u003ename\u003c/code\u003e as a keyword argument or \u003ccode\u003erepr\u003c/code\u003e as a positional argument\nto the \u003ccode\u003esentinel\u003c/code\u003e constructor.\u003c/li\u003e\n\u003cli\u003eThe default repr of a sentinel \u003ccode\u003eX = sentinel(\u0026quot;X\u0026quot;)\u003c/code\u003e is now \u003ccode\u003eX\u003c/code\u003e rather than \u003ccode\u003e\u0026lt;X\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eDeprecate arbitrary attribute assignments to sentinels.\u003c/li\u003e\n\u003cli\u003eDeprecate subclassing sentinels.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.15.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/f29cd28d8ed7642cafb1d18daf5aa41be6a5c0aa\"\u003e\u003ccode\u003ef29cd28\u003c/code\u003e\u003c/a\u003e Prepare relase 4.16.0 (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/774\"\u003e#774\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/43174610ec0c407ce05ad750077c4e62b9192b2b\"\u003e\u003ccode\u003e4317461\u003c/code\u003e\u003c/a\u003e Bump version to 4.16.0rc2.dev (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/772\"\u003e#772\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/4f71098e5be84798d36416bbca0e776223ee40f9\"\u003e\u003ccode\u003e4f71098\u003c/code\u003e\u003c/a\u003e Prepare release 4.16.0rc2 (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/771\"\u003e#771\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/37ed08a11f3b7c05234f8963ab97e3ebdbdc16a2\"\u003e\u003ccode\u003e37ed08a\u003c/code\u003e\u003c/a\u003e Remove use of \u003ccode\u003easyncio.coroutines.iscoroutinefunction()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/769\"\u003e#769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/8dcc5594cbe5a4e348245fea6ce160ce93ed6601\"\u003e\u003ccode\u003e8dcc559\u003c/code\u003e\u003c/a\u003e Improve \u003ccode\u003eTypedDict\u003c/code\u003e documentation (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/770\"\u003e#770\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/224f8d50551d26f0d603093596c3a47a7302a46f\"\u003e\u003ccode\u003e224f8d5\u003c/code\u003e\u003c/a\u003e Post-release followups for 3.16.0rc1 (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/767\"\u003e#767\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/777de3eb5f4562e2054d1d7ce707f098b1f4fd2f\"\u003e\u003ccode\u003e777de3e\u003c/code\u003e\u003c/a\u003e Prepare release 4.16.0rc1 (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/766\"\u003e#766\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/890be90f1545e7d5fa904dfa3154d5f03c96782c\"\u003e\u003ccode\u003e890be90\u003c/code\u003e\u003c/a\u003e Type variable tuple variance (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/741\"\u003e#741\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/0e0545866d78458b668dc52d2edc411f6e39540d\"\u003e\u003ccode\u003e0e05458\u003c/code\u003e\u003c/a\u003e Pin SQLAlchemy third-party tests to pytest==9.0.3 (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/765\"\u003e#765\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/d2777468c274202ec290103b34313e50cf040229\"\u003e\u003ccode\u003ed277746\u003c/code\u003e\u003c/a\u003e docs: add version compatibility table (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/733\"\u003e#733\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/typing_extensions/compare/4.15.0...4.16.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 9.0.2 to 9.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.1.1\u003c/h2\u003e\n\u003ch1\u003epytest 9.1.1 (2026-06-19)\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/14220\"\u003e#14220\u003c/a\u003e: Fixed a logic bug in \u003ccode\u003epytest.RaisesGroup\u003c/code\u003e which would might cause it to display incorrect \u0026quot;It matches \u003c!-- raw HTML omitted --\u003eFooError()\u003c!-- raw HTML omitted --\u003e which was paired with \u003c!-- raw HTML omitted --\u003eBarError\u003c!-- raw HTML omitted --\u003e\u0026quot; messages.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14591\"\u003e#14591\u003c/a\u003e: Fixed a regression in pytest 9.1.0 which caused overriding a parametrized fixture with an indirect \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/pytest\"\u003e\u003ccode\u003e@​pytest\u003c/code\u003e\u003c/a\u003e.mark.parametrize\u003c!-- raw HTML omitted --\u003e to fail with \u0026quot;duplicate parametrization of '\u0026lt;fixture name\u0026gt;'\u0026quot;.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14606\"\u003e#14606\u003c/a\u003e: Fixed \u003ccode\u003elist-item\u003c/code\u003e typing errors from mypy in \u003ccode\u003e@pytest.mark.parametrize \u0026lt;pytest.mark.parametrize ref\u0026gt;\u003c/code\u003e \u003ccode\u003eargvalues\u003c/code\u003e parameter.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14608\"\u003e#14608\u003c/a\u003e: Fixed a regression in pytest 9.1.0 where \u003ccode\u003econftest.py\u003c/code\u003e files located in \u003ccode\u003e\u0026lt;invocation dir\u0026gt;/test*\u003c/code\u003e were no longer loaded as initial conftests when invoked without arguments.\nThis could cause certain hooks (like \u003ccode\u003epytest_addoption\u003c/code\u003e) in these files to not fire.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e9.1.0\u003c/h2\u003e\n\u003ch1\u003epytest 9.1.0 (2026-06-13)\u003c/h1\u003e\n\u003ch2\u003eRemovals and backward incompatible breaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14533\"\u003e#14533\u003c/a\u003e: When using \u003ccode\u003e--doctest-modules\u003c/code\u003e, autouse fixtures with \u003ccode\u003emodule\u003c/code\u003e, \u003ccode\u003epackage\u003c/code\u003e or \u003ccode\u003esession\u003c/code\u003e scope that are defined inline in Python test modules (not plugins or conftests) will now possibly execute twice.\u003c/p\u003e\n\u003cp\u003eIf this is undesirable, move the fixture definition to a \u003ccode\u003econftest.py\u003c/code\u003e file if possible.\u003c/p\u003e\n\u003cp\u003eTechnical explanation for those interested:\nWhen using \u003c!-- raw HTML omitted --\u003e--doctest-modules\u003c!-- raw HTML omitted --\u003e, pytest possibly collects Python modules twice, once as \u003ccode\u003epytest.Module\u003c/code\u003e and once as a \u003ccode\u003eDoctestModule\u003c/code\u003e (depending on the configuration).\nDue to improvements in pytest's fixture implementation, if e.g. the \u003ccode\u003eDoctestModule\u003c/code\u003e collects a fixture, it is now visible to it only, and not to the \u003ccode\u003eModule\u003c/code\u003e.\nThis means that both need to register the fixtures independently.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations (removal in next major release)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/10819\"\u003e#10819\u003c/a\u003e: Added a deprecation warning for class-scoped fixtures defined as instance methods (without \u003ccode\u003e@classmethod\u003c/code\u003e). Such fixtures set attributes on a different instance than the test methods use, leading to unexpected behavior. Use \u003ccode\u003e@classmethod\u003c/code\u003e decorator instead -- by \u003ccode\u003eyastcher\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eSee \u003ccode\u003e10819\u003c/code\u003e and \u003ccode\u003e14011\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12882\"\u003e#12882\u003c/a\u003e: Calling \u003ccode\u003erequest.getfixturevalue() \u0026lt;pytest.FixtureRequest.getfixturevalue\u0026gt;\u003c/code\u003e during teardown to request a fixture that was not already requested is now deprecated and will become an error in pytest 10.\u003c/p\u003e\n\u003cp\u003eSee \u003ccode\u003edynamic-fixture-request-during-teardown\u003c/code\u003e for details.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13409\"\u003e#13409\u003c/a\u003e: Using non-\u003ccode\u003e~collections.abc.Collection\u003c/code\u003e iterables (such as generators, iterators, or custom iterable objects) for the \u003ccode\u003eargvalues\u003c/code\u003e parameter in \u003ccode\u003e@pytest.mark.parametrize \u0026lt;pytest.mark.parametrize ref\u0026gt;\u003c/code\u003e and \u003ccode\u003emetafunc.parametrize \u0026lt;pytest.Metafunc.parametrize\u0026gt;\u003c/code\u003e is now deprecated.\u003c/p\u003e\n\u003cp\u003eThese iterables get exhausted after the first iteration,\nleading to tests getting unexpectedly skipped in cases such as running \u003ccode\u003epytest.main()\u003c/code\u003e multiple times,\nusing class-level parametrize decorators,\nor collecting tests multiple times.\u003c/p\u003e\n\u003cp\u003eSee \u003ccode\u003eparametrize-iterators\u003c/code\u003e for details and suggestions.\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 is now deprecated.\nUse \u003ccode\u003econfig.getini() \u0026lt;pytest.Config.getini\u0026gt;\u003c/code\u003e to access configuration values instead.\u003c/p\u003e\n\u003cp\u003eSee \u003ccode\u003econfig-inicfg\u003c/code\u003e for more details.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14004\"\u003e#14004\u003c/a\u003e: Passing \u003ccode\u003ebaseid\u003c/code\u003e to \u003ccode\u003e~pytest.FixtureDef\u003c/code\u003e or \u003ccode\u003enodeid\u003c/code\u003e strings to fixture registration APIs is now deprecated. These are internal pytest APIs that are used by some plugins.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/cf470ec0bf7eb89cd97dd56df4859eae5db46447\"\u003e\u003ccode\u003ecf470ec\u003c/code\u003e\u003c/a\u003e Prepare release version 9.1.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/e0c8ce6cc5db1f08363be6f152c32e6838df2690\"\u003e\u003ccode\u003ee0c8ce6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14625\"\u003e#14625\u003c/a\u003e from pytest-dev/patchback/backports/9.1.x/a07c31a97...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/1b82d1694fce22385ee7a4287917fbafbaf2e757\"\u003e\u003ccode\u003e1b82d16\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14624\"\u003e#14624\u003c/a\u003e from pytest-dev/patchback/backports/9.1.x/b375b79ec...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/501c4bc784da3b08bfcaa64858eba5d15dc59e53\"\u003e\u003ccode\u003e501c4bc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14596\"\u003e#14596\u003c/a\u003e from bluetech/doc-classmethod\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b61f588e36e9377c3d1d3f06bece1da0fc31d9ca\"\u003e\u003ccode\u003eb61f588\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14622\"\u003e#14622\u003c/a\u003e from chrisburr/fix-14608-initial-conftest-test-subdir\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/9a567e009f4d2da3ce1721c6db3109cb5744d40a\"\u003e\u003ccode\u003e9a567e0\u003c/code\u003e\u003c/a\u003e [automated] Update plugin list (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14617\"\u003e#14617\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14618\"\u003e#14618\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ef8b2993e5b48639e4a3d97d0525df9760781384\"\u003e\u003ccode\u003eef8b299\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14620\"\u003e#14620\u003c/a\u003e from pytest-dev/patchback/backports/9.1.x/680f9f3ed...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/66abd0784d4cb7c1ba44ab9a8896506cd4985acc\"\u003e\u003ccode\u003e66abd07\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14220\"\u003e#14220\u003c/a\u003e from bysiber/fix-stale-iexp-raisesgroup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/79fbf93b666cac5f27c9dad047943d47b766c8d5\"\u003e\u003ccode\u003e79fbf93\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14612\"\u003e#14612\u003c/a\u003e from pytest-dev/patchback/backports/9.1.x/974ed48b6...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/0d312eb876177e9f1c04262b54060a41034ebf5c\"\u003e\u003ccode\u003e0d312eb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14611\"\u003e#14611\u003c/a\u003e from bluetech/parametrize-argvalues-typing\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/9.0.2...9.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `nox` from 2026.2.9 to 2026.4.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/wntrblm/nox/releases\"\u003enox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2026.04.10 🧹\u003c/h2\u003e\n\u003cp\u003eThis release drops Python 3.8 and adds a \u003ccode\u003e--usage\u003c/code\u003e command for full docstrings. Our \u003ccode\u003e.nox\u003c/code\u003e dir is now ignored by default, virtualenvs are recreated if symlinks are broken (such as after a Python upgrade), and \u003ccode\u003e-t\u003c/code\u003e now selects from all available sessions.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agriyakhetarpal\"\u003e\u003ccode\u003e@​agriyakhetarpal\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scop\"\u003e\u003ccode\u003e@​scop\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.8 (reapply \u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1004\"\u003e#1004\u003c/a\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/wntrblm/nox/pull/1062\"\u003ewntrblm/nox#1062\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003enox --usage \u0026lt;session\u0026gt;\u003c/code\u003e command to print full docstrings for provided sessions by \u003ca href=\"https://github.com/agriyakhetarpal\"\u003e\u003ccode\u003e@​agriyakhetarpal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1064\"\u003ewntrblm/nox#1064\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrite out \u003ccode\u003e.gitignore\u003c/code\u003e/\u003ccode\u003eCACHEDIR.TAG\u003c/code\u003e to \u003ccode\u003e.nox\u003c/code\u003e dir by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1072\"\u003ewntrblm/nox#1072\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRecreate venv if broken symlinks are present by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1078\"\u003ewntrblm/nox#1078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore default selection for tags and keywords by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1057\"\u003ewntrblm/nox#1057\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMore uv variables set by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1056\"\u003ewntrblm/nox#1056\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore forcecolor falsy by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1073\"\u003ewntrblm/nox#1073\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFully pin actions in composite action by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1080\"\u003ewntrblm/nox#1080\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePin CI to working conda version by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1079\"\u003ewntrblm/nox#1079\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse prek by \u003ca href=\"https://github.com/agriyakhetarpal\"\u003e\u003ccode\u003e@​agriyakhetarpal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1065\"\u003ewntrblm/nox#1065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSwitch artifact attestations to actions/attest by \u003ca href=\"https://github.com/scop\"\u003e\u003ccode\u003e@​scop\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1070\"\u003ewntrblm/nox#1070\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse zizmor by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1082\"\u003ewntrblm/nox#1082\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/wntrblm/nox/compare/2026.02.09...2026.04.10\"\u003ehttps://github.com/wntrblm/nox/compare/2026.02.09...2026.04.10\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/wntrblm/nox/blob/main/CHANGELOG.md\"\u003enox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003e2026.04.10\u003c/h2\u003e\n\u003cp\u003eThis release drops Python 3.8 and adds a \u003ccode\u003e--usage\u003c/code\u003e command for full docstrings.\nOur \u003ccode\u003e.nox\u003c/code\u003e dir is now ignored by default, virtualenvs are recreated if symlinks\nare broken (such as after a Python upgrade), and \u003ccode\u003e-t\u003c/code\u003e now selects from all\navailable sessions.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agriyakhetarpal\"\u003e\u003ccode\u003e@​agriyakhetarpal\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scop\"\u003e\u003ccode\u003e@​scop\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.8 (reapply \u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1004\"\u003e#1004\u003c/a\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/wntrblm/nox/pull/1062\"\u003ewntrblm/nox#1062\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003enox --usage \u0026lt;session\u0026gt;\u003c/code\u003e command to print full docstrings for provided sessions by \u003ca href=\"https://github.com/agriyakhetarpal\"\u003e\u003ccode\u003e@​agriyakhetarpal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1064\"\u003ewntrblm/nox#1064\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrite out \u003ccode\u003e.gitignore\u003c/code\u003e/\u003ccode\u003eCACHEDIR.TAG\u003c/code\u003e to \u003ccode\u003e.nox\u003c/code\u003e dir by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1072\"\u003ewntrblm/nox#1072\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRecreate venv if broken symlinks are present by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1078\"\u003ewntrblm/nox#1078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore default selection for tags and keywords by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1057\"\u003ewntrblm/nox#1057\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMore uv variables set by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1056\"\u003ewntrblm/nox#1056\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore forcecolor falsy by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1073\"\u003ewntrblm/nox#1073\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFully pin actions in composite action by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1080\"\u003ewntrblm/nox#1080\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePin CI to working conda version by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1079\"\u003ewntrblm/nox#1079\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse prek by \u003ca href=\"https://github.com/agriyakhetarpal\"\u003e\u003ccode\u003e@​agriyakhetarpal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1065\"\u003ewntrblm/nox#1065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSwitch artifact attestations to actions/attest by \u003ca href=\"https://github.com/scop\"\u003e\u003ccode\u003e@​scop\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1070\"\u003ewntrblm/nox#1070\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse zizmor by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1082\"\u003ewntrblm/nox#1082\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2026.02.09\u003c/h2\u003e\n\u003cp\u003eThis small release supports uv 0.10's new requirement that \u003ccode\u003e--clear\u003c/code\u003e be passed\nto clear an environment. Python 3.8 support was temporarily re-added since uv\n0.10 still supports 3.8, so nox on 3.8 was affected.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/97e345e6a26bb2c5aacff9cc4327bd4ac1b00ce6\"\u003e\u003ccode\u003e97e345e\u003c/code\u003e\u003c/a\u003e docs: add thanks section (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1083\"\u003e#1083\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/8d5c759d5d3f1f2c80ada8f05cd994c673905898\"\u003e\u003ccode\u003e8d5c759\u003c/code\u003e\u003c/a\u003e chore: prepare for 2026.04.10 (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1081\"\u003e#1081\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/2577f31eb4d6d94f18157c444464fdd1e4a7e3df\"\u003e\u003ccode\u003e2577f31\u003c/code\u003e\u003c/a\u003e ci: add zizmor (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1082\"\u003e#1082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/b6a61563737b2e42790f8ea509fe1ddd76fa464f\"\u003e\u003ccode\u003eb6a6156\u003c/code\u003e\u003c/a\u003e fix: fully pin actions in composite action (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1080\"\u003e#1080\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/4c7a2151c538b739337dbbd759aaf440fa1991ac\"\u003e\u003ccode\u003e4c7a215\u003c/code\u003e\u003c/a\u003e fix: write out .gitignore/CACHEDIR.TAG to our dir (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1072\"\u003e#1072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/47cb9c300e07c3a8ca4d5b240dad1a178a65dcdb\"\u003e\u003ccode\u003e47cb9c3\u003c/code\u003e\u003c/a\u003e fix: ignore default selection for tags and keywords (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1057\"\u003e#1057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/63dcab98ecd4f784537a3c1fa1319bac6cbf2436\"\u003e\u003ccode\u003e63dcab9\u003c/code\u003e\u003c/a\u003e fix: more uv variables set (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1056\"\u003e#1056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/e0f64e6c3cb24e3f870f4df8dd38830e03546dce\"\u003e\u003ccode\u003ee0f64e6\u003c/code\u003e\u003c/a\u003e fix: recreate if broken symlinks are present (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1078\"\u003e#1078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/bf9095287afacc1f5b94e5da54f4dbed4ccce875\"\u003e\u003ccode\u003ebf90952\u003c/code\u003e\u003c/a\u003e tests: pin to working conda version (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1079\"\u003e#1079\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/4ff681f169c4043ce3b3d19cba1eadd66720bf1d\"\u003e\u003ccode\u003e4ff681f\u003c/code\u003e\u003c/a\u003e fix: ignore forcecolor falsy (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1073\"\u003e#1073\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/wntrblm/nox/compare/2026.02.09...2026.04.10\"\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.9 to 0.15.20\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.20\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-06-25.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow human-readable names in rule selectors (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25887\"\u003e#25887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEmit a warning instead of an error for unknown rule selectors (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26113\"\u003e#26113\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMatch \u003ccode\u003enoqa\u003c/code\u003e shebang handling in \u003ccode\u003eruff:ignore\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26286\"\u003e#26286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Remove \u003ccode\u003epytest-fixture-autouse\u003c/code\u003e (\u003ccode\u003eRUF076\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26240\"\u003e#26240\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26371\"\u003e#26371\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd versioning sections to custom crate READMEs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26317\"\u003e#26317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003eruff_python_parser\u003c/code\u003e README for crates.io (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26315\"\u003e#26315\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eperflint\u003c/code\u003e] Clarify that \u003ccode\u003ePERF402\u003c/code\u003e applies to any iterable (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26242\"\u003e#26242\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/dhruvmanila\"\u003e\u003ccode\u003e@​dhruvmanila\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/trilamsr\"\u003e\u003ccode\u003e@​trilamsr\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.15.20\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.20/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.20/ruff-installer.ps1 | iex\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003eDownload ruff 0.15.20\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/ruff/releases/download/0.15.20/ruff-aarch64-apple-darwin.tar.gz\"\u003eruff-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/ruff/releases/download/0.15.20/ruff-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/ruff/releases/download/0.15.20/ruff-x86_64-apple-darwin.tar.gz\"\u003eruff-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/ruff/releases/download/0.15.20/ruff-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/ruff/releases/download/0.15.20/ruff-aarch64-pc-windows-msvc.zip\"\u003eruff-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/ruff/releases/download/0.15.20/ruff-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/ruff/releases/download/0.15.20/ruff-i686-pc-windows-msvc.zip\"\u003eruff-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/ruff/releases/download/0.15.20/ruff-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/ruff/releases/download/0.15.20/ruff-x86_64-pc-windows-msvc.zip\"\u003eruff-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/ruff/releases/download/0.15.20/ruff-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/ruff/releases/download/0.15.20/ruff-aarch64-unknown-linux-gnu.tar.gz\"\u003eruff-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/ruff/releases/download/0.15.20/ruff-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/ruff/releases/download/0.15.20/ruff-i686-unknown-linux-gnu.tar.gz\"\u003eruff-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/ruff/releases/download/0.15.20/ruff-i686-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/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.20\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-06-25.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow human-readable names in rule selectors (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25887\"\u003e#25887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEmit a warning instead of an error for unknown rule selectors (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26113\"\u003e#26113\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMatch \u003ccode\u003enoqa\u003c/code\u003e shebang handling in \u003ccode\u003eruff:ignore\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26286\"\u003e#26286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Remove \u003ccode\u003epytest-fixture-autouse\u003c/code\u003e (\u003ccode\u003eRUF076\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26240\"\u003e#26240\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26371\"\u003e#26371\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd versioning sections to custom crate READMEs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26317\"\u003e#26317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003eruff_python_parser\u003c/code\u003e README for crates.io (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26315\"\u003e#26315\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eperflint\u003c/code\u003e] Clarify that \u003ccode\u003ePERF402\u003c/code\u003e applies to any iterable (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26242\"\u003e#26242\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/dhruvmanila\"\u003e\u003ccode\u003e@​dhruvmanila\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/trilamsr\"\u003e\u003ccode\u003e@​trilamsr\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.15.19\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-06-23.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport human-readable names when hovering suppression comments and in code actions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26114\"\u003e#26114\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFall back to default settings when editor-only settings are invalid (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26244\"\u003e#26244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix panic when inserting text at a notebook cell boundary (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26111\"\u003e#26111\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Update fix suggestions for \u003ccode\u003e__floor__\u003c/code\u003e, \u003ccode\u003e__trunc__\u003c/code\u003e, \u003ccode\u003e__length_hint__\u003c/code\u003e, and \u003ccode\u003e__matmul__\u003c/code\u003e variants (\u003ccode\u003ePLC2801\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26239\"\u003e#26239\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid allocating when parsing single string literals (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26200\"\u003e#26200\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid reallocating singleton call arguments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26223\"\u003e#26223\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLazily create source files for lint diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26226\"\u003e#26226\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOptimize formatter text width and indentation (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26236\"\u003e#26236\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReserve capacity for builtin bindings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26229\"\u003e#26229\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSkip repeated-key checks for singleton dictionaries (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26228\"\u003e#26228\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse ArrayVec for qualified name segments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26224\"\u003e#26224\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/f82a36b6baf8c0547a17bbde6c0d927ccd45d938\"\u003e\u003ccode\u003ef82a36b\u003c/code\u003e\u003c/a\u003e Bump 0.15.20 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/26376\"\u003e#26376\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/af329438b55d5aa8ca28725f17abbae63b5c815d\"\u003e\u003ccode\u003eaf32943\u003c/code\u003e\u003c/a\u003e Improve the summarise-ecosystem-results skill (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/26378\"\u003e#26378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/485ebab5de692aad34720898cd80245b6092ba86\"\u003e\u003ccode\u003e485ebab\u003c/code\u003e\u003c/a\u003e Remove \u003ccode\u003eRUF076\u003c/code\u003e name from schema (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/26371\"\u003e#26371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/ef81835ce3da615346584dc446de0fe26bfc154b\"\u003e\u003ccode\u003eef81835\u003c/code\u003e\u003c/a\u003e [ty] Implement rust-analyzer's \u0026quot;Click for full compiler diagnostic\u0026quot; feature (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/572b31e2377a701a7365f069f6ef87002962cb2b\"\u003e\u003ccode\u003e572b31e\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eruff\u003c/code\u003e] Remove \u003ccode\u003epytest-fixture-autouse\u003c/code\u003e (\u003ccode\u003eRUF076\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/26240\"\u003e#26240\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/f703f219d7fddd1a4abba9fa81e34773c185a4b9\"\u003e\u003ccode\u003ef703f21\u003c/code\u003e\u003c/a\u003e Allow human-readable names in rule selectors (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25887\"\u003e#25887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/0d726b28ee35413926145ffef4ac1143cae9ea1e\"\u003e\u003ccode\u003e0d726b2\u003c/code\u003e\u003c/a\u003e [ty] Reuse equality semantics for membership compatibility (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25955\"\u003e#25955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/dbe6e9848c3f78fdaf543cfc000939ebc73b5f00\"\u003e\u003ccode\u003edbe6e98\u003c/code\u003e\u003c/a\u003e [ty] Infer definite equality comparison results (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/26337\"\u003e#26337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e700ea357a2196d76b58eb89b2031ddb5ca896e0\"\u003e\u003ccode\u003ee700ea3\u003c/code\u003e\u003c/a\u003e [ty] Prove TypedDict structural patterns exhaustive (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/26285\"\u003e#26285\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/6a0d2ec93959d966430b8c39d4de5c3e8a88e911\"\u003e\u003ccode\u003e6a0d2ec\u003c/code\u003e\u003c/a\u003e [ty] Widen inferred class-valued instance attributes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/26338\"\u003e#26338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.15.9...0.15.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit` from 4.5.1 to 4.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.6.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epre-commit hook-impl\u003c/code\u003e: allow \u003ccode\u003e--hook-dir\u003c/code\u003e to be missing to enable easier usage with \u003ccode\u003egit\u003c/code\u003e 2.54+ git hooks.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3662\"\u003e#3662\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epre-commit hook-impl\u003c/code\u003e: \u003ccode\u003e--hook-type\u003c/code\u003e is required.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3661\"\u003e#3661\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.6.0 - 2026-04-21\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epre-commit hook-impl\u003c/code\u003e: allow \u003ccode\u003e--hook-dir\u003c/code\u003e to be missing to enable easier\nusage with \u003ccode\u003egit\u003c/code\u003e 2.54+ git hooks.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3662\"\u003e#3662\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epre-commit hook-impl\u003c/code\u003e: \u003ccode\u003e--hook-type\u003c/code\u003e is required.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3661\"\u003e#3661\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/f35134b05028ec938ac605ae500fdf95462655d3\"\u003e\u003ccode\u003ef35134b\u003c/code\u003e\u003c/a\u003e v4.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2a51ffcb81f6c8ed2e6467913c3343a8800f3ab9\"\u003e\u003ccode\u003e2a51ffc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3662\"\u003e#3662\u003c/a\u003e from pre-commit/hook-impl-optional-hook-dir\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/d7dee322abfc765b042f2e3b872aab3c3a867610\"\u003e\u003ccode\u003ed7dee32\u003c/code\u003e\u003c/a\u003e make --hook-dir optional for hook-impl\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/965aeb1c680e8b526342153547f0ec014484c63d\"\u003e\u003ccode\u003e965aeb1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3661\"\u003e#3661\u003c/a\u003e from pre-commit/hook-impl-required\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2eacc064aa9b5bb33d3a0d84a234b475e34f3096\"\u003e\u003ccode\u003e2eacc06\u003c/code\u003e\u003c/a\u003e --hook-type is required for hook-impl\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/f5678bf4ac35cffc0ff7174ad85f7fdc2a5c977e\"\u003e\u003ccode\u003ef5678bf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3657\"\u003e#3657\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/054cc5bd6bb1b20faa1eefe09f0de3b68fceee94\"\u003e\u003ccode\u003e054cc5b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/5c0f3024d2524f6e029a4c333392fd9be9fb27f6\"\u003e\u003ccode\u003e5c0f302\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3652\"\u003e#3652\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/a5d91142676630f8130020b35e166e0c0e92b8f4\"\u003e\u003ccode\u003ea5d9114\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/129a1f5ca1eaee0c952a5e7a07faae305c5e15bc\"\u003e\u003ccode\u003e129a1f5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3641\"\u003e#3641\u003c/a\u003e from pre-commit/mxr-patch-1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.5.1...v4.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `argcomplete` from 3.6.3 to 3.7.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kislyuk/argcomplete/releases\"\u003eargcomplete's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEscape glob and brace metacharacters in quote_completions (\u003ca href=\"https://redirect.github.com/kislyuk/argcomplete/issues/552\"\u003e#552\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eQuote prefix passed to compgen in FilesCompleter (\u003ca href=\"https://redirect.github.com/kislyuk/argcomplete/issues/551\"\u003e#551\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove deprecated easy_install script detection\u003c/li\u003e\n\u003cli\u003eType hinting improvements\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kislyuk/argcomplete/blob/main/Changes.rst\"\u003eargcomplete's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChanges for v3.7.0 (2026-06-30)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eEscape glob and brace metacharacters in quote_completions (\u003ca href=\"https://redirect.github.com/kislyuk/argcomplete/issues/552\"\u003e#552\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eQuote prefix passed to compgen in FilesCompleter (\u003ca href=\"https://redirect.github.com/kislyuk/argcomplete/issues/551\"\u003e#551\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove deprecated easy_install script detection\u003c/li\u003e\n\u003cli\u003eType hinting 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/kislyuk/argcomplete/commit/6b4528d801bc38e4be7f374ffda416fd82785529\"\u003e\u003ccode\u003e6b4528d\u003c/code\u003e\u003c/a\u003e v3.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kislyuk/argcomplete/commit/81608a8891885dcc60adc06c45baf2dcb2e8b61b\"\u003e\u003ccode\u003e81608a8\u003c/code\u003e\u003c/a\u003e Use Python 3.15 in test matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kislyuk/argcomplete/commit/a59f151dda6a42d721410a165f62972f50391e5a\"\u003e\u003ccode\u003ea59f151\u003c/code\u003e\u003c/a\u003e Update Python classifiers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kislyuk/argcomplete/commit/598c77951c259b8a1b1b2c9769298c3a93e2bb5d\"\u003e\u003ccode\u003e598c779\u003c/code\u003e\u003c/a\u003e Add test for \u003ca href=\"https://redirect.github.com/kislyuk/argcomplete/issues/552\"\u003e#552\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kislyuk/argcomplete/commit/d543c6fea9f24713995d153e48642566e4a80c21\"\u003e\u003ccode\u003ed543c6f\u003c/code\u003e\u003c/a\u003e escape glob and brace metacharacters in quote_completions (\u003ca href=\"https://redirect.github.com/kislyuk/argcomplete/issues/552\"\u003e#552\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kislyuk/argcomplete/commit/24ea0e3ba5f11c72e9debece9aa1685584f52ac1\"\u003e\u003ccode\u003e24ea0e3\u003c/code\u003e\u003c/a\u003e Upgrade GHA to latest supported runners and actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kislyuk/argcomplete/commit/8e6423bed6c79c86f0dd54d9d15a2f485902bb89\"\u003e\u003ccode\u003e8e6423b\u003c/code\u003e\u003c/a\u003e type hinting fixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kislyuk/argcomplete/commit/93eab006915f94a0e31af2b115c4680b69592ae5\"\u003e\u003ccode\u003e93eab00\u003c/code\u003e\u003c/a\u003e Add test for \u003ca href=\"https://redirect.github.com/kislyuk/argcomplete/issues/551\"\u003e#551\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kislyuk/argcomplete/commit/5fefb4597387eada27b1e312436298931f0439ed\"\u003e\u003ccode\u003e5fefb45\u003c/code\u003e\u003c/a\u003e quote prefix passed to compgen in FilesCompleter (\u003ca href=\"https://redirect.github.com/kislyuk/argcomplete/issues/551\"\u003e#551\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kislyuk/argcomplete/commit/8e5ad6a5a702e5529f61ae9a63f720beda68ffaf\"\u003e\u003ccode\u003e8e5ad6a\u003c/code\u003e\u003c/a\u003e Remove easy_install script detection\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/kislyuk/argcomplete/compare/v3.6.3...v3.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `distlib` from 0.4.0 to 0.4.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/distlib/blob/master/CHANGES.rst\"\u003edistlib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.4.3\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nReleased: 2026-06-12\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eresources\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved too-restrictive check for escaping resources.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e0.4.2\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eReleased: 2026-06-08\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003elocators\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix URL percent-encoding using space-padding instead of zero-padding. Thanks to\nKadir Can Ozden for the patch.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eHarden decompression against malicious input. Thanks to tonghuaroot for the patch,\nwhich was adapted slightly.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003emanifest\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse os.lstat in findall to correctly detect symlinked directories. Thanks to\nKadir Can Ozden for the patch.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003emetadata\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eImprove logic to incorporate newer metadata versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eresources\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure that constructed resource paths don't escape the package. Thanks to\ntonghuaroot for the patch.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eutil\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/255\"\u003e#255\u003c/a\u003e: Update cache_from_source() for Python 3.15. Thanks to Victor Stinner\nfor the patch.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCheck during unarchiving that the destination directory isn't escaped via symlinks.\nThanks to tonghuaroot for the patch.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved performance of normalize_name using dual replace. Thanks to\nHugo van Kemenade for the patch.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ewheel\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/distlib/commit/3f4a377c8b164ba1c22a2a61de560f6f80ca7394\"\u003e\u003ccode\u003e3f4a377\u003c/code\u003e\u003c/a\u003e Changes for 0.4.3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/5ee19e6bac8248d7d5246d498d79abe96faa89a5\"\u003e\u003ccode\u003e5ee19e6\u003c/code\u003e\u003c/a\u003e Relax too-strict escaping check for resources.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/f0e3d1ae3e694045b44a5b0e0a50177429ca1b06\"\u003e\u003ccode\u003ef0e3d1a\u003c/code\u003e\u003c/a\u003e Bump version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/06e010db2ddc9497d5bbd886747ff4990ac528a9\"\u003e\u003ccode\u003e06e010d\u003c/code\u003e\u003c/a\u003e Add upper version limit for setuptools for build, to keep metadata version to...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/8b5aa55adf617bd3e81da716d44d034d7938f503\"\u003e\u003ccode\u003e8b5aa55\u003c/code\u003e\u003c/a\u003e Added tag 0.4.2 for changeset 5295c0ceb419\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/8183ea60e83bf021bf7d6903f4a6b3c8df0905a6\"\u003e\u003ccode\u003e8183ea6\u003c/code\u003e\u003c/a\u003e Update change log.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/55ca016b2d597ac5eecb10b6c43b4d9652b73462\"\u003e\u003ccode\u003e55ca016\u003c/code\u003e\u003c/a\u003e Changes for 0.4.2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/7e282abde14bebec2c0e5342faa5a420e70799ca\"\u003e\u003ccode\u003e7e282ab\u003c/code\u003e\u003c/a\u003e Update metadata logic to incorporate newer versions.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/fa4ea501acb14baa31df6b823006da4fd1f8e0dd\"\u003e\u003ccode\u003efa4ea50\u003c/code\u003e\u003c/a\u003e Remove non-portable portion of test.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/e06a1d5fb237cff35c0bd58fe917ef44c84e41cf\"\u003e\u003ccode\u003ee06a1d5\u003c/code\u003e\u003c/a\u003e Further refine tests.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/distlib/compare/0.4.0...0.4.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `filelock` from 3.25.2 to 3.29.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/py-filelock/releases\"\u003efilelock's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.29.5\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eserialise read/write release rollback against a concurrent acquire by \u003ca href=\"https://github.com/dxbjavid\"\u003e\u003ccode\u003e@​dxbjavid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/563\"\u003etox-dev/filelock#563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🔒 fix(soft_rw): refresh held marker through the verified fd by \u003ca href=\"https://github.com/dxbjavid\"\u003e\u003ccode\u003e@​dxbjavid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/565\"\u003etox-dev/filelock#565\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eonly unlink the writer marker on release if it is still ours by \u003ca href=\"https://github.com/dxbjavid\"\u003e\u003ccode\u003e@​dxbjavid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/566\"\u003etox-dev/filelock#566\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edon't follow symlinks in raise_on_not_writable_file by \u003ca href=\"https://github.com/dxbjavid\"\u003e\u003ccode\u003e@​dxbjavid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/567\"\u003etox-dev/filelock#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edon't complete a writer acquire on a peer's reclaimed marker by \u003ca href=\"https://github.com/dxbjavid\"\u003e\u003ccode\u003e@​dxbjavid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/571\"\u003etox-dev/filelock#571\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003euse a private break name in break_lock_file by \u003ca href=\"https://github.com/dxbjavid\"\u003e\u003ccode\u003e@​dxbjavid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/576\"\u003etox-dev/filelock#576\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep Unix lock files after release by \u003ca href=\"https://github.com/itscloud0\"\u003e\u003ccode\u003e@​itscloud0\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/577\"\u003etox-dev/filelock#577\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etest: fix Windows type check broken by \u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/577\"\u003e#577\u003c/a\u003e by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/580\"\u003etox-dev/filelock#580\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eroll back a read acquire's open transaction when its SELECT fails by \u003ca href=\"https://github.com/dxbjavid\"\u003e\u003ccode\u003e@​dxbjavid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/575\"\u003etox-dev/filelock#575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003elifetime: reject negative, non-numeric, and bool values at the setter by \u003ca href=\"https://github.com/HrachShah\"\u003e\u003ccode\u003e@​HrachShah\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/573\"\u003etox-dev/filelock#573\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/itscloud0\"\u003e\u003ccode\u003e@​itscloud0\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/577\"\u003etox-dev/filelock#577\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HrachShah\"\u003e\u003ccode\u003e@​HrachShah\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/573\"\u003etox-dev/filelock#573\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.29.4...3.29.5\"\u003ehttps://github.com/tox-dev/filelock/compare/3.29.4...3.29.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.29.4\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003everify inode in break_lock_file before unlinking a stale lock by \u003ca href=\"https://github.com/dxbjavid\"\u003e\u003ccode\u003e@​dxbjavid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/561\"\u003etox-dev/filelock#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ekeep the read/write heartbeat alive on a transient touch error by \u003ca href=\"https://github.com/dxbjavid\"\u003e\u003ccode\u003e@​dxbjavid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/562\"\u003etox-dev/filelock#562\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.29.3...3.29.4\"\u003ehttps://github.com/tox-dev/filelock/compare/3.29.3...3.29.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.29.3\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 ci(release): publish to PyPI on tag push by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/557\"\u003etox-dev/filelock#557\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003evalidate pid range in _parse_lock_holder by \u003ca href=\"https://github.com/dxbjavid\"\u003e\u003ccode\u003e@​dxbjavid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/556\"\u003etox-dev/filelock#556\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(ci): restore release environment on tag job by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/559\"\u003etox-dev/filelock#559\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(ci): publish from release.yaml on tag push by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/560\"\u003etox-dev/filelock#560\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.29.2...3.29.3\"\u003ehttps://github.com/tox-dev/filelock/compare/3.29.2...3.29.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.29.2\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eopen marker reads non-blocking to refuse attacker-placed fifo by \u003ca href=\"https://github.com/dxbjavid\"\u003e\u003ccode\u003e@​dxbjavid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/549\"\u003etox-dev/filelock#549\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🔒 fix(soft): harden stale-lock breaking and self-heal malformed locks by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/551\"\u003etox-dev/filelock#551\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echeck hostname in is_lock_held_by_us by \u003ca href=\"https://github.com/dxbjavid\"\u003e\u003ccode\u003e@​dxbjavid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/553\"\u003etox-dev/filelock#553\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/be562277636140c26578a98a2a487fdb6f446ee6\"\u003e\u003ccode\u003ebe56227\u003c/code\u003e\u003c/a\u003e lifetime: reject negative, non-numeric, and bool values at the setter (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/573\"\u003e#573\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/1f6cde4ab93d30dfe9867d462e3e1055aaba01c5\"\u003e\u003ccode\u003e1f6cde4\u003c/code\u003e\u003c/a\u003e roll back a read acquire's open transaction when its SELECT fails (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/575\"\u003e#575\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/c76dee6674011e8ba28a5b2e3285af4a738e4109\"\u003e\u003ccode\u003ec76dee6\u003c/code\u003e\u003c/a\u003e test: fix Windows type check broken by \u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/577\"\u003e#577\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/580\"\u003e#580\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/ea594a5cbca43cec92d62f740a8e510a7db0ceed\"\u003e\u003ccode\u003eea594a5\u003c/code\u003e\u003c/a\u003e Keep Unix lock files after release (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/577\"\u003e#577\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/7595a7b48738642ace65a8fbe54bc03ae4317708\"\u003e\u003ccode\u003e7595a7b\u003c/code\u003e\u003c/a\u003e use a private break name in break_lock_file (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/576\"\u003e#576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/0b707fe1a7edf5f5e421d2e0c63acd82017011d4\"\u003e\u003ccode\u003e0b707fe\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/572\"\u003e#572\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/22ecd6a51dacfad30a96d62f291d2707dccf4efb\"\u003e\u003ccode\u003e22ecd6a\u003c/code\u003e\u003c/a\u003e don't complete a writer acquire on a peer's reclaimed marker (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/571\"\u003e#571\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/70ecdb27fedb590ffdb44722c71355d99644148d\"\u003e\u003ccode\u003e70ecdb2\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 6.0.3 to 7.0.0 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/570\"\u003e#570\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/dbcc83a38bab6435e3809594b9de01aa037f2b39\"\u003e\u003ccode\u003edbcc83a\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/568\"\u003e#568\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/022394c34bb61271a813c038cf11b7e886b8123c\"\u003e\u003ccode\u003e022394c\u003c/code\u003e\u003c/a\u003e don't follow symlinks in raise_on_not_writable_file (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/567\"\u003e#567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/py-filelock/compare/3.25.2...3.29.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `humanize` from 4.15.0 to 4.16.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-humanize/humanize/releases\"\u003ehumanize's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.16.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Latvian language localization (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/301\"\u003e#301\u003c/a\u003e) \u003ca href=\"https://github.com/EPoikans\"\u003e\u003ccode\u003e@​EPoikans\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd i18n support for \u003ccode\u003enaturalsize()\u003c/code\u003e and French translation (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/294\"\u003e#294\u003c/a\u003e) \u003ca href=\"https://github.com/Yibomao\"\u003e\u003ccode\u003e@​Yibomao\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePerformance improvements: 1.07x - 8.4x (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/315\"\u003e#315\u003c/a\u003e) \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLazy imports for Python 3.15+ (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/335\"\u003e#335\u003c/a\u003e) \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop experimental Python 3.13 free-threaded (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/336\"\u003e#336\u003c/a\u003e) \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor: simplify \u003ccode\u003escientific()\u003c/code\u003e and extract \u003ccode\u003e_SUPERSCRIPT_MAP\u003c/code\u003e constant (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/313\"\u003e#313\u003c/a\u003e) \u003ca href=\"https://github.com/maayanmatsliah-tech\"\u003e\u003ccode\u003e@​maayanmatsliah-tech\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003enaturalsize()\u003c/code\u003e rounding rollover at unit boundaries (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/329\"\u003e#329\u003c/a\u003e) \u003ca href=\"https://github.com/patchwright\"\u003e\u003ccode\u003e@​patchwright\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCarry \u003ccode\u003emetric()\u003c/code\u003e to the next SI prefix when rounding reaches 1000 (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/328\"\u003e#328\u003c/a\u003e) \u003ca href=\"https://github.com/gaoflow\"\u003e\u003ccode\u003e@​gaoflow\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop printing two minus signs in fractional for a negative mixed number (\u003ca href=\"https://redirect.githu...\n\n_Description has been truncated_","html_url":"https://github.com/de-odex/whoosh-novo/pull/166","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/de-odex%2Fwhoosh-novo/issues/166","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/166/packages"},{"uuid":"4374273194","node_id":"PR_kwDONJ14CM7X44rm","number":72,"state":"open","title":"deps(deps-dev): update nox requirement from \u003e=2023.4.22 to \u003e=2026.4.10","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-04T05:48:37.000Z","updated_at":"2026-05-04T05:48:38.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(deps-dev): update","packages":[{"name":"nox","old_version":"\u003e=2023.4.22","new_version":"\u003e=2026.4.10","repository_url":"https://github.com/wntrblm/nox"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [nox](https://github.com/wntrblm/nox) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/wntrblm/nox/blob/main/CHANGELOG.md\"\u003enox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003e2026.04.10\u003c/h2\u003e\n\u003cp\u003eThis release drops Python 3.8 and adds a \u003ccode\u003e--usage\u003c/code\u003e command for full docstrings.\nOur \u003ccode\u003e.nox\u003c/code\u003e dir is now ignored by default, virtualenvs are recreated if symlinks\nare broken (such as after a Python upgrade), and \u003ccode\u003e-t\u003c/code\u003e now selects from all\navailable sessions.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agriyakhetarpal\"\u003e\u003ccode\u003e@​agriyakhetarpal\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scop\"\u003e\u003ccode\u003e@​scop\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.8 (reapply \u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1004\"\u003e#1004\u003c/a\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/wntrblm/nox/pull/1062\"\u003ewntrblm/nox#1062\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003enox --usage \u0026lt;session\u0026gt;\u003c/code\u003e command to print full docstrings for provided sessions by \u003ca href=\"https://github.com/agriyakhetarpal\"\u003e\u003ccode\u003e@​agriyakhetarpal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1064\"\u003ewntrblm/nox#1064\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrite out \u003ccode\u003e.gitignore\u003c/code\u003e/\u003ccode\u003eCACHEDIR.TAG\u003c/code\u003e to \u003ccode\u003e.nox\u003c/code\u003e dir by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1072\"\u003ewntrblm/nox#1072\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRecreate venv if broken symlinks are present by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1078\"\u003ewntrblm/nox#1078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore default selection for tags and keywords by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1057\"\u003ewntrblm/nox#1057\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMore uv variables set by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1056\"\u003ewntrblm/nox#1056\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore forcecolor falsy by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1073\"\u003ewntrblm/nox#1073\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFully pin actions in composite action by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1080\"\u003ewntrblm/nox#1080\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePin CI to working conda version by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1079\"\u003ewntrblm/nox#1079\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse prek by \u003ca href=\"https://github.com/agriyakhetarpal\"\u003e\u003ccode\u003e@​agriyakhetarpal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1065\"\u003ewntrblm/nox#1065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSwitch artifact attestations to actions/attest by \u003ca href=\"https://github.com/scop\"\u003e\u003ccode\u003e@​scop\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1070\"\u003ewntrblm/nox#1070\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse zizmor by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1082\"\u003ewntrblm/nox#1082\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2026.02.09\u003c/h2\u003e\n\u003cp\u003eThis small release supports uv 0.10's new requirement that \u003ccode\u003e--clear\u003c/code\u003e be passed\nto clear an environment. Python 3.8 support was temporarily re-added since uv\n0.10 still supports 3.8, so nox on 3.8 was affected.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/97e345e6a26bb2c5aacff9cc4327bd4ac1b00ce6\"\u003e\u003ccode\u003e97e345e\u003c/code\u003e\u003c/a\u003e docs: add thanks section (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1083\"\u003e#1083\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/8d5c759d5d3f1f2c80ada8f05cd994c673905898\"\u003e\u003ccode\u003e8d5c759\u003c/code\u003e\u003c/a\u003e chore: prepare for 2026.04.10 (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1081\"\u003e#1081\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/2577f31eb4d6d94f18157c444464fdd1e4a7e3df\"\u003e\u003ccode\u003e2577f31\u003c/code\u003e\u003c/a\u003e ci: add zizmor (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1082\"\u003e#1082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/b6a61563737b2e42790f8ea509fe1ddd76fa464f\"\u003e\u003ccode\u003eb6a6156\u003c/code\u003e\u003c/a\u003e fix: fully pin actions in composite action (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1080\"\u003e#1080\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/4c7a2151c538b739337dbbd759aaf440fa1991ac\"\u003e\u003ccode\u003e4c7a215\u003c/code\u003e\u003c/a\u003e fix: write out .gitignore/CACHEDIR.TAG to our dir (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1072\"\u003e#1072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/47cb9c300e07c3a8ca4d5b240dad1a178a65dcdb\"\u003e\u003ccode\u003e47cb9c3\u003c/code\u003e\u003c/a\u003e fix: ignore default selection for tags and keywords (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1057\"\u003e#1057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/63dcab98ecd4f784537a3c1fa1319bac6cbf2436\"\u003e\u003ccode\u003e63dcab9\u003c/code\u003e\u003c/a\u003e fix: more uv variables set (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1056\"\u003e#1056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/e0f64e6c3cb24e3f870f4df8dd38830e03546dce\"\u003e\u003ccode\u003ee0f64e6\u003c/code\u003e\u003c/a\u003e fix: recreate if broken symlinks are present (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1078\"\u003e#1078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/bf9095287afacc1f5b94e5da54f4dbed4ccce875\"\u003e\u003ccode\u003ebf90952\u003c/code\u003e\u003c/a\u003e tests: pin to working conda version (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1079\"\u003e#1079\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/4ff681f169c4043ce3b3d19cba1eadd66720bf1d\"\u003e\u003ccode\u003e4ff681f\u003c/code\u003e\u003c/a\u003e fix: ignore forcecolor falsy (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1073\"\u003e#1073\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/wntrblm/nox/compare/2023.04.22...2026.04.10\"\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/loonghao/repo-template/pull/72","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/loonghao%2Frepo-template/issues/72","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/72/packages"},{"uuid":"4363404216","node_id":"PR_kwDOPmcY8c7XXoxJ","number":25,"state":"open","title":"Bump the python-dependencies group with 6 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-05-01T07:38:42.000Z","updated_at":"2026-05-01T07:39:43.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-dependencies","update_count":6,"packages":[{"name":"pydantic","old_version":"2.12.5","new_version":"2.13.3","repository_url":"https://github.com/pydantic/pydantic"},{"name":"nox","old_version":"2026.2.9","new_version":"2026.4.10","repository_url":"https://github.com/wntrblm/nox"},{"name":"pre-commit","old_version":"4.5.1","new_version":"4.6.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"ruff","old_version":"0.15.8","new_version":"0.15.12","repository_url":"https://github.com/astral-sh/ruff"},{"name":"mypy","old_version":"1.20.0","new_version":"1.20.2","repository_url":"https://github.com/python/mypy"},{"name":"pytest-randomly","old_version":"4.0.1","new_version":"4.1.0","repository_url":"https://github.com/pytest-dev/pytest-randomly"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-dependencies group with 6 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.5` | `2.13.3` |\n| [nox](https://github.com/wntrblm/nox) | `2026.2.9` | `2026.4.10` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.5.1` | `4.6.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.8` | `0.15.12` |\n| [mypy](https://github.com/python/mypy) | `1.20.0` | `1.20.2` |\n| [pytest-randomly](https://github.com/pytest-dev/pytest-randomly) | `4.0.1` | `4.1.0` |\n\nUpdates `pydantic` from 2.12.5 to 2.13.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.3 2026-04-20\u003c/h2\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.2 2026-04-17\u003c/h2\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.1 2026-04-15\u003c/h2\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.0 2026-04-13\u003c/h2\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e) are also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd zizmor for GitHub Actions workflow linting by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13039\"\u003e#13039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate jiter to v0.14.0 to fix a segmentation fault on musl Linux by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13064\"\u003e#13064\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.2\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e)\nare also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow default factories of private attributes to take validated model data by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13013\"\u003e#13013\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanges\u003c/h4\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/9e9a11132c980c4ec84ff6d2df06d4c1a55ca8f3\"\u003e\u003ccode\u003e9e9a111\u003c/code\u003e\u003c/a\u003e Fix backported test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1ec8c6aa0cae1c78409c6f31af738a24e16c7124\"\u003e\u003ccode\u003e1ec8c6a\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/fb4f2044436e9fa4ff9745479ce263016a99c4d6\"\u003e\u003ccode\u003efb4f204\u003c/code\u003e\u003c/a\u003e Handle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/ca3ddd1149bd3b14273922a29da174804496a055\"\u003e\u003ccode\u003eca3ddd1\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/000e823a3ab7545b0c6064fde34effdcd02044ab\"\u003e\u003ccode\u003e000e823\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/d45d8be3ffb6dfc6d0c64da6980140c91ff841fb\"\u003e\u003ccode\u003ed45d8be\u003c/code\u003e\u003c/a\u003e Prepare release 2.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/54aca609ce58e73dfe1c681d93432fbe3a4621da\"\u003e\u003ccode\u003e54aca60\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/46bf4fa648af3a1fbf4603a37f210e9d9c618357\"\u003e\u003ccode\u003e46bf4fa\u003c/code\u003e\u003c/a\u003e Fix Pydantic release workflow (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13067\"\u003e#13067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1b359edab09c623464d23c6fd2503ae5ff276d43\"\u003e\u003ccode\u003e1b359ed\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13065\"\u003e#13065\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b1bf19445d8ac144a7a0e82674d2d87eebab6c18\"\u003e\u003ccode\u003eb1bf194\u003c/code\u003e\u003c/a\u003e Fix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13062\"\u003e#13062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.5...v2.13.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `nox` from 2026.2.9 to 2026.4.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/wntrblm/nox/releases\"\u003enox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2026.04.10 🧹\u003c/h2\u003e\n\u003cp\u003eThis release drops Python 3.8 and adds a \u003ccode\u003e--usage\u003c/code\u003e command for full docstrings. Our \u003ccode\u003e.nox\u003c/code\u003e dir is now ignored by default, virtualenvs are recreated if symlinks are broken (such as after a Python upgrade), and \u003ccode\u003e-t\u003c/code\u003e now selects from all available sessions.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agriyakhetarpal\"\u003e\u003ccode\u003e@​agriyakhetarpal\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scop\"\u003e\u003ccode\u003e@​scop\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.8 (reapply \u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1004\"\u003e#1004\u003c/a\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/wntrblm/nox/pull/1062\"\u003ewntrblm/nox#1062\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003enox --usage \u0026lt;session\u0026gt;\u003c/code\u003e command to print full docstrings for provided sessions by \u003ca href=\"https://github.com/agriyakhetarpal\"\u003e\u003ccode\u003e@​agriyakhetarpal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1064\"\u003ewntrblm/nox#1064\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrite out \u003ccode\u003e.gitignore\u003c/code\u003e/\u003ccode\u003eCACHEDIR.TAG\u003c/code\u003e to \u003ccode\u003e.nox\u003c/code\u003e dir by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1072\"\u003ewntrblm/nox#1072\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRecreate venv if broken symlinks are present by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1078\"\u003ewntrblm/nox#1078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore default selection for tags and keywords by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1057\"\u003ewntrblm/nox#1057\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMore uv variables set by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1056\"\u003ewntrblm/nox#1056\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore forcecolor falsy by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1073\"\u003ewntrblm/nox#1073\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFully pin actions in composite action by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1080\"\u003ewntrblm/nox#1080\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePin CI to working conda version by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1079\"\u003ewntrblm/nox#1079\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse prek by \u003ca href=\"https://github.com/agriyakhetarpal\"\u003e\u003ccode\u003e@​agriyakhetarpal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1065\"\u003ewntrblm/nox#1065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSwitch artifact attestations to actions/attest by \u003ca href=\"https://github.com/scop\"\u003e\u003ccode\u003e@​scop\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1070\"\u003ewntrblm/nox#1070\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse zizmor by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1082\"\u003ewntrblm/nox#1082\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/wntrblm/nox/compare/2026.02.09...2026.04.10\"\u003ehttps://github.com/wntrblm/nox/compare/2026.02.09...2026.04.10\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/wntrblm/nox/blob/main/CHANGELOG.md\"\u003enox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003e2026.04.10\u003c/h2\u003e\n\u003cp\u003eThis release drops Python 3.8 and adds a \u003ccode\u003e--usage\u003c/code\u003e command for full docstrings.\nOur \u003ccode\u003e.nox\u003c/code\u003e dir is now ignored by default, virtualenvs are recreated if symlinks\nare broken (such as after a Python upgrade), and \u003ccode\u003e-t\u003c/code\u003e now selects from all\navailable sessions.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agriyakhetarpal\"\u003e\u003ccode\u003e@​agriyakhetarpal\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scop\"\u003e\u003ccode\u003e@​scop\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.8 (reapply \u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1004\"\u003e#1004\u003c/a\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/wntrblm/nox/pull/1062\"\u003ewntrblm/nox#1062\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003enox --usage \u0026lt;session\u0026gt;\u003c/code\u003e command to print full docstrings for provided sessions by \u003ca href=\"https://github.com/agriyakhetarpal\"\u003e\u003ccode\u003e@​agriyakhetarpal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1064\"\u003ewntrblm/nox#1064\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrite out \u003ccode\u003e.gitignore\u003c/code\u003e/\u003ccode\u003eCACHEDIR.TAG\u003c/code\u003e to \u003ccode\u003e.nox\u003c/code\u003e dir by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1072\"\u003ewntrblm/nox#1072\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRecreate venv if broken symlinks are present by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1078\"\u003ewntrblm/nox#1078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore default selection for tags and keywords by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1057\"\u003ewntrblm/nox#1057\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMore uv variables set by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1056\"\u003ewntrblm/nox#1056\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore forcecolor falsy by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1073\"\u003ewntrblm/nox#1073\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFully pin actions in composite action by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1080\"\u003ewntrblm/nox#1080\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePin CI to working conda version by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1079\"\u003ewntrblm/nox#1079\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse prek by \u003ca href=\"https://github.com/agriyakhetarpal\"\u003e\u003ccode\u003e@​agriyakhetarpal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1065\"\u003ewntrblm/nox#1065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSwitch artifact attestations to actions/attest by \u003ca href=\"https://github.com/scop\"\u003e\u003ccode\u003e@​scop\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1070\"\u003ewntrblm/nox#1070\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse zizmor by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1082\"\u003ewntrblm/nox#1082\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2026.02.09\u003c/h2\u003e\n\u003cp\u003eThis small release supports uv 0.10's new requirement that \u003ccode\u003e--clear\u003c/code\u003e be passed\nto clear an environment. Python 3.8 support was temporarily re-added since uv\n0.10 still supports 3.8, so nox on 3.8 was affected.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/97e345e6a26bb2c5aacff9cc4327bd4ac1b00ce6\"\u003e\u003ccode\u003e97e345e\u003c/code\u003e\u003c/a\u003e docs: add thanks section (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1083\"\u003e#1083\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/8d5c759d5d3f1f2c80ada8f05cd994c673905898\"\u003e\u003ccode\u003e8d5c759\u003c/code\u003e\u003c/a\u003e chore: prepare for 2026.04.10 (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1081\"\u003e#1081\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/2577f31eb4d6d94f18157c444464fdd1e4a7e3df\"\u003e\u003ccode\u003e2577f31\u003c/code\u003e\u003c/a\u003e ci: add zizmor (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1082\"\u003e#1082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/b6a61563737b2e42790f8ea509fe1ddd76fa464f\"\u003e\u003ccode\u003eb6a6156\u003c/code\u003e\u003c/a\u003e fix: fully pin actions in composite action (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1080\"\u003e#1080\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/4c7a2151c538b739337dbbd759aaf440fa1991ac\"\u003e\u003ccode\u003e4c7a215\u003c/code\u003e\u003c/a\u003e fix: write out .gitignore/CACHEDIR.TAG to our dir (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1072\"\u003e#1072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/47cb9c300e07c3a8ca4d5b240dad1a178a65dcdb\"\u003e\u003ccode\u003e47cb9c3\u003c/code\u003e\u003c/a\u003e fix: ignore default selection for tags and keywords (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1057\"\u003e#1057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/63dcab98ecd4f784537a3c1fa1319bac6cbf2436\"\u003e\u003ccode\u003e63dcab9\u003c/code\u003e\u003c/a\u003e fix: more uv variables set (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1056\"\u003e#1056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/e0f64e6c3cb24e3f870f4df8dd38830e03546dce\"\u003e\u003ccode\u003ee0f64e6\u003c/code\u003e\u003c/a\u003e fix: recreate if broken symlinks are present (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1078\"\u003e#1078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/bf9095287afacc1f5b94e5da54f4dbed4ccce875\"\u003e\u003ccode\u003ebf90952\u003c/code\u003e\u003c/a\u003e tests: pin to working conda version (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1079\"\u003e#1079\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/4ff681f169c4043ce3b3d19cba1eadd66720bf1d\"\u003e\u003ccode\u003e4ff681f\u003c/code\u003e\u003c/a\u003e fix: ignore forcecolor falsy (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1073\"\u003e#1073\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/wntrblm/nox/compare/2026.02.09...2026.04.10\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit` from 4.5.1 to 4.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.6.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epre-commit hook-impl\u003c/code\u003e: allow \u003ccode\u003e--hook-dir\u003c/code\u003e to be missing to enable easier usage with \u003ccode\u003egit\u003c/code\u003e 2.54+ git hooks.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3662\"\u003e#3662\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epre-commit hook-impl\u003c/code\u003e: \u003ccode\u003e--hook-type\u003c/code\u003e is required.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3661\"\u003e#3661\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.6.0 - 2026-04-21\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epre-commit hook-impl\u003c/code\u003e: allow \u003ccode\u003e--hook-dir\u003c/code\u003e to be missing to enable easier\nusage with \u003ccode\u003egit\u003c/code\u003e 2.54+ git hooks.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3662\"\u003e#3662\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epre-commit hook-impl\u003c/code\u003e: \u003ccode\u003e--hook-type\u003c/code\u003e is required.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3661\"\u003e#3661\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/f35134b05028ec938ac605ae500fdf95462655d3\"\u003e\u003ccode\u003ef35134b\u003c/code\u003e\u003c/a\u003e v4.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2a51ffcb81f6c8ed2e6467913c3343a8800f3ab9\"\u003e\u003ccode\u003e2a51ffc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3662\"\u003e#3662\u003c/a\u003e from pre-commit/hook-impl-optional-hook-dir\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/d7dee322abfc765b042f2e3b872aab3c3a867610\"\u003e\u003ccode\u003ed7dee32\u003c/code\u003e\u003c/a\u003e make --hook-dir optional for hook-impl\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/965aeb1c680e8b526342153547f0ec014484c63d\"\u003e\u003ccode\u003e965aeb1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3661\"\u003e#3661\u003c/a\u003e from pre-commit/hook-impl-required\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2eacc064aa9b5bb33d3a0d84a234b475e34f3096\"\u003e\u003ccode\u003e2eacc06\u003c/code\u003e\u003c/a\u003e --hook-type is required for hook-impl\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/f5678bf4ac35cffc0ff7174ad85f7fdc2a5c977e\"\u003e\u003ccode\u003ef5678bf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3657\"\u003e#3657\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/054cc5bd6bb1b20faa1eefe09f0de3b68fceee94\"\u003e\u003ccode\u003e054cc5b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/5c0f3024d2524f6e029a4c333392fd9be9fb27f6\"\u003e\u003ccode\u003e5c0f302\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3652\"\u003e#3652\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/a5d91142676630f8130020b35e166e0c0e92b8f4\"\u003e\u003ccode\u003ea5d9114\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/129a1f5ca1eaee0c952a5e7a07faae305c5e15bc\"\u003e\u003ccode\u003e129a1f5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3641\"\u003e#3641\u003c/a\u003e from pre-commit/mxr-patch-1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.5.1...v4.6.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.8 to 0.15.12\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.12\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-24.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplement \u003ccode\u003e#ruff:file-ignore\u003c/code\u003e file-level suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23599\"\u003e#23599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement \u003ccode\u003e#ruff:ignore\u003c/code\u003e logical-line suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23404\"\u003e#23404\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevert preview changes to displayed diagnostic severity in LSP (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24789\"\u003e#24789\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003etask-branch-as-short-circuit\u003c/code\u003e (\u003ccode\u003eAIR004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23579\"\u003e#23579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Fix \u003ccode\u003ebreak\u003c/code\u003e/\u003ccode\u003econtinue\u003c/code\u003e handling in \u003ccode\u003eloop-iterator-mutation\u003c/code\u003e (\u003ccode\u003eB909\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24440\"\u003e#24440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLC2701\u003c/code\u003e for type parameter scopes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24576\"\u003e#24576\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epandas-vet\u003c/code\u003e] Suggest \u003ccode\u003e.array\u003c/code\u003e as well in \u003ccode\u003ePD011\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24805\"\u003e#24805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRespect default Unix permissions for cache files (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24794\"\u003e#24794\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLR0124\u003c/code\u003e description not to claim self-comparison always returns the same value (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24749\"\u003e#24749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Expand docs on reusable \u003ccode\u003eTypeVar\u003c/code\u003es and scoping (\u003ccode\u003eUP046\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24153\"\u003e#24153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove rules table accessibility (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24711\"\u003e#24711\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/woodruffw\"\u003e\u003ccode\u003e@​woodruffw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/avasis-ai\"\u003e\u003ccode\u003e@​avasis-ai\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Dev-iL\"\u003e\u003ccode\u003e@​Dev-iL\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/ShipItAndPray\"\u003e\u003ccode\u003e@​ShipItAndPray\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/augustelalande\"\u003e\u003ccode\u003e@​augustelalande\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/majiayu000\"\u003e\u003ccode\u003e@​majiayu000\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.15.12\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.12/ruff-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.12\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-24.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplement \u003ccode\u003e#ruff:file-ignore\u003c/code\u003e file-level suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23599\"\u003e#23599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement \u003ccode\u003e#ruff:ignore\u003c/code\u003e logical-line suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23404\"\u003e#23404\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevert preview changes to displayed diagnostic severity in LSP (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24789\"\u003e#24789\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003etask-branch-as-short-circuit\u003c/code\u003e (\u003ccode\u003eAIR004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23579\"\u003e#23579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Fix \u003ccode\u003ebreak\u003c/code\u003e/\u003ccode\u003econtinue\u003c/code\u003e handling in \u003ccode\u003eloop-iterator-mutation\u003c/code\u003e (\u003ccode\u003eB909\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24440\"\u003e#24440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLC2701\u003c/code\u003e for type parameter scopes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24576\"\u003e#24576\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epandas-vet\u003c/code\u003e] Suggest \u003ccode\u003e.array\u003c/code\u003e as well in \u003ccode\u003ePD011\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24805\"\u003e#24805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRespect default Unix permissions for cache files (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24794\"\u003e#24794\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLR0124\u003c/code\u003e description not to claim self-comparison always returns the same value (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24749\"\u003e#24749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Expand docs on reusable \u003ccode\u003eTypeVar\u003c/code\u003es and scoping (\u003ccode\u003eUP046\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24153\"\u003e#24153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove rules table accessibility (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24711\"\u003e#24711\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/woodruffw\"\u003e\u003ccode\u003e@​woodruffw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/avasis-ai\"\u003e\u003ccode\u003e@​avasis-ai\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Dev-iL\"\u003e\u003ccode\u003e@​Dev-iL\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/ShipItAndPray\"\u003e\u003ccode\u003e@​ShipItAndPray\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/augustelalande\"\u003e\u003ccode\u003e@​augustelalande\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/majiayu000\"\u003e\u003ccode\u003e@​majiayu000\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.15.11\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-16.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Ignore \u003ccode\u003eRUF029\u003c/code\u003e when function is decorated with \u003ccode\u003easynccontextmanager\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24642\"\u003e#24642\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003eairflow-xcom-pull-in-template-string\u003c/code\u003e (\u003ccode\u003eAIR201\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23583\"\u003e#23583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix \u003ccode\u003eS103\u003c/code\u003e false positives and negatives in mask analysis (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24424\"\u003e#24424\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/66f93cf7ed4d36325f35a452e4afa28268fbcd28\"\u003e\u003ccode\u003e66f93cf\u003c/code\u003e\u003c/a\u003e Bump 0.15.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24815\"\u003e#24815\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/476a4d02e8e3b6c157ac39979d8b698a1b6baa91\"\u003e\u003ccode\u003e476a4d0\u003c/code\u003e\u003c/a\u003e [ty] Complete support for more detailed diagnostics on possibly unbound error...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/ed669eab30095d6c51fe6cdef6050fb01276bcb3\"\u003e\u003ccode\u003eed669ea\u003c/code\u003e\u003c/a\u003e Implement \u003ccode\u003e#ruff:file-ignore\u003c/code\u003e file-level suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23599\"\u003e#23599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e73d952e43feb51356ee740c5a973fce81396ff6\"\u003e\u003ccode\u003ee73d952\u003c/code\u003e\u003c/a\u003e [ty] Include inferred type in \u003ccode\u003einvalid-key\u003c/code\u003e concise diagnostic for union/inte...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/80feb29b31cd98c093316df2e0407b0c70c01b55\"\u003e\u003ccode\u003e80feb29\u003c/code\u003e\u003c/a\u003e [ty] report only dead annotation-only locals as unused (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24811\"\u003e#24811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/0fbf2bc27336a3d17d39af52cf89b78dcda8c7c8\"\u003e\u003ccode\u003e0fbf2bc\u003c/code\u003e\u003c/a\u003e Drop deprecated license classifier (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24808\"\u003e#24808\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/43b174cc7f2fcb0080bb1d4843cd4bf6b72bbe27\"\u003e\u003ccode\u003e43b174c\u003c/code\u003e\u003c/a\u003e [ty] Infer lambda parameter types with \u003ccode\u003eCallable\u003c/code\u003e type context (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24317\"\u003e#24317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/4f449ae4a2377569330a5ab94799d389357b5a3f\"\u003e\u003ccode\u003e4f449ae\u003c/code\u003e\u003c/a\u003e [ty] Add error context for intersection types (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24772\"\u003e#24772\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/5b4e753acb46e96ad408e4904c15308e33efe307\"\u003e\u003ccode\u003e5b4e753\u003c/code\u003e\u003c/a\u003e [ty] Add support for goto in literal enum member inlay hint (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24792\"\u003e#24792\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e7cc76275a758ce1c636ea1c2d091fd576aac794\"\u003e\u003ccode\u003ee7cc762\u003c/code\u003e\u003c/a\u003e [ty] Add error context for TypedDict assignments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24790\"\u003e#24790\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.15.8...0.15.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.20.0 to 1.20.2\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.20.2\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse WAL with SQLite cache and fix close (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21154\"\u003e21154\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdjust SQLite journal mode (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21217\"\u003e21217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCorrectly aggregate narrowing information on parent expressions (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21206\"\u003e21206\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix regression related to generic callables (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21208\"\u003e21208\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix regression by avoiding widening types in some contexts (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21242\"\u003e21242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix slicing in non-strict optional mode (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21282\"\u003e21282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emypyc: Fix match statement semantics for \u0026quot;or\u0026quot; pattern (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21156\"\u003e21156\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emypyc: Fix issue with module dunder attributes (Piotr Sawicki, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21275\"\u003e21275\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInitial support for Python 3.15.0a8 (Marc Mueller, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21255\"\u003e21255\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\u003eAaron Wieczorek\u003c/li\u003e\n\u003cli\u003eAdam Turner\u003c/li\u003e\n\u003cli\u003eAli Hamdan\u003c/li\u003e\n\u003cli\u003easce\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003eBrent Westbrook\u003c/li\u003e\n\u003cli\u003eBrian Schubert\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChris Burroughs\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eColin Watson\u003c/li\u003e\n\u003cli\u003eDonghoon Nam\u003c/li\u003e\n\u003cli\u003eE. M. Bray\u003c/li\u003e\n\u003cli\u003eEmma Smith\u003c/li\u003e\n\u003cli\u003eEthan Sarp\u003c/li\u003e\n\u003cli\u003eGeorge Ogden\u003c/li\u003e\n\u003cli\u003egetzze\u003c/li\u003e\n\u003cli\u003egrayjk\u003c/li\u003e\n\u003cli\u003eGregor Riepl\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilliard\u003c/li\u003e\n\u003cli\u003eJames Le Cuirot\u003c/li\u003e\n\u003cli\u003eJeremy Nimmer\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eKai (Kazuya Ito)\u003c/li\u003e\n\u003cli\u003ekaushal trivedi\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eLukas Geiger\u003c/li\u003e\n\u003cli\u003eŁukasz Langa\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael R. Crusoe\u003c/li\u003e\n\u003cli\u003emichaelm-openai\u003c/li\u003e\n\u003cli\u003eNeil Schemenauer\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/145a062651b5f9996b75ef32b7040bd2e885ed82\"\u003e\u003ccode\u003e145a062\u003c/code\u003e\u003c/a\u003e Bump version to 1.20.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/81cd49215c288eacb987de066f02daff2553b7c7\"\u003e\u003ccode\u003e81cd492\u003c/code\u003e\u003c/a\u003e Fix slicing with nonstrict optional (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21282\"\u003e#21282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/908d3441eecbaa2a6193165317177db834d7ca1a\"\u003e\u003ccode\u003e908d344\u003c/code\u003e\u003c/a\u003e [mypyc] Set dunder attrs when adding module to sys.modules (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21275\"\u003e#21275\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/ba28610fac9d2b33be210ca8dcfe4bc47b7af424\"\u003e\u003ccode\u003eba28610\u003c/code\u003e\u003c/a\u003e Initial support for Python 3.15.0a8 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21255\"\u003e#21255\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/7b0e09f48dbd3717ed008a273cd17e8e960c2037\"\u003e\u003ccode\u003e7b0e09f\u003c/code\u003e\u003c/a\u003e Fix match statement semantics for \u0026quot;or\u0026quot; pattern (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21156\"\u003e#21156\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/92b74f226de62f7505f5ef5cb158e8ec9c58b8b7\"\u003e\u003ccode\u003e92b74f2\u003c/code\u003e\u003c/a\u003e Avoid widening types in conditional_types (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21242\"\u003e#21242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/0dcbfaa40b0e360a16baea9cf851955375d91b54\"\u003e\u003ccode\u003e0dcbfaa\u003c/code\u003e\u003c/a\u003e Fix is_overlapping_types for generic callables (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21208\"\u003e#21208\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/210f518dede35292033ef0d387847406a0ccef8f\"\u003e\u003ccode\u003e210f518\u003c/code\u003e\u003c/a\u003e Correctly aggregate narrowing information on parent expressions (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21206\"\u003e#21206\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c34530e53a10e385d8b0f1af4baa88a596b5ceaa\"\u003e\u003ccode\u003ec34530e\u003c/code\u003e\u003c/a\u003e Only set journal mode in coordinator (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21217\"\u003e#21217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/79a3ec6d01b56a27c00e9b3320c2b1d4d73a77f9\"\u003e\u003ccode\u003e79a3ec6\u003c/code\u003e\u003c/a\u003e Use WAL with SQLite cache, fix close (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21154\"\u003e#21154\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.20.0...v1.20.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-randomly` from 4.0.1 to 4.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-randomly/blob/main/CHANGELOG.rst\"\u003epytest-randomly's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.1.0 (2026-04-20)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix a crash with Faker installed when explicitly enabling and disabling the plugin (via \u003ccode\u003e-p randomly -p no:randomly\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003eThanks to mojosan77 for the report in \u003ccode\u003eIssue [#718](https://github.com/pytest-dev/pytest-randomly/issues/718) \u0026lt;https://github.com/pytest-dev/pytest-randomly/issues/718\u0026gt;\u003c/code\u003e__.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrop Python 3.9 support.\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-randomly/commit/c412c8d6d328224a6a0cb9e4324438c62b46f4f5\"\u003e\u003ccode\u003ec412c8d\u003c/code\u003e\u003c/a\u003e Version 4.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-randomly/commit/657d9c356d1970bbe664b36446d4f8a9461e4988\"\u003e\u003ccode\u003e657d9c3\u003c/code\u003e\u003c/a\u003e Upgrade dependencies (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-randomly/issues/722\"\u003e#722\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-randomly/commit/49c8c1bb487d03ca1bda2ac7567e4205bf82aae6\"\u003e\u003ccode\u003e49c8c1b\u003c/code\u003e\u003c/a\u003e Fix a crash with Faker installed and plugin disabled (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-randomly/issues/721\"\u003e#721\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-randomly/commit/c9181c28607e990123ee480200ae2e684f58e7b6\"\u003e\u003ccode\u003ec9181c2\u003c/code\u003e\u003c/a\u003e Bump django from 5.2.12 to 5.2.13 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-randomly/issues/717\"\u003e#717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-randomly/commit/1292cc060c8892d3cccc2bd67c44b3405a6693d4\"\u003e\u003ccode\u003e1292cc0\u003c/code\u003e\u003c/a\u003e Upgrade pre-commit to Python 3.14 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-randomly/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-randomly/commit/56d13889650fa7f71df504c8ab810967fd3fb44e\"\u003e\u003ccode\u003e56d1388\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-randomly/issues/715\"\u003e#715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-randomly/commit/43702c107ada21dca7e59836a8547ed1e62e77aa\"\u003e\u003ccode\u003e43702c1\u003c/code\u003e\u003c/a\u003e Upgrade dependencies (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-randomly/issues/714\"\u003e#714\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-randomly/commit/c3dc97c20e2931b7557ab529703a6bf754df9110\"\u003e\u003ccode\u003ec3dc97c\u003c/code\u003e\u003c/a\u003e Bump pygments from 2.19.2 to 2.20.0 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-randomly/issues/713\"\u003e#713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-randomly/commit/a2dee8a6b620f0ceaf385acfb1d0b778b0fd2892\"\u003e\u003ccode\u003ea2dee8a\u003c/code\u003e\u003c/a\u003e Improve Coverage.py configuration (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-randomly/issues/712\"\u003e#712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-randomly/commit/fed476639744207a10bc1742d7420fc413b555bf\"\u003e\u003ccode\u003efed4766\u003c/code\u003e\u003c/a\u003e Upgrade dependencies (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-randomly/issues/711\"\u003e#711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-randomly/compare/4.0.1...4.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot 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/impressdesigns/brightsites-sdk/pull/25","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/impressdesigns%2Fbrightsites-sdk/issues/25","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/25/packages"},{"uuid":"4362059023","node_id":"PR_kwDOBc_aAM7XTY_O","number":711,"state":"closed","title":"Bump the dependencies group across 1 directory with 25 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-06-01T00:13:41.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-01T00:15:08.000Z","updated_at":"2026-06-01T00:13:43.000Z","time_to_close":2678313,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"dependencies","update_count":25,"packages":[{"name":"idna","old_version":"3.11","new_version":"3.13","repository_url":"https://github.com/kjd/idna"},{"name":"certifi","old_version":"2026.2.25","new_version":"2026.4.22","repository_url":"https://github.com/certifi/python-certifi"},{"name":"charset-normalizer","old_version":"3.4.4","new_version":"3.4.7","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"imagesize","old_version":"1.4.1","new_version":"2.0.0","repository_url":"https://github.com/shibukawa/imagesize_py"},{"name":"packaging","old_version":"26.0","new_version":"26.2","repository_url":"https://github.com/pypa/packaging"},{"name":"pygments","old_version":"2.19.2","new_version":"2.20.0","repository_url":"https://github.com/pygments/pygments"},{"name":"requests","old_version":"2.32.5","new_version":"2.33.1","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":"attrs","old_version":"25.4.0","new_version":"26.1.0","repository_url":"https://github.com/python-attrs/attrs"},{"name":"black","old_version":"26.1.0","new_version":"26.3.1","repository_url":"https://github.com/psf/black"},{"name":"click","old_version":"8.3.1","new_version":"8.3.3","repository_url":"https://github.com/pallets/click"},{"name":"filelock","old_version":"3.24.3","new_version":"3.29.0","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"librt","old_version":"0.8.1","new_version":"0.9.0","repository_url":"https://github.com/mypyc/librt"},{"name":"mypy","old_version":"1.19.1","new_version":"1.20.2","repository_url":"https://github.com/python/mypy"},{"name":"nox","old_version":"2026.2.9","new_version":"2026.4.10","repository_url":"https://github.com/wntrblm/nox"},{"name":"pathspec","old_version":"1.0.4","new_version":"1.1.1","repository_url":"https://github.com/cpburnz/python-pathspec"},{"name":"platformdirs","old_version":"4.9.2","new_version":"4.9.6","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pytest","old_version":"9.0.2","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"python-discovery","old_version":"1.1.0","new_version":"1.2.2","repository_url":"https://github.com/tox-dev/python-discovery"},{"name":"types-cffi","old_version":"1.17.0.20250915","new_version":"2.0.0.20260429","repository_url":"https://github.com/python/typeshed"},{"name":"types-setuptools","old_version":"82.0.0.20260210","new_version":"82.0.0.20260408","repository_url":"https://github.com/python/typeshed"},{"name":"virtualenv","old_version":"21.1.0","new_version":"21.3.0","repository_url":"https://github.com/pypa/virtualenv"},{"name":"coverage","old_version":"7.13.4","new_version":"7.13.5","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"pyasn1","old_version":"0.6.2","new_version":"0.6.3","repository_url":"https://github.com/pyasn1/pyasn1"},{"name":"pyopenssl","old_version":"25.3.0","new_version":"26.1.0","repository_url":"https://github.com/pyca/pyopenssl"}],"path":null,"ecosystem":"pip"},"body":"Bumps the dependencies group with 25 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [idna](https://github.com/kjd/idna) | `3.11` | `3.13` |\n| [certifi](https://github.com/certifi/python-certifi) | `2026.2.25` | `2026.4.22` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.4` | `3.4.7` |\n| [imagesize](https://github.com/shibukawa/imagesize_py) | `1.4.1` | `2.0.0` |\n| [packaging](https://github.com/pypa/packaging) | `26.0` | `26.2` |\n| [pygments](https://github.com/pygments/pygments) | `2.19.2` | `2.20.0` |\n| [requests](https://github.com/psf/requests) | `2.32.5` | `2.33.1` |\n| [tomli](https://github.com/hukkin/tomli) | `2.4.0` | `2.4.1` |\n| [attrs](https://github.com/python-attrs/attrs) | `25.4.0` | `26.1.0` |\n| [black](https://github.com/psf/black) | `26.1.0` | `26.3.1` |\n| [click](https://github.com/pallets/click) | `8.3.1` | `8.3.3` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.24.3` | `3.29.0` |\n| [librt](https://github.com/mypyc/librt) | `0.8.1` | `0.9.0` |\n| [mypy](https://github.com/python/mypy) | `1.19.1` | `1.20.2` |\n| [nox](https://github.com/wntrblm/nox) | `2026.2.9` | `2026.4.10` |\n| [pathspec](https://github.com/cpburnz/python-pathspec) | `1.0.4` | `1.1.1` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.9.2` | `4.9.6` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.2` | `9.0.3` |\n| [python-discovery](https://github.com/tox-dev/python-discovery) | `1.1.0` | `1.2.2` |\n| [types-cffi](https://github.com/python/typeshed) | `1.17.0.20250915` | `2.0.0.20260429` |\n| [types-setuptools](https://github.com/python/typeshed) | `82.0.0.20260210` | `82.0.0.20260408` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `21.1.0` | `21.3.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.13.4` | `7.13.5` |\n| [pyasn1](https://github.com/pyasn1/pyasn1) | `0.6.2` | `0.6.3` |\n| [pyopenssl](https://github.com/pyca/pyopenssl) | `25.3.0` | `26.1.0` |\n\n\nUpdates `idna` from 3.11 to 3.13\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.13 (2026-04-22)\n+++++++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCorrect classification error for codepoint U+A7F1\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e3.12 (2026-04-21)\n+++++++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate to Unicode 17.0.0.\u003c/li\u003e\n\u003cli\u003eIssue a deprecation warning for the transitional argument.\u003c/li\u003e\n\u003cli\u003eAdded lazy-loading to provide some performance improvements.\u003c/li\u003e\n\u003cli\u003eRemoved vestiges of code related to Python 2 support, including\nsegmentation of data structures specific to Jython.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to Rodrigo Nogueira for contributions to this release.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/89cdfd27338896cee6b1ee18e64c96ac28684ce0\"\u003e\u003ccode\u003e89cdfd2\u003c/code\u003e\u003c/a\u003e Release v3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/1eb068687543118147417a8d8a70674e2c172891\"\u003e\u003ccode\u003e1eb0686\u003c/code\u003e\u003c/a\u003e Pre-release 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/5f20d1e41eea3b3873d18d83d7a384784f72a92e\"\u003e\u003ccode\u003e5f20d1e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kjd/idna/issues/220\"\u003e#220\u003c/a\u003e from kjd/unicode-next\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/4ea84252ab21e62a79e5a3273746112b5dcfb810\"\u003e\u003ccode\u003e4ea8425\u003c/code\u003e\u003c/a\u003e Regenerate idnadata.py with correct NFKC_CF data\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/fd47341a08bbdcffda33694211ca4de10170cd41\"\u003e\u003ccode\u003efd47341\u003c/code\u003e\u003c/a\u003e Use NFKC_CF from Unicode data files instead of Python's unicodedata module\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/a5304a4cdbd7b31595f8ac42ffdfa88f5b936467\"\u003e\u003ccode\u003ea5304a4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kjd/idna/issues/219\"\u003e#219\u003c/a\u003e from kjd/release-3.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/d80d6f9254d699961fa2c669a1534cde9d4ee5b6\"\u003e\u003ccode\u003ed80d6f9\u003c/code\u003e\u003c/a\u003e Release v3.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/1bb44ddb3f2a9dcf97a6ac11aba34e5b6ed31291\"\u003e\u003ccode\u003e1bb44dd\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kjd/idna/issues/218\"\u003e#218\u003c/a\u003e from kjd/release-candidate-3.12rc0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/909c49d15b8d159be163bccc7972116baffdb47b\"\u003e\u003ccode\u003e909c49d\u003c/code\u003e\u003c/a\u003e Release candidate for 3.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/c5459a10370f005dc09921aee3201b5a45699f9d\"\u003e\u003ccode\u003ec5459a1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kjd/idna/issues/217\"\u003e#217\u003c/a\u003e from kjd/housekeeping-2\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kjd/idna/compare/v3.11...v3.13\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2026.2.25 to 2026.4.22\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/5dddfb072243da27adde885b73ba9b809c3224ca\"\u003e\u003ccode\u003e5dddfb0\u003c/code\u003e\u003c/a\u003e 2026.04.22 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/410\"\u003e#410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/f99eccdaf87f7c10e521a58a700ca3eb94a0787e\"\u003e\u003ccode\u003ef99eccd\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 8.1.0 to 8.1.1 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/404\"\u003e#404\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/918bed055f7291719512af186c1c24710f845660\"\u003e\u003ccode\u003e918bed0\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 7.0.0 to 7.0.1 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/405\"\u003e#405\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/0a49067eb434e53e1f8df5f7707d5dc05ef9def4\"\u003e\u003ccode\u003e0a49067\u003c/code\u003e\u003c/a\u003e Bump pypa/gh-action-pypi-publish from 1.13.0 to 1.14.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/403\"\u003e#403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/acf6ce8e39e3b125f4349e11904295e4fe4c1bed\"\u003e\u003ccode\u003eacf6ce8\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 8.0.0 to 8.0.1 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/398\"\u003e#398\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/feb0ed26163a9417ea0fb8eb52d47e79fcf202ab\"\u003e\u003ccode\u003efeb0ed2\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 7.0.0 to 8.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/397\"\u003e#397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/d9c11a50369cc377abb40f7909ded3d6da4d98a3\"\u003e\u003ccode\u003ed9c11a5\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 6.0.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/396\"\u003e#396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2026.02.25...2026.04.22\"\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.7\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.7\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.6...3.4.7\"\u003e3.4.7\u003c/a\u003e (2026-04-02)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePre-built optimized version using mypy[c] v1.20.\u003c/li\u003e\n\u003cli\u003eRelax \u003ccode\u003esetuptools\u003c/code\u003e constraint to \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;82.1\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCorrectly remove SIG remnant in utf-7 decoded string. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/718\"\u003e#718\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\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.6...3.4.7\"\u003e3.4.7\u003c/a\u003e (2026-04-02)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePre-built optimized version using mypy[c] v1.20.\u003c/li\u003e\n\u003cli\u003eRelax \u003ccode\u003esetuptools\u003c/code\u003e constraint to \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;82.1\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCorrectly remove SIG remnant in utf-7 decoded string. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/718\"\u003e#718\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\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\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\u003c/blockquote\u003e\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/0f07891bf516b5d5231f1bd4dd2d8da7d4d09a9a\"\u003e\u003ccode\u003e0f07891\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/729\"\u003e#729\u003c/a\u003e from jawah/release-3.4.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/fdbeb299479e8f4d737e4d227cd0b2bd5d273dc0\"\u003e\u003ccode\u003efdbeb29\u003c/code\u003e\u003c/a\u003e chore: update dev, and ci requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/b66f922bfbdbdd9dd46af18a8964d4fb888756d4\"\u003e\u003ccode\u003eb66f922\u003c/code\u003e\u003c/a\u003e chore: add ft classifier\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f94249d0a2c712f2d03124f4de6b77f5e03aaa96\"\u003e\u003ccode\u003ef94249d\u003c/code\u003e\u003c/a\u003e chore: add test cases for utf_7 recent fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/95c866f6c984bbd043e7e3ed0628aa4f3f8d5a26\"\u003e\u003ccode\u003e95c866f\u003c/code\u003e\u003c/a\u003e chore: bump version to 3.4.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/4f429bb764c7e893f99bb4bceb60856da1baacfb\"\u003e\u003ccode\u003e4f429bb\u003c/code\u003e\u003c/a\u003e chore: bump mypy pre-commit to v1.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/b579cd6cab9bd83aa3fc0ca169d4df022bf4888c\"\u003e\u003ccode\u003eb579cd6\u003c/code\u003e\u003c/a\u003e fix: correctly remove SIG remnant in utf-7 decoded string\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/58bf944a77cc0883fc46a6ee8edac3549fea5d59\"\u003e\u003ccode\u003e58bf944\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump github/codeql-action from 4.32.4 to 4.35.1 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/728\"\u003e#728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/44cf8a1b676a2532a8f1694e62e4f4f98f9132e1\"\u003e\u003ccode\u003e44cf8a1\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump actions/download-artifact from 8.0.0 to 8.0.1 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/726\"\u003e#726\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/362bc20073f737b1ba4ca2f68cffb0c4cc024d20\"\u003e\u003ccode\u003e362bc20\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump docker/setup-qemu-action from 3.7.0 to 4.0.0 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/725\"\u003e#725\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.4...3.4.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `imagesize` from 1.4.1 to 2.0.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shibukawa/imagesize_py/commit/5ab28d47b96d6a0738ec036034919a739b4d64da\"\u003e\u003ccode\u003e5ab28d4\u003c/code\u003e\u003c/a\u003e bump module version to 2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shibukawa/imagesize_py/commit/63d6afb8e24b9f9d599f7a15fa50ebc7964ad7c7\"\u003e\u003ccode\u003e63d6afb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/shibukawa/imagesize_py/issues/82\"\u003e#82\u003c/a\u003e from shibukawa/codex/update-readme-and-setup-instructi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shibukawa/imagesize_py/commit/294606629eaf3950290de90a4b1ab9aaed7c89c3\"\u003e\u003ccode\u003e2946066\u003c/code\u003e\u003c/a\u003e docs: clarify EXIF orientation formats in v2.0 notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shibukawa/imagesize_py/commit/53eff2e3ab713b81883003bbd4eca586cc592431\"\u003e\u003ccode\u003e53eff2e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/shibukawa/imagesize_py/issues/81\"\u003e#81\u003c/a\u003e from shibukawa/codex/refactor-code-to-reduce-duplication\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shibukawa/imagesize_py/commit/ac14f2af0208f9d57780d86ff619a32f80b90109\"\u003e\u003ccode\u003eac14f2a\u003c/code\u003e\u003c/a\u003e Refactor duplicated JPEG segment parsing logic\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shibukawa/imagesize_py/commit/48ab954c707642d06081c8b5eae53b61b410715a\"\u003e\u003ccode\u003e48ab954\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/shibukawa/imagesize_py/issues/80\"\u003e#80\u003c/a\u003e from shibukawa/codex/add-avif-exif-rotation-support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shibukawa/imagesize_py/commit/5cada1084cc21621541216810ecaf4514ca0e60b\"\u003e\u003ccode\u003e5cada10\u003c/code\u003e\u003c/a\u003e Add AVIF EXIF rotation support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shibukawa/imagesize_py/commit/232c6d5204e38d5a288114c098304cc2f8358f69\"\u003e\u003ccode\u003e232c6d5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/shibukawa/imagesize_py/issues/79\"\u003e#79\u003c/a\u003e from shibukawa/codex/add-heic/heif-support-and-rotation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shibukawa/imagesize_py/commit/324c970eb6c8d5326a6e3e16216ed2d498358219\"\u003e\u003ccode\u003e324c970\u003c/code\u003e\u003c/a\u003e Add HEIC/HEIF size and rotation support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shibukawa/imagesize_py/commit/7b7bb5f720401332eba12e93ad2e31d1bbc01cd4\"\u003e\u003ccode\u003e7b7bb5f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/shibukawa/imagesize_py/issues/78\"\u003e#78\u003c/a\u003e from shibukawa/codex/add-pypi-link-and-python-version-...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/shibukawa/imagesize_py/compare/1.4.1...2.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `packaging` from 26.0 to 26.2\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.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix incorrect sysconfig var name for pyemscripten by \u003ca href=\"https://github.com/ryanking13\"\u003e\u003ccode\u003e@​ryanking13\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1160\"\u003epypa/packaging#1160\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eVersion\u003c/code\u003e, \u003ccode\u003eSpecifier\u003c/code\u003e, \u003ccode\u003eSpecifierSet\u003c/code\u003e, \u003ccode\u003eTag\u003c/code\u003e, \u003ccode\u003eMarker\u003c/code\u003e, and \u003ccode\u003eRequirement\u003c/code\u003e pickle-safe\nand backward-compatible with pickles created in 25.0-26.1 (including references to the removed\n\u003ccode\u003epackaging._structures\u003c/code\u003e module) by \u003ca href=\"https://github.com/eachimei\"\u003e\u003ccode\u003e@​eachimei\u003c/code\u003e\u003c/a\u003e and \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/1163\"\u003epypa/packaging#1163\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1168\"\u003epypa/packaging#1168\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1170\"\u003epypa/packaging#1170\u003c/a\u003e, and \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1171\"\u003epypa/packaging#1171\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: re-export ExceptionGroup for now 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/1164\"\u003epypa/packaging#1164\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003edocs: add errors section and fix missing details 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/1159\"\u003epypa/packaging#1159\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs(dev): document property-based test suite by \u003ca href=\"https://github.com/r266-tech\"\u003e\u003ccode\u003e@​r266-tech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1167\"\u003epypa/packaging#1167\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typo in DirectUrl documentation 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/1169\"\u003epypa/packaging#1169\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs(specifiers): add is_unsatisfiable() usage example by \u003ca href=\"https://github.com/r266-tech\"\u003e\u003ccode\u003e@​r266-tech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1166\"\u003epypa/packaging#1166\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnable the auditor persona on zizmor 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/1158\"\u003epypa/packaging#1158\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest new pickle guarantees 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/1174\"\u003epypa/packaging#1174\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse native uv integration in rtd 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/1175\"\u003epypa/packaging#1175\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/ryanking13\"\u003e\u003ccode\u003e@​ryanking13\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1160\"\u003epypa/packaging#1160\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eachimei\"\u003e\u003ccode\u003e@​eachimei\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1163\"\u003epypa/packaging#1163\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pypa/packaging/compare/26.1...26.2\"\u003ehttps://github.com/pypa/packaging/compare/26.1...26.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e26.1\u003c/h2\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cdel\u003ePEP 783: add handling for Emscripten wheel tags by \u003ca href=\"https://github.com/hoodmane\"\u003e\u003ccode\u003e@​hoodmane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/804\"\u003epypa/packaging#804\u003c/a\u003e\u003c/del\u003e (old name used in implementation, will be fixed in next release)\u003c/li\u003e\n\u003cli\u003ePEP 803: add handling for the \u003ccode\u003eabi3.abi3t\u003c/code\u003e free-threading tag by \u003ca href=\"https://github.com/ngoldbaum\"\u003e\u003ccode\u003e@​ngoldbaum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1099\"\u003epypa/packaging#1099\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePEP 723: add \u003ccode\u003epackaging.dependency_groups\u003c/code\u003e module, based on the \u003ccode\u003edependency-groups\u003c/code\u003e package by \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1065\"\u003epypa/packaging#1065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.direct_url\u003c/code\u003e module 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/944\"\u003epypa/packaging#944\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.errors\u003c/code\u003e module 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/1071\"\u003epypa/packaging#1071\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSpecifierSet.is_unsatisfiable\u003c/code\u003e using ranges (new internals that will be expanded in future versions) 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/1119\"\u003epypa/packaging#1119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ecreate_compatible_tags_selector\u003c/code\u003e to select compatible tags 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/1110\"\u003epypa/packaging#1110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003ekey\u003c/code\u003e argument to \u003ccode\u003eSpecifierSet.filter()\u003c/code\u003e by \u003ca href=\"https://github.com/frostming\"\u003e\u003ccode\u003e@​frostming\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1068\"\u003epypa/packaging#1068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e\u0026amp;\u003c/code\u003e and \u003ccode\u003e|\u003c/code\u003e for \u003ccode\u003eMarker\u003c/code\u003e's 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/1146\"\u003epypa/packaging#1146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize \u003ccode\u003eVersion.__replace__\u003c/code\u003e and add \u003ccode\u003eVersion.from_parts\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/1078\"\u003epypa/packaging#1078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd an option to validate compressed tag set sort order in \u003ccode\u003eparse_wheel_filename\u003c/code\u003e by \u003ca href=\"https://github.com/r266-tech\"\u003e\u003ccode\u003e@​r266-tech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1150\"\u003epypa/packaging#1150\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNarrow exclusion of pre-releases for \u003ccode\u003e\u0026lt;V.postN\u003c/code\u003e to match spec 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/1140\"\u003epypa/packaging#1140\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.2 - 2026-04-24\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nFixes:\n\u003cul\u003e\n\u003cli\u003eFix incorrect sysconfig var name for pyemscripten in (:pull:\u003ccode\u003e1160\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eVersion\u003c/code\u003e, \u003ccode\u003eSpecifier\u003c/code\u003e, \u003ccode\u003eSpecifierSet\u003c/code\u003e, \u003ccode\u003eTag\u003c/code\u003e, \u003ccode\u003eMarker\u003c/code\u003e, and \u003ccode\u003eRequirement\u003c/code\u003e pickle-safe\u003cbr /\u003e\nand backward-compatible with pickles created in 25.0-26.1 (including references to the removed\u003cbr /\u003e\n\u003ccode\u003epackaging._structures\u003c/code\u003e module) (:pull:\u003ccode\u003e1163\u003c/code\u003e, :pull:\u003ccode\u003e1168\u003c/code\u003e, :pull:\u003ccode\u003e1170\u003c/code\u003e, :pull:\u003ccode\u003e1171\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eRe-export \u003ccode\u003eExceptionGroup\u003c/code\u003e in metadata for now in (:pull:\u003ccode\u003e1164\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd errors section and fix missing details in (:pull:\u003ccode\u003e1159\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDocument our property-based test suite in (:pull:\u003ccode\u003e1167\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix a \u003ccode\u003eDirectUrl\u003c/code\u003e typo in (:pull:\u003ccode\u003e1167\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd example of \u003ccode\u003eis_unsatisfiable\u003c/code\u003e in (:pull:\u003ccode\u003e1166\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnable the auditor persona on zizmor in (:pull:\u003ccode\u003e1158\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eTest new pickle guarantees in (:pull:\u003ccode\u003e1174\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse new native ReadTheDocs uv integration in (:pull:\u003ccode\u003e1175\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e26.1 - 2026-04-14\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePEP 783: add handling for Emscripten wheel tags in (:pull:\u003ccode\u003e804\u003c/code\u003e) (old name used in implementation, fixed in next release)\u003c/li\u003e\n\u003cli\u003ePEP 803: add handling for the \u003ccode\u003eabi3.abi3t\u003c/code\u003e free-threading tag in (:pull:\u003ccode\u003e1099\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePEP 723: add \u003ccode\u003epackaging.dependency_groups\u003c/code\u003e module, based on the \u003ccode\u003edependency-groups\u003c/code\u003e package in (:pull:\u003ccode\u003e1065\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.direct_url\u003c/code\u003e module in (:pull:\u003ccode\u003e944\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.errors\u003c/code\u003e module in (:pull:\u003ccode\u003e1071\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSpecifierSet.is_unsatisfiable\u003c/code\u003e using ranges (new internals that will be expanded in future versions) in (:pull:\u003ccode\u003e1119\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ecreate_compatible_tags_selector\u003c/code\u003e to select compatible tags in (:pull:\u003ccode\u003e1110\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003ekey\u003c/code\u003e argument to \u003ccode\u003eSpecifierSet.filter()\u003c/code\u003e in (:pull:\u003ccode\u003e1068\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e\u0026amp;\u003c/code\u003e and \u003ccode\u003e|\u003c/code\u003e for \u003ccode\u003eMarker\u003c/code\u003e's in (:pull:\u003ccode\u003e1146\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eNormalize \u003ccode\u003eVersion.__replace__\u003c/code\u003e and add \u003ccode\u003eVersion.from_parts\u003c/code\u003e in (:pull:\u003ccode\u003e1078\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd an option to validate compressed tag set sort order in \u003ccode\u003eparse_wheel_filename\u003c/code\u003e in (:pull:\u003ccode\u003e1150\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNarrow exclusion of pre-releases for \u003ccode\u003e\u0026lt;V.postN\u003c/code\u003e to match spec in (:pull:\u003ccode\u003e1140\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eNarrow exclusion of post-releases for \u003ccode\u003e\u0026gt;V\u003c/code\u003e to match spec in (:pull:\u003ccode\u003e1141\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003eformat_full_version\u003c/code\u003e to \u003ccode\u003e_format_full_version\u003c/code\u003e to make it visibly private in (:pull:\u003ccode\u003e1125\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eRestrict local version to ASCII in (:pull:\u003ccode\u003e1102\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePylock (PEP 751) updates:\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/84a87ee42483d7352f9502d78a9553da8859aa7a\"\u003e\u003ccode\u003e84a87ee\u003c/code\u003e\u003c/a\u003e Bump for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/4a616b65bed23c8c6d58e6b0fc1a4434d4ff1f14\"\u003e\u003ccode\u003e4a616b6\u003c/code\u003e\u003c/a\u003e docs: a few more updates to prepare for 26.2 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1176\"\u003e#1176\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/9de6f44f1e82d4595edf3aad1c4f6f98c85935a0\"\u003e\u003ccode\u003e9de6f44\u003c/code\u003e\u003c/a\u003e ci: use native uv integration in rtd (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1175\"\u003e#1175\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/bc76e14debd1a2799d1ca8f9d9c9823f35bfa466\"\u003e\u003ccode\u003ebc76e14\u003c/code\u003e\u003c/a\u003e chore: update changelog for 26.2 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1161\"\u003e#1161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/3f00091c08f0aa830e33ed7db00f16f11c8ac97f\"\u003e\u003ccode\u003e3f00091\u003c/code\u003e\u003c/a\u003e tests: add a pickle check (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1174\"\u003e#1174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/48a8a069805291186522de3eff73ea80a8ca96ad\"\u003e\u003ccode\u003e48a8a06\u003c/code\u003e\u003c/a\u003e fix: make Requirements/Markers pickle-safe (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1171\"\u003e#1171\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/823b44ed1f904084a77ae3adf0ef130af6365f84\"\u003e\u003ccode\u003e823b44e\u003c/code\u003e\u003c/a\u003e fix: make Tags pickle-safe (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1170\"\u003e#1170\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/4bed32d920ca7211dd65fdf0a1ee06376e9c4733\"\u003e\u003ccode\u003e4bed32d\u003c/code\u003e\u003c/a\u003e fix: make Specifier / SpecifierSet pickle-safe (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1168\"\u003e#1168\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/963118e37caae97bc8b72f72956c7fb4ca9857ec\"\u003e\u003ccode\u003e963118e\u003c/code\u003e\u003c/a\u003e fix: re-export ExceptionGroup for now (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1164\"\u003e#1164\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/66e34a80256c96dea11da143682950c84b8133bb\"\u003e\u003ccode\u003e66e34a8\u003c/code\u003e\u003c/a\u003e docs(specifiers): add is_unsatisfiable() usage example (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1166\"\u003e#1166\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/packaging/compare/26.0...26.2\"\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 `requests` from 2.32.5 to 2.33.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.1\u003c/h2\u003e\n\u003ch2\u003e2.33.1 (2026-03-30)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed test cleanup for CVE-2026-25645 to avoid leaving unnecessary\nfiles in the tmp directory. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed Content-Type header parsing for malformed values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved error consistency for malformed header values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ferdnyc\"\u003e\u003ccode\u003e@​ferdnyc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7277\"\u003epsf/requests#7277\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2331-2026-03-30\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2331-2026-03-30\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.1 (2026-03-30)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed test cleanup for CVE-2026-25645 to avoid leaving unnecessary\nfiles in the tmp directory. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed Content-Type header parsing for malformed values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved error consistency for malformed header values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/111d2b77790bf49943c0dfa09b365371c24aec7e\"\u003e\u003ccode\u003e111d2b7\u003c/code\u003e\u003c/a\u003e v2.33.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/f0198e6dfc431a2293dc16e1b1e8fcddc910a7f3\"\u003e\u003ccode\u003ef0198e6\u003c/code\u003e\u003c/a\u003e Fix malformed value parsing for Content-Type (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc7dd0fc4d56e808bcdd85ac2d797b3107c89259\"\u003e\u003ccode\u003ebc7dd0f\u003c/code\u003e\u003c/a\u003e Fix cosmetic header validity parsing regex (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/4443b1a847b190010c2972a658924b98b5db6360\"\u003e\u003ccode\u003e4443b1a\u003c/code\u003e\u003c/a\u003e Fix unintended test extra (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7306\"\u003e#7306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/389eea58dfb2f2ee096421a812e3af29c0298951\"\u003e\u003ccode\u003e389eea5\u003c/code\u003e\u003c/a\u003e Cleanup extracted file after extract_zipped_path test (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/7407309c8a8a73aa2f4337184025d440bbedab7a\"\u003e\u003ccode\u003e7407309\u003c/code\u003e\u003c/a\u003e Packaging: DRY out extras definition (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7277\"\u003e#7277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.5...v2.33.1\"\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 `attrs` from 25.4.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/python-attrs/attrs/releases\"\u003eattrs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.1.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cp\u003eThe main outward change here only affects people using field transformers, but it should be a nice quality of life improvement!\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eFull changelog below!\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eSpecial Thanks\u003c/h2\u003e\n\u003cp\u003eThis release would not be possible without my generous sponsors! Thank you to all of you making sustainable maintenance possible! If \u003cem\u003eyou\u003c/em\u003e would like to join them, go to \u003ca href=\"https://github.com/sponsors/hynek\"\u003ehttps://github.com/sponsors/hynek\u003c/a\u003e and check out the sweet perks!\u003c/p\u003e\n\u003ch3\u003eAbove and Beyond\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://www.variomedia.de/\"\u003eVariomedia AG\u003c/a\u003e (@\u003ca href=\"https://github.com/variomedia\"\u003evariomedia\u003c/a\u003e), \u003ca href=\"https://www.tidelift.com/\"\u003eTidelift\u003c/a\u003e (@\u003ca href=\"https://github.com/tidelift\"\u003etidelift\u003c/a\u003e), \u003ca href=\"https://kraken.tech\"\u003eKraken Tech\u003c/a\u003e (@\u003ca href=\"https://github.com/kraken-tech\"\u003ekraken-tech\u003c/a\u003e), \u003ca href=\"https://privacy-solutions.org\"\u003ePrivacy Solutions GmbH\u003c/a\u003e (@\u003ca href=\"https://github.com/privacy-solutions\"\u003eprivacy-solutions\u003c/a\u003e), \u003ca href=\"http://filepreviews.io/\"\u003eFilePreviews\u003c/a\u003e (@\u003ca href=\"https://github.com/filepreviews\"\u003efilepreviews\u003c/a\u003e), \u003ca href=\"https://ecosyste.ms\"\u003eEcosystems\u003c/a\u003e (@\u003ca href=\"https://github.com/ecosyste-ms\"\u003eecosyste-ms\u003c/a\u003e), \u003ca href=\"https://www.lambdatest.com\"\u003eTestMu AI Open Source Office (Formerly LambdaTest)\u003c/a\u003e (@\u003ca href=\"https://github.com/LambdaTest-Inc\"\u003eLambdaTest-Inc\u003c/a\u003e), \u003ca href=\"https://doist.com/\"\u003eDoist\u003c/a\u003e (@\u003ca href=\"https://github.com/Doist\"\u003eDoist\u003c/a\u003e), Daniel Fortunov (@\u003ca href=\"https://github.com/asqui\"\u003easqui\u003c/a\u003e), and Kevin P. Fleming (@\u003ca href=\"https://github.com/kpfleming\"\u003ekpfleming\u003c/a\u003e).\u003c/p\u003e\n\u003ch3\u003eMaintenance Sustainers\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://buttondown.com\"\u003eButtondown\u003c/a\u003e (@\u003ca href=\"https://github.com/buttondown\"\u003ebuttondown\u003c/a\u003e), \u003ca href=\"https://christopher.xyz\"\u003eChristopher Dignam\u003c/a\u003e (@\u003ca href=\"https://github.com/chdsbd\"\u003echdsbd\u003c/a\u003e), Magnus Watn (@\u003ca href=\"https://github.com/magnuswatn\"\u003emagnuswatn\u003c/a\u003e), \u003ca href=\"https://cra.mr\"\u003eDavid Cramer\u003c/a\u003e (@\u003ca href=\"https://github.com/dcramer\"\u003edcramer\u003c/a\u003e), \u003ca href=\"https://rivolaks.com\"\u003eRivo Laks\u003c/a\u003e (@\u003ca href=\"https://github.com/rivol\"\u003erivol\u003c/a\u003e), \u003ca href=\"https://polar.sh\"\u003ePolar\u003c/a\u003e (@\u003ca href=\"https://github.com/polarsource\"\u003epolarsource\u003c/a\u003e), \u003ca href=\"https://miketheman.dev\"\u003eMike Fiedler\u003c/a\u003e (@\u003ca href=\"https://github.com/miketheman\"\u003emiketheman\u003c/a\u003e), Duncan Hill (@\u003ca href=\"https://github.com/cricalix\"\u003ecricalix\u003c/a\u003e), Colin Marquardt (@\u003ca href=\"https://github.com/cmarqu\"\u003ecmarqu\u003c/a\u003e), \u003ca href=\"https://blog.journeythatcounts.nl\"\u003ePieter Swinkels\u003c/a\u003e (@\u003ca href=\"https://github.com/swinkels\"\u003eswinkels\u003c/a\u003e), Nick Libertini (@\u003ca href=\"https://github.com/libertininick\"\u003elibertininick\u003c/a\u003e), \u003ca href=\"https://bmdphd.info/\"\u003eBrian M. Dennis\u003c/a\u003e (@\u003ca href=\"https://github.com/crossjam\"\u003ecrossjam\u003c/a\u003e), Celebrity News AG (@\u003ca href=\"https://github.com/celebritynewsag\"\u003ecelebritynewsag\u003c/a\u003e), \u003ca href=\"https://westervelt.com\"\u003eThe Westervelt Company\u003c/a\u003e (@\u003ca href=\"https://github.com/westerveltco\"\u003ewesterveltco\u003c/a\u003e), \u003ca href=\"https://slafs.net\"\u003eSławomir Ehlert\u003c/a\u003e (@\u003ca href=\"https://github.com/slafs\"\u003eslafs\u003c/a\u003e), Mostafa Khalil (@\u003ca href=\"https://github.com/khadrawy\"\u003ekhadrawy\u003c/a\u003e), \u003ca href=\"https://fmularczyk.pl\"\u003eFilip Mularczyk\u003c/a\u003e (@\u003ca href=\"https://github.com/mukiblejlok\"\u003emukiblejlok\u003c/a\u003e), Thomas Klinger (@\u003ca href=\"https://github.com/thmsklngr\"\u003ethmsklngr\u003c/a\u003e), \u003ca href=\"https://poehlmann.io\"\u003eAndreas Poehlmann\u003c/a\u003e (@\u003ca href=\"https://github.com/ap--\"\u003eap--\u003c/a\u003e), \u003ca href=\"https://atbigelow.com\"\u003eAugust Trapper Bigelow\u003c/a\u003e (@\u003ca href=\"https://github.com/atbigelow\"\u003eatbigelow\u003c/a\u003e), \u003ca href=\"https://noumenal.es/\"\u003eCarlton Gibson\u003c/a\u003e (@\u003ca href=\"https://github.com/carltongibson\"\u003ecarltongibson\u003c/a\u003e), and \u003ca href=\"https://roboflow.com\"\u003eRoboflow\u003c/a\u003e (@\u003ca href=\"https://github.com/roboflow\"\u003eroboflow\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003eFull Changelog\u003c/h2\u003e\n\u003ch3\u003eBackwards-incompatible Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eField aliases are now resolved \u003cem\u003ebefore\u003c/em\u003e calling \u003ccode\u003efield_transformer\u003c/code\u003e, so transformers receive fully populated \u003ccode\u003eAttribute\u003c/code\u003e objects with usable \u003ccode\u003ealias\u003c/code\u003e values instead of \u003ccode\u003eNone\u003c/code\u003e. The new \u003ccode\u003eAttribute.alias_is_default\u003c/code\u003e flag indicates whether the alias was auto-generated (\u003ccode\u003eTrue\u003c/code\u003e) or explicitly set by the user (\u003ccode\u003eFalse\u003c/code\u003e). \u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1509\"\u003e#1509\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix type annotations for \u003ccode\u003eattrs.validators.optional()\u003c/code\u003e, so it no longer rejects tuples with more than one validator. \u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1496\"\u003e#1496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003eattrs.validators.disabled()\u003c/code\u003e contextmanager can now be nested. \u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1513\"\u003e#1513\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFrozen classes can set \u003ccode\u003eon_setattr=attrs.setters.NO_OP\u003c/code\u003e in addition to \u003ccode\u003eNone\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1515\"\u003e#1515\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIt's now possible to pass \u003cem\u003eattrs\u003c/em\u003e \u003cstrong\u003einstances\u003c/strong\u003e in addition to \u003cem\u003eattrs\u003c/em\u003e \u003cstrong\u003eclasses\u003c/strong\u003e to \u003ccode\u003eattrs.fields()\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1529\"\u003e#1529\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eThis release contains contributions from \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/DavidCEllis\"\u003e\u003ccode\u003e@​DavidCEllis\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/finite-state-machine\"\u003e\u003ccode\u003e@​finite-state-machine\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/hynek\"\u003e\u003ccode\u003e@​hynek\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/vstinner\"\u003e\u003ccode\u003e@​vstinner\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eArtifact Attestations\u003c/h2\u003e\n\u003cp\u003eYou can verify this release's \u003ca href=\"https://docs.github.com/en/actions/security-guides/using-artifact-attestations-to-establish-provenance-for-builds\"\u003eartifact attestions\u003c/a\u003e using \u003ca href=\"https://cli.github.com\"\u003eGitHub's CLI tool\u003c/a\u003e by downloading the sdist and wheel from \u003ca href=\"https://pypi.org/project/attrs\"\u003ePyPI\u003c/a\u003e and running:\u003c/p\u003e\n\u003cpre lang=\"console\"\u003e\u003ccode\u003e$ gh attestation verify --owner python-attrs attrs-26.1.0.tar.gz\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-attrs/attrs/blob/main/CHANGELOG.md\"\u003eattrs's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/python-attrs/attrs/tree/26.1.0\"\u003e26.1.0\u003c/a\u003e - 2026-03-19\u003c/h2\u003e\n\u003ch3\u003eBackwards-incompatible Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eField aliases are now resolved \u003cem\u003ebefore\u003c/em\u003e calling \u003ccode\u003efield_transformer\u003c/code\u003e, so transformers receive fully populated \u003ccode\u003eAttribute\u003c/code\u003e objects with usable \u003ccode\u003ealias\u003c/code\u003e values instead of \u003ccode\u003eNone\u003c/code\u003e.\nThe new \u003ccode\u003eAttribute.alias_is_default\u003c/code\u003e flag indicates whether the alias was auto-generated (\u003ccode\u003eTrue\u003c/code\u003e) or explicitly set by the user (\u003ccode\u003eFalse\u003c/code\u003e).\n\u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1509\"\u003e#1509\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix type annotations for \u003ccode\u003eattrs.validators.optional()\u003c/code\u003e, so it no longer rejects tuples with more than one validator.\n\u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1496\"\u003e#1496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003eattrs.validators.disabled()\u003c/code\u003e contextmanager can now be nested.\n\u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1513\"\u003e#1513\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFrozen classes can set \u003ccode\u003eon_setattr=attrs.setters.NO_OP\u003c/code\u003e in addition to \u003ccode\u003eNone\u003c/code\u003e.\n\u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1515\"\u003e#1515\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIt's now possible to pass \u003cem\u003eattrs\u003c/em\u003e \u003cstrong\u003einstances\u003c/strong\u003e in addition to \u003cem\u003eattrs\u003c/em\u003e \u003cstrong\u003eclasses\u003c/strong\u003e to \u003ccode\u003eattrs.fields()\u003c/code\u003e.\n\u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1529\"\u003e#1529\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-attrs/attrs/commit/7bfc49e9b22d5ba25b6e429524c3d49fee27cb36\"\u003e\u003ccode\u003e7bfc49e\u003c/code\u003e\u003c/a\u003e Prepare 26.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-attrs/attrs/commit/31e02869da10824b492c378c1dc87ccc720ee5ad\"\u003e\u003ccode\u003e31e0286\u003c/code\u003e\u003c/a\u003e Update test_validators.py for Python 3.15a7 (\u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1530\"\u003e#1530\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-attrs/attrs/commit/48b8611c27779811d161200e17de8da24aae7feb\"\u003e\u003ccode\u003e48b8611\u003c/code\u003e\u003c/a\u003e Add instance support to attrs.fields() (\u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1529\"\u003e#1529\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-attrs/attrs/commit/3a68d4913221abc6f8ad3be50937f7ae49300a98\"\u003e\u003ccode\u003e3a68d49\u003c/code\u003e\u003c/a\u003e dev: document missing git tags failure mode\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-attrs/attrs/commit/a572c3a4c558a8b9b48cf989fcd956ab1a279439\"\u003e\u003ccode\u003ea572c3a\u003c/cod...\n\n_Description has been truncated_","html_url":"https://github.com/python-trio/trustme/pull/711","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Ftrustme/issues/711","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/711/packages"},{"uuid":"4342086837","node_id":"PR_kwDOCUVVSc7WRuOx","number":5469,"state":"open","title":"Build(deps): bump the python-dependencies group across 1 directory with 13 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-04-28T09:38:29.000Z","updated_at":"2026-04-29T08:53:16.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Build(deps): bump","group_name":"python-dependencies","update_count":13,"packages":[{"name":"pybammsolvers","old_version":"0.6.0","new_version":"0.7.0"},{"name":"black","old_version":"26.1.0","new_version":"26.3.1","repository_url":"https://github.com/psf/black"},{"name":"posthog","old_version":"7.8.3","new_version":"7.13.0","repository_url":"https://github.com/posthog/posthog-python"},{"name":"platformdirs","old_version":"4.5.1","new_version":"4.9.6","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pybtex","old_version":"0.25.1","new_version":"0.26.1"},{"name":"bpx","old_version":"0.5.0","new_version":"1.1.0","repository_url":"https://github.com/FaradayInstitution/BPX"},{"name":"pydata-sphinx-theme","old_version":"0.16.1","new_version":"0.17.1","repository_url":"https://github.com/pydata/pydata-sphinx-theme"},{"name":"ipykernel","old_version":"7.1.0","new_version":"7.2.0","repository_url":"https://github.com/ipython/ipykernel"},{"name":"ruff","old_version":"0.15.0","new_version":"0.15.11","repository_url":"https://github.com/astral-sh/ruff"},{"name":"nox","old_version":"2025.11.12","new_version":"2026.4.10","repository_url":"https://github.com/wntrblm/nox"},{"name":"pytest-cov","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pytest","old_version":"9.0.2","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"hypothesis","old_version":"6.151.5","new_version":"6.152.1","repository_url":"https://github.com/HypothesisWorks/hypothesis"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-dependencies group with 13 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| pybammsolvers | `0.6.0` | `0.7.0` |\n| [black](https://github.com/psf/black) | `26.1.0` | `26.3.1` |\n| [posthog](https://github.com/posthog/posthog-python) | `7.8.3` | `7.13.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.5.1` | `4.9.6` |\n| [pybtex](https://pybtex.org/) | `0.25.1` | `0.26.1` |\n| [bpx](https://github.com/FaradayInstitution/BPX) | `0.5.0` | `1.1.0` |\n| [pydata-sphinx-theme](https://github.com/pydata/pydata-sphinx-theme) | `0.16.1` | `0.17.1` |\n| [ipykernel](https://github.com/ipython/ipykernel) | `7.1.0` | `7.2.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.0` | `0.15.11` |\n| [nox](https://github.com/wntrblm/nox) | `2025.11.12` | `2026.4.10` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `7.0.0` | `7.1.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.2` | `9.0.3` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.151.5` | `6.152.1` |\n\n\nUpdates `pybammsolvers` from 0.6.0 to 0.7.0\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\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/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 `posthog` from 7.8.3 to 7.13.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/posthog/posthog-python/releases\"\u003eposthog's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.13.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: use \u003ca href=\"mailto:engineering@posthog.com\"\u003eengineering@posthog.com\u003c/a\u003e in package metadata by \u003ca href=\"https://github.com/marandaneto\"\u003e\u003ccode\u003e@​marandaneto\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/514\"\u003ePostHog/posthog-python#514\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(examples): add Dedalus Labs and Cloudflare AI Gateway examples by \u003ca href=\"https://github.com/richardsolomou\"\u003e\u003ccode\u003e@​richardsolomou\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/508\"\u003ePostHog/posthog-python#508\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(flags): implement get_feature_flag endpoint in SDK compliance adapter by \u003ca href=\"https://github.com/andehen\"\u003e\u003ccode\u003e@​andehen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/500\"\u003ePostHog/posthog-python#500\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: fix python release docs package registry by \u003ca href=\"https://github.com/marandaneto\"\u003e\u003ccode\u003e@​marandaneto\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/516\"\u003ePostHog/posthog-python#516\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: use client-id for create-github-app-token by \u003ca href=\"https://github.com/marandaneto\"\u003e\u003ccode\u003e@​marandaneto\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/517\"\u003ePostHog/posthog-python#517\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update GitHub Actions for Node 24 by \u003ca href=\"https://github.com/marandaneto\"\u003e\u003ccode\u003e@​marandaneto\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/518\"\u003ePostHog/posthog-python#518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: remove use of six and mock by \u003ca href=\"https://github.com/s-t-e-v-e-n-k\"\u003e\u003ccode\u003e@​s-t-e-v-e-n-k\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/442\"\u003ePostHog/posthog-python#442\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: reduce Dependabot PR noise by \u003ca href=\"https://github.com/marandaneto\"\u003e\u003ccode\u003e@​marandaneto\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/519\"\u003ePostHog/posthog-python#519\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(prompts): add capture_errors option for error tracking by \u003ca href=\"https://github.com/andrewm4894\"\u003e\u003ccode\u003e@​andrewm4894\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/520\"\u003ePostHog/posthog-python#520\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: add dedicated contributing guides by \u003ca href=\"https://github.com/marandaneto\"\u003e\u003ccode\u003e@​marandaneto\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/521\"\u003ePostHog/posthog-python#521\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: align contributing guide with CI checks by \u003ca href=\"https://github.com/marandaneto\"\u003e\u003ccode\u003e@​marandaneto\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/522\"\u003ePostHog/posthog-python#522\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: remove v prefix from release tags by \u003ca href=\"https://github.com/marandaneto\"\u003e\u003ccode\u003e@​marandaneto\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/524\"\u003ePostHog/posthog-python#524\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: trim whitespace from API keys and host config by \u003ca href=\"https://github.com/marandaneto\"\u003e\u003ccode\u003e@​marandaneto\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/525\"\u003ePostHog/posthog-python#525\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/s-t-e-v-e-n-k\"\u003e\u003ccode\u003e@​s-t-e-v-e-n-k\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/442\"\u003ePostHog/posthog-python#442\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/PostHog/posthog-python/compare/v7.12.0...7.13.0\"\u003ehttps://github.com/PostHog/posthog-python/compare/v7.12.0...7.13.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.12.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: merge master into main by \u003ca href=\"https://github.com/marandaneto\"\u003e\u003ccode\u003e@​marandaneto\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/513\"\u003ePostHog/posthog-python#513\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/PostHog/posthog-python/compare/v7.11.2...v7.12.0\"\u003ehttps://github.com/PostHog/posthog-python/compare/v7.11.2...v7.12.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.11.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: add GitHub community health files by \u003ca href=\"https://github.com/marandaneto\"\u003e\u003ccode\u003e@​marandaneto\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/505\"\u003ePostHog/posthog-python#505\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump pyasn1 from 0.6.1 to 0.6.3 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/PostHog/posthog-python/pull/465\"\u003ePostHog/posthog-python#465\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump litellm from 1.82.6 to 1.83.0 in /examples/example-ai-dspy 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/PostHog/posthog-python/pull/487\"\u003ePostHog/posthog-python#487\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump requests from 2.32.5 to 2.33.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/473\"\u003ePostHog/posthog-python#473\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update branch references to main by \u003ca href=\"https://github.com/marandaneto\"\u003e\u003ccode\u003e@​marandaneto\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/506\"\u003ePostHog/posthog-python#506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update endpoint for flags local eval by \u003ca href=\"https://github.com/patricio-posthog\"\u003e\u003ccode\u003e@​patricio-posthog\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/509\"\u003ePostHog/posthog-python#509\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/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/465\"\u003ePostHog/posthog-python#465\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/PostHog/posthog-python/compare/v7.11.1...v7.11.2\"\u003ehttps://github.com/PostHog/posthog-python/compare/v7.11.1...v7.11.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.11.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: add stale workflow for issues and PRs by \u003ca href=\"https://github.com/marandaneto\"\u003e\u003ccode\u003e@​marandaneto\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/502\"\u003ePostHog/posthog-python#502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(compliance): declare capabilities in health endpoint by \u003ca href=\"https://github.com/andehen\"\u003e\u003ccode\u003e@​andehen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/501\"\u003ePostHog/posthog-python#501\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Add os_distro information to events by \u003ca href=\"https://github.com/parinporecha\"\u003e\u003ccode\u003e@​parinporecha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/467\"\u003ePostHog/posthog-python#467\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/PostHog/posthog-python/compare/v7.11.0...v7.11.1\"\u003ehttps://github.com/PostHog/posthog-python/compare/v7.11.0...v7.11.1\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/PostHog/posthog-python/blob/main/CHANGELOG.md\"\u003eposthog's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.13.0 — 2026-04-21\u003c/h2\u003e\n\u003ch3\u003eMinor changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/posthog/posthog-python/commit/12c38e7a788c29a244b715c4f9965b1ac0bb4b3f\"\u003e12c38e7\u003c/a\u003e Add \u003ccode\u003ecapture_errors\u003c/code\u003e option to \u003ccode\u003ePrompts\u003c/code\u003e that reports prompt fetch failures to PostHog error tracking via \u003ccode\u003ecapture_exception()\u003c/code\u003e when enabled. — Thanks \u003ca href=\"https://github.com/andrewm4894\"\u003e\u003ccode\u003e@​andrewm4894\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePatch changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/posthog/posthog-python/commit/1b098e7dc1b25b41ee35a2eef7469e71fe42b1fc\"\u003e1b098e7\u003c/a\u003e Trim surrounding whitespace from API keys and host config before using them. — Thanks \u003ca href=\"https://github.com/marandaneto\"\u003e\u003ccode\u003e@​marandaneto\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e7.12.0 — 2026-04-16\u003c/h2\u003e\n\u003ch3\u003eMinor changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/posthog/posthog-python/commit/220d9e88877dee7eabd34fed68c2a4a65e6526a7\"\u003e220d9e8\u003c/a\u003e \u003ccode\u003ePrompts.get()\u003c/code\u003e now accepts \u003ccode\u003ewith_metadata=True\u003c/code\u003e and returns a \u003ccode\u003ePromptResult\u003c/code\u003e dataclass containing \u003ccode\u003esource\u003c/code\u003e (\u003ccode\u003eapi\u003c/code\u003e, \u003ccode\u003ecache\u003c/code\u003e, \u003ccode\u003estale_cache\u003c/code\u003e, or \u003ccode\u003ecode_fallback\u003c/code\u003e), \u003ccode\u003ename\u003c/code\u003e, and \u003ccode\u003eversion\u003c/code\u003e alongside the prompt text. The previous plain-string return is deprecated and will be removed in a future major version. — Thanks \u003ca href=\"https://github.com/marandaneto\"\u003e\u003ccode\u003e@​marandaneto\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e7.11.2 — 2026-04-15\u003c/h2\u003e\n\u003ch3\u003ePatch changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/posthog/posthog-python/commit/f5a95b454ae7fd8bf46381b1c624df827903260d\"\u003ef5a95b4\u003c/a\u003e feat(flags): switch local evaluation polling from \u003ccode\u003e/api/feature_flag/local_evaluation\u003c/code\u003e to \u003ccode\u003e/flags/definitions\u003c/code\u003e — Thanks \u003ca href=\"https://github.com/patricio-posthog\"\u003e\u003ccode\u003e@​patricio-posthog\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e7.11.1 — 2026-04-14\u003c/h2\u003e\n\u003ch3\u003ePatch changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/posthog/posthog-python/commit/c3f097f72f5ef6c1ecd25ade7d3ba08e57765eaf\"\u003ec3f097f\u003c/a\u003e feat: Add os_distro information to events — Thanks \u003ca href=\"https://github.com/parinporecha\"\u003e\u003ccode\u003e@​parinporecha\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e7.11.0 — 2026-04-10\u003c/h2\u003e\n\u003ch3\u003eMinor changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/posthog/posthog-python/commit/b921fe33a9115fbf5f5171b80e1deabffd3e66ca\"\u003eb921fe3\u003c/a\u003e Add Gemini \u003ccode\u003eembed_content\u003c/code\u003e tracking support for both sync and async clients — Thanks \u003ca href=\"https://github.com/carlos-marchal-ph\"\u003e\u003ccode\u003e@​carlos-marchal-ph\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/posthog/posthog-python/commit/44b92a844a2d8170e5b2247e509279f4654c4ef6\"\u003e44b92a8\u003c/a\u003e feat(ai): add $ai_stop_reason extraction for all providers — Thanks \u003ca href=\"https://github.com/carlos-marchal-ph\"\u003e\u003ccode\u003e@​carlos-marchal-ph\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePatch changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/posthog/posthog-python/commit/7c5cad8fcf818c9b8b4f074876718b937f2f8072\"\u003e7c5cad8\u003c/a\u003e fix: graceful fallback in claude_agent_sdk query wrapper when PostHog is not configured — Thanks \u003ca href=\"https://github.com/andrewm4894\"\u003e\u003ccode\u003e@​andrewm4894\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e7.10.3 — 2026-04-08\u003c/h2\u003e\n\u003ch3\u003ePatch changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/posthog/posthog-python/commit/e22e893b236bf6af1cb8f6c18712727d24fe5c7e\"\u003ee22e893\u003c/a\u003e fix: pass the module-level \u003ccode\u003eposthog.before_send\u003c/code\u003e callback into the lazily initialized default client — Thanks \u003ca href=\"https://github.com/marandaneto\"\u003e\u003ccode\u003e@​marandaneto\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e7.10.2 — 2026-04-08\u003c/h2\u003e\n\u003ch3\u003ePatch changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/posthog/posthog-python/commit/bae355cd787f4c1a119fd2b396ba444b1a218b6a\"\u003ebae355c\u003c/a\u003e feat(flags): make local evaluation endpoint configurable via \u003ccode\u003ePOSTHOG_LOCAL_EVALUATION_ENDPOINT\u003c/code\u003e env var with fallback to default endpoint — Thanks \u003ca href=\"https://github.com/patricio-posthog\"\u003e\u003ccode\u003e@​patricio-posthog\u003c/code\u003e\u003c/a\u003e for your first contribution 🎉!\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-python/commit/48012cb759d5a4dae1f9b6c1dd9b0ae651b5898f\"\u003e\u003ccode\u003e48012cb\u003c/code\u003e\u003c/a\u003e chore: Release v7.13.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-python/commit/1b098e7dc1b25b41ee35a2eef7469e71fe42b1fc\"\u003e\u003ccode\u003e1b098e7\u003c/code\u003e\u003c/a\u003e fix: trim whitespace from API keys and host config (\u003ca href=\"https://redirect.github.com/posthog/posthog-python/issues/525\"\u003e#525\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-python/commit/8d82855419d6ffb7a12d5f110acf6ef909ff8758\"\u003e\u003ccode\u003e8d82855\u003c/code\u003e\u003c/a\u003e chore: remove v prefix from release tags (\u003ca href=\"https://redirect.github.com/posthog/posthog-python/issues/524\"\u003e#524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-python/commit/15c15275eb9d2468fbe5703c511701568c10791a\"\u003e\u003ccode\u003e15c1527\u003c/code\u003e\u003c/a\u003e docs: align contributing guide with CI checks (\u003ca href=\"https://redirect.github.com/posthog/posthog-python/issues/522\"\u003e#522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-python/commit/fe123094860a5a236d10c7f44fbd8f0d0679712d\"\u003e\u003ccode\u003efe12309\u003c/code\u003e\u003c/a\u003e docs: add dedicated contributing guides (\u003ca href=\"https://redirect.github.com/posthog/posthog-python/issues/521\"\u003e#521\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-python/commit/12c38e7a788c29a244b715c4f9965b1ac0bb4b3f\"\u003e\u003ccode\u003e12c38e7\u003c/code\u003e\u003c/a\u003e feat(prompts): add capture_errors option for error tracking (\u003ca href=\"https://redirect.github.com/posthog/posthog-python/issues/520\"\u003e#520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-python/commit/b17856519c409345ba567261388a213951289834\"\u003e\u003ccode\u003eb178565\u003c/code\u003e\u003c/a\u003e chore: reduce Dependabot PR noise (\u003ca href=\"https://redirect.github.com/posthog/posthog-python/issues/519\"\u003e#519\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-python/commit/c2962557cb262785813a7e9232530ad78147ac0d\"\u003e\u003ccode\u003ec296255\u003c/code\u003e\u003c/a\u003e chore: remove use of six and mock (\u003ca href=\"https://redirect.github.com/posthog/posthog-python/issues/442\"\u003e#442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-python/commit/43386cc5b1db07f20f10c6b9f121569b1e115a0f\"\u003e\u003ccode\u003e43386cc\u003c/code\u003e\u003c/a\u003e chore: update GitHub Actions for Node 24 (\u003ca href=\"https://redirect.github.com/posthog/posthog-python/issues/518\"\u003e#518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-python/commit/5346370bfe3d90d890402dfbf7905a4cb5e295fc\"\u003e\u003ccode\u003e5346370\u003c/code\u003e\u003c/a\u003e chore: use client-id for create-github-app-token (\u003ca href=\"https://redirect.github.com/posthog/posthog-python/issues/517\"\u003e#517\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/posthog/posthog-python/compare/v7.8.3...7.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `platformdirs` from 4.5.1 to 4.9.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/platformdirs/releases\"\u003eplatformdirs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.9.6\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 fix(release): use double quotes for tag variable expansion by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/477\"\u003etox-dev/platformdirs#477\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.9.5...4.9.6\"\u003ehttps://github.com/tox-dev/platformdirs/compare/4.9.5...4.9.6\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.9.4\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/tox-dev/platformdirs/pull/455\"\u003etox-dev/platformdirs#455\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove SECURITY.md to .github/SECURITY.md by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/456\"\u003etox-dev/platformdirs#456\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/tox-dev/platformdirs/pull/458\"\u003etox-dev/platformdirs#458\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e📝 docs: add project logo to documentation by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/459\"\u003etox-dev/platformdirs#459\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.9.3...4.9.4\"\u003ehttps://github.com/tox-dev/platformdirs/compare/4.9.3...4.9.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.9.3\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix test failures on BSD for runtime directory defaults by \u003ca href=\"https://github.com/Fridayai700\"\u003e\u003ccode\u003e@​Fridayai700\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/451\"\u003etox-dev/platformdirs#451\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRespect XDG_CONFIG_HOME in _get_user_dirs_folder by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/453\"\u003etox-dev/platformdirs#453\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd missing _optionally_create_directory in Android user_log_dir and user_runtime_dir by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/452\"\u003etox-dev/platformdirs#452\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/Fridayai700\"\u003e\u003ccode\u003e@​Fridayai700\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/451\"\u003etox-dev/platformdirs#451\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/453\"\u003etox-dev/platformdirs#453\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.9.2...4.9.3\"\u003ehttps://github.com/tox-dev/platformdirs/compare/4.9.2...4.9.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.9.2\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e📝 docs(platforms): fix RST formatting and TOC hierarchy by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/447\"\u003etox-dev/platformdirs#447\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e📝 docs: restructure following Diataxis framework by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/448\"\u003etox-dev/platformdirs#448\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.9.1...4.9.2\"\u003ehttps://github.com/tox-dev/platformdirs/compare/4.9.1...4.9.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.9.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e📝 docs: enhance README, fix issues, and reorganize platforms.rst by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/445\"\u003etox-dev/platformdirs#445\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/platformdirs/blob/main/docs/changelog.rst\"\u003eplatformdirs's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e###########\nChangelog\n###########\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e4.9.6 (2026-04-09)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 fix(release): use double quotes for tag variable expansion :pr:\u003ccode\u003e477\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e4.9.5 (2026-04-06)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e📝 docs(appauthor): clarify None vs False on Windows :pr:\u003ccode\u003e476\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eSeparates implementations of macOS dirs that share a default :pr:\u003ccode\u003e473\u003c/code\u003e - by :user:\u003ccode\u003eGoddesen\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove persist-credentials: false from release job :pr:\u003ccode\u003e472\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003efix: do not duplicate site dirs in Unix.iter_{config,site}_dirs() when use_site_for_root is active :pr:\u003ccode\u003e469\u003c/code\u003e - by\n:user:\u003ccode\u003eviccie30\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e🔧 fix(type): resolve ty 0.0.25 type errors :pr:\u003ccode\u003e468\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e🔒 ci(workflows): add zizmor security auditing :pr:\u003ccode\u003e467\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(release): generate docstrfmt-compatible changelog entries :pr:\u003ccode\u003e463\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e4.9.4 (2026-03-05)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate :pr:\u003ccode\u003e461\u003c/code\u003e - by :user:\u003ccode\u003epre-commit-ci[bot]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUpdate README.md\u003c/li\u003e\n\u003cli\u003e📝 docs: add project logo to documentation :pr:\u003ccode\u003e459\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eStandardize .github files to .yaml suffix\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump the all group with 2 updates :pr:\u003ccode\u003e457\u003c/code\u003e - by :user:\u003ccode\u003edependabot[bot]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eMove SECURITY.md to .github/SECURITY.md\u003c/li\u003e\n\u003cli\u003eAdd permissions to workflows :pr:\u003ccode\u003e455\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd security policy\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate :pr:\u003ccode\u003e454\u003c/code\u003e - by :user:\u003ccode\u003epre-commit-ci[bot]\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e4.9.2 (2026-02-16)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e📝 docs: restructure following Diataxis framework :pr:\u003ccode\u003e448\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e📝 docs(platforms): fix RST formatting and TOC hierarchy :pr:\u003ccode\u003e447\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e4.9.1 (2026-02-14)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e📝 docs: enhance README, fix issues, and reorganize platforms.rst :pr:\u003ccode\u003e445\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/56efd776d68a94898b319c108933d0cfbff813af\"\u003e\u003ccode\u003e56efd77\u003c/code\u003e\u003c/a\u003e Release 4.9.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/d5d812a02102c633a39f3dfdddbc6bb1670b13ae\"\u003e\u003ccode\u003ed5d812a\u003c/code\u003e\u003c/a\u003e 🐛 fix(release): use double quotes for tag variable expansion (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/477\"\u003e#477\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/c2b0cee3a8261b3a75b283b9ef148d2425d48d35\"\u003e\u003ccode\u003ec2b0cee\u003c/code\u003e\u003c/a\u003e build(deps): bump pypa/gh-action-pypi-publish from 1.13.0 to 1.14.0 in the al...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/7688069a09e03bb4e97fe0f9cf3aebedc8a6f7f9\"\u003e\u003ccode\u003e7688069\u003c/code\u003e\u003c/a\u003e Release 4.9.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/104d28b48c59b327a7832b23509187eef2764af8\"\u003e\u003ccode\u003e104d28b\u003c/code\u003e\u003c/a\u003e 📝 docs(appauthor): clarify None vs False on Windows (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/476\"\u003e#476\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/0955048684241725bb2eae8a2ba5bc7f7f46c9a0\"\u003e\u003ccode\u003e0955048\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/475\"\u003e#475\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/bd3c76602f88284eb832c7f5297c354ea7ac5906\"\u003e\u003ccode\u003ebd3c766\u003c/code\u003e\u003c/a\u003e build(deps): bump astral-sh/setup-uv from 7.6.0 to 8.0.0 in the all group (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/474\"\u003e#474\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/749ac3f33ffc5af04fb8bb046bbbcc4d5aa562c9\"\u003e\u003ccode\u003e749ac3f\u003c/code\u003e\u003c/a\u003e Separates implementations of macOS dirs that share a default (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/473\"\u003e#473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/cb8815684f15c58ad1b87c8b1d34f9bf2d79780e\"\u003e\u003ccode\u003ecb88156\u003c/code\u003e\u003c/a\u003e Remove persist-credentials: false from release job (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/472\"\u003e#472\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/a501eabd7dd0e56116c38fa9dba15f3c0b60010a\"\u003e\u003ccode\u003ea501eab\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/470\"\u003e#470\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.5.1...4.9.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pybtex` from 0.25.1 to 0.26.1\n\nUpdates `bpx` from 0.5.0 to 1.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/FaradayInstitution/BPX/releases\"\u003ebpx's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.1.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd dependabot for automatic workflow updates by \u003ca href=\"https://github.com/kratman\"\u003e\u003ccode\u003e@​kratman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/FaradayInstitution/BPX/pull/84\"\u003eFaradayInstitution/BPX#84\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: fix coverage + minor touch ups by \u003ca href=\"https://github.com/Saransh-cpp\"\u003e\u003ccode\u003e@​Saransh-cpp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/FaradayInstitution/BPX/pull/86\"\u003eFaradayInstitution/BPX#86\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the actions group with 4 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/FaradayInstitution/BPX/pull/85\"\u003eFaradayInstitution/BPX#85\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdds codecov token reference by \u003ca href=\"https://github.com/pipliggins\"\u003e\u003ccode\u003e@​pipliggins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/FaradayInstitution/BPX/pull/95\"\u003eFaradayInstitution/BPX#95\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFinalises migration to Pydantic V2 by \u003ca href=\"https://github.com/pipliggins\"\u003e\u003ccode\u003e@​pipliggins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/FaradayInstitution/BPX/pull/96\"\u003eFaradayInstitution/BPX#96\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStops incorrect error cascade by \u003ca href=\"https://github.com/pipliggins\"\u003e\u003ccode\u003e@​pipliggins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/FaradayInstitution/BPX/pull/97\"\u003eFaradayInstitution/BPX#97\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse string version for BPX by \u003ca href=\"https://github.com/pipliggins\"\u003e\u003ccode\u003e@​pipliggins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/FaradayInstitution/BPX/pull/100\"\u003eFaradayInstitution/BPX#100\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow arbitrary JSON hierarchy under User-defined by \u003ca href=\"https://github.com/pipliggins\"\u003e\u003ccode\u003e@​pipliggins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/FaradayInstitution/BPX/pull/94\"\u003eFaradayInstitution/BPX#94\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow integers by \u003ca href=\"https://github.com/pipliggins\"\u003e\u003ccode\u003e@​pipliggins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/FaradayInstitution/BPX/pull/99\"\u003eFaradayInstitution/BPX#99\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the actions group across 1 directory 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/FaradayInstitution/BPX/pull/92\"\u003eFaradayInstitution/BPX#92\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9 by \u003ca href=\"https://github.com/rtimms\"\u003e\u003ccode\u003e@​rtimms\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/FaradayInstitution/BPX/pull/108\"\u003eFaradayInstitution/BPX#108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eremove thermal conductivity from schema by \u003ca href=\"https://github.com/rtimms\"\u003e\u003ccode\u003e@​rtimms\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/FaradayInstitution/BPX/pull/109\"\u003eFaradayInstitution/BPX#109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd hysteresis to schema by \u003ca href=\"https://github.com/rtimms\"\u003e\u003ccode\u003e@​rtimms\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/FaradayInstitution/BPX/pull/102\"\u003eFaradayInstitution/BPX#102\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the actions group across 1 directory with 5 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/FaradayInstitution/BPX/pull/110\"\u003eFaradayInstitution/BPX#110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdds a 'State' section with lists of materials by \u003ca href=\"https://github.com/pipliggins\"\u003e\u003ccode\u003e@​pipliggins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/FaradayInstitution/BPX/pull/113\"\u003eFaradayInstitution/BPX#113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a 'partial' model type by \u003ca href=\"https://github.com/pipliggins\"\u003e\u003ccode\u003e@​pipliggins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/FaradayInstitution/BPX/pull/115\"\u003eFaradayInstitution/BPX#115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the actions 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/FaradayInstitution/BPX/pull/116\"\u003eFaradayInstitution/BPX#116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the actions group across 1 directory 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/FaradayInstitution/BPX/pull/120\"\u003eFaradayInstitution/BPX#120\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix thermal environment, bump version number by \u003ca href=\"https://github.com/rtimms\"\u003e\u003ccode\u003e@​rtimms\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/FaradayInstitution/BPX/pull/121\"\u003eFaradayInstitution/BPX#121\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/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/FaradayInstitution/BPX/pull/85\"\u003eFaradayInstitution/BPX#85\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pipliggins\"\u003e\u003ccode\u003e@​pipliggins\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/FaradayInstitution/BPX/pull/95\"\u003eFaradayInstitution/BPX#95\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/FaradayInstitution/BPX/compare/v0.5.1...v1.1.0\"\u003ehttps://github.com/FaradayInstitution/BPX/compare/v0.5.1...v1.1.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.5.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix publish workflow by \u003ca href=\"https://github.com/kratman\"\u003e\u003ccode\u003e@​kratman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/FaradayInstitution/BPX/pull/83\"\u003eFaradayInstitution/BPX#83\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/FaradayInstitution/BPX/compare/v0.5.0...v0.5.1\"\u003ehttps://github.com/FaradayInstitution/BPX/compare/v0.5.0...v0.5.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/FaradayInstitution/BPX/blob/main/CHANGELOG.md\"\u003ebpx's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/FaradayInstitution/BPX\"\u003eUnreleased\u003c/a\u003e\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003epartial\u003c/code\u003e model option to allow partial schemas to be defined in \u003ccode\u003eParameterisation\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/FaradayInstitution/BPX/pull/115\"\u003e#115\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eState\u003c/code\u003e section to the schema and moved temperature \u0026amp; concentration parameters\nfrom \u003ccode\u003eParameterisation\u003c/code\u003e in. (\u003ca href=\"https://redirect.github.com/FaradayInstitution/BPX/pull/113\"\u003e#113\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/FaradayInstitution/BPX/commit/eb5da74588631ffee0e81f00746352a3f5ba5414\"\u003e\u003ccode\u003eeb5da74\u003c/code\u003e\u003c/a\u003e fix thermal environment, bump version number (\u003ca href=\"https://redirect.github.com/FaradayInstitution/BPX/issues/121\"\u003e#121\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FaradayInstitution/BPX/commit/a6df6bfc6137815d9d1c5f6e426b4dfc91b0996d\"\u003e\u003ccode\u003ea6df6bf\u003c/code\u003e\u003c/a\u003e Bump the actions group across 1 directory with 3 updates (\u003ca href=\"https://redirect.github.com/FaradayInstitution/BPX/issues/120\"\u003e#120\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FaradayInstitution/BPX/commit/322882528574f68915b4131adbdf20c2a11a253c\"\u003e\u003ccode\u003e3228825\u003c/code\u003e\u003c/a\u003e Bump the actions group with 2 updates (\u003ca href=\"https://redirect.github.com/FaradayInstitution/BPX/issues/116\"\u003e#116\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FaradayInstitution/BPX/commit/3b068a52d8ca9ef6e5d8a73daa86f5d5b1a19a41\"\u003e\u003ccode\u003e3b068a5\u003c/code\u003e\u003c/a\u003e Add a 'partial' model type (\u003ca href=\"https://redirect.github.com/FaradayInstitution/BPX/issues/115\"\u003e#115\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FaradayInstitution/BPX/commit/22d8f3b61b07f6eed11e92b33c78d73b96625cae\"\u003e\u003ccode\u003e22d8f3b\u003c/code\u003e\u003c/a\u003e feat: adds a 'State' section with lists of materials (\u003ca href=\"https://redirect.github.com/FaradayInstitution/BPX/issues/113\"\u003e#113\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FaradayInstitution/BPX/commit/6710440832ab01406e168b18a426de6087f1ec3d\"\u003e\u003ccode\u003e6710440\u003c/code\u003e\u003c/a\u003e Bump the actions group across 1 directory with 5 updates (\u003ca href=\"https://redirect.github.com/FaradayInstitution/BPX/issues/110\"\u003e#110\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FaradayInstitution/BPX/commit/0cf060d01ad9bab08c001d1af8c3c85d7d2477a1\"\u003e\u003ccode\u003e0cf060d\u003c/code\u003e\u003c/a\u003e Add hysteresis to schema (\u003ca href=\"https://redirect.github.com/FaradayInstitution/BPX/issues/102\"\u003e#102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FaradayInstitution/BPX/commit/2d3c84ffd64f708d7e6cff2c91a47c83c23abf79\"\u003e\u003ccode\u003e2d3c84f\u003c/code\u003e\u003c/a\u003e remove thermal conductivity from schema (\u003ca href=\"https://redirect.github.com/FaradayInstitution/BPX/issues/109\"\u003e#109\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FaradayInstitution/BPX/commit/e3539f580c720ce131f70a0afdc894c07f7c166f\"\u003e\u003ccode\u003ee3539f5\u003c/code\u003e\u003c/a\u003e Drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/FaradayInstitution/BPX/issues/108\"\u003e#108\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FaradayInstitution/BPX/commit/218b28dc1c1608e6803014149ccc4ac892613d75\"\u003e\u003ccode\u003e218b28d\u003c/code\u003e\u003c/a\u003e Bump the actions group across 1 directory with 3 updates (\u003ca href=\"https://redirect.github.com/FaradayInstitution/BPX/issues/92\"\u003e#92\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/FaradayInstitution/BPX/compare/v0.5.0...v1.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydata-sphinx-theme` from 0.16.1 to 0.17.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydata/pydata-sphinx-theme/releases\"\u003epydata-sphinx-theme's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.17.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix docs build with sphinx 'extensions' config key by \u003ca href=\"https://github.com/Yann-P\"\u003e\u003ccode\u003e@​Yann-P\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2352\"\u003epydata/pydata-sphinx-theme#2352\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix default behavior when shorten_urls is unset by \u003ca href=\"https://github.com/hntk03\"\u003e\u003ccode\u003e@​hntk03\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2351\"\u003epydata/pydata-sphinx-theme#2351\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix search input receiving keystrokes after escape dismiss in Safari by \u003ca href=\"https://github.com/tmchow\"\u003e\u003ccode\u003e@​tmchow\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2338\"\u003epydata/pydata-sphinx-theme#2338\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace broken Unsplash image URLs with Picsum in light-dark guide by \u003ca href=\"https://github.com/tmchow\"\u003e\u003ccode\u003e@​tmchow\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2341\"\u003epydata/pydata-sphinx-theme#2341\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efeat: add disable_search theme option by \u003ca href=\"https://github.com/PhilipSchmid\"\u003e\u003ccode\u003e@​PhilipSchmid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2315\"\u003epydata/pydata-sphinx-theme#2315\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDependencies\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBump pydata/pydata-sphinx-theme/.github/workflows/docs.yml from 43f9003549c495bcb43483fa21b6c1c396247f39 to cd00a86a87aba3903543c00c5ce5f009c436e0b1 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/pydata/pydata-sphinx-theme/pull/2342\"\u003epydata/pydata-sphinx-theme#2342\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pydata/pydata-sphinx-theme/.github/workflows/CI.yml from e8db643b990df73812cf9397bc0f8cfa1164e4d3 to cd00a86a87aba3903543c00c5ce5f009c436e0b1 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/pydata/pydata-sphinx-theme/pull/2345\"\u003epydata/pydata-sphinx-theme#2345\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump octokit/request-action from 2.4.0 to 3.0.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2346\"\u003epydata/pydata-sphinx-theme#2346\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/PhilipSchmid\"\u003e\u003ccode\u003e@​PhilipSchmid\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2315\"\u003epydata/pydata-sphinx-theme#2315\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tmchow\"\u003e\u003ccode\u003e@​tmchow\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2338\"\u003epydata/pydata-sphinx-theme#2338\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydata/pydata-sphinx-theme/compare/v0.17.0...v0.17.1\"\u003ehttps://github.com/pydata/pydata-sphinx-theme/compare/v0.17.0...v0.17.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.17.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBUG - Add \u003ccode\u003e--pst-color-heading\u003c/code\u003e fallback by \u003ca href=\"https://github.com/trallard\"\u003e\u003ccode\u003e@​trallard\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2082\"\u003epydata/pydata-sphinx-theme#2082\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate hooks 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/pydata/pydata-sphinx-theme/pull/2091\"\u003epydata/pydata-sphinx-theme#2091\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd search-as-you-type (inline search results) feature by \u003ca href=\"https://github.com/kaycebasques\"\u003e\u003ccode\u003e@​kaycebasques\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2093\"\u003epydata/pydata-sphinx-theme#2093\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupdate ReadTheDocs settings file by \u003ca href=\"https://github.com/drammock\"\u003e\u003ccode\u003e@​drammock\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2083\"\u003epydata/pydata-sphinx-theme#2083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStrip whitespace from announcement file before processing. by \u003ca href=\"https://github.com/AAriam\"\u003e\u003ccode\u003e@​AAriam\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2105\"\u003epydata/pydata-sphinx-theme#2105\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for versionremoved directive by \u003ca href=\"https://github.com/stevepiercy\"\u003e\u003ccode\u003e@​stevepiercy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2087\"\u003epydata/pydata-sphinx-theme#2087\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBUG - center search dialog on wide screens by \u003ca href=\"https://github.com/gabalafou\"\u003e\u003ccode\u003e@​gabalafou\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2085\"\u003epydata/pydata-sphinx-theme#2085\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix brand color example by \u003ca href=\"https://github.com/drammock\"\u003e\u003ccode\u003e@​drammock\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2104\"\u003epydata/pydata-sphinx-theme#2104\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFIX - Pin Astroid to fix Read the Docs by \u003ca href=\"https://github.com/gabalafou\"\u003e\u003ccode\u003e@​gabalafou\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2126\"\u003epydata/pydata-sphinx-theme#2126\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFIX - Remove broken Plotly example until fixed by \u003ca href=\"https://github.com/gabalafou\"\u003e\u003ccode\u003e@​gabalafou\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2124\"\u003epydata/pydata-sphinx-theme#2124\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFIX - const reassignment by \u003ca href=\"https://github.com/gabalafou\"\u003e\u003ccode\u003e@​gabalafou\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2121\"\u003epydata/pydata-sphinx-theme#2121\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDOC - clearer logo recommendation by \u003ca href=\"https://github.com/gabalafou\"\u003e\u003ccode\u003e@​gabalafou\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2120\"\u003epydata/pydata-sphinx-theme#2120\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate hooks 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/pydata/pydata-sphinx-theme/pull/2118\"\u003epydata/pydata-sphinx-theme#2118\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpload Playwright trace if test fails by \u003ca href=\"https://github.com/gabalafou\"\u003e\u003ccode\u003e@​gabalafou\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2122\"\u003epydata/pydata-sphinx-theme#2122\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHighlight headings when the user navigates to them by \u003ca href=\"https://github.com/gabalafou\"\u003e\u003ccode\u003e@​gabalafou\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2132\"\u003epydata/pydata-sphinx-theme#2132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix missing paren in example code by \u003ca href=\"https://github.com/drammock\"\u003e\u003ccode\u003e@​drammock\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2134\"\u003epydata/pydata-sphinx-theme#2134\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdates for file src/pydata_sphinx_theme/locale/en/LC_MESSAGES/sphinx.po in de by \u003ca href=\"https://github.com/transifex-integration\"\u003e\u003ccode\u003e@​transifex-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2136\"\u003epydata/pydata-sphinx-theme#2136\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[MAINT] Bump version to 0.16.2dev0 by \u003ca href=\"https://github.com/peytondmurray\"\u003e\u003ccode\u003e@​peytondmurray\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2137\"\u003epydata/pydata-sphinx-theme#2137\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMAINT - Update release instructions by \u003ca href=\"https://github.com/trallard\"\u003e\u003ccode\u003e@​trallard\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2138\"\u003epydata/pydata-sphinx-theme#2138\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[DOC] Create accessibility statement by \u003ca href=\"https://github.com/isabela-pf\"\u003e\u003ccode\u003e@​isabela-pf\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2135\"\u003epydata/pydata-sphinx-theme#2135\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReposition the admonition title icon to the top of the paragraph in m… by \u003ca href=\"https://github.com/stevepiercy\"\u003e\u003ccode\u003e@​stevepiercy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2100\"\u003epydata/pydata-sphinx-theme#2100\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ecleanup UX inspiration page by \u003ca href=\"https://github.com/drammock\"\u003e\u003ccode\u003e@​drammock\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2141\"\u003epydata/pydata-sphinx-theme#2141\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/pydata/pydata-sphinx-theme/commit/a4986faa4b8241e041634d39ca6ed0e30c175240\"\u003e\u003ccode\u003ea4986fa\u003c/code\u003e\u003c/a\u003e bump: 0.17.0 → 0.17.1 (\u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/issues/2355\"\u003e#2355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydata/pydata-sphinx-theme/commit/ff8be647971c91f759ef20222355ea57cc39362f\"\u003e\u003ccode\u003eff8be64\u003c/code\u003e\u003c/a\u003e Fix default behavior when shorten_urls is unset (\u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/issues/2351\"\u003e#2351\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydata/pydata-sphinx-theme/commit/086775948a2e98ede34ccc0568508127eac5dc92\"\u003e\u003ccode\u003e0867759\u003c/code\u003e\u003c/a\u003e Replace broken Unsplash image URLs with Picsum in light-dark guide (\u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/issues/2341\"\u003e#2341\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydata/pydata-sphinx-theme/commit/56157e947983f5dee69650619e4c991ebe1016ba\"\u003e\u003ccode\u003e56157e9\u003c/code\u003e\u003c/a\u003e Bump octokit/request-action from 2.4.0 to 3.0.0 (\u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/issues/2346\"\u003e#2346\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydata/pydata-sphinx-theme/commit/8cce21de32c72ae5ab063cf14152ea17704b66c8\"\u003e\u003ccode\u003e8cce21d\u003c/code\u003e\u003c/a\u003e Bump pydata/pydata-sphinx-theme/.github/workflows/CI.yml from e8db643b990df73...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydata/pydata-sphinx-theme/commit/30b4830ab76f28b4e4e752ddd82e589cfef59a22\"\u003e\u003ccode\u003e30b4830\u003c/code\u003e\u003c/a\u003e Bump pydata/pydata-sphinx-theme/.github/workflows/docs.yml from 43f9003549c49...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydata/pydata-sphinx-theme/commit/6673b56f499fa54c40c2c0c828ca21ba3f0d40c1\"\u003e\u003ccode\u003e6673b56\u003c/code\u003e\u003c/a\u003e Fix docs build with sphinx 'extensions' config key (\u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/issues/2352\"\u003e#2352\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydata/pydata-sphinx-theme/commit/ebc3f1723a51750e7e3bc3b0851d7fa88a467c83\"\u003e\u003ccode\u003eebc3f17\u003c/code\u003e\u003c/a\u003e Fix search input receiving keystrokes after escape dismiss in Safari (\u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/issues/2338\"\u003e#2338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydata/pydata-sphinx-theme/commit/8e676945c216502bc883baf1ccd4ef70244696f7\"\u003e\u003ccode\u003e8e67694\u003c/code\u003e\u003c/a\u003e feat: add disable_search theme option (\u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/issues/2315\"\u003e#2315\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydata/pydata-sphinx-theme/commit/cd00a86a87aba3903543c00c5ce5f009c436e0b1\"\u003e\u003ccode\u003ecd00a86\u003c/code\u003e\u003c/a\u003e bump: 0.16.2.dev0 -\u0026gt; 0.17.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydata/pydata-sphinx-theme/compare/v0.16.1...v0.17.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ipykernel` from 7.1.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/ipython/ipykernel/releases\"\u003eipykernel's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.2.0\u003c/h2\u003e\n\u003ch2\u003e7.2.0\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/ipykernel/compare/39eaf96a...1630c4f7d5365918c4f06cf3caee3c278b52afc2\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eNew features added\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded kernel_protocol_version to kernelspec \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1483\"\u003e#1483\u003c/a\u003e (\u003ca href=\"https://github.com/JohanMabille\"\u003e\u003ccode\u003e@​JohanMabille\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReplaced PUB socket with XPUB socket \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1482\"\u003e#1482\u003c/a\u003e (\u003ca href=\"https://github.com/JohanMabille\"\u003e\u003ccode\u003e@​JohanMabille\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/SylvainCorlay\"\u003e\u003ccode\u003e@​SylvainCorlay\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ccordoba12\"\u003e\u003ccode\u003e@​ccordoba12\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eEnhancements made\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMade IOPubThread constructor backward compatible \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1492\"\u003e#1492\u003c/a\u003e (\u003ca href=\"https://github.com/JohanMabille\"\u003e\u003ccode\u003e@​JohanMabille\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/SylvainCorlay\"\u003e\u003ccode\u003e@​SylvainCorlay\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdvertizes kernel protocol 5.5 \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1488\"\u003e#1488\u003c/a\u003e (\u003ca href=\"https://github.com/JohanMabille\"\u003e\u003ccode\u003e@​JohanMabille\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpgrade to jupyter_client 8.8.0 \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1487\"\u003e#1487\u003c/a\u003e (\u003ca href=\"https://github.com/JohanMabille\"\u003e\u003ccode\u003e@​JohanMabille\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement kernel-side callstack filtering for internal frames \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1481\"\u003e#1481\u003c/a\u003e (\u003ca href=\"https://github.com/arjxn-py\"\u003e\u003ccode\u003e@​arjxn-py\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/JohanMabille\"\u003e\u003ccode\u003e@​JohanMabille\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd close event for wx timer app in loop_wx \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1478\"\u003e#1478\u003c/a\u003e (\u003ca href=\"https://github.com/newville\"\u003e\u003ccode\u003e@​newville\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\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\u003eTemporarily revert \u0026quot;Test changing base method to async after (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1464\"\u003e#1464\u003c/a\u003e)\u0026quot; \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1493\"\u003e#1493\u003c/a\u003e (\u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/JohanMabille\"\u003e\u003ccode\u003e@​JohanMabille\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate pytest requirement from \u0026lt;9,\u0026gt;=7.0 to \u0026gt;=7.0,\u0026lt;10 in the actions group across 1 directory \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1489\"\u003e#1489\u003c/a\u003e (\u003ca href=\"https://github.com/JohanMabille\"\u003e\u003ccode\u003e@​JohanMabille\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved spyder downstream tests \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1486\"\u003e#1486\u003c/a\u003e (\u003ca href=\"https://github.com/JohanMabille\"\u003e\u003ccode\u003e@​JohanMabille\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump scientific-python/upload-nightly-action from 0.6.2 to 0.6.3 in the actions group \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1484\"\u003e#1484\u003c/a\u003e (\u003ca href=\"https://github.com/JohanMabille\"\u003e\u003ccode\u003e@​JohanMabille\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix linting errors \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1480\"\u003e#1480\u003c/a\u003e (\u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 5 to 6 in the actions group \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1479\"\u003e#1479\u003c/a\u003e (\u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: update pre-commit hooks \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1472\"\u003e#1472\u003c/a\u003e (\u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: update pre-commit hooks \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1467\"\u003e#1467\u003c/a\u003e (\u003ca href=\"https://github.com/JohanMabille\"\u003e\u003ccode\u003e@​JohanMabille\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTest changing base method to async after \u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1295\"\u003e#1295\u003c/a\u003e \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1464\"\u003e#1464\u003c/a\u003e (\u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\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/ipython/ipykernel/graphs/contributors?from=2025-10-27\u0026amp;to=2026-02-06\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/arjxn-py\"\u003e\u003ccode\u003e@​arjxn-py\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Aarjxn-py+updated%3A2025-10-27..2026-02-06\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3ACarreau+updated%3A2025-10-27..2026-02-06\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/ccordoba12\"\u003e\u003ccode\u003e@​ccordoba12\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Accordoba12+updated%3A2025-10-27..2026-02-06\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Aianthomas23+updated%3A2025-10-27..2026-02-06\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/JohanMabille\"\u003e\u003ccode\u003e@​JohanMabille\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3AJohanMabille+updated%3A2025-10-27..2026-02-06\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Aminrk+updated%3A2025-10-27..2026-02-06\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/newville\"\u003e\u003ccode\u003e@​newville\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Anewville+updated%3A2025-10-27..2026-02-06\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/SylvainCorlay\"\u003e\u003ccode\u003e@​SylvainCorlay\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3ASylvainCorlay+updated%3A2025-10-27..2026-02-06\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003ev7.2.0a1\u003c/h2\u003e\n\u003ch2\u003e7.2.0a1\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/ipykernel/compare/v7.2.0a0...220a3c6e8b24ffb3f8678925712ff3644aafb41e\"\u003eFull Changelog\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/ipython/ipykernel/blob/main/CHANGELOG.md\"\u003eipykernel's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.2.0\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/ipykernel/compare/39eaf96a...1630c4f7d5365918c4f06cf3caee3c278b52afc2\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eNew features added\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded kernel_protocol_version to kernelspec \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1483\"\u003e#1483\u003c/a\u003e (\u003ca href=\"https://github.com/JohanMabille\"\u003e\u003ccode\u003e@​JohanMabille\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReplaced PUB socket with XPUB socket \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1482\"\u003e#1482\u003c/a\u003e (\u003ca href=\"https://github.com/JohanMabille\"\u003e\u003ccode\u003e@​JohanMabille\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/SylvainCorlay\"\u003e\u003ccode\u003e@​SylvainCorlay\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ccordoba12\"\u003e\u003ccode\u003e@​ccordoba12\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eEnhancements made\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMade IOPubThread constructor backward compatible \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1492\"\u003e#1492\u003c/a\u003e (\u003ca href=\"https://github.com/JohanMabille\"\u003e\u003ccode\u003e@​JohanMabille\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/SylvainCorlay\"\u003e\u003ccode\u003e@​SylvainCorlay\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdvertises kernel protocol 5.5 \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1488\"\u003e#1488\u003c/a\u003e (\u003ca href=\"https://github.com/JohanMabille\"\u003e\u003ccode\u003e@​JohanMabille\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpgrade to jupyter_client 8.8.0 \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1487\"\u003e#1487\u003c/a\u003e (\u003ca href=\"https://github.com/JohanMabille\"\u003e\u003ccode\u003e@​JohanMabille\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement kernel-side callstack filtering for internal frames \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1481\"\u003e#1481\u003c/a\u003e (\u003ca href=\"https://github.com/arjxn-py\"\u003e\u003ccode\u003e@​arjxn-py\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/JohanMabille\"\u003e\u003ccode\u003e@​JohanMabille\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd close event for wx timer app in loop_wx \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1478\"\u003e#1478\u003c/a\u003e (\u003ca href=\"https://github.com/newville\"\u003e\u003ccode\u003e@​newville\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\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\u003eTemporarily revert \u0026quot;Test changing base method to async after (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1464\"\u003e#1464\u003c/a\u003e)\u0026quot; \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1493\"\u003e#1493\u003c/a\u003e (\u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/JohanMabille\"\u003e\u003ccode\u003e@​JohanMabille\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate pytest requirement from \u0026lt;9,\u0026gt;=7.0 to \u0026gt;=7.0,\u0026lt;10 in the actions group across 1 directory \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1489\"\u003e#1489\u003c/a\u003e (\u003ca href=\"https://github.com/JohanMabille\"\u003e\u003ccode\u003e@​JohanMabille\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved spyder downstream tests \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1486\"\u003e#1486\u003c/a\u003e (\u003ca href=\"https://github.com/JohanMabille\"\u003e\u003ccode\u003e@​JohanMabille\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump scientific-python/upload-nightly-action from 0.6.2 to 0.6.3 in the actions group \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1484\"\u003e#1484\u003c/a\u003e (\u003ca href=\"https://github.com/JohanMabille\"\u003e\u003ccode\u003e@​JohanMabille\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix linting errors \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1480\"\u003e#1480\u003c/a\u003e (\u003ca href=\"https://github.com/iant...\n\n_Description has been truncated_","html_url":"https://github.com/pybamm-team/PyBaMM/pull/5469","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/pybamm-team%2FPyBaMM/issues/5469","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/5469/packages"},{"uuid":"4334970790","node_id":"PR_kwDOPf23ns7V64Vz","number":4091,"state":"closed","title":"deps(deps): bump nox from 2025.11.12 to 2026.4.10","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":20,"pull_request":true,"closed_at":"2026-04-27T14:21:21.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-27T10:22:48.000Z","updated_at":"2026-04-28T17:54:51.000Z","time_to_close":14313,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(deps)","packages":[{"name":"nox","old_version":"2025.11.12","new_version":"2026.4.10","repository_url":null}],"path":null,"ecosystem":"pip"},"body":"## Summary of Changes — PR #4091 · `31a623f9` · 2026-04-27T11:12Z\n\n### Recent Commits\n- `31a623f Merge 0fd4383abab015e182d14d4518f02f7a76edf2ce into 1961d65b8d24e3f055dbe5dab3fd217d6868e945`\n\n---\n\n## 🎯 Merge-Readiness Scorecard\n\n**Score: 70/100 (70%) — 🔴 NOT READY** · _2026-04-27T11:12Z_\n\n| Dimension | Wt | Status |\n|-----------|----:|--------|\n| auto_fix (0 auto-fixable) | 15 | ✅ 0 auto-fixable |\n| sync_tracked_files | 12 | ❌ stale |\n| action_versions (all approved) | 12 | ✅ all approved |\n| ruff (src/ clean) | 10 | ❌ lint violations |\n| github-script ≥ v8 | 8 | ✅ all ≥ v8 |\n| Pattern 27 registered | 7 | ✅ registered |\n| download-artifact min v5 | 7 | ✅ v5 |\n| PDA entry today | 8 | ⚠️ no entry today |\n| accountability report today | 8 | ✅ today |\n| AAIS composite 97.5/100 | 13 | ✅ 97.5/100 |\n\n---\n\n## 🔄 Follow-Up Prompt\n\n```\n@copilot CTEP Mode: ON\n\nFailing dimensions to fix:\n  - sync_tracked_files\n  - ruff (src/ clean)\n  - PDA entry today\n\nRun: python3 scripts/ci/session_wrapup_autofix.py --pr-number \u003cN\u003e --activate-workflows\n```\n\n---\n\n---\n\n## 🔄 Workflow Execution Checklist\n\n### ✅ Always Required — fire automatically on every push (cannot be skipped)\n- [x] pre-merge-validation.yml — Pre-merge checks (always required)\n- [x] comment-review-gate.yml — Comment review gate (always required)\n- [x] deferral-language-gate.yml — Deferral language guard (always required)\n- [x] agent-auth-delegation.yml — Agent token delegation (always required)\n- [x] workflow-execution-gate.yml — WEC gate — parse checklist \u0026 arm allowed workflows (always required)\n\n### 🔄 Always Active — fire via push/workflow_run (need approval in Actions tab)\n- [x] copilot-agent-checkin.yml — Agent check-in / S221 guard (fires on push)\n- [x] copilot-agent-session-done.yml — Auto-post @copilot review after agent session (fires on workflow_run)\n- [x] copilot-iterative-self-healing.yml — Iterative self-healing CI loop (fires on workflow_run — needs approval)\n- [x] cost-gate.yml — Cost governance gate (called by agent-auth-delegation)\n\n### ⚡ Auto-Approve\n- [x] auto-approve-workflows — Auto-Approve workflow to run (approves all pending runs on last commit SHA)\n\n### 🧪 Opt-In: Testing \u0026 Validation\n- [x] validate.yml — Validation Pipeline (detect-secrets, ruff, pre-commit, sync-tracked)\n- [x] resilient_validation.yml — Resilient Validation Suite (full pytest, 4 shards)\n- [ ] test-rag.yml — RAG Module Tests (coverage ≥95%)\n- [x] nox_gates.yml — Nox quality gates (ruff, mypy, coverage)\n- [x] mypy-baseline.yml — mypy type-check anti-regression gate\n- [x] coverage-with-timeout.yml — Coverage with timeout guards\n- [ ] progressive-validation.yml — Progressive Validation Suite\n- [x] pre-flight-validation.yml — Pre-flight CI validation\n- [x] ci-checkpoint-validation.yml — CI Checkpoint Validation\n- [ ] data-quality-suite.yml — Data Quality \u0026 Determinism Suite\n- [x] auth-tests.yml — Authentication Tests\n- [x] pr-checks.yml — PR Checks (isolated cache, src/ scope)\n- [ ] html_visual_regression.yml — HTML Visual Regression Screenshots\n\n### 🔒 Opt-In: Security \u0026 Quality\n- [x] security-scanning-suite.yml — Full security audit (bandit, pip-audit)\n- [x] codeql-analysis.yml — CodeQL SAST analysis\n- [x] actionlint-audit.yml — Workflow compliance audit (actionlint)\n- [x] semgrep_sarif.yml — Semgrep SAST (SARIF upload)\n- [x] auto-fix-common-issues.yml — Auto-Fix Common CI Issues\n- [x] auto-fix-pr-check.yml — PR Auto-Fix Check\n- [x] code-quality-coverage-suite.yml — Code Quality \u0026 Coverage Suite\n- [x] audit-qa-suite.yml — Audit \u0026 QA Suite (Unified)\n\n### 📄 Opt-In: Documentation\n- [ ] documentation-link-checker.yml — Documentation link checker\n- [x] pages-pre-merge-validation.yml — Pages pre-merge validation\n\n### ⚙️ Opt-In: Infrastructure \u0026 Deployment\n- [x] reference-integrity.yml — Reference integrity + agent size gate\n- [x] dependency-submission.yml — Resilient dependency submission\n- [ ] docker-build-push.yml — Build \u0026 push Docker image (GHCR)\n- [ ] rust_swarm_ci.yml — Rust-Python hybrid swarm CI/CD\n- [x] root-org-validation.yml — Root organization validation\n- [x] agent-registry-validation.yml — Agent registry validation\n- [x] qa-walkthrough.yml — QA walkthrough agent\n\n\u003e **⚠️ HARDENED AGENT INSTRUCTION (non-negotiable):** This entire WEC block MUST be\n\u003e appended verbatim to **every** PR body update — including every `report_progress` call.\n\u003e Copy the WEC block from the current PR body into the `prDescription` parameter, keeping\n\u003e **all previously-checked `[x]` items checked**. Never reset a maintainer selection to `[ ]`.\n\u003e Only 'always required' items may be auto-checked. All other items preserve their current state.\n","html_url":"https://github.com/Aries-Serpent/_codex_/pull/4091","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Aries-Serpent%2F_codex_/issues/4091","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/4091/packages"},{"uuid":"4292712175","node_id":"PR_kwDORT1TBs7TzA7z","number":113,"state":"open","title":"build(deps-dev): bump nox from 2026.2.9 to 2026.4.10","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-04-20T02:17:53.000Z","updated_at":"2026-04-20T02:18:35.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps-dev)","packages":[{"name":"nox","old_version":"2026.2.9","new_version":"2026.4.10","repository_url":"https://github.com/wntrblm/nox"}],"path":null,"ecosystem":"pip"},"body":"Bumps [nox](https://github.com/wntrblm/nox) from 2026.2.9 to 2026.4.10.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/wntrblm/nox/releases\"\u003enox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2026.04.10 🧹\u003c/h2\u003e\n\u003cp\u003eThis release drops Python 3.8 and adds a \u003ccode\u003e--usage\u003c/code\u003e command for full docstrings. Our \u003ccode\u003e.nox\u003c/code\u003e dir is now ignored by default, virtualenvs are recreated if symlinks are broken (such as after a Python upgrade), and \u003ccode\u003e-t\u003c/code\u003e now selects from all available sessions.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agriyakhetarpal\"\u003e\u003ccode\u003e@​agriyakhetarpal\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scop\"\u003e\u003ccode\u003e@​scop\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.8 (reapply \u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1004\"\u003e#1004\u003c/a\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/wntrblm/nox/pull/1062\"\u003ewntrblm/nox#1062\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003enox --usage \u0026lt;session\u0026gt;\u003c/code\u003e command to print full docstrings for provided sessions by \u003ca href=\"https://github.com/agriyakhetarpal\"\u003e\u003ccode\u003e@​agriyakhetarpal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1064\"\u003ewntrblm/nox#1064\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrite out \u003ccode\u003e.gitignore\u003c/code\u003e/\u003ccode\u003eCACHEDIR.TAG\u003c/code\u003e to \u003ccode\u003e.nox\u003c/code\u003e dir by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1072\"\u003ewntrblm/nox#1072\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRecreate venv if broken symlinks are present by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1078\"\u003ewntrblm/nox#1078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore default selection for tags and keywords by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1057\"\u003ewntrblm/nox#1057\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMore uv variables set by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1056\"\u003ewntrblm/nox#1056\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore forcecolor falsy by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1073\"\u003ewntrblm/nox#1073\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFully pin actions in composite action by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1080\"\u003ewntrblm/nox#1080\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePin CI to working conda version by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1079\"\u003ewntrblm/nox#1079\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse prek by \u003ca href=\"https://github.com/agriyakhetarpal\"\u003e\u003ccode\u003e@​agriyakhetarpal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1065\"\u003ewntrblm/nox#1065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSwitch artifact attestations to actions/attest by \u003ca href=\"https://github.com/scop\"\u003e\u003ccode\u003e@​scop\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1070\"\u003ewntrblm/nox#1070\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse zizmor by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1082\"\u003ewntrblm/nox#1082\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/wntrblm/nox/compare/2026.02.09...2026.04.10\"\u003ehttps://github.com/wntrblm/nox/compare/2026.02.09...2026.04.10\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/wntrblm/nox/blob/main/CHANGELOG.md\"\u003enox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003e2026.04.10\u003c/h2\u003e\n\u003cp\u003eThis release drops Python 3.8 and adds a \u003ccode\u003e--usage\u003c/code\u003e command for full docstrings.\nOur \u003ccode\u003e.nox\u003c/code\u003e dir is now ignored by default, virtualenvs are recreated if symlinks\nare broken (such as after a Python upgrade), and \u003ccode\u003e-t\u003c/code\u003e now selects from all\navailable sessions.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agriyakhetarpal\"\u003e\u003ccode\u003e@​agriyakhetarpal\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scop\"\u003e\u003ccode\u003e@​scop\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.8 (reapply \u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1004\"\u003e#1004\u003c/a\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/wntrblm/nox/pull/1062\"\u003ewntrblm/nox#1062\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003enox --usage \u0026lt;session\u0026gt;\u003c/code\u003e command to print full docstrings for provided sessions by \u003ca href=\"https://github.com/agriyakhetarpal\"\u003e\u003ccode\u003e@​agriyakhetarpal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1064\"\u003ewntrblm/nox#1064\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrite out \u003ccode\u003e.gitignore\u003c/code\u003e/\u003ccode\u003eCACHEDIR.TAG\u003c/code\u003e to \u003ccode\u003e.nox\u003c/code\u003e dir by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1072\"\u003ewntrblm/nox#1072\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRecreate venv if broken symlinks are present by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1078\"\u003ewntrblm/nox#1078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore default selection for tags and keywords by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1057\"\u003ewntrblm/nox#1057\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMore uv variables set by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1056\"\u003ewntrblm/nox#1056\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore forcecolor falsy by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1073\"\u003ewntrblm/nox#1073\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFully pin actions in composite action by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1080\"\u003ewntrblm/nox#1080\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePin CI to working conda version by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1079\"\u003ewntrblm/nox#1079\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse prek by \u003ca href=\"https://github.com/agriyakhetarpal\"\u003e\u003ccode\u003e@​agriyakhetarpal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1065\"\u003ewntrblm/nox#1065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSwitch artifact attestations to actions/attest by \u003ca href=\"https://github.com/scop\"\u003e\u003ccode\u003e@​scop\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1070\"\u003ewntrblm/nox#1070\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse zizmor by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1082\"\u003ewntrblm/nox#1082\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2026.02.09\u003c/h2\u003e\n\u003cp\u003eThis small release supports uv 0.10's new requirement that \u003ccode\u003e--clear\u003c/code\u003e be passed\nto clear an environment. Python 3.8 support was temporarily re-added since uv\n0.10 still supports 3.8, so nox on 3.8 was affected.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/97e345e6a26bb2c5aacff9cc4327bd4ac1b00ce6\"\u003e\u003ccode\u003e97e345e\u003c/code\u003e\u003c/a\u003e docs: add thanks section (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1083\"\u003e#1083\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/8d5c759d5d3f1f2c80ada8f05cd994c673905898\"\u003e\u003ccode\u003e8d5c759\u003c/code\u003e\u003c/a\u003e chore: prepare for 2026.04.10 (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1081\"\u003e#1081\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/2577f31eb4d6d94f18157c444464fdd1e4a7e3df\"\u003e\u003ccode\u003e2577f31\u003c/code\u003e\u003c/a\u003e ci: add zizmor (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1082\"\u003e#1082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/b6a61563737b2e42790f8ea509fe1ddd76fa464f\"\u003e\u003ccode\u003eb6a6156\u003c/code\u003e\u003c/a\u003e fix: fully pin actions in composite action (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1080\"\u003e#1080\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/4c7a2151c538b739337dbbd759aaf440fa1991ac\"\u003e\u003ccode\u003e4c7a215\u003c/code\u003e\u003c/a\u003e fix: write out .gitignore/CACHEDIR.TAG to our dir (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1072\"\u003e#1072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/47cb9c300e07c3a8ca4d5b240dad1a178a65dcdb\"\u003e\u003ccode\u003e47cb9c3\u003c/code\u003e\u003c/a\u003e fix: ignore default selection for tags and keywords (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1057\"\u003e#1057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/63dcab98ecd4f784537a3c1fa1319bac6cbf2436\"\u003e\u003ccode\u003e63dcab9\u003c/code\u003e\u003c/a\u003e fix: more uv variables set (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1056\"\u003e#1056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/e0f64e6c3cb24e3f870f4df8dd38830e03546dce\"\u003e\u003ccode\u003ee0f64e6\u003c/code\u003e\u003c/a\u003e fix: recreate if broken symlinks are present (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1078\"\u003e#1078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/bf9095287afacc1f5b94e5da54f4dbed4ccce875\"\u003e\u003ccode\u003ebf90952\u003c/code\u003e\u003c/a\u003e tests: pin to working conda version (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1079\"\u003e#1079\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/4ff681f169c4043ce3b3d19cba1eadd66720bf1d\"\u003e\u003ccode\u003e4ff681f\u003c/code\u003e\u003c/a\u003e fix: ignore forcecolor falsy (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1073\"\u003e#1073\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/wntrblm/nox/compare/2026.02.09...2026.04.10\"\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=nox\u0026package-manager=uv\u0026previous-version=2026.2.9\u0026new-version=2026.4.10)](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\n\u003c!-- devin-review-badge-begin --\u003e\n\n---\n\n\u003ca href=\"https://app.devin.ai/review/alexeev-prog/nadzoring/pull/113\" target=\"_blank\"\u003e\n  \u003cpicture\u003e\n    \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://static.devin.ai/assets/gh-open-in-devin-review-dark.svg?v=1\"\u003e\n    \u003cimg src=\"https://static.devin.ai/assets/gh-open-in-devin-review-light.svg?v=1\" alt=\"Open in Devin Review\"\u003e\n  \u003c/picture\u003e\n\u003c/a\u003e\n\u003c!-- devin-review-badge-end --\u003e\n","html_url":"https://github.com/alexeev-prog/nadzoring/pull/113","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexeev-prog%2Fnadzoring/issues/113","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/113/packages"},{"uuid":"4250672874","node_id":"PR_kwDOKs8kH87R17QB","number":67,"state":"open","title":"Update nox requirement from \u003c2026.3.0,\u003e=2023.4.22 to \u003e=2023.4.22,\u003c2026.5.0","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-13T01:34:01.000Z","updated_at":"2026-04-13T01:34:02.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Update","packages":[{"name":"nox","old_version":"\u003c2026.3.0,\u003e=2023.4.22","new_version":"\u003e=2023.4.22,\u003c2026.5.0","repository_url":"https://github.com/wntrblm/nox"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [nox](https://github.com/wntrblm/nox) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/wntrblm/nox/blob/main/CHANGELOG.md\"\u003enox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003e2026.04.10\u003c/h2\u003e\n\u003cp\u003eThis release drops Python 3.8 and adds a \u003ccode\u003e--usage\u003c/code\u003e command for full docstrings.\nOur \u003ccode\u003e.nox\u003c/code\u003e dir is now ignored by default, virtualenvs are recreated if symlinks\nare broken (such as after a Python upgrade), and \u003ccode\u003e-t\u003c/code\u003e now selects from all\navailable sessions.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agriyakhetarpal\"\u003e\u003ccode\u003e@​agriyakhetarpal\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scop\"\u003e\u003ccode\u003e@​scop\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.8 (reapply \u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1004\"\u003e#1004\u003c/a\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/wntrblm/nox/pull/1062\"\u003ewntrblm/nox#1062\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003enox --usage \u0026lt;session\u0026gt;\u003c/code\u003e command to print full docstrings for provided sessions by \u003ca href=\"https://github.com/agriyakhetarpal\"\u003e\u003ccode\u003e@​agriyakhetarpal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1064\"\u003ewntrblm/nox#1064\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrite out \u003ccode\u003e.gitignore\u003c/code\u003e/\u003ccode\u003eCACHEDIR.TAG\u003c/code\u003e to \u003ccode\u003e.nox\u003c/code\u003e dir by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1072\"\u003ewntrblm/nox#1072\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRecreate venv if broken symlinks are present by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1078\"\u003ewntrblm/nox#1078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore default selection for tags and keywords by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1057\"\u003ewntrblm/nox#1057\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMore uv variables set by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1056\"\u003ewntrblm/nox#1056\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore forcecolor falsy by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1073\"\u003ewntrblm/nox#1073\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFully pin actions in composite action by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1080\"\u003ewntrblm/nox#1080\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePin CI to working conda version by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1079\"\u003ewntrblm/nox#1079\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse prek by \u003ca href=\"https://github.com/agriyakhetarpal\"\u003e\u003ccode\u003e@​agriyakhetarpal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1065\"\u003ewntrblm/nox#1065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSwitch artifact attestations to actions/attest by \u003ca href=\"https://github.com/scop\"\u003e\u003ccode\u003e@​scop\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1070\"\u003ewntrblm/nox#1070\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse zizmor by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1082\"\u003ewntrblm/nox#1082\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2026.02.09\u003c/h2\u003e\n\u003cp\u003eThis small release supports uv 0.10's new requirement that \u003ccode\u003e--clear\u003c/code\u003e be passed\nto clear an environment. Python 3.8 support was temporarily re-added since uv\n0.10 still supports 3.8, so nox on 3.8 was affected.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/97e345e6a26bb2c5aacff9cc4327bd4ac1b00ce6\"\u003e\u003ccode\u003e97e345e\u003c/code\u003e\u003c/a\u003e docs: add thanks section (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1083\"\u003e#1083\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/8d5c759d5d3f1f2c80ada8f05cd994c673905898\"\u003e\u003ccode\u003e8d5c759\u003c/code\u003e\u003c/a\u003e chore: prepare for 2026.04.10 (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1081\"\u003e#1081\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/2577f31eb4d6d94f18157c444464fdd1e4a7e3df\"\u003e\u003ccode\u003e2577f31\u003c/code\u003e\u003c/a\u003e ci: add zizmor (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1082\"\u003e#1082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/b6a61563737b2e42790f8ea509fe1ddd76fa464f\"\u003e\u003ccode\u003eb6a6156\u003c/code\u003e\u003c/a\u003e fix: fully pin actions in composite action (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1080\"\u003e#1080\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/4c7a2151c538b739337dbbd759aaf440fa1991ac\"\u003e\u003ccode\u003e4c7a215\u003c/code\u003e\u003c/a\u003e fix: write out .gitignore/CACHEDIR.TAG to our dir (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1072\"\u003e#1072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/47cb9c300e07c3a8ca4d5b240dad1a178a65dcdb\"\u003e\u003ccode\u003e47cb9c3\u003c/code\u003e\u003c/a\u003e fix: ignore default selection for tags and keywords (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1057\"\u003e#1057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/63dcab98ecd4f784537a3c1fa1319bac6cbf2436\"\u003e\u003ccode\u003e63dcab9\u003c/code\u003e\u003c/a\u003e fix: more uv variables set (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1056\"\u003e#1056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/e0f64e6c3cb24e3f870f4df8dd38830e03546dce\"\u003e\u003ccode\u003ee0f64e6\u003c/code\u003e\u003c/a\u003e fix: recreate if broken symlinks are present (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1078\"\u003e#1078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/bf9095287afacc1f5b94e5da54f4dbed4ccce875\"\u003e\u003ccode\u003ebf90952\u003c/code\u003e\u003c/a\u003e tests: pin to working conda version (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1079\"\u003e#1079\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/4ff681f169c4043ce3b3d19cba1eadd66720bf1d\"\u003e\u003ccode\u003e4ff681f\u003c/code\u003e\u003c/a\u003e fix: ignore forcecolor falsy (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1073\"\u003e#1073\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/wntrblm/nox/compare/2023.04.22...2026.04.10\"\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/Cray-HPE/vtds-provider-gcp/pull/67","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cray-HPE%2Fvtds-provider-gcp/issues/67","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/67/packages"},{"uuid":"4191104897","node_id":"PR_kwDOI0bBw87PblnF","number":146,"state":"open","title":"Bump the python-dependencies group with 8 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-02T02:56:53.000Z","updated_at":"2026-04-11T06:08:57.298Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-dependencies","update_count":8,"packages":[{"name":"nox","old_version":"2025.11.12","new_version":"2026.2.9","repository_url":"https://github.com/wntrblm/nox"},{"name":"prek","old_version":"0.2.28","new_version":"0.3.8","repository_url":"https://github.com/j178/prek"},{"name":"ruff","old_version":"0.14.11","new_version":"0.15.8","repository_url":"https://github.com/astral-sh/ruff"},{"name":"mypy","old_version":"1.19.1","new_version":"1.20.0","repository_url":"https://github.com/python/mypy"},{"name":"ty","old_version":"0.0.12","new_version":"0.0.27","repository_url":"https://github.com/astral-sh/ty"},{"name":"coverage","old_version":"7.13.1","new_version":"7.13.5","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"pytest-codspeed","old_version":"4.2.0","new_version":"4.3.0","repository_url":"https://github.com/CodSpeedHQ/pytest-codspeed"},{"name":"sphinx-autoapi","old_version":"3.6.1","new_version":"3.8.0","repository_url":"https://github.com/readthedocs/sphinx-autoapi"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-dependencies group with 8 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [nox](https://github.com/wntrblm/nox) | `2025.11.12` | `2026.2.9` |\n| [prek](https://github.com/j178/prek) | `0.2.28` | `0.3.8` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.11` | `0.15.8` |\n| [mypy](https://github.com/python/mypy) | `1.19.1` | `1.20.0` |\n| [ty](https://github.com/astral-sh/ty) | `0.0.12` | `0.0.27` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.13.1` | `7.13.5` |\n| [pytest-codspeed](https://github.com/CodSpeedHQ/pytest-codspeed) | `4.2.0` | `4.3.0` |\n| [sphinx-autoapi](https://github.com/readthedocs/sphinx-autoapi) | `3.6.1` | `3.8.0` |\n\nUpdates `nox` from 2025.11.12 to 2026.2.9\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/wntrblm/nox/releases\"\u003enox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2026.02.09 ❤️‍🩹\u003c/h2\u003e\n\u003cp\u003eThis small release supports uv 0.10's new requirement that \u003ccode\u003e--clear\u003c/code\u003e be passed to clear an environment. Python 3.8 support was temporarily re-added since uv 0.10 still supports 3.8, so nox on 3.8 was affected.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport uv 0.10.0 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1055\"\u003ewntrblm/nox#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow tags by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1058\"\u003ewntrblm/nox#1058\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter support for multiple session decorators by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1048\"\u003ewntrblm/nox#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize extra \u003ccode\u003etox-to-nox\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/wntrblm/nox/pull/1059\"\u003ewntrblm/nox#1059\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter typing for \u003ccode\u003e.run\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/wntrblm/nox/pull/1037\"\u003ewntrblm/nox#1037\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix conda CI job by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1035\"\u003ewntrblm/nox#1035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1004\"\u003ewntrblm/nox#1004\u003c/a\u003e and revert in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1060\"\u003ewntrblm/nox#1060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix action test by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1036\"\u003ewntrblm/nox#1036\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump packaging dep to remove pyparsing by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1047\"\u003ewntrblm/nox#1047\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid newest docutils until sphinx-tabs updates by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1052\"\u003ewntrblm/nox#1052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize the naming of constants to enhance readability by \u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1041\"\u003ewntrblm/nox#1041\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDuplicated session name in cookbook by \u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1050\"\u003ewntrblm/nox#1050\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/wntrblm/nox/blob/main/CHANGELOG.md\"\u003enox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003e2026.02.09\u003c/h2\u003e\n\u003cp\u003eThis small release supports uv 0.10's new requirement that \u003ccode\u003e--clear\u003c/code\u003e be passed\nto clear an environment. Python 3.8 support was temporarily re-added since uv\n0.10 still supports 3.8, so nox on 3.8 was affected.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport uv 0.10.0 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1055\"\u003ewntrblm/nox#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow tags by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1058\"\u003ewntrblm/nox#1058\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter support for multiple session decorators by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1048\"\u003ewntrblm/nox#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize extra \u003ccode\u003etox-to-nox\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/wntrblm/nox/pull/1059\"\u003ewntrblm/nox#1059\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter typing for \u003ccode\u003e.run\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/wntrblm/nox/pull/1037\"\u003ewntrblm/nox#1037\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix conda CI job by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1035\"\u003ewntrblm/nox#1035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1004\"\u003ewntrblm/nox#1004\u003c/a\u003e and revert in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1060\"\u003ewntrblm/nox#1060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix action test by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1036\"\u003ewntrblm/nox#1036\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump packaging dep to remove pyparsing by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1047\"\u003ewntrblm/nox#1047\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid newest docutils until sphinx-tabs updates by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1052\"\u003ewntrblm/nox#1052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize the naming of constants to enhance readability by \u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1041\"\u003ewntrblm/nox#1041\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDuplicated session name in cookbook by \u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1050\"\u003ewntrblm/nox#1050\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/wntrblm/nox/commit/5a277b752f6094150e25237d47c34168e2b7526e\"\u003e\u003ccode\u003e5a277b7\u003c/code\u003e\u003c/a\u003e docs: prepare for release (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1061\"\u003e#1061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/90a8aef54122e188dbea80680552507517523ced\"\u003e\u003ccode\u003e90a8aef\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;feat: drop Python 3.8 (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1004\"\u003e#1004\u003c/a\u003e)\u0026quot; (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1060\"\u003e#1060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/264f4577846b30c3f84bb313c8d3f5c497ab7cce\"\u003e\u003ccode\u003e264f457\u003c/code\u003e\u003c/a\u003e chore: normalize extra (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1059\"\u003e#1059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/516d9bc3e134d7fe0f6a370c64a9c52b74a18a85\"\u003e\u003ccode\u003e516d9bc\u003c/code\u003e\u003c/a\u003e fix: show tags (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1058\"\u003e#1058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/7207b3fbde52febfa72a29141440179219b9f272\"\u003e\u003ccode\u003e7207b3f\u003c/code\u003e\u003c/a\u003e fix: support uv 0.10.0 (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/11eee27ceb73fb77a8b4351718ef5e14821155ee\"\u003e\u003ccode\u003e11eee27\u003c/code\u003e\u003c/a\u003e fix: better support for multiple session decorators (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1048\"\u003e#1048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/c72769b1ee7bc729c08c93f518e536364cecee8e\"\u003e\u003ccode\u003ec72769b\u003c/code\u003e\u003c/a\u003e docs: duplicated session name in cookbook (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1050\"\u003e#1050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/a0660b17967de97c10f56b12f67cc5667e79bb08\"\u003e\u003ccode\u003ea0660b1\u003c/code\u003e\u003c/a\u003e docs: avoid newest docutils until sphinx-tabs updates (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1052\"\u003e#1052\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/f8edf5fec2c819ec502566d2005a8346c9363334\"\u003e\u003ccode\u003ef8edf5f\u003c/code\u003e\u003c/a\u003e fix(types): Better typing for .run (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1037\"\u003e#1037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/5dbd95e82f43d05dfd1c60bd296d203f34108ee3\"\u003e\u003ccode\u003e5dbd95e\u003c/code\u003e\u003c/a\u003e chore: optimize the naming of constants to enhance readability (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1041\"\u003e#1041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/wntrblm/nox/compare/2025.11.12...2026.02.09\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `prek` from 0.2.28 to 0.3.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/j178/prek/releases\"\u003eprek's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.3.8\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-03-23.\u003c/p\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd experimental \u003ccode\u003elanguage: deno\u003c/code\u003e support (\u003ca href=\"https://redirect.github.com/j178/prek/pull/1516\"\u003e#1516\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003epretty-format-json\u003c/code\u003e as builtin hook (\u003ca href=\"https://redirect.github.com/j178/prek/pull/915\"\u003e#915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003echeck-vcs-permalinks\u003c/code\u003e as builtin hook (\u003ca href=\"https://redirect.github.com/j178/prek/pull/1842\"\u003e#1842\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003echeck-illegal-windows-names\u003c/code\u003e as builtin hook (\u003ca href=\"https://redirect.github.com/j178/prek/pull/1841\"\u003e#1841\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003echeck-shebang-scripts-are-executable\u003c/code\u003e builtin hook (\u003ca href=\"https://redirect.github.com/j178/prek/pull/1847\"\u003e#1847\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003edestroyed-symlinks\u003c/code\u003e builtin hook (\u003ca href=\"https://redirect.github.com/j178/prek/pull/1851\"\u003e#1851\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003efile-contents-sorter\u003c/code\u003e as builtin hook (\u003ca href=\"https://redirect.github.com/j178/prek/pull/1846\"\u003e#1846\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e--all\u003c/code\u003e flag to \u003ccode\u003eprek uninstall\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/j178/prek/pull/1817\"\u003e#1817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove file pattern parse errors (\u003ca href=\"https://redirect.github.com/j178/prek/pull/1829\"\u003e#1829\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eValidate \u003ccode\u003euv\u003c/code\u003e binary after download (\u003ca href=\"https://redirect.github.com/j178/prek/pull/1825\"\u003e#1825\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix workspace-relative added file paths (\u003ca href=\"https://redirect.github.com/j178/prek/pull/1852\"\u003e#1852\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRelax alias-anchor ratio check for check-yaml (\u003ca href=\"https://redirect.github.com/j178/prek/pull/1839\"\u003e#1839\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/j178\"\u003e\u003ccode\u003e@​j178\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shaanmajid\"\u003e\u003ccode\u003e@​shaanmajid\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\u003cli\u003e\u003ca href=\"https://github.com/feliblo\"\u003e\u003ccode\u003e@​feliblo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tiryoh\"\u003e\u003ccode\u003e@​Tiryoh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall prek 0.3.8\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.3.8/prek-installer.sh | sh\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eInstall prebuilt binaries via powershell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003epowershell -ExecutionPolicy Bypass -c \u0026quot;irm https://github.com/j178/prek/releases/download/v0.3.8/prek-installer.ps1 | iex\u0026quot;\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eInstall prebuilt binaries via Homebrew\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ebrew install prek\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/j178/prek/blob/master/CHANGELOG.md\"\u003eprek's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.3.8\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-03-23.\u003c/p\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd experimental \u003ccode\u003elanguage: deno\u003c/code\u003e support (\u003ca href=\"https://redirect.github.com/j178/prek/pull/1516\"\u003e#1516\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003epretty-format-json\u003c/code\u003e as builtin hook (\u003ca href=\"https://redirect.github.com/j178/prek/pull/915\"\u003e#915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003echeck-vcs-permalinks\u003c/code\u003e as builtin hook (\u003ca href=\"https://redirect.github.com/j178/prek/pull/1842\"\u003e#1842\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003echeck-illegal-windows-names\u003c/code\u003e as builtin hook (\u003ca href=\"https://redirect.github.com/j178/prek/pull/1841\"\u003e#1841\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003echeck-shebang-scripts-are-executable\u003c/code\u003e builtin hook (\u003ca href=\"https://redirect.github.com/j178/prek/pull/1847\"\u003e#1847\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003edestroyed-symlinks\u003c/code\u003e builtin hook (\u003ca href=\"https://redirect.github.com/j178/prek/pull/1851\"\u003e#1851\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003efile-contents-sorter\u003c/code\u003e as builtin hook (\u003ca href=\"https://redirect.github.com/j178/prek/pull/1846\"\u003e#1846\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e--all\u003c/code\u003e flag to \u003ccode\u003eprek uninstall\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/j178/prek/pull/1817\"\u003e#1817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove file pattern parse errors (\u003ca href=\"https://redirect.github.com/j178/prek/pull/1829\"\u003e#1829\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eValidate \u003ccode\u003euv\u003c/code\u003e binary after download (\u003ca href=\"https://redirect.github.com/j178/prek/pull/1825\"\u003e#1825\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix workspace-relative added file paths (\u003ca href=\"https://redirect.github.com/j178/prek/pull/1852\"\u003e#1852\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRelax alias-anchor ratio check for check-yaml (\u003ca href=\"https://redirect.github.com/j178/prek/pull/1839\"\u003e#1839\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/j178\"\u003e\u003ccode\u003e@​j178\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shaanmajid\"\u003e\u003ccode\u003e@​shaanmajid\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\u003cli\u003e\u003ca href=\"https://github.com/feliblo\"\u003e\u003ccode\u003e@​feliblo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tiryoh\"\u003e\u003ccode\u003e@​Tiryoh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.3.7\u003c/h2\u003e\n\u003cp\u003eDue to a release process failure, this version was republished as 0.3.8.\u003c/p\u003e\n\u003ch2\u003e0.3.6\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-03-16.\u003c/p\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow selectors for hook ids containing colons (\u003ca href=\"https://redirect.github.com/j178/prek/pull/1782\"\u003e#1782\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003eprek install-hooks\u003c/code\u003e to \u003ccode\u003eprek prepare-hooks\u003c/code\u003e and \u003ccode\u003eprek install --install-hooks\u003c/code\u003e to \u003ccode\u003eprek install --prepare-hooks\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/j178/prek/pull/1766\"\u003e#1766\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRetry auth-failed repo clones with terminal prompts enabled (\u003ca href=\"https://redirect.github.com/j178/prek/pull/1761\"\u003e#1761\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize \u003ccode\u003edetect_private_key\u003c/code\u003e by chunked reading and using aho-corasick (\u003ca href=\"https://redirect.github.com/j178/prek/pull/1791\"\u003e#1791\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003efix_byte_order_marker\u003c/code\u003e by shifting file contents in place (\u003ca href=\"https://redirect.github.com/j178/prek/pull/1790\"\u003e#1790\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\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/j178/prek/commit/bb412c08089c21c2a6aeec2e8d0cac64b56adf7c\"\u003e\u003ccode\u003ebb412c0\u003c/code\u003e\u003c/a\u003e Bump version to 0.3.8 (\u003ca href=\"https://redirect.github.com/j178/prek/issues/1858\"\u003e#1858\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/21de0b9ff9df17d753500cf4612ba004cb878c53\"\u003e\u003ccode\u003e21de0b9\u003c/code\u003e\u003c/a\u003e Fix permission for publish-npm\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/00e7be732e2b6a2ba9bed0bd3a220e565d0482a1\"\u003e\u003ccode\u003e00e7be7\u003c/code\u003e\u003c/a\u003e Clarify why check-illegal-windows-names stays builtin-only (\u003ca href=\"https://redirect.github.com/j178/prek/issues/1857\"\u003e#1857\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/1dbec0c329628ffdc2c8802105e2ed865e1820f1\"\u003e\u003ccode\u003e1dbec0c\u003c/code\u003e\u003c/a\u003e Bump version to 0.3.7 (\u003ca href=\"https://redirect.github.com/j178/prek/issues/1856\"\u003e#1856\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/ba62c0407849f740f84e57c1062b6243d8025093\"\u003e\u003ccode\u003eba62c04\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003epretty_format_json\u003c/code\u003e as builtin hook (\u003ca href=\"https://redirect.github.com/j178/prek/issues/915\"\u003e#915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/dbca90453a294d4fc305bb7e943dd7a0903a5218\"\u003e\u003ccode\u003edbca904\u003c/code\u003e\u003c/a\u003e Fix workspace-relative added file paths (\u003ca href=\"https://redirect.github.com/j178/prek/issues/1852\"\u003e#1852\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/24f2d627bf34800ad48448cfe3749cb6b59248dc\"\u003e\u003ccode\u003e24f2d62\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003edestroyed-symlinks\u003c/code\u003e builtin hook (\u003ca href=\"https://redirect.github.com/j178/prek/issues/1851\"\u003e#1851\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/fc529df13275f8b02ce348610e88991dc7363c2c\"\u003e\u003ccode\u003efc529df\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003echeck-shebang-scripts-are-executable\u003c/code\u003e builtin hook (\u003ca href=\"https://redirect.github.com/j178/prek/issues/1847\"\u003e#1847\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/addddb89894828315f1e8d453e956548141827bd\"\u003e\u003ccode\u003eaddddb8\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003efile-contents-sorter\u003c/code\u003e as builtin hook (\u003ca href=\"https://redirect.github.com/j178/prek/issues/1846\"\u003e#1846\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/cb3f71c3221034877d8731ce27db23b209690dde\"\u003e\u003ccode\u003ecb3f71c\u003c/code\u003e\u003c/a\u003e Add  \u003ccode\u003echeck-vcs-permalinks\u003c/code\u003e as builtin hook (\u003ca href=\"https://redirect.github.com/j178/prek/issues/1842\"\u003e#1842\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/j178/prek/compare/v0.2.28...v0.3.8\"\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.11 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.14.11...0.15.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.19.1 to 1.20.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eMypy Release Notes\u003c/h1\u003e\n\u003ch2\u003eNext Release\u003c/h2\u003e\n\u003ch2\u003eMypy 1.20\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.20.0 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\nimprovements and bug fixes. You can install it as follows:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython3 -m pip install -U mypy\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eYou can read the full documentation for this release on \u003ca href=\"http://mypy.readthedocs.io\"\u003eRead the Docs\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003ePlanned Changes to Defaults and Flags in Mypy 2.0\u003c/h3\u003e\n\u003cp\u003eAs a reminder, we are planning to enable \u003ccode\u003e--local-partial-types\u003c/code\u003e by default in mypy 2.0, which\nwill likely be the next feature release. This will often require at least minor code changes. This\noption is implicitly enabled by mypy daemon, so this makes the behavior of daemon and non-daemon\nmodes consistent.\u003c/p\u003e\n\u003cp\u003eNote that this release improves the compatibility of \u003ccode\u003e--local-partial-types\u003c/code\u003e significantly to\nmake the switch easier (see below for more).\u003c/p\u003e\n\u003cp\u003eThis can also be configured in a mypy configuration file (use \u003ccode\u003eFalse\u003c/code\u003e to disable):\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003elocal_partial_types = True\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eFor more information, refer to the\n\u003ca href=\"https://mypy.readthedocs.io/en/stable/command_line.html#cmdoption-mypy-local-partial-types\"\u003edocumentation\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eWe will also enable \u003ccode\u003e--strict-bytes\u003c/code\u003e by default in mypy 2.0. This usually requires at most\nminor code changes to adopt. For more information, refer to the\n\u003ca href=\"https://mypy.readthedocs.io/en/stable/command_line.html#cmdoption-mypy-strict-bytes\"\u003edocumentation\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eFinally, \u003ccode\u003e--allow-redefinition-new\u003c/code\u003e will be renamed to \u003ccode\u003e--allow-redefinition\u003c/code\u003e. If you want\nto continue using the older \u003ccode\u003e--allow-redefinition\u003c/code\u003e semantics which are less flexible (e.g.\nlimited support for conditional redefinitions), you can switch to \u003ccode\u003e--allow-redefinition-old\u003c/code\u003e,\nwhich is currently supported as an alias to the legacy \u003ccode\u003e--allow-redefinition\u003c/code\u003e behavior.\nTo use \u003ccode\u003e--allow-redefinition\u003c/code\u003e in the upcoming mypy 2.0, you can't use \u003ccode\u003e--no-local-partial-types\u003c/code\u003e.\nFor more information, refer to the\n\u003ca href=\"https://mypy.readthedocs.io/en/stable/command_line.html#cmdoption-mypy-allow-redefinition-new\"\u003edocumentation\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eBetter Type Narrowing\u003c/h3\u003e\n\u003cp\u003eMypy's implementation of narrowing has been substantially reworked. Mypy will now narrow more\naggressively, more consistently, and more correctly. In particular, you are likely to notice new\nnarrowing behavior in equality expressions (\u003ccode\u003e==\u003c/code\u003e), containment expressions (\u003ccode\u003ein\u003c/code\u003e),\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/770d3ca4997032dc3a1c4f0b468e9f58e8f38505\"\u003e\u003ccode\u003e770d3ca\u003c/code\u003e\u003c/a\u003e Remove +dev from version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/4738ffafc56a0d175cba06e893ffa62e756fc7e0\"\u003e\u003ccode\u003e4738ffa\u003c/code\u003e\u003c/a\u003e Changelog updates for 1.20 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21109\"\u003e#21109\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/b4f07a717c3a239a9c77808c5550fff5f2638c96\"\u003e\u003ccode\u003eb4f07a7\u003c/code\u003e\u003c/a\u003e Use 'native-parser' instead of 'native-parse' for optional dependency (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21115\"\u003e#21115\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/7bec7b7f791790b1c925cdcc573ced564fbbf065\"\u003e\u003ccode\u003e7bec7b7\u003c/code\u003e\u003c/a\u003e [mypyc] Document librt and librt.base64 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21114\"\u003e#21114\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c4825969450385cf3eb91a4fc02f273b369bc301\"\u003e\u003ccode\u003ec482596\u003c/code\u003e\u003c/a\u003e --allow-redefinition-new is no longer experimental (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21110\"\u003e#21110\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c916ca3fa79d9324dcbe130b18e24e2b5e2d1eb5\"\u003e\u003ccode\u003ec916ca3\u003c/code\u003e\u003c/a\u003e sdist: include \u003ccode\u003emisc/{diff-cache,apply-cache-diff}.py\u003c/code\u003e for `mypy/test/test_di...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/b137e4ed41d6178f6dbd0e609db56b8c1ad5384a\"\u003e\u003ccode\u003eb137e4e\u003c/code\u003e\u003c/a\u003e [mypyc] Speed up native-to-native imports within the same group (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21101\"\u003e#21101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/978b711c21adadf5dae4db80127ddf270d79af5f\"\u003e\u003ccode\u003e978b711\u003c/code\u003e\u003c/a\u003e [mypyc] Fix range loop variable off-by-one after loop exit (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21098\"\u003e#21098\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/67ada30918d1a32e1935e9ac468113e0aa002b79\"\u003e\u003ccode\u003e67ada30\u003c/code\u003e\u003c/a\u003e [stubtest] Check runtime availability of private types not marked `@type_chec...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/bdef6ef8734af07cab1bf0acadc1d8ab9add93c3\"\u003e\u003ccode\u003ebdef6ef\u003c/code\u003e\u003c/a\u003e librt cache tests: build respecting MYPY_TEST_PREFIX (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21097\"\u003e#21097\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.19.1...v1.20.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ty` from 0.0.12 to 0.0.27\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.27\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-03-31.\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix panic on debug builds when attempting to provide autocomplete suggestions for \u003ccode\u003elist[int]\u0026lt;CURSOR\u0026gt;()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24167\"\u003e#24167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix instance-attribute lookup in methods of protocol classes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24213\"\u003e#24213\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix nested global and nonlocal lookups through forwarding scopes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24279\"\u003e#24279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix panic on \u003ccode\u003elist[Annotated[()]]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24303\"\u003e#24303\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix stack overflow on \u003ccode\u003etype A = TypeIs[Callable[[], A]]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24245\"\u003e#24245\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003e_cls\u003c/code\u003e as the name of the first argument for synthesized \u003ccode\u003ecollections.namedtuple\u003c/code\u003e constructor methods (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24333\"\u003e#24333\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLSP server\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix semantic token classification for properties accessed on instances (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24065\"\u003e#24065\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGrey out unused bindings in the editor (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23305\"\u003e#23305\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCore type checking\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd bidirectional type context for TypedDict \u003ccode\u003eget()\u003c/code\u003e defaults (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24231\"\u003e#24231\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd bidirectional type context for TypedDict \u003ccode\u003epop()\u003c/code\u003e defaults (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24229\"\u003e#24229\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for functional TypedDict (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24174\"\u003e#24174\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24331\"\u003e#24331\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24295\"\u003e#24295\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBan type qualifiers in PEP-695 type aliases (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24242\"\u003e#24242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnforce \u003ccode\u003eFinal\u003c/code\u003e attribute assignment rules for annotated and augmented writes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23880\"\u003e#23880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove support for \u003ccode\u003eCallable\u003c/code\u003e type context (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23888\"\u003e#23888\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInfer lambda expressions with \u003ccode\u003eCallable\u003c/code\u003e type context (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22633\"\u003e#22633\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't incorrectly infer the type of a method as being a singleton type when it's accessed off an instance (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24039\"\u003e#24039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePropagate type context through \u003ccode\u003eawait\u003c/code\u003e expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24256\"\u003e#24256\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eResolve union-likes in emitting union attribute errors (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24263\"\u003e#24263\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eShow the user where the variable was declared as \u003ccode\u003eFinal\u003c/code\u003e when emitting a diagnostic about a \u003ccode\u003eFinal\u003c/code\u003e variable being reassigned (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24194\"\u003e#24194\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/carljm\"\u003e\u003ccode\u003e@​carljm\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\u003cli\u003e\u003ca href=\"https://github.com/oconnor663\"\u003e\u003ccode\u003e@​oconnor663\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/zanieb\"\u003e\u003ccode\u003e@​zanieb\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/Glyphack\"\u003e\u003ccode\u003e@​Glyphack\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/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ty 0.0.27\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003e\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/ty/blob/main/CHANGELOG.md\"\u003ety's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.27\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-03-31.\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix panic on debug builds when attempting to provide autocomplete suggestions for \u003ccode\u003elist[int]\u0026lt;CURSOR\u0026gt;()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24167\"\u003e#24167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix instance-attribute lookup in methods of protocol classes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24213\"\u003e#24213\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix nested global and nonlocal lookups through forwarding scopes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24279\"\u003e#24279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix panic on \u003ccode\u003elist[Annotated[()]]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24303\"\u003e#24303\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix stack overflow on \u003ccode\u003etype A = TypeIs[Callable[[], A]]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24245\"\u003e#24245\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003e_cls\u003c/code\u003e as the name of the first argument for synthesized \u003ccode\u003ecollections.namedtuple\u003c/code\u003e constructor methods (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24333\"\u003e#24333\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLSP server\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix semantic token classification for properties accessed on instances (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24065\"\u003e#24065\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGrey out unused bindings in the editor (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23305\"\u003e#23305\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCore type checking\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd bidirectional type context for TypedDict \u003ccode\u003eget()\u003c/code\u003e defaults (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24231\"\u003e#24231\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd bidirectional type context for TypedDict \u003ccode\u003epop()\u003c/code\u003e defaults (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24229\"\u003e#24229\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for functional TypedDict (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24174\"\u003e#24174\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24331\"\u003e#24331\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24295\"\u003e#24295\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBan type qualifiers in PEP-695 type aliases (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24242\"\u003e#24242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnforce \u003ccode\u003eFinal\u003c/code\u003e attribute assignment rules for annotated and augmented writes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23880\"\u003e#23880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove support for \u003ccode\u003eCallable\u003c/code\u003e type context (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23888\"\u003e#23888\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInfer lambda expressions with \u003ccode\u003eCallable\u003c/code\u003e type context (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22633\"\u003e#22633\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't incorrectly infer the type of a method as being a singleton type when it's accessed off an instance (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24039\"\u003e#24039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePropagate type context through \u003ccode\u003eawait\u003c/code\u003e expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24256\"\u003e#24256\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eResolve union-likes in emitting union attribute errors (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24263\"\u003e#24263\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eShow the user where the variable was declared as \u003ccode\u003eFinal\u003c/code\u003e when emitting a diagnostic about a \u003ccode\u003eFinal\u003c/code\u003e variable being reassigned (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24194\"\u003e#24194\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/carljm\"\u003e\u003ccode\u003e@​carljm\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\u003cli\u003e\u003ca href=\"https://github.com/oconnor663\"\u003e\u003ccode\u003e@​oconnor663\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/zanieb\"\u003e\u003ccode\u003e@​zanieb\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/Glyphack\"\u003e\u003ccode\u003e@​Glyphack\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/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.26\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-03-26.\u003c/p\u003e\n\u003ch3\u003eBug fixes\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/astral-sh/ty/commit/5c9e342c2ea67a0ac8749d32296dd3071974927a\"\u003e\u003ccode\u003e5c9e342\u003c/code\u003e\u003c/a\u003e Bump version to 0.0.27 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3185\"\u003e#3185\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/e6a57315251f37ab3516cb614f891ece91595393\"\u003e\u003ccode\u003ee6a5731\u003c/code\u003e\u003c/a\u003e Update actions/cache action to v5.0.4 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3172\"\u003e#3172\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/c47b982b86bb599d016af1d235174391f618ff16\"\u003e\u003ccode\u003ec47b982\u003c/code\u003e\u003c/a\u003e Update prek dependencies (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3173\"\u003e#3173\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/657abcfc82221440481f9c9b76c6b6a3b89d5d00\"\u003e\u003ccode\u003e657abcf\u003c/code\u003e\u003c/a\u003e Update astral-sh/setup-uv action to v8 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3174\"\u003e#3174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/9e582cb48e9c2306073091d554c04853091d612b\"\u003e\u003ccode\u003e9e582cb\u003c/code\u003e\u003c/a\u003e Fetch the cargo-dist binary directly instead of using the installer (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3160\"\u003e#3160\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/d5c51ea65be68cffcfa1afe204e5f6003fc06b02\"\u003e\u003ccode\u003ed5c51ea\u003c/code\u003e\u003c/a\u003e docs: use content tabs (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3146\"\u003e#3146\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/9893776cbd744bec84a43463728ab3813b00968f\"\u003e\u003ccode\u003e9893776\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/ty/issues/3147\"\u003e#3147\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/94030512727f4320e8184f120c4330ed8f42ec6f\"\u003e\u003ccode\u003e9403051\u003c/code\u003e\u003c/a\u003e Bump version to 0.0.26 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3145\"\u003e#3145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/d60899a14f6fe368e477c17f4205483aebdf84a8\"\u003e\u003ccode\u003ed60899a\u003c/code\u003e\u003c/a\u003e Bump version to 0.0.25 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3125\"\u003e#3125\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/db65b3e118a705be2694032fd2df613ea11565f1\"\u003e\u003ccode\u003edb65b3e\u003c/code\u003e\u003c/a\u003e Update documentation to reflect \u003ccode\u003etype:ignore\u003c/code\u003e changes (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3121\"\u003e#3121\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ty/compare/0.0.12...0.0.27\"\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.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\u003ch2\u003eVersion 7.13.4 — 2026-02-09\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the third-party code fix in 7.13.3 required examining the parent\ndirectories where coverage was run. In the unusual situation that one of the\nparent directories is unreadable, a PermissionError would occur, as\ndescribed in \u003ccode\u003eissue 2129\u003c/code\u003e_. This is now fixed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: in test suites that change sys.path, coverage.py could fail with\n\u0026quot;RuntimeError: Set changed size during iteration\u0026quot; as described and fixed in\n\u003ccode\u003epull 2130\u003c/code\u003e_. Thanks, Noah Fatsi.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWe now publish ppc64le wheels, thanks to \u003ccode\u003ePankhudi Jain \u0026lt;pull 2121_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _pull 2121: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2121\"\u003ecoveragepy/coveragepy#2121\u003c/a\u003e\n.. _issue 2129: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2129\"\u003ecoveragepy/coveragepy#2129\u003c/a\u003e\n.. _pull 2130: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2130\"\u003ecoveragepy/coveragepy#2130\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-3:\u003c/p\u003e\n\u003ch2\u003eVersion 7.13.3 — 2026-02-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: in some situations, third-party code was measured when it shouldn't have\nbeen, slowing down test execution. This happened with layered virtual\nenvironments such as uv sometimes makes. The problem is fixed, closing \u003ccode\u003eissue 2082\u003c/code\u003e_. Now any directory on sys.path that is inside a virtualenv is\nconsidered third-party code.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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.1...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-codspeed` from 4.2.0 to 4.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/releases\"\u003epytest-codspeed's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eThis release brings support for the \u003ca href=\"https://codspeed.io/docs/instruments/memory\"\u003e\u003cstrong\u003ememory instrument\u003c/strong\u003e\u003c/a\u003e, which enables you to track memory usage, heap allocations, and memory leaks in your benchmarks.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBump uv in CI from 0.5.20 to 0.9.5 by \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/95\"\u003eCodSpeedHQ/pytest-codspeed#95\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat/improve local walltime by \u003ca href=\"https://github.com/adriencaccia\"\u003e\u003ccode\u003e@​adriencaccia\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/97\"\u003eCodSpeedHQ/pytest-codspeed#97\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: rename instrumentation to simulation by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/98\"\u003eCodSpeedHQ/pytest-codspeed#98\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePin python in ci integration tests to prevent intermitent codspeed segfaults in walltime by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/105\"\u003eCodSpeedHQ/pytest-codspeed#105\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add memory profiling support by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/103\"\u003eCodSpeedHQ/pytest-codspeed#103\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add .gitignore to .codspeed folder on creation by \u003ca href=\"https://github.com/art049\"\u003e\u003ccode\u003e@​art049\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/107\"\u003eCodSpeedHQ/pytest-codspeed#107\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/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/98\"\u003eCodSpeedHQ/pytest-codspeed#98\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v4.2.0...v4.3.0\"\u003ehttps://github.com/CodSpeedHQ/pytest-codspeed/compare/v4.2.0...v4.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/CodSpeedHQ/pytest-codspeed/blob/master/CHANGELOG.md\"\u003epytest-codspeed's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[4.3.0] - 2026-02-09\u003c/h2\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd .gitignore to .codspeed folder on creation (\u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/issues/107\"\u003e#107\u003c/a\u003e) by \u003ca href=\"https://github.com/art049\"\u003e\u003ccode\u003e@​art049\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/107\"\u003e#107\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport memory profiling by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRename instrumentation to simulation by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/98\"\u003e#98\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove time unit display in local walltime by \u003ca href=\"https://github.com/adriencaccia\"\u003e\u003ccode\u003e@​adriencaccia\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch to OIDC token by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e⚙️ Internals\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse github runner instead of buildjet by \u003ca href=\"https://github.com/art049\"\u003e\u003ccode\u003e@​art049\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnable memory profiling by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/103\"\u003e#103\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePin python to 3.14.2 in CI to prevent walltime crashes by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/105\"\u003e#105\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd comment about uv pinning by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd comment to explain results storing in .codspeed folder by \u003ca href=\"https://github.com/adriencaccia\"\u003e\u003ccode\u003e@​adriencaccia\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/97\"\u003e#97\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd 3.14 to the list of supported python versions by \u003ca href=\"https://github.com/adriencaccia\"\u003e\u003ccode\u003e@​adriencaccia\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/a24abfe8f2e4c789d961daa90b47c082ad6e6f96\"\u003e\u003ccode\u003ea24abfe\u003c/code\u003e\u003c/a\u003e Release v4.3.0 🚀\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/748f2ddc0af84e53bb992f6588d8acbe688a95d2\"\u003e\u003ccode\u003e748f2dd\u003c/code\u003e\u003c/a\u003e ci: use github runner instead of buildjet\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/66e54c83bf4cc0fefc21c369f2cfac00530cfda8\"\u003e\u003ccode\u003e66e54c8\u003c/code\u003e\u003c/a\u003e feat: add .gitignore to .codspeed folder on creation (\u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/issues/107\"\u003e#107\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/36f59306ed2341d8eb9647cf3ab471478b43c1fb\"\u003e\u003ccode\u003e36f5930\u003c/code\u003e\u003c/a\u003e chore(ci): enable memory profiling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/8ce65af09d12dd9ccf8adce82b759e541268a672\"\u003e\u003ccode\u003e8ce65af\u003c/code\u003e\u003c/a\u003e feat: support memory profiling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/4df4f8c3b56b48e8952ccab6c54fe96f970a7659\"\u003e\u003ccode\u003e4df4f8c\u003c/code\u003e\u003c/a\u003e fix(ci): switch to OIDC token\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/c3a194a79a148f02fb5fdd1628b9b934fd39f859\"\u003e\u003ccode\u003ec3a194a\u003c/code\u003e\u003c/a\u003e chore: pin python to 3.14.2 in CI to prevent walltime crashes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/adee8a12aa89dd2173a1e7b588cfd9147ee1769b\"\u003e\u003ccode\u003eadee8a1\u003c/code\u003e\u003c/a\u003e feat: rename instrumentation to simulation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/08e0519e579b3bf8d56c1fa368ccaf6cbda1aa0d\"\u003e\u003ccode\u003e08e0519\u003c/code\u003e\u003c/a\u003e chore: add comment about uv pinning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/bb84077c947d27c53e0336cfedcf1dc90a305d41\"\u003e\u003ccode\u003ebb84077\u003c/code\u003e\u003c/a\u003e chore: add comment to explain results storing in .codspeed folder\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v4.2.0...v4.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-autoapi` from 3.6.1 to 3.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/releases\"\u003esphinx-autoapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.8.0\u003c/h2\u003e\n\u003ch1\u003eFeatures\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAutodoc-style directives can access members excluded by autoapi_options\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eMisc\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/readthedocs/sphinx-autoapi/issues/553\"\u003e#553\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev3.7.0\u003c/h2\u003e\n\u003ch1\u003eFeatures\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded autoapi.import warning for when AutoAPI directives are given non-existent objects\u003c/li\u003e\n\u003cli\u003eAdding autoapi_follow_symlinks, which allows api to traverse into symlinked directories when generating the API documentation.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9 and officially support Python 3.14\u003c/li\u003e\n\u003cli\u003eSupport rendering PEP-695 type parameters\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eBugfixes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRender typing_extensions.TypeAlias like other type aliases (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx-autoapi/issues/520\"\u003e#520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix PythonFunction.overloads typing when source code overload(s) do not provide a return type (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx-autoapi/issues/523\"\u003e#523\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eMisc\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix deprecation warnings raised by astroid and sphinx\u003c/li\u003e\n\u003cli\u003eHandling case where match returns None to fix mypy unit test.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/blob/main/CHANGELOG.rst\"\u003esphinx-autoapi's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.8.0 (2026-03-07)\u003c/h2\u003e\n\u003cp\u003eFeatures\n^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAutodoc-style directives can access members excluded by autoapi_options\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eMisc\n^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/readthedocs/sphinx-autoapi/issues/553\"\u003e#553\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev3.7.0 (2026-02-10)\u003c/h2\u003e\n\u003cp\u003eFeatures\n^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded autoapi.import warning for when AutoAPI directives are given non-existent objects\u003c/li\u003e\n\u003cli\u003eAdding \u003ccode\u003eautoapi_follow_symlinks\u003c/code\u003e, which allows api to traverse into symlinked directories when generating the API documentation.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9 and officially support Python 3.14\u003c/li\u003e\n\u003cli\u003eSupport rendering PEP-695 type parameters\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes\n^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRender typing_extensions.TypeAlias like other type aliases (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx-autoapi/issues/520\"\u003e#520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ePythonFunction.overloads\u003c/code\u003e typing when source code overload(s) do not provide a return type (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx-autoapi/issues/523\"\u003e#523\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eMisc\n^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix deprecation warnings raised by astroid and sphinx\u003c/li\u003e\n\u003cli\u003eHandling case where match returns None to fix mypy unit test.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/75cbffdea08771a0c574814053359b28dc7dfe85\"\u003e\u003ccode\u003e75cbffd\u003c/code\u003e\u003c/a\u003e Version 3.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/7838cf6937000a84ca8cb13a7d76e03b0084a7f3\"\u003e\u003ccode\u003e7838cf6\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/readthedocs/sphinx-autoapi/commit/f1cdd302336455bee67a6dbc9ea2742fad17a756\"\u003e\u003ccode\u003ef1cdd30\u003c/code\u003e\u003c/a\u003e Attempt to fix macos-latest build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/34bb24ccc9de3be61c63a9c8b38458d06ea11eb3\"\u003e\u003ccode\u003e34bb24c\u003c/code\u003e\u003c/a\u003e Autodoc-style directives can access members excluded by autoapi_options\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/ccb2e898cb8b3becf04eba76f5449e29d336215e\"\u003e\u003ccode\u003eccb2e89\u003c/code\u003e\u003c/a\u003e astroid requirement is consistent across all versions of Python\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/0917ed2d4a42fa4ddd3668247d10ca6d902d7ada\"\u003e\u003ccode\u003e0917ed2\u003c/code\u003e\u003c/a\u003e Version 3.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/394beb453256c9c15a30cb5851682fed2a844fc4\"\u003e\u003ccode\u003e394beb4\u003c/code\u003e\u003c/a\u003e Add warning for missing import\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/96cd74d1a015a05bf4409a73b173dcdf8421902a\"\u003e\u003ccode\u003e96cd74d\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/c248b85d66c233a4673c64944bdeeb394be5116a\"\u003e\u003ccode\u003ec248b85\u003c/code\u003e\u003c/a\u003e Render typing_extensions.TypeAlias like other type aliases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/a2f49c9689ba76d5518c33fb509c57b5141342df\"\u003e\u003ccode\u003ea2f49c9\u003c/code\u003e\u003c/a\u003e Fix deprecation warnings raised by astroid and sphinx\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/compare/v3.6.1...v3.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot 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/letsbuilda/imsosorry/pull/146","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/letsbuilda%2Fimsosorry/issues/146","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/146/packages"},{"uuid":"4080126273","node_id":"PR_kwDOMCX0T87KzWCV","number":99,"state":"closed","title":"Bump nox from 2025.11.12 to 2026.2.9 in /.github/workflows","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-03-16T11:49:35.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-16T04:19:40.000Z","updated_at":"2026-03-16T11:49:36.000Z","time_to_close":26995,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"nox","old_version":"2025.11.12","new_version":"2026.2.9","repository_url":"https://github.com/wntrblm/nox"}],"path":"/.github/workflows","ecosystem":"pip"},"body":"Bumps [nox](https://github.com/wntrblm/nox) from 2025.11.12 to 2026.2.9.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/wntrblm/nox/releases\"\u003enox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2026.02.09 ❤️‍🩹\u003c/h2\u003e\n\u003cp\u003eThis small release supports uv 0.10's new requirement that \u003ccode\u003e--clear\u003c/code\u003e be passed to clear an environment. Python 3.8 support was temporarily re-added since uv 0.10 still supports 3.8, so nox on 3.8 was affected.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport uv 0.10.0 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1055\"\u003ewntrblm/nox#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow tags by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1058\"\u003ewntrblm/nox#1058\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter support for multiple session decorators by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1048\"\u003ewntrblm/nox#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize extra \u003ccode\u003etox-to-nox\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/wntrblm/nox/pull/1059\"\u003ewntrblm/nox#1059\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter typing for \u003ccode\u003e.run\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/wntrblm/nox/pull/1037\"\u003ewntrblm/nox#1037\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix conda CI job by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1035\"\u003ewntrblm/nox#1035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1004\"\u003ewntrblm/nox#1004\u003c/a\u003e and revert in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1060\"\u003ewntrblm/nox#1060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix action test by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1036\"\u003ewntrblm/nox#1036\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump packaging dep to remove pyparsing by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1047\"\u003ewntrblm/nox#1047\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid newest docutils until sphinx-tabs updates by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1052\"\u003ewntrblm/nox#1052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize the naming of constants to enhance readability by \u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1041\"\u003ewntrblm/nox#1041\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDuplicated session name in cookbook by \u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1050\"\u003ewntrblm/nox#1050\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/wntrblm/nox/blob/main/CHANGELOG.md\"\u003enox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003e2026.02.09\u003c/h2\u003e\n\u003cp\u003eThis small release supports uv 0.10's new requirement that \u003ccode\u003e--clear\u003c/code\u003e be passed\nto clear an environment. Python 3.8 support was temporarily re-added since uv\n0.10 still supports 3.8, so nox on 3.8 was affected.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport uv 0.10.0 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1055\"\u003ewntrblm/nox#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow tags by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1058\"\u003ewntrblm/nox#1058\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter support for multiple session decorators by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1048\"\u003ewntrblm/nox#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize extra \u003ccode\u003etox-to-nox\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/wntrblm/nox/pull/1059\"\u003ewntrblm/nox#1059\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter typing for \u003ccode\u003e.run\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/wntrblm/nox/pull/1037\"\u003ewntrblm/nox#1037\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix conda CI job by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1035\"\u003ewntrblm/nox#1035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1004\"\u003ewntrblm/nox#1004\u003c/a\u003e and revert in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1060\"\u003ewntrblm/nox#1060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix action test by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1036\"\u003ewntrblm/nox#1036\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump packaging dep to remove pyparsing by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1047\"\u003ewntrblm/nox#1047\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid newest docutils until sphinx-tabs updates by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1052\"\u003ewntrblm/nox#1052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize the naming of constants to enhance readability by \u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1041\"\u003ewntrblm/nox#1041\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDuplicated session name in cookbook by \u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1050\"\u003ewntrblm/nox#1050\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/wntrblm/nox/commit/5a277b752f6094150e25237d47c34168e2b7526e\"\u003e\u003ccode\u003e5a277b7\u003c/code\u003e\u003c/a\u003e docs: prepare for release (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1061\"\u003e#1061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/90a8aef54122e188dbea80680552507517523ced\"\u003e\u003ccode\u003e90a8aef\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;feat: drop Python 3.8 (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1004\"\u003e#1004\u003c/a\u003e)\u0026quot; (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1060\"\u003e#1060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/264f4577846b30c3f84bb313c8d3f5c497ab7cce\"\u003e\u003ccode\u003e264f457\u003c/code\u003e\u003c/a\u003e chore: normalize extra (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1059\"\u003e#1059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/516d9bc3e134d7fe0f6a370c64a9c52b74a18a85\"\u003e\u003ccode\u003e516d9bc\u003c/code\u003e\u003c/a\u003e fix: show tags (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1058\"\u003e#1058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/7207b3fbde52febfa72a29141440179219b9f272\"\u003e\u003ccode\u003e7207b3f\u003c/code\u003e\u003c/a\u003e fix: support uv 0.10.0 (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/11eee27ceb73fb77a8b4351718ef5e14821155ee\"\u003e\u003ccode\u003e11eee27\u003c/code\u003e\u003c/a\u003e fix: better support for multiple session decorators (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1048\"\u003e#1048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/c72769b1ee7bc729c08c93f518e536364cecee8e\"\u003e\u003ccode\u003ec72769b\u003c/code\u003e\u003c/a\u003e docs: duplicated session name in cookbook (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1050\"\u003e#1050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/a0660b17967de97c10f56b12f67cc5667e79bb08\"\u003e\u003ccode\u003ea0660b1\u003c/code\u003e\u003c/a\u003e docs: avoid newest docutils until sphinx-tabs updates (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1052\"\u003e#1052\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/f8edf5fec2c819ec502566d2005a8346c9363334\"\u003e\u003ccode\u003ef8edf5f\u003c/code\u003e\u003c/a\u003e fix(types): Better typing for .run (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1037\"\u003e#1037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/5dbd95e82f43d05dfd1c60bd296d203f34108ee3\"\u003e\u003ccode\u003e5dbd95e\u003c/code\u003e\u003c/a\u003e chore: optimize the naming of constants to enhance readability (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1041\"\u003e#1041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/wntrblm/nox/compare/2025.11.12...2026.02.09\"\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=nox\u0026package-manager=pip\u0026previous-version=2025.11.12\u0026new-version=2026.2.9)](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/jantman/machine-access-control/pull/99","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/jantman%2Fmachine-access-control/issues/99","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/99/packages"},{"uuid":"4008335423","node_id":"PR_kwDON1o1Q87HLyXD","number":95,"state":"open","title":"chore(deps-dev): update nox requirement from ^2025.0.0 to ^2026.2.9","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-03-01T21:39:23.000Z","updated_at":"2026-03-01T21:48:34.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps-dev): update","packages":[{"name":"nox","old_version":"^2025.0.0","new_version":"^2026.2.9","repository_url":"https://github.com/wntrblm/nox"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [nox](https://github.com/wntrblm/nox) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/wntrblm/nox/blob/main/CHANGELOG.md\"\u003enox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003e2026.02.09\u003c/h2\u003e\n\u003cp\u003eThis small release supports uv 0.10's new requirement that \u003ccode\u003e--clear\u003c/code\u003e be passed\nto clear an environment. Python 3.8 support was temporarily re-added since uv\n0.10 still supports 3.8, so nox on 3.8 was affected.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport uv 0.10.0 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1055\"\u003ewntrblm/nox#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow tags by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1058\"\u003ewntrblm/nox#1058\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter support for multiple session decorators by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1048\"\u003ewntrblm/nox#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize extra \u003ccode\u003etox-to-nox\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/wntrblm/nox/pull/1059\"\u003ewntrblm/nox#1059\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter typing for \u003ccode\u003e.run\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/wntrblm/nox/pull/1037\"\u003ewntrblm/nox#1037\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix conda CI job by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1035\"\u003ewntrblm/nox#1035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1004\"\u003ewntrblm/nox#1004\u003c/a\u003e and revert in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1060\"\u003ewntrblm/nox#1060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix action test by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1036\"\u003ewntrblm/nox#1036\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump packaging dep to remove pyparsing by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1047\"\u003ewntrblm/nox#1047\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid newest docutils until sphinx-tabs updates by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1052\"\u003ewntrblm/nox#1052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize the naming of constants to enhance readability by \u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1041\"\u003ewntrblm/nox#1041\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDuplicated session name in cookbook by \u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1050\"\u003ewntrblm/nox#1050\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2025.11.12\u003c/h2\u003e\n\u003cp\u003eThis is a small release to fix a warning when running in script mode before we\ndrop Python 3.8.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid warnings when running in script mode by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1025\"\u003ewntrblm/nox#1025\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/wntrblm/nox/commit/5a277b752f6094150e25237d47c34168e2b7526e\"\u003e\u003ccode\u003e5a277b7\u003c/code\u003e\u003c/a\u003e docs: prepare for release (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1061\"\u003e#1061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/90a8aef54122e188dbea80680552507517523ced\"\u003e\u003ccode\u003e90a8aef\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;feat: drop Python 3.8 (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1004\"\u003e#1004\u003c/a\u003e)\u0026quot; (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1060\"\u003e#1060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/264f4577846b30c3f84bb313c8d3f5c497ab7cce\"\u003e\u003ccode\u003e264f457\u003c/code\u003e\u003c/a\u003e chore: normalize extra (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1059\"\u003e#1059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/516d9bc3e134d7fe0f6a370c64a9c52b74a18a85\"\u003e\u003ccode\u003e516d9bc\u003c/code\u003e\u003c/a\u003e fix: show tags (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1058\"\u003e#1058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/7207b3fbde52febfa72a29141440179219b9f272\"\u003e\u003ccode\u003e7207b3f\u003c/code\u003e\u003c/a\u003e fix: support uv 0.10.0 (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/11eee27ceb73fb77a8b4351718ef5e14821155ee\"\u003e\u003ccode\u003e11eee27\u003c/code\u003e\u003c/a\u003e fix: better support for multiple session decorators (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1048\"\u003e#1048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/c72769b1ee7bc729c08c93f518e536364cecee8e\"\u003e\u003ccode\u003ec72769b\u003c/code\u003e\u003c/a\u003e docs: duplicated session name in cookbook (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1050\"\u003e#1050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/a0660b17967de97c10f56b12f67cc5667e79bb08\"\u003e\u003ccode\u003ea0660b1\u003c/code\u003e\u003c/a\u003e docs: avoid newest docutils until sphinx-tabs updates (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1052\"\u003e#1052\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/f8edf5fec2c819ec502566d2005a8346c9363334\"\u003e\u003ccode\u003ef8edf5f\u003c/code\u003e\u003c/a\u003e fix(types): Better typing for .run (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1037\"\u003e#1037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/5dbd95e82f43d05dfd1c60bd296d203f34108ee3\"\u003e\u003ccode\u003e5dbd95e\u003c/code\u003e\u003c/a\u003e chore: optimize the naming of constants to enhance readability (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1041\"\u003e#1041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/wntrblm/nox/compare/2025.02.09...2026.02.09\"\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/LSST-AGN-Variability/EzTaoX/pull/95","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/LSST-AGN-Variability%2FEzTaoX/issues/95","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/95/packages"},{"uuid":"4007579442","node_id":"PR_kwDOFf9KHM7HJWRk","number":218,"state":"closed","title":"Update nox requirement from ~=2025.05 to \u003e=2025.5,\u003c2027.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-03-02T00:53:37.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-01T16:02:57.000Z","updated_at":"2026-03-02T00:53:45.000Z","time_to_close":31840,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Update","packages":[{"name":"nox","old_version":"~=2025.05","new_version":"\u003e=2025.5,\u003c2027.0","repository_url":"https://github.com/wntrblm/nox"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [nox](https://github.com/wntrblm/nox) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/wntrblm/nox/blob/main/CHANGELOG.md\"\u003enox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003e2026.02.09\u003c/h2\u003e\n\u003cp\u003eThis small release supports uv 0.10's new requirement that \u003ccode\u003e--clear\u003c/code\u003e be passed\nto clear an environment. Python 3.8 support was temporarily re-added since uv\n0.10 still supports 3.8, so nox on 3.8 was affected.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport uv 0.10.0 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1055\"\u003ewntrblm/nox#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow tags by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1058\"\u003ewntrblm/nox#1058\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter support for multiple session decorators by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1048\"\u003ewntrblm/nox#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize extra \u003ccode\u003etox-to-nox\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/wntrblm/nox/pull/1059\"\u003ewntrblm/nox#1059\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter typing for \u003ccode\u003e.run\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/wntrblm/nox/pull/1037\"\u003ewntrblm/nox#1037\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix conda CI job by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1035\"\u003ewntrblm/nox#1035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1004\"\u003ewntrblm/nox#1004\u003c/a\u003e and revert in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1060\"\u003ewntrblm/nox#1060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix action test by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1036\"\u003ewntrblm/nox#1036\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump packaging dep to remove pyparsing by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1047\"\u003ewntrblm/nox#1047\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid newest docutils until sphinx-tabs updates by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1052\"\u003ewntrblm/nox#1052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize the naming of constants to enhance readability by \u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1041\"\u003ewntrblm/nox#1041\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDuplicated session name in cookbook by \u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1050\"\u003ewntrblm/nox#1050\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2025.11.12\u003c/h2\u003e\n\u003cp\u003eThis is a small release to fix a warning when running in script mode before we\ndrop Python 3.8.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid warnings when running in script mode by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1025\"\u003ewntrblm/nox#1025\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/wntrblm/nox/commit/5a277b752f6094150e25237d47c34168e2b7526e\"\u003e\u003ccode\u003e5a277b7\u003c/code\u003e\u003c/a\u003e docs: prepare for release (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1061\"\u003e#1061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/90a8aef54122e188dbea80680552507517523ced\"\u003e\u003ccode\u003e90a8aef\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;feat: drop Python 3.8 (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1004\"\u003e#1004\u003c/a\u003e)\u0026quot; (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1060\"\u003e#1060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/264f4577846b30c3f84bb313c8d3f5c497ab7cce\"\u003e\u003ccode\u003e264f457\u003c/code\u003e\u003c/a\u003e chore: normalize extra (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1059\"\u003e#1059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/516d9bc3e134d7fe0f6a370c64a9c52b74a18a85\"\u003e\u003ccode\u003e516d9bc\u003c/code\u003e\u003c/a\u003e fix: show tags (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1058\"\u003e#1058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/7207b3fbde52febfa72a29141440179219b9f272\"\u003e\u003ccode\u003e7207b3f\u003c/code\u003e\u003c/a\u003e fix: support uv 0.10.0 (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/11eee27ceb73fb77a8b4351718ef5e14821155ee\"\u003e\u003ccode\u003e11eee27\u003c/code\u003e\u003c/a\u003e fix: better support for multiple session decorators (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1048\"\u003e#1048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/c72769b1ee7bc729c08c93f518e536364cecee8e\"\u003e\u003ccode\u003ec72769b\u003c/code\u003e\u003c/a\u003e docs: duplicated session name in cookbook (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1050\"\u003e#1050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/a0660b17967de97c10f56b12f67cc5667e79bb08\"\u003e\u003ccode\u003ea0660b1\u003c/code\u003e\u003c/a\u003e docs: avoid newest docutils until sphinx-tabs updates (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1052\"\u003e#1052\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/f8edf5fec2c819ec502566d2005a8346c9363334\"\u003e\u003ccode\u003ef8edf5f\u003c/code\u003e\u003c/a\u003e fix(types): Better typing for .run (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1037\"\u003e#1037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/5dbd95e82f43d05dfd1c60bd296d203f34108ee3\"\u003e\u003ccode\u003e5dbd95e\u003c/code\u003e\u003c/a\u003e chore: optimize the naming of constants to enhance readability (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1041\"\u003e#1041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/wntrblm/nox/compare/2025.05.01...2026.02.09\"\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/pyinat/pyinaturalist-convert/pull/218","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist-convert/issues/218","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/218/packages"},{"uuid":"4006941513","node_id":"PR_kwDOQm-Fac7HHRmH","number":27,"state":"closed","title":"build(deps-dev): Bump nox from 2025.11.12 to 2026.2.9","user":"dependabot[bot]","labels":["part:tooling","tool:auto-merged"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-03-01T11:11:14.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-01T11:11:02.000Z","updated_at":"2026-03-01T11:11:22.000Z","time_to_close":12,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps-dev): Bump","packages":[{"name":"nox","old_version":"2025.11.12","new_version":"2026.2.9","repository_url":"https://github.com/wntrblm/nox"}],"path":null,"ecosystem":"pip"},"body":"Bumps [nox](https://github.com/wntrblm/nox) from 2025.11.12 to 2026.2.9.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/wntrblm/nox/releases\"\u003enox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2026.02.09 ❤️‍🩹\u003c/h2\u003e\n\u003cp\u003eThis small release supports uv 0.10's new requirement that \u003ccode\u003e--clear\u003c/code\u003e be passed to clear an environment. Python 3.8 support was temporarily re-added since uv 0.10 still supports 3.8, so nox on 3.8 was affected.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport uv 0.10.0 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1055\"\u003ewntrblm/nox#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow tags by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1058\"\u003ewntrblm/nox#1058\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter support for multiple session decorators by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1048\"\u003ewntrblm/nox#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize extra \u003ccode\u003etox-to-nox\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/wntrblm/nox/pull/1059\"\u003ewntrblm/nox#1059\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter typing for \u003ccode\u003e.run\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/wntrblm/nox/pull/1037\"\u003ewntrblm/nox#1037\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix conda CI job by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1035\"\u003ewntrblm/nox#1035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1004\"\u003ewntrblm/nox#1004\u003c/a\u003e and revert in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1060\"\u003ewntrblm/nox#1060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix action test by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1036\"\u003ewntrblm/nox#1036\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump packaging dep to remove pyparsing by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1047\"\u003ewntrblm/nox#1047\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid newest docutils until sphinx-tabs updates by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1052\"\u003ewntrblm/nox#1052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize the naming of constants to enhance readability by \u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1041\"\u003ewntrblm/nox#1041\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDuplicated session name in cookbook by \u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1050\"\u003ewntrblm/nox#1050\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/wntrblm/nox/blob/main/CHANGELOG.md\"\u003enox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003e2026.02.09\u003c/h2\u003e\n\u003cp\u003eThis small release supports uv 0.10's new requirement that \u003ccode\u003e--clear\u003c/code\u003e be passed\nto clear an environment. Python 3.8 support was temporarily re-added since uv\n0.10 still supports 3.8, so nox on 3.8 was affected.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport uv 0.10.0 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1055\"\u003ewntrblm/nox#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow tags by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1058\"\u003ewntrblm/nox#1058\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter support for multiple session decorators by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1048\"\u003ewntrblm/nox#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize extra \u003ccode\u003etox-to-nox\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/wntrblm/nox/pull/1059\"\u003ewntrblm/nox#1059\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter typing for \u003ccode\u003e.run\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/wntrblm/nox/pull/1037\"\u003ewntrblm/nox#1037\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix conda CI job by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1035\"\u003ewntrblm/nox#1035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1004\"\u003ewntrblm/nox#1004\u003c/a\u003e and revert in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1060\"\u003ewntrblm/nox#1060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix action test by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1036\"\u003ewntrblm/nox#1036\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump packaging dep to remove pyparsing by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1047\"\u003ewntrblm/nox#1047\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid newest docutils until sphinx-tabs updates by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1052\"\u003ewntrblm/nox#1052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize the naming of constants to enhance readability by \u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1041\"\u003ewntrblm/nox#1041\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDuplicated session name in cookbook by \u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1050\"\u003ewntrblm/nox#1050\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/wntrblm/nox/commit/5a277b752f6094150e25237d47c34168e2b7526e\"\u003e\u003ccode\u003e5a277b7\u003c/code\u003e\u003c/a\u003e docs: prepare for release (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1061\"\u003e#1061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/90a8aef54122e188dbea80680552507517523ced\"\u003e\u003ccode\u003e90a8aef\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;feat: drop Python 3.8 (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1004\"\u003e#1004\u003c/a\u003e)\u0026quot; (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1060\"\u003e#1060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/264f4577846b30c3f84bb313c8d3f5c497ab7cce\"\u003e\u003ccode\u003e264f457\u003c/code\u003e\u003c/a\u003e chore: normalize extra (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1059\"\u003e#1059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/516d9bc3e134d7fe0f6a370c64a9c52b74a18a85\"\u003e\u003ccode\u003e516d9bc\u003c/code\u003e\u003c/a\u003e fix: show tags (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1058\"\u003e#1058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/7207b3fbde52febfa72a29141440179219b9f272\"\u003e\u003ccode\u003e7207b3f\u003c/code\u003e\u003c/a\u003e fix: support uv 0.10.0 (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/11eee27ceb73fb77a8b4351718ef5e14821155ee\"\u003e\u003ccode\u003e11eee27\u003c/code\u003e\u003c/a\u003e fix: better support for multiple session decorators (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1048\"\u003e#1048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/c72769b1ee7bc729c08c93f518e536364cecee8e\"\u003e\u003ccode\u003ec72769b\u003c/code\u003e\u003c/a\u003e docs: duplicated session name in cookbook (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1050\"\u003e#1050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/a0660b17967de97c10f56b12f67cc5667e79bb08\"\u003e\u003ccode\u003ea0660b1\u003c/code\u003e\u003c/a\u003e docs: avoid newest docutils until sphinx-tabs updates (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1052\"\u003e#1052\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/f8edf5fec2c819ec502566d2005a8346c9363334\"\u003e\u003ccode\u003ef8edf5f\u003c/code\u003e\u003c/a\u003e fix(types): Better typing for .run (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1037\"\u003e#1037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/5dbd95e82f43d05dfd1c60bd296d203f34108ee3\"\u003e\u003ccode\u003e5dbd95e\u003c/code\u003e\u003c/a\u003e chore: optimize the naming of constants to enhance readability (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1041\"\u003e#1041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/wntrblm/nox/compare/2025.11.12...2026.02.09\"\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=nox\u0026package-manager=pip\u0026previous-version=2025.11.12\u0026new-version=2026.2.9)](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/Marenz/frequenz-client-marketmetering-python-standalone-backup/pull/27","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Marenz%2Ffrequenz-client-marketmetering-python-standalone-backup/issues/27","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/27/packages"},{"uuid":"4006884747","node_id":"PR_kwDOOllBds7HHGRo","number":43,"state":"open","title":"Bump the python-dependencies group with 4 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-03-01T10:38:20.000Z","updated_at":"2026-03-01T10:42:48.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-dependencies","update_count":4,"packages":[{"name":"nox","old_version":"2025.11.12","new_version":"2026.2.9","repository_url":"https://github.com/wntrblm/nox"},{"name":"ruff","old_version":"0.14.14","new_version":"0.15.2","repository_url":"https://github.com/astral-sh/ruff"},{"name":"sphinx-autoapi","old_version":"3.6.1","new_version":"3.7.0","repository_url":"https://github.com/readthedocs/sphinx-autoapi"},{"name":"coverage","old_version":"7.13.3","new_version":"7.13.4","repository_url":"https://github.com/coveragepy/coveragepy"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-dependencies group with 4 updates: [nox](https://github.com/wntrblm/nox), [ruff](https://github.com/astral-sh/ruff), [sphinx-autoapi](https://github.com/readthedocs/sphinx-autoapi) and [coverage](https://github.com/coveragepy/coveragepy).\n\nUpdates `nox` from 2025.11.12 to 2026.2.9\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/wntrblm/nox/releases\"\u003enox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2026.02.09 ❤️‍🩹\u003c/h2\u003e\n\u003cp\u003eThis small release supports uv 0.10's new requirement that \u003ccode\u003e--clear\u003c/code\u003e be passed to clear an environment. Python 3.8 support was temporarily re-added since uv 0.10 still supports 3.8, so nox on 3.8 was affected.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport uv 0.10.0 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1055\"\u003ewntrblm/nox#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow tags by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1058\"\u003ewntrblm/nox#1058\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter support for multiple session decorators by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1048\"\u003ewntrblm/nox#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize extra \u003ccode\u003etox-to-nox\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/wntrblm/nox/pull/1059\"\u003ewntrblm/nox#1059\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter typing for \u003ccode\u003e.run\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/wntrblm/nox/pull/1037\"\u003ewntrblm/nox#1037\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix conda CI job by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1035\"\u003ewntrblm/nox#1035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1004\"\u003ewntrblm/nox#1004\u003c/a\u003e and revert in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1060\"\u003ewntrblm/nox#1060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix action test by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1036\"\u003ewntrblm/nox#1036\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump packaging dep to remove pyparsing by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1047\"\u003ewntrblm/nox#1047\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid newest docutils until sphinx-tabs updates by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1052\"\u003ewntrblm/nox#1052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize the naming of constants to enhance readability by \u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1041\"\u003ewntrblm/nox#1041\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDuplicated session name in cookbook by \u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1050\"\u003ewntrblm/nox#1050\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/wntrblm/nox/blob/main/CHANGELOG.md\"\u003enox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003e2026.02.09\u003c/h2\u003e\n\u003cp\u003eThis small release supports uv 0.10's new requirement that \u003ccode\u003e--clear\u003c/code\u003e be passed\nto clear an environment. Python 3.8 support was temporarily re-added since uv\n0.10 still supports 3.8, so nox on 3.8 was affected.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport uv 0.10.0 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1055\"\u003ewntrblm/nox#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow tags by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1058\"\u003ewntrblm/nox#1058\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter support for multiple session decorators by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1048\"\u003ewntrblm/nox#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize extra \u003ccode\u003etox-to-nox\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/wntrblm/nox/pull/1059\"\u003ewntrblm/nox#1059\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter typing for \u003ccode\u003e.run\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/wntrblm/nox/pull/1037\"\u003ewntrblm/nox#1037\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix conda CI job by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1035\"\u003ewntrblm/nox#1035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1004\"\u003ewntrblm/nox#1004\u003c/a\u003e and revert in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1060\"\u003ewntrblm/nox#1060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix action test by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1036\"\u003ewntrblm/nox#1036\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump packaging dep to remove pyparsing by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1047\"\u003ewntrblm/nox#1047\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid newest docutils until sphinx-tabs updates by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1052\"\u003ewntrblm/nox#1052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize the naming of constants to enhance readability by \u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1041\"\u003ewntrblm/nox#1041\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDuplicated session name in cookbook by \u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1050\"\u003ewntrblm/nox#1050\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/wntrblm/nox/commit/5a277b752f6094150e25237d47c34168e2b7526e\"\u003e\u003ccode\u003e5a277b7\u003c/code\u003e\u003c/a\u003e docs: prepare for release (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1061\"\u003e#1061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/90a8aef54122e188dbea80680552507517523ced\"\u003e\u003ccode\u003e90a8aef\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;feat: drop Python 3.8 (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1004\"\u003e#1004\u003c/a\u003e)\u0026quot; (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1060\"\u003e#1060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/264f4577846b30c3f84bb313c8d3f5c497ab7cce\"\u003e\u003ccode\u003e264f457\u003c/code\u003e\u003c/a\u003e chore: normalize extra (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1059\"\u003e#1059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/516d9bc3e134d7fe0f6a370c64a9c52b74a18a85\"\u003e\u003ccode\u003e516d9bc\u003c/code\u003e\u003c/a\u003e fix: show tags (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1058\"\u003e#1058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/7207b3fbde52febfa72a29141440179219b9f272\"\u003e\u003ccode\u003e7207b3f\u003c/code\u003e\u003c/a\u003e fix: support uv 0.10.0 (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/11eee27ceb73fb77a8b4351718ef5e14821155ee\"\u003e\u003ccode\u003e11eee27\u003c/code\u003e\u003c/a\u003e fix: better support for multiple session decorators (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1048\"\u003e#1048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/c72769b1ee7bc729c08c93f518e536364cecee8e\"\u003e\u003ccode\u003ec72769b\u003c/code\u003e\u003c/a\u003e docs: duplicated session name in cookbook (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1050\"\u003e#1050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/a0660b17967de97c10f56b12f67cc5667e79bb08\"\u003e\u003ccode\u003ea0660b1\u003c/code\u003e\u003c/a\u003e docs: avoid newest docutils until sphinx-tabs updates (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1052\"\u003e#1052\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/f8edf5fec2c819ec502566d2005a8346c9363334\"\u003e\u003ccode\u003ef8edf5f\u003c/code\u003e\u003c/a\u003e fix(types): Better typing for .run (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1037\"\u003e#1037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/5dbd95e82f43d05dfd1c60bd296d203f34108ee3\"\u003e\u003ccode\u003e5dbd95e\u003c/code\u003e\u003c/a\u003e chore: optimize the naming of constants to enhance readability (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1041\"\u003e#1041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/wntrblm/nox/compare/2025.11.12...2026.02.09\"\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.14 to 0.15.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.2\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-02-19.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eExpand the default rule set (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23385\"\u003e#23385\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eIn preview, Ruff now enables a significantly expanded default rule set of 412 rules, up from the stable default set of 59 rules. The new rules are mostly a superset of the stable defaults, with the exception of these rules, which are removed from the preview defaults:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/multiple-imports-on-one-line\"\u003e\u003ccode\u003emultiple-imports-on-one-line\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE401\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/module-import-not-at-top-of-file\"\u003e\u003ccode\u003emodule-import-not-at-top-of-file\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE402\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/module-import-not-at-top-of-file\"\u003e\u003ccode\u003emodule-import-not-at-top-of-file\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE701\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/multiple-statements-on-one-line-semicolon\"\u003e\u003ccode\u003emultiple-statements-on-one-line-semicolon\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE702\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/useless-semicolon\"\u003e\u003ccode\u003euseless-semicolon\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE703\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/none-comparison\"\u003e\u003ccode\u003enone-comparison\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE711\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/true-false-comparison\"\u003e\u003ccode\u003etrue-false-comparison\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE712\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/not-in-test\"\u003e\u003ccode\u003enot-in-test\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE713\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/not-is-test\"\u003e\u003ccode\u003enot-is-test\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE714\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/type-comparison\"\u003e\u003ccode\u003etype-comparison\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE721\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/lambda-assignment\"\u003e\u003ccode\u003elambda-assignment\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE731\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/ambiguous-variable-name\"\u003e\u003ccode\u003eambiguous-variable-name\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE741\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/ambiguous-class-name\"\u003e\u003ccode\u003eambiguous-class-name\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE742\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/ambiguous-function-name\"\u003e\u003ccode\u003eambiguous-function-name\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE743\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/undefined-local-with-import-star\"\u003e\u003ccode\u003eundefined-local-with-import-star\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF403\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/undefined-local-with-import-star-usage\"\u003e\u003ccode\u003eundefined-local-with-import-star-usage\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF405\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/undefined-local-with-nested-import-star-usage\"\u003e\u003ccode\u003eundefined-local-with-nested-import-star-usage\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF406\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/forward-annotation-syntax-error\"\u003e\u003ccode\u003eforward-annotation-syntax-error\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF722\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you use preview and prefer the old defaults, you can restore them with configuration like:\u003c/p\u003e\n\u003cpre lang=\"toml\"\u003e\u003ccode\u003e\r\n# ruff.toml\r\n\u003cp\u003e[lint]\nselect = [\u0026quot;E4\u0026quot;, \u0026quot;E7\u0026quot;, \u0026quot;E9\u0026quot;, \u0026quot;F\u0026quot;]\u003c/p\u003e\n\u003ch1\u003epyproject.toml\u003c/h1\u003e\n\u003cp\u003e[tool.ruff.lint]\nselect = [\u0026quot;E4\u0026quot;, \u0026quot;E7\u0026quot;, \u0026quot;E9\u0026quot;, \u0026quot;F\u0026quot;]\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eIf you do give them a try, feel free to share your feedback in the \u003ca href=\"https://github.com/astral-sh/ruff/discussions/23203\"\u003eGitHub discussion\u003c/a\u003e!\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Also check string annotations (\u003ccode\u003ePYI041\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19023\"\u003e#19023\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\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.2\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-02-19.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eExpand the default rule set (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23385\"\u003e#23385\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eIn preview, Ruff now enables a significantly expanded default rule set of 412\nrules, up from the stable default set of 59 rules. The new rules are mostly a\nsuperset of the stable defaults, with the exception of these rules, which are\nremoved from the preview defaults:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/multiple-imports-on-one-line\"\u003e\u003ccode\u003emultiple-imports-on-one-line\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE401\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/module-import-not-at-top-of-file\"\u003e\u003ccode\u003emodule-import-not-at-top-of-file\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE402\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/module-import-not-at-top-of-file\"\u003e\u003ccode\u003emodule-import-not-at-top-of-file\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE701\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/multiple-statements-on-one-line-semicolon\"\u003e\u003ccode\u003emultiple-statements-on-one-line-semicolon\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE702\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/useless-semicolon\"\u003e\u003ccode\u003euseless-semicolon\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE703\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/none-comparison\"\u003e\u003ccode\u003enone-comparison\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE711\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/true-false-comparison\"\u003e\u003ccode\u003etrue-false-comparison\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE712\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/not-in-test\"\u003e\u003ccode\u003enot-in-test\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE713\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/not-is-test\"\u003e\u003ccode\u003enot-is-test\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE714\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/type-comparison\"\u003e\u003ccode\u003etype-comparison\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE721\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/lambda-assignment\"\u003e\u003ccode\u003elambda-assignment\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE731\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/ambiguous-variable-name\"\u003e\u003ccode\u003eambiguous-variable-name\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE741\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/ambiguous-class-name\"\u003e\u003ccode\u003eambiguous-class-name\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE742\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/ambiguous-function-name\"\u003e\u003ccode\u003eambiguous-function-name\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE743\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/undefined-local-with-import-star\"\u003e\u003ccode\u003eundefined-local-with-import-star\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF403\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/undefined-local-with-import-star-usage\"\u003e\u003ccode\u003eundefined-local-with-import-star-usage\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF405\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/undefined-local-with-nested-import-star-usage\"\u003e\u003ccode\u003eundefined-local-with-nested-import-star-usage\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF406\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/forward-annotation-syntax-error\"\u003e\u003ccode\u003eforward-annotation-syntax-error\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF722\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you use preview and prefer the old defaults, you can restore them with\nconfiguration like:\u003c/p\u003e\n\u003cpre lang=\"toml\"\u003e\u003ccode\u003e\n# ruff.toml\n\u003cp\u003e[lint]\nselect = [\u0026quot;E4\u0026quot;, \u0026quot;E7\u0026quot;, \u0026quot;E9\u0026quot;, \u0026quot;F\u0026quot;]\u003c/p\u003e\n\u003ch1\u003epyproject.toml\u003c/h1\u003e\n\u003cp\u003e[tool.ruff.lint]\nselect = [\u0026quot;E4\u0026quot;, \u0026quot;E7\u0026quot;, \u0026quot;E9\u0026quot;, \u0026quot;F\u0026quot;]\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eIf you do give them a try, feel free to share your feedback in the \u003ca href=\"https://github.com/astral-sh/ruff/discussions/23203\"\u003eGitHub\ndiscussion\u003c/a\u003e!\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9d18ee9115f9cbb4c21478baa7c1fa2b46e0759c\"\u003e\u003ccode\u003e9d18ee9\u003c/code\u003e\u003c/a\u003e Hard code workflow name and \u003ccode\u003ecancel-in-progress\u003c/code\u003e only for PRs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23431\"\u003e#23431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7cc15f024b931fe56365f40de3fab01219c092c4\"\u003e\u003ccode\u003e7cc15f0\u003c/code\u003e\u003c/a\u003e Bump 0.15.2 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23430\"\u003e#23430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/d1b544393ae9cddd8e48ebee8dbfd54bda89f375\"\u003e\u003ccode\u003ed1b5443\u003c/code\u003e\u003c/a\u003e Add extension mapping to configuration file options (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23384\"\u003e#23384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/222574af90c5c0ca8f84c8385cf30c7c10ac2496\"\u003e\u003ccode\u003e222574a\u003c/code\u003e\u003c/a\u003e Expand the default rule set (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23385\"\u003e#23385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/1465b5de3829549b45397e9587b83ab7ac6d26d0\"\u003e\u003ccode\u003e1465b5d\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-async\u003c/code\u003e] Fix \u003ccode\u003ein_async_context\u003c/code\u003e logic (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23426\"\u003e#23426\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/410902fa401afda969cc000f13be341896e6868e\"\u003e\u003ccode\u003e410902f\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003epyupgrade\u003c/code\u003e] Fix handling of \u003ccode\u003etyping.{io,re}\u003c/code\u003e (\u003ccode\u003eUP035\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23131\"\u003e#23131\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/729610acd9e19f57526e8ca40f355626154826bb\"\u003e\u003ccode\u003e729610a\u003c/code\u003e\u003c/a\u003e [ty] Fall back to ambiguous for large control flow graphs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23399\"\u003e#23399\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/1425c185b0a47be87112762f65b5bf7e323fb950\"\u003e\u003ccode\u003e1425c18\u003c/code\u003e\u003c/a\u003e [ty] Add code folding support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/97acaaea5f993f33d3f5bb27c5db760a2f3d1e8a\"\u003e\u003ccode\u003e97acaae\u003c/code\u003e\u003c/a\u003e [ty] Fix stack overflow for self-referential \u003ccode\u003eTypeOf\u003c/code\u003e in annotations (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23407\"\u003e#23407\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/1f380c82584a6dab7e8715bc7dd5ae187da1e69a\"\u003e\u003ccode\u003e1f380c8\u003c/code\u003e\u003c/a\u003e [ty] Update tests \u003ccode\u003ereveal_type\u003c/code\u003e and \u003ccode\u003eNever\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23418\"\u003e#23418\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.14.14...0.15.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-autoapi` from 3.6.1 to 3.7.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/releases\"\u003esphinx-autoapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.7.0\u003c/h2\u003e\n\u003ch1\u003eFeatures\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded autoapi.import warning for when AutoAPI directives are given non-existent objects\u003c/li\u003e\n\u003cli\u003eAdding autoapi_follow_symlinks, which allows api to traverse into symlinked directories when generating the API documentation.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9 and officially support Python 3.14\u003c/li\u003e\n\u003cli\u003eSupport rendering PEP-695 type parameters\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eBugfixes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRender typing_extensions.TypeAlias like other type aliases (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx-autoapi/issues/520\"\u003e#520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix PythonFunction.overloads typing when source code overload(s) do not provide a return type (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx-autoapi/issues/523\"\u003e#523\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eMisc\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix deprecation warnings raised by astroid and sphinx\u003c/li\u003e\n\u003cli\u003eHandling case where match returns None to fix mypy unit test.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/blob/main/CHANGELOG.rst\"\u003esphinx-autoapi's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.7.0 (2026-02-10)\u003c/h2\u003e\n\u003cp\u003eFeatures\n^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded autoapi.import warning for when AutoAPI directives are given non-existent objects\u003c/li\u003e\n\u003cli\u003eAdding \u003ccode\u003eautoapi_follow_symlinks\u003c/code\u003e, which allows api to traverse into symlinked directories when generating the API documentation.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9 and officially support Python 3.14\u003c/li\u003e\n\u003cli\u003eSupport rendering PEP-695 type parameters\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes\n^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRender typing_extensions.TypeAlias like other type aliases (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx-autoapi/issues/520\"\u003e#520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ePythonFunction.overloads\u003c/code\u003e typing when source code overload(s) do not provide a return type (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx-autoapi/issues/523\"\u003e#523\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eMisc\n^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix deprecation warnings raised by astroid and sphinx\u003c/li\u003e\n\u003cli\u003eHandling case where match returns None to fix mypy unit test.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/0917ed2d4a42fa4ddd3668247d10ca6d902d7ada\"\u003e\u003ccode\u003e0917ed2\u003c/code\u003e\u003c/a\u003e Version 3.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/394beb453256c9c15a30cb5851682fed2a844fc4\"\u003e\u003ccode\u003e394beb4\u003c/code\u003e\u003c/a\u003e Add warning for missing import\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/96cd74d1a015a05bf4409a73b173dcdf8421902a\"\u003e\u003ccode\u003e96cd74d\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/c248b85d66c233a4673c64944bdeeb394be5116a\"\u003e\u003ccode\u003ec248b85\u003c/code\u003e\u003c/a\u003e Render typing_extensions.TypeAlias like other type aliases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/a2f49c9689ba76d5518c33fb509c57b5141342df\"\u003e\u003ccode\u003ea2f49c9\u003c/code\u003e\u003c/a\u003e Fix deprecation warnings raised by astroid and sphinx\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/5ed0cd5c5172befdbea5b28ea30a4d7a79583e03\"\u003e\u003ccode\u003e5ed0cd5\u003c/code\u003e\u003c/a\u003e Update supported Python versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/0f7b1ab7b6e6b016b649bc0fb1e5ccffebaa140d\"\u003e\u003ccode\u003e0f7b1ab\u003c/code\u003e\u003c/a\u003e Render type params by default\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/42b315cf9168c6ab5375b84a984e4c73df43d5d8\"\u003e\u003ccode\u003e42b315c\u003c/code\u003e\u003c/a\u003e fix: add missing release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/026acde58cc3967b8a3597eda6481bf48f1918a0\"\u003e\u003ccode\u003e026acde\u003c/code\u003e\u003c/a\u003e fix: User may not have provided return annotation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/cd62d872d1f77dec8ba4fb94b3bd7591fc57428d\"\u003e\u003ccode\u003ecd62d87\u003c/code\u003e\u003c/a\u003e [refactor]: match statement to ifs\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/compare/v3.6.1...v3.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.13.3 to 7.13.4\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.4 — 2026-02-09\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the third-party code fix in 7.13.3 required examining the parent\ndirectories where coverage was run. In the unusual situation that one of the\nparent directories is unreadable, a PermissionError would occur, as\ndescribed in \u003ccode\u003eissue 2129\u003c/code\u003e_. This is now fixed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: in test suites that change sys.path, coverage.py could fail with\n\u0026quot;RuntimeError: Set changed size during iteration\u0026quot; as described and fixed in\n\u003ccode\u003epull 2130\u003c/code\u003e_. Thanks, Noah Fatsi.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWe now publish ppc64le wheels, thanks to \u003ccode\u003ePankhudi Jain \u0026lt;pull 2121_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _pull 2121: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2121\"\u003ecoveragepy/coveragepy#2121\u003c/a\u003e\n.. _issue 2129: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2129\"\u003ecoveragepy/coveragepy#2129\u003c/a\u003e\n.. _pull 2130: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2130\"\u003ecoveragepy/coveragepy#2130\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-3:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/4f78d57f83ff8a4976043e8a8fcea24b91891840\"\u003e\u003ccode\u003e4f78d57\u003c/code\u003e\u003c/a\u003e build: no need to publish status.json\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/f8616ff5e6386648aa40300e36c6cecda79a1faa\"\u003e\u003ccode\u003ef8616ff\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.13.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/fcf8c68db986970e6000bf75ec3c3115ede867df\"\u003e\u003ccode\u003efcf8c68\u003c/code\u003e\u003c/a\u003e docs: prep for 7.13.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/189ecfd000867e5c74e7d74ee3bd75742d5d584d\"\u003e\u003ccode\u003e189ecfd\u003c/code\u003e\u003c/a\u003e docs: thanks Pankhudi Jain for ppc64le wheels \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2121\"\u003e#2121\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/58aade0eb92d9d1e3755c65a5cf7a951e7bd6c6a\"\u003e\u003ccode\u003e58aade0\u003c/code\u003e\u003c/a\u003e build: add support for ppc64le architecture (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2121\"\u003e#2121\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/8ea42c874fbfc96535156300225bda22bc93ac68\"\u003e\u003ccode\u003e8ea42c8\u003c/code\u003e\u003c/a\u003e chore: bump actions/attest-build-provenance (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2131\"\u003e#2131\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/c09595f70758b78156efbd7c8f034799d09322aa\"\u003e\u003ccode\u003ec09595f\u003c/code\u003e\u003c/a\u003e docs: Janine put a lot of effort into debugging issue \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2128\"\u003e#2128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/8ee1760f40b8822aa2b11ff95ab63481be68a8a0\"\u003e\u003ccode\u003e8ee1760\u003c/code\u003e\u003c/a\u003e docs: Greg wrote a great issue: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2129\"\u003e#2129\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/76ba0437611fc2787cb0450dc94b02bc2848fdee\"\u003e\u003ccode\u003e76ba043\u003c/code\u003e\u003c/a\u003e docs: thanks, Noah Fatsi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/371fcc5727e9d8fba816061756af94646b4bcfbb\"\u003e\u003ccode\u003e371fcc5\u003c/code\u003e\u003c/a\u003e fix: set fixed paths_list in TreeMatcher init (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2130\"\u003e#2130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.13.3...7.13.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot 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/impressdesigns/shipstation-sdk/pull/43","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/impressdesigns%2Fshipstation-sdk/issues/43","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/43/packages"},{"uuid":"4005941401","node_id":"PR_kwDOKe6bh87HEDyP","number":198,"state":"open","title":"Bump the workflows-dependencies group in /.github/workflows with 2 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-03-01T01:43:50.000Z","updated_at":"2026-03-13T11:59:44.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"workflows-dependencies","update_count":2,"packages":[{"name":"nox","old_version":"2025.11.12","new_version":"2026.2.9","repository_url":"https://github.com/wntrblm/nox"},{"name":"pip","old_version":"26.0","new_version":"26.0.1","repository_url":"https://github.com/pypa/pip"}],"path":"/.github/workflows","ecosystem":"pip"},"body":"Bumps the workflows-dependencies group in /.github/workflows with 2 updates: [nox](https://github.com/wntrblm/nox) and [pip](https://github.com/pypa/pip).\n\nUpdates `nox` from 2025.11.12 to 2026.2.9\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/wntrblm/nox/releases\"\u003enox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2026.02.09 ❤️‍🩹\u003c/h2\u003e\n\u003cp\u003eThis small release supports uv 0.10's new requirement that \u003ccode\u003e--clear\u003c/code\u003e be passed to clear an environment. Python 3.8 support was temporarily re-added since uv 0.10 still supports 3.8, so nox on 3.8 was affected.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport uv 0.10.0 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1055\"\u003ewntrblm/nox#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow tags by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1058\"\u003ewntrblm/nox#1058\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter support for multiple session decorators by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1048\"\u003ewntrblm/nox#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize extra \u003ccode\u003etox-to-nox\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/wntrblm/nox/pull/1059\"\u003ewntrblm/nox#1059\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter typing for \u003ccode\u003e.run\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/wntrblm/nox/pull/1037\"\u003ewntrblm/nox#1037\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix conda CI job by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1035\"\u003ewntrblm/nox#1035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1004\"\u003ewntrblm/nox#1004\u003c/a\u003e and revert in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1060\"\u003ewntrblm/nox#1060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix action test by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1036\"\u003ewntrblm/nox#1036\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump packaging dep to remove pyparsing by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1047\"\u003ewntrblm/nox#1047\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid newest docutils until sphinx-tabs updates by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1052\"\u003ewntrblm/nox#1052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize the naming of constants to enhance readability by \u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1041\"\u003ewntrblm/nox#1041\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDuplicated session name in cookbook by \u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1050\"\u003ewntrblm/nox#1050\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/wntrblm/nox/blob/main/CHANGELOG.md\"\u003enox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003e2026.02.09\u003c/h2\u003e\n\u003cp\u003eThis small release supports uv 0.10's new requirement that \u003ccode\u003e--clear\u003c/code\u003e be passed\nto clear an environment. Python 3.8 support was temporarily re-added since uv\n0.10 still supports 3.8, so nox on 3.8 was affected.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport uv 0.10.0 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1055\"\u003ewntrblm/nox#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow tags by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1058\"\u003ewntrblm/nox#1058\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter support for multiple session decorators by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1048\"\u003ewntrblm/nox#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize extra \u003ccode\u003etox-to-nox\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/wntrblm/nox/pull/1059\"\u003ewntrblm/nox#1059\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter typing for \u003ccode\u003e.run\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/wntrblm/nox/pull/1037\"\u003ewntrblm/nox#1037\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix conda CI job by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1035\"\u003ewntrblm/nox#1035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1004\"\u003ewntrblm/nox#1004\u003c/a\u003e and revert in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1060\"\u003ewntrblm/nox#1060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix action test by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1036\"\u003ewntrblm/nox#1036\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump packaging dep to remove pyparsing by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1047\"\u003ewntrblm/nox#1047\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid newest docutils until sphinx-tabs updates by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1052\"\u003ewntrblm/nox#1052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize the naming of constants to enhance readability by \u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1041\"\u003ewntrblm/nox#1041\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDuplicated session name in cookbook by \u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1050\"\u003ewntrblm/nox#1050\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/wntrblm/nox/commit/5a277b752f6094150e25237d47c34168e2b7526e\"\u003e\u003ccode\u003e5a277b7\u003c/code\u003e\u003c/a\u003e docs: prepare for release (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1061\"\u003e#1061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/90a8aef54122e188dbea80680552507517523ced\"\u003e\u003ccode\u003e90a8aef\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;feat: drop Python 3.8 (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1004\"\u003e#1004\u003c/a\u003e)\u0026quot; (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1060\"\u003e#1060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/264f4577846b30c3f84bb313c8d3f5c497ab7cce\"\u003e\u003ccode\u003e264f457\u003c/code\u003e\u003c/a\u003e chore: normalize extra (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1059\"\u003e#1059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/516d9bc3e134d7fe0f6a370c64a9c52b74a18a85\"\u003e\u003ccode\u003e516d9bc\u003c/code\u003e\u003c/a\u003e fix: show tags (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1058\"\u003e#1058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/7207b3fbde52febfa72a29141440179219b9f272\"\u003e\u003ccode\u003e7207b3f\u003c/code\u003e\u003c/a\u003e fix: support uv 0.10.0 (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/11eee27ceb73fb77a8b4351718ef5e14821155ee\"\u003e\u003ccode\u003e11eee27\u003c/code\u003e\u003c/a\u003e fix: better support for multiple session decorators (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1048\"\u003e#1048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/c72769b1ee7bc729c08c93f518e536364cecee8e\"\u003e\u003ccode\u003ec72769b\u003c/code\u003e\u003c/a\u003e docs: duplicated session name in cookbook (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1050\"\u003e#1050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/a0660b17967de97c10f56b12f67cc5667e79bb08\"\u003e\u003ccode\u003ea0660b1\u003c/code\u003e\u003c/a\u003e docs: avoid newest docutils until sphinx-tabs updates (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1052\"\u003e#1052\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/f8edf5fec2c819ec502566d2005a8346c9363334\"\u003e\u003ccode\u003ef8edf5f\u003c/code\u003e\u003c/a\u003e fix(types): Better typing for .run (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1037\"\u003e#1037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/5dbd95e82f43d05dfd1c60bd296d203f34108ee3\"\u003e\u003ccode\u003e5dbd95e\u003c/code\u003e\u003c/a\u003e chore: optimize the naming of constants to enhance readability (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1041\"\u003e#1041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/wntrblm/nox/compare/2025.11.12...2026.02.09\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pip` from 26.0 to 26.0.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/pip/blob/main/NEWS.rst\"\u003epip's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e26.0.1 (2026-02-04)\u003c/h1\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e--pre\u003c/code\u003e not being respected from the command line when a requirement file\nincludes an option e.g. \u003ccode\u003e-extra-index-url\u003c/code\u003e. (\u003ccode\u003e[#13788](https://github.com/pypa/pip/issues/13788) \u0026lt;https://github.com/pypa/pip/issues/13788\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/pip/commit/5fe4ea4f24cd9756316a4b5ef05daa15d84f7d0c\"\u003e\u003ccode\u003e5fe4ea4\u003c/code\u003e\u003c/a\u003e Bump for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/pip/commit/bea3cbe3b4d637be6d5007e9a5a2327e500b00d8\"\u003e\u003ccode\u003ebea3cbe\u003c/code\u003e\u003c/a\u003e windows fix tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/pip/commit/ed22252bd19a71ce351b84405fa23230ca45ceea\"\u003e\u003ccode\u003eed22252\u003c/code\u003e\u003c/a\u003e News Entry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/pip/commit/af1327407f048bd2310b8b633f8e8a4e41c38d2c\"\u003e\u003ccode\u003eaf13274\u003c/code\u003e\u003c/a\u003e Match release control behavior to the same as format control behavior\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pypa/pip/compare/26.0...26.0.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/statisticsnorway/ssb-timeseries/pull/198","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/statisticsnorway%2Fssb-timeseries/issues/198","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/198/packages"},{"uuid":"3967343360","node_id":"PR_kwDOGTHrrc7FGmSp","number":30,"state":"closed","title":"chore(deps): bump nox from 2025.11.12 to 2026.2.9","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-02-24T01:37:45.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-20T08:45:44.000Z","updated_at":"2026-02-24T01:37:46.000Z","time_to_close":319921,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"nox","old_version":"2025.11.12","new_version":"2026.2.9","repository_url":"https://github.com/wntrblm/nox"}],"path":null,"ecosystem":"pip"},"body":"Bumps [nox](https://github.com/wntrblm/nox) from 2025.11.12 to 2026.2.9.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/wntrblm/nox/releases\"\u003enox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2026.02.09 ❤️‍🩹\u003c/h2\u003e\n\u003cp\u003eThis small release supports uv 0.10's new requirement that \u003ccode\u003e--clear\u003c/code\u003e be passed to clear an environment. Python 3.8 support was temporarily re-added since uv 0.10 still supports 3.8, so nox on 3.8 was affected.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport uv 0.10.0 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1055\"\u003ewntrblm/nox#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow tags by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1058\"\u003ewntrblm/nox#1058\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter support for multiple session decorators by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1048\"\u003ewntrblm/nox#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize extra \u003ccode\u003etox-to-nox\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/wntrblm/nox/pull/1059\"\u003ewntrblm/nox#1059\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter typing for \u003ccode\u003e.run\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/wntrblm/nox/pull/1037\"\u003ewntrblm/nox#1037\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix conda CI job by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1035\"\u003ewntrblm/nox#1035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1004\"\u003ewntrblm/nox#1004\u003c/a\u003e and revert in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1060\"\u003ewntrblm/nox#1060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix action test by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1036\"\u003ewntrblm/nox#1036\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump packaging dep to remove pyparsing by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1047\"\u003ewntrblm/nox#1047\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid newest docutils until sphinx-tabs updates by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1052\"\u003ewntrblm/nox#1052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize the naming of constants to enhance readability by \u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1041\"\u003ewntrblm/nox#1041\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDuplicated session name in cookbook by \u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1050\"\u003ewntrblm/nox#1050\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/wntrblm/nox/blob/main/CHANGELOG.md\"\u003enox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003e2026.02.09\u003c/h2\u003e\n\u003cp\u003eThis small release supports uv 0.10's new requirement that \u003ccode\u003e--clear\u003c/code\u003e be passed\nto clear an environment. Python 3.8 support was temporarily re-added since uv\n0.10 still supports 3.8, so nox on 3.8 was affected.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport uv 0.10.0 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1055\"\u003ewntrblm/nox#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow tags by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1058\"\u003ewntrblm/nox#1058\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter support for multiple session decorators by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1048\"\u003ewntrblm/nox#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize extra \u003ccode\u003etox-to-nox\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/wntrblm/nox/pull/1059\"\u003ewntrblm/nox#1059\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter typing for \u003ccode\u003e.run\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/wntrblm/nox/pull/1037\"\u003ewntrblm/nox#1037\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix conda CI job by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1035\"\u003ewntrblm/nox#1035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1004\"\u003ewntrblm/nox#1004\u003c/a\u003e and revert in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1060\"\u003ewntrblm/nox#1060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix action test by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1036\"\u003ewntrblm/nox#1036\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump packaging dep to remove pyparsing by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1047\"\u003ewntrblm/nox#1047\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid newest docutils until sphinx-tabs updates by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1052\"\u003ewntrblm/nox#1052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize the naming of constants to enhance readability by \u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1041\"\u003ewntrblm/nox#1041\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDuplicated session name in cookbook by \u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1050\"\u003ewntrblm/nox#1050\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/wntrblm/nox/commit/5a277b752f6094150e25237d47c34168e2b7526e\"\u003e\u003ccode\u003e5a277b7\u003c/code\u003e\u003c/a\u003e docs: prepare for release (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1061\"\u003e#1061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/90a8aef54122e188dbea80680552507517523ced\"\u003e\u003ccode\u003e90a8aef\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;feat: drop Python 3.8 (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1004\"\u003e#1004\u003c/a\u003e)\u0026quot; (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1060\"\u003e#1060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/264f4577846b30c3f84bb313c8d3f5c497ab7cce\"\u003e\u003ccode\u003e264f457\u003c/code\u003e\u003c/a\u003e chore: normalize extra (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1059\"\u003e#1059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/516d9bc3e134d7fe0f6a370c64a9c52b74a18a85\"\u003e\u003ccode\u003e516d9bc\u003c/code\u003e\u003c/a\u003e fix: show tags (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1058\"\u003e#1058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/7207b3fbde52febfa72a29141440179219b9f272\"\u003e\u003ccode\u003e7207b3f\u003c/code\u003e\u003c/a\u003e fix: support uv 0.10.0 (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/11eee27ceb73fb77a8b4351718ef5e14821155ee\"\u003e\u003ccode\u003e11eee27\u003c/code\u003e\u003c/a\u003e fix: better support for multiple session decorators (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1048\"\u003e#1048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/c72769b1ee7bc729c08c93f518e536364cecee8e\"\u003e\u003ccode\u003ec72769b\u003c/code\u003e\u003c/a\u003e docs: duplicated session name in cookbook (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1050\"\u003e#1050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/a0660b17967de97c10f56b12f67cc5667e79bb08\"\u003e\u003ccode\u003ea0660b1\u003c/code\u003e\u003c/a\u003e docs: avoid newest docutils until sphinx-tabs updates (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1052\"\u003e#1052\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/f8edf5fec2c819ec502566d2005a8346c9363334\"\u003e\u003ccode\u003ef8edf5f\u003c/code\u003e\u003c/a\u003e fix(types): Better typing for .run (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1037\"\u003e#1037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/5dbd95e82f43d05dfd1c60bd296d203f34108ee3\"\u003e\u003ccode\u003e5dbd95e\u003c/code\u003e\u003c/a\u003e chore: optimize the naming of constants to enhance readability (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1041\"\u003e#1041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/wntrblm/nox/compare/2025.11.12...2026.02.09\"\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=nox\u0026package-manager=uv\u0026previous-version=2025.11.12\u0026new-version=2026.2.9)](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/usnistgov/cmomy/pull/30","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/usnistgov%2Fcmomy/issues/30","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/30/packages"},{"uuid":"3947602808","node_id":"PR_kwDOLNMMKs7EFyqh","number":45,"state":"open","title":"Update nox requirement from \u003c2025.12.0,\u003e=2025.5.1 to \u003e=2025.5.1,\u003c2026.3.0","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-02-16T12:44:56.000Z","updated_at":"2026-02-16T12:44:57.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Update","packages":[{"name":"nox","old_version":"\u003c2025.12.0,\u003e=2025.5.1","new_version":"\u003e=2025.5.1,\u003c2026.3.0","repository_url":"https://github.com/wntrblm/nox"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [nox](https://github.com/wntrblm/nox) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/wntrblm/nox/blob/main/CHANGELOG.md\"\u003enox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003e2026.02.09\u003c/h2\u003e\n\u003cp\u003eThis small release supports uv 0.10's new requirement that \u003ccode\u003e--clear\u003c/code\u003e be passed\nto clear an environment. Python 3.8 support was temporarily re-added since uv\n0.10 still supports 3.8, so nox on 3.8 was affected.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport uv 0.10.0 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1055\"\u003ewntrblm/nox#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow tags by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1058\"\u003ewntrblm/nox#1058\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter support for multiple session decorators by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1048\"\u003ewntrblm/nox#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize extra \u003ccode\u003etox-to-nox\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/wntrblm/nox/pull/1059\"\u003ewntrblm/nox#1059\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter typing for \u003ccode\u003e.run\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/wntrblm/nox/pull/1037\"\u003ewntrblm/nox#1037\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix conda CI job by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1035\"\u003ewntrblm/nox#1035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1004\"\u003ewntrblm/nox#1004\u003c/a\u003e and revert in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1060\"\u003ewntrblm/nox#1060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix action test by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1036\"\u003ewntrblm/nox#1036\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump packaging dep to remove pyparsing by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1047\"\u003ewntrblm/nox#1047\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid newest docutils until sphinx-tabs updates by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1052\"\u003ewntrblm/nox#1052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize the naming of constants to enhance readability by \u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1041\"\u003ewntrblm/nox#1041\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDuplicated session name in cookbook by \u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1050\"\u003ewntrblm/nox#1050\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2025.11.12\u003c/h2\u003e\n\u003cp\u003eThis is a small release to fix a warning when running in script mode before we\ndrop Python 3.8.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid warnings when running in script mode by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1025\"\u003ewntrblm/nox#1025\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/wntrblm/nox/commit/5a277b752f6094150e25237d47c34168e2b7526e\"\u003e\u003ccode\u003e5a277b7\u003c/code\u003e\u003c/a\u003e docs: prepare for release (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1061\"\u003e#1061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/90a8aef54122e188dbea80680552507517523ced\"\u003e\u003ccode\u003e90a8aef\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;feat: drop Python 3.8 (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1004\"\u003e#1004\u003c/a\u003e)\u0026quot; (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1060\"\u003e#1060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/264f4577846b30c3f84bb313c8d3f5c497ab7cce\"\u003e\u003ccode\u003e264f457\u003c/code\u003e\u003c/a\u003e chore: normalize extra (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1059\"\u003e#1059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/516d9bc3e134d7fe0f6a370c64a9c52b74a18a85\"\u003e\u003ccode\u003e516d9bc\u003c/code\u003e\u003c/a\u003e fix: show tags (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1058\"\u003e#1058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/7207b3fbde52febfa72a29141440179219b9f272\"\u003e\u003ccode\u003e7207b3f\u003c/code\u003e\u003c/a\u003e fix: support uv 0.10.0 (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/11eee27ceb73fb77a8b4351718ef5e14821155ee\"\u003e\u003ccode\u003e11eee27\u003c/code\u003e\u003c/a\u003e fix: better support for multiple session decorators (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1048\"\u003e#1048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/c72769b1ee7bc729c08c93f518e536364cecee8e\"\u003e\u003ccode\u003ec72769b\u003c/code\u003e\u003c/a\u003e docs: duplicated session name in cookbook (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1050\"\u003e#1050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/a0660b17967de97c10f56b12f67cc5667e79bb08\"\u003e\u003ccode\u003ea0660b1\u003c/code\u003e\u003c/a\u003e docs: avoid newest docutils until sphinx-tabs updates (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1052\"\u003e#1052\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/f8edf5fec2c819ec502566d2005a8346c9363334\"\u003e\u003ccode\u003ef8edf5f\u003c/code\u003e\u003c/a\u003e fix(types): Better typing for .run (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1037\"\u003e#1037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/5dbd95e82f43d05dfd1c60bd296d203f34108ee3\"\u003e\u003ccode\u003e5dbd95e\u003c/code\u003e\u003c/a\u003e chore: optimize the naming of constants to enhance readability (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1041\"\u003e#1041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/wntrblm/nox/compare/2025.05.01...2026.02.09\"\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/Cray-HPE/vtds-cluster-mock/pull/45","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cray-HPE%2Fvtds-cluster-mock/issues/45","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/45/packages"},{"uuid":"3945988765","node_id":"PR_kwDONK2-pc7EAdu_","number":100,"state":"closed","title":"Bump nox from 2025.11.12 to 2026.2.9 in /.github/workflows","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-13T05:37:36.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-16T05:40:06.000Z","updated_at":"2026-04-13T05:37:38.000Z","time_to_close":4838250,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"nox","old_version":"2025.11.12","new_version":"2026.2.9","repository_url":"https://github.com/wntrblm/nox"}],"path":"/.github/workflows","ecosystem":"pip"},"body":"Bumps [nox](https://github.com/wntrblm/nox) from 2025.11.12 to 2026.2.9.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/wntrblm/nox/releases\"\u003enox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2026.02.09 ❤️‍🩹\u003c/h2\u003e\n\u003cp\u003eThis small release supports uv 0.10's new requirement that \u003ccode\u003e--clear\u003c/code\u003e be passed to clear an environment. Python 3.8 support was temporarily re-added since uv 0.10 still supports 3.8, so nox on 3.8 was affected.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport uv 0.10.0 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1055\"\u003ewntrblm/nox#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow tags by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1058\"\u003ewntrblm/nox#1058\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter support for multiple session decorators by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1048\"\u003ewntrblm/nox#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize extra \u003ccode\u003etox-to-nox\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/wntrblm/nox/pull/1059\"\u003ewntrblm/nox#1059\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter typing for \u003ccode\u003e.run\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/wntrblm/nox/pull/1037\"\u003ewntrblm/nox#1037\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix conda CI job by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1035\"\u003ewntrblm/nox#1035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1004\"\u003ewntrblm/nox#1004\u003c/a\u003e and revert in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1060\"\u003ewntrblm/nox#1060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix action test by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1036\"\u003ewntrblm/nox#1036\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump packaging dep to remove pyparsing by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1047\"\u003ewntrblm/nox#1047\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid newest docutils until sphinx-tabs updates by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1052\"\u003ewntrblm/nox#1052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize the naming of constants to enhance readability by \u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1041\"\u003ewntrblm/nox#1041\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDuplicated session name in cookbook by \u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1050\"\u003ewntrblm/nox#1050\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/wntrblm/nox/blob/main/CHANGELOG.md\"\u003enox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003e2026.02.09\u003c/h2\u003e\n\u003cp\u003eThis small release supports uv 0.10's new requirement that \u003ccode\u003e--clear\u003c/code\u003e be passed\nto clear an environment. Python 3.8 support was temporarily re-added since uv\n0.10 still supports 3.8, so nox on 3.8 was affected.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport uv 0.10.0 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1055\"\u003ewntrblm/nox#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow tags by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1058\"\u003ewntrblm/nox#1058\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter support for multiple session decorators by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1048\"\u003ewntrblm/nox#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize extra \u003ccode\u003etox-to-nox\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/wntrblm/nox/pull/1059\"\u003ewntrblm/nox#1059\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter typing for \u003ccode\u003e.run\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/wntrblm/nox/pull/1037\"\u003ewntrblm/nox#1037\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix conda CI job by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1035\"\u003ewntrblm/nox#1035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1004\"\u003ewntrblm/nox#1004\u003c/a\u003e and revert in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1060\"\u003ewntrblm/nox#1060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix action test by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1036\"\u003ewntrblm/nox#1036\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump packaging dep to remove pyparsing by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1047\"\u003ewntrblm/nox#1047\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid newest docutils until sphinx-tabs updates by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1052\"\u003ewntrblm/nox#1052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize the naming of constants to enhance readability by \u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1041\"\u003ewntrblm/nox#1041\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDuplicated session name in cookbook by \u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1050\"\u003ewntrblm/nox#1050\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/wntrblm/nox/commit/5a277b752f6094150e25237d47c34168e2b7526e\"\u003e\u003ccode\u003e5a277b7\u003c/code\u003e\u003c/a\u003e docs: prepare for release (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1061\"\u003e#1061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/90a8aef54122e188dbea80680552507517523ced\"\u003e\u003ccode\u003e90a8aef\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;feat: drop Python 3.8 (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1004\"\u003e#1004\u003c/a\u003e)\u0026quot; (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1060\"\u003e#1060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/264f4577846b30c3f84bb313c8d3f5c497ab7cce\"\u003e\u003ccode\u003e264f457\u003c/code\u003e\u003c/a\u003e chore: normalize extra (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1059\"\u003e#1059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/516d9bc3e134d7fe0f6a370c64a9c52b74a18a85\"\u003e\u003ccode\u003e516d9bc\u003c/code\u003e\u003c/a\u003e fix: show tags (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1058\"\u003e#1058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/7207b3fbde52febfa72a29141440179219b9f272\"\u003e\u003ccode\u003e7207b3f\u003c/code\u003e\u003c/a\u003e fix: support uv 0.10.0 (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/11eee27ceb73fb77a8b4351718ef5e14821155ee\"\u003e\u003ccode\u003e11eee27\u003c/code\u003e\u003c/a\u003e fix: better support for multiple session decorators (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1048\"\u003e#1048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/c72769b1ee7bc729c08c93f518e536364cecee8e\"\u003e\u003ccode\u003ec72769b\u003c/code\u003e\u003c/a\u003e docs: duplicated session name in cookbook (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1050\"\u003e#1050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/a0660b17967de97c10f56b12f67cc5667e79bb08\"\u003e\u003ccode\u003ea0660b1\u003c/code\u003e\u003c/a\u003e docs: avoid newest docutils until sphinx-tabs updates (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1052\"\u003e#1052\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/f8edf5fec2c819ec502566d2005a8346c9363334\"\u003e\u003ccode\u003ef8edf5f\u003c/code\u003e\u003c/a\u003e fix(types): Better typing for .run (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1037\"\u003e#1037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/5dbd95e82f43d05dfd1c60bd296d203f34108ee3\"\u003e\u003ccode\u003e5dbd95e\u003c/code\u003e\u003c/a\u003e chore: optimize the naming of constants to enhance readability (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1041\"\u003e#1041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/wntrblm/nox/compare/2025.11.12...2026.02.09\"\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=nox\u0026package-manager=pip\u0026previous-version=2025.11.12\u0026new-version=2026.2.9)](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/ucl-exoplanets/taurex3/pull/100","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ucl-exoplanets%2Ftaurex3/issues/100","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/100/packages"},{"uuid":"3945825155","node_id":"PR_kwDOIi5n2c7D_8Y4","number":438,"state":"open","title":"Bump the python-packages group with 3 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-02-16T04:33:25.000Z","updated_at":"2026-02-17T10:37:54.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-packages","update_count":3,"packages":[{"name":"ruff","old_version":"0.15.0","new_version":"0.15.1","repository_url":"https://github.com/astral-sh/ruff"},{"name":"types-networkx","old_version":"3.6.1.20251220","new_version":"3.6.1.20260210","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"nox","old_version":"2025.11.12","new_version":"2026.2.9","repository_url":"https://github.com/wntrblm/nox"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-packages group with 3 updates: [ruff](https://github.com/astral-sh/ruff), [types-networkx](https://github.com/typeshed-internal/stub_uploader) and [nox](https://github.com/wntrblm/nox).\n\nUpdates `ruff` from 0.15.0 to 0.15.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.1\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-02-12.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Add ruff rules to catch deprecated Airflow imports for Airflow 3.1 (\u003ccode\u003eAIR321\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22376\"\u003e#22376\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Third positional parameter not named \u003ccode\u003eti_key\u003c/code\u003e should be flagged for \u003ccode\u003eBaseOperatorLink.get_link\u003c/code\u003e (\u003ccode\u003eAIR303\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22828\"\u003e#22828\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-gettext\u003c/code\u003e] Fix false negatives for plural argument of \u003ccode\u003engettext\u003c/code\u003e (\u003ccode\u003eINT001\u003c/code\u003e, \u003ccode\u003eINT002\u003c/code\u003e, \u003ccode\u003eINT003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21078\"\u003e#21078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Fix infinite loop in preview fix for \u003ccode\u003eunused-import\u003c/code\u003e (\u003ccode\u003eF401\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23038\"\u003e#23038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epygrep-hooks\u003c/code\u003e] Detect non-existent mock methods in standalone expressions (\u003ccode\u003ePGH005\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22830\"\u003e#22830\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Allow dunder submodules and improve diagnostic range (\u003ccode\u003ePLC2701\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22804\"\u003e#22804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Improve diagnostic range for tuples (\u003ccode\u003eUP024\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23013\"\u003e#23013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Check subscripts in tuple do not use lambda parameters in \u003ccode\u003ereimplemented-operator\u003c/code\u003e (\u003ccode\u003eFURB118\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23079\"\u003e#23079\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Detect mutable defaults in \u003ccode\u003efield\u003c/code\u003e calls (\u003ccode\u003eRUF008\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23046\"\u003e#23046\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Ignore std \u003ccode\u003ecmath.inf\u003c/code\u003e (\u003ccode\u003eRUF069\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23120\"\u003e#23120\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] New rule \u003ccode\u003efloat-equality-comparison\u003c/code\u003e (\u003ccode\u003eRUF069\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20585\"\u003e#20585\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't format unlabeled Markdown code blocks (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23106\"\u003e#23106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMarkdown formatting support in LSP (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23063\"\u003e#23063\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport Quarto Markdown language markers (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22947\"\u003e#22947\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport formatting \u003ccode\u003epycon\u003c/code\u003e Markdown code blocks (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23112\"\u003e#23112\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse extension mapping to select Markdown code block language (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22934\"\u003e#22934\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid false positive for undefined variables in \u003ccode\u003eFAST001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23224\"\u003e#23224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid introducing syntax errors for \u003ccode\u003eFAST003\u003c/code\u003e autofix (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23227\"\u003e#23227\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid suggesting \u003ccode\u003eInitVar\u003c/code\u003e for \u003ccode\u003e__post_init__\u003c/code\u003e that references PEP 695 type parameters (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23226\"\u003e#23226\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeduplicate type variables in generic functions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23225\"\u003e#23225\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix exception handler parenthesis removal for Python 3.14+ (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23126\"\u003e#23126\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix f-string middle panic when parsing t-strings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23232\"\u003e#23232\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWrap \u003ccode\u003eRUF020\u003c/code\u003e target for multiline fixes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23210\"\u003e#23210\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWrap \u003ccode\u003eUP007\u003c/code\u003e target for multiline fixes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23208\"\u003e#23208\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix missing diagnostics for last range suppression in file (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23242\"\u003e#23242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix syntax error on string with newline escape and comment (\u003ccode\u003eUP037\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22968\"\u003e#22968\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003eruff\u003c/code\u003e instead of \u003ccode\u003eRuff\u003c/code\u003e as the program name in GitHub output format (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23240\"\u003e#23240\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003ePT006\u003c/code\u003e] Fix syntax error when unpacking nested tuples in \u003ccode\u003eparametrize\u003c/code\u003e fixes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22441\"\u003e#22441\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22464\"\u003e#22464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Catch deprecated attribute access from context key for Airflow 3.0 (\u003ccode\u003eAIR301\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22850\"\u003e#22850\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Capture deprecated arguments and a decorator (\u003ccode\u003eAIR301\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23170\"\u003e#23170\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-boolean-trap\u003c/code\u003e] Add \u003ccode\u003emultiprocessing.Value\u003c/code\u003e to excluded functions for \u003ccode\u003eFBT003\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23010\"\u003e#23010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Add a secondary annotation showing the previous occurrence (\u003ccode\u003eB033\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22634\"\u003e#22634\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-type-checking\u003c/code\u003e] Add sub-diagnostic showing the runtime use of an annotation (\u003ccode\u003eTC004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23091\"\u003e#23091\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eisort\u003c/code\u003e] Support configurable import section heading comments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23151\"\u003e#23151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Improve the diagnostic for \u003ccode\u003eRUF012\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23202\"\u003e#23202\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFormatter\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.1\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-02-12.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Add ruff rules to catch deprecated Airflow imports for Airflow 3.1 (\u003ccode\u003eAIR321\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22376\"\u003e#22376\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Third positional parameter not named \u003ccode\u003eti_key\u003c/code\u003e should be flagged for \u003ccode\u003eBaseOperatorLink.get_link\u003c/code\u003e (\u003ccode\u003eAIR303\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22828\"\u003e#22828\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-gettext\u003c/code\u003e] Fix false negatives for plural argument of \u003ccode\u003engettext\u003c/code\u003e (\u003ccode\u003eINT001\u003c/code\u003e, \u003ccode\u003eINT002\u003c/code\u003e, \u003ccode\u003eINT003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21078\"\u003e#21078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Fix infinite loop in preview fix for \u003ccode\u003eunused-import\u003c/code\u003e (\u003ccode\u003eF401\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23038\"\u003e#23038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epygrep-hooks\u003c/code\u003e] Detect non-existent mock methods in standalone expressions (\u003ccode\u003ePGH005\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22830\"\u003e#22830\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Allow dunder submodules and improve diagnostic range (\u003ccode\u003ePLC2701\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22804\"\u003e#22804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Improve diagnostic range for tuples (\u003ccode\u003eUP024\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23013\"\u003e#23013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Check subscripts in tuple do not use lambda parameters in \u003ccode\u003ereimplemented-operator\u003c/code\u003e (\u003ccode\u003eFURB118\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23079\"\u003e#23079\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Detect mutable defaults in \u003ccode\u003efield\u003c/code\u003e calls (\u003ccode\u003eRUF008\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23046\"\u003e#23046\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Ignore std \u003ccode\u003ecmath.inf\u003c/code\u003e (\u003ccode\u003eRUF069\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23120\"\u003e#23120\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] New rule \u003ccode\u003efloat-equality-comparison\u003c/code\u003e (\u003ccode\u003eRUF069\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20585\"\u003e#20585\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't format unlabeled Markdown code blocks (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23106\"\u003e#23106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMarkdown formatting support in LSP (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23063\"\u003e#23063\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport Quarto Markdown language markers (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22947\"\u003e#22947\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport formatting \u003ccode\u003epycon\u003c/code\u003e Markdown code blocks (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23112\"\u003e#23112\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse extension mapping to select Markdown code block language (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22934\"\u003e#22934\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid false positive for undefined variables in \u003ccode\u003eFAST001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23224\"\u003e#23224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid introducing syntax errors for \u003ccode\u003eFAST003\u003c/code\u003e autofix (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23227\"\u003e#23227\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid suggesting \u003ccode\u003eInitVar\u003c/code\u003e for \u003ccode\u003e__post_init__\u003c/code\u003e that references PEP 695 type parameters (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23226\"\u003e#23226\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeduplicate type variables in generic functions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23225\"\u003e#23225\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix exception handler parenthesis removal for Python 3.14+ (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23126\"\u003e#23126\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix f-string middle panic when parsing t-strings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23232\"\u003e#23232\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWrap \u003ccode\u003eRUF020\u003c/code\u003e target for multiline fixes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23210\"\u003e#23210\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWrap \u003ccode\u003eUP007\u003c/code\u003e target for multiline fixes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23208\"\u003e#23208\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix missing diagnostics for last range suppression in file (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23242\"\u003e#23242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix syntax error on string with newline escape and comment (\u003ccode\u003eUP037\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22968\"\u003e#22968\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003eruff\u003c/code\u003e instead of \u003ccode\u003eRuff\u003c/code\u003e as the program name in GitHub output format (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23240\"\u003e#23240\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003ePT006\u003c/code\u003e] Fix syntax error when unpacking nested tuples in \u003ccode\u003eparametrize\u003c/code\u003e fixes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22441\"\u003e#22441\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22464\"\u003e#22464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Catch deprecated attribute access from context key for Airflow 3.0 (\u003ccode\u003eAIR301\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22850\"\u003e#22850\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Capture deprecated arguments and a decorator (\u003ccode\u003eAIR301\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23170\"\u003e#23170\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-boolean-trap\u003c/code\u003e] Add \u003ccode\u003emultiprocessing.Value\u003c/code\u003e to excluded functions for \u003ccode\u003eFBT003\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23010\"\u003e#23010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Add a secondary annotation showing the previous occurrence (\u003ccode\u003eB033\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22634\"\u003e#22634\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-type-checking\u003c/code\u003e] Add sub-diagnostic showing the runtime use of an annotation (\u003ccode\u003eTC004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23091\"\u003e#23091\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eisort\u003c/code\u003e] Support configurable import section heading comments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23151\"\u003e#23151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Improve the diagnostic for \u003ccode\u003eRUF012\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23202\"\u003e#23202\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFormatter\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/astral-sh/ruff/commit/a2f11d239f91cf8daedb0764ec15fcfe29c5ae6d\"\u003e\u003ccode\u003ea2f11d2\u003c/code\u003e\u003c/a\u003e Prepare for 0.15.1 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23253\"\u003e#23253\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/d29628e9665baa17272aad489398eb72b70e60ff\"\u003e\u003ccode\u003ed29628e\u003c/code\u003e\u003c/a\u003e Remove docker-run-action (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23254\"\u003e#23254\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/8a042667651d7b1cdfc1742478d2b29b04d91be0\"\u003e\u003ccode\u003e8a04266\u003c/code\u003e\u003c/a\u003e [ty] Allow discovering dependencies in system Python environments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22994\"\u003e#22994\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/55d06c8879761c5500e9558502abc84cefcb7163\"\u003e\u003ccode\u003e55d06c8\u003c/code\u003e\u003c/a\u003e Ensure pending suppression diagnostics are reported (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23242\"\u003e#23242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/d056a9fa6dfb842f2c0d439bf7b1a8099e5734ea\"\u003e\u003ccode\u003ed056a9f\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eisort\u003c/code\u003e] support for configurable import section heading comments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23151\"\u003e#23151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e22fa4f14d8fae550249e452d11bc53756df5c7a\"\u003e\u003ccode\u003ee22fa4f\u003c/code\u003e\u003c/a\u003e [ty] Fix method calls on subclasses of \u003ccode\u003eAny\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23248\"\u003e#23248\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/fa56c1550d723e458b91dc2405d5537d40401d5c\"\u003e\u003ccode\u003efa56c15\u003c/code\u003e\u003c/a\u003e [ty] Fix bound method access on \u003ccode\u003eNone\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23246\"\u003e#23246\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/4fd07d0e1cbbb4e4c3f5b4c1f04f2d8b3f4a2bf2\"\u003e\u003ccode\u003e4fd07d0\u003c/code\u003e\u003c/a\u003e Make range suppression test snapshot actually useful (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23251\"\u003e#23251\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/8c63bced13b21d1952a56e6a096d9c2ec4af442f\"\u003e\u003ccode\u003e8c63bce\u003c/code\u003e\u003c/a\u003e [ty] Include conditional symbols (like \u003ccode\u003edatetime.UTC\u003c/code\u003e) in auto-import in more...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/46be94361b3b4c54be911eb88bfbd9666eb06a6d\"\u003e\u003ccode\u003e46be943\u003c/code\u003e\u003c/a\u003e Exclude WASM artifacts from GitHub releases (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23221\"\u003e#23221\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.15.0...0.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `types-networkx` from 3.6.1.20251220 to 3.6.1.20260210\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 `nox` from 2025.11.12 to 2026.2.9\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/wntrblm/nox/releases\"\u003enox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2026.02.09 ❤️‍🩹\u003c/h2\u003e\n\u003cp\u003eThis small release supports uv 0.10's new requirement that \u003ccode\u003e--clear\u003c/code\u003e be passed to clear an environment. Python 3.8 support was temporarily re-added since uv 0.10 still supports 3.8, so nox on 3.8 was affected.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport uv 0.10.0 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1055\"\u003ewntrblm/nox#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow tags by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1058\"\u003ewntrblm/nox#1058\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter support for multiple session decorators by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1048\"\u003ewntrblm/nox#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize extra \u003ccode\u003etox-to-nox\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/wntrblm/nox/pull/1059\"\u003ewntrblm/nox#1059\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter typing for \u003ccode\u003e.run\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/wntrblm/nox/pull/1037\"\u003ewntrblm/nox#1037\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix conda CI job by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1035\"\u003ewntrblm/nox#1035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1004\"\u003ewntrblm/nox#1004\u003c/a\u003e and revert in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1060\"\u003ewntrblm/nox#1060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix action test by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1036\"\u003ewntrblm/nox#1036\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump packaging dep to remove pyparsing by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1047\"\u003ewntrblm/nox#1047\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid newest docutils until sphinx-tabs updates by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1052\"\u003ewntrblm/nox#1052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize the naming of constants to enhance readability by \u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1041\"\u003ewntrblm/nox#1041\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDuplicated session name in cookbook by \u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1050\"\u003ewntrblm/nox#1050\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/wntrblm/nox/blob/main/CHANGELOG.md\"\u003enox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003e2026.02.09\u003c/h2\u003e\n\u003cp\u003eThis small release supports uv 0.10's new requirement that \u003ccode\u003e--clear\u003c/code\u003e be passed\nto clear an environment. Python 3.8 support was temporarily re-added since uv\n0.10 still supports 3.8, so nox on 3.8 was affected.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport uv 0.10.0 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1055\"\u003ewntrblm/nox#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow tags by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1058\"\u003ewntrblm/nox#1058\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter support for multiple session decorators by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1048\"\u003ewntrblm/nox#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize extra \u003ccode\u003etox-to-nox\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/wntrblm/nox/pull/1059\"\u003ewntrblm/nox#1059\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter typing for \u003ccode\u003e.run\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/wntrblm/nox/pull/1037\"\u003ewntrblm/nox#1037\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix conda CI job by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1035\"\u003ewntrblm/nox#1035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1004\"\u003ewntrblm/nox#1004\u003c/a\u003e and revert in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1060\"\u003ewntrblm/nox#1060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix action test by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1036\"\u003ewntrblm/nox#1036\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump packaging dep to remove pyparsing by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1047\"\u003ewntrblm/nox#1047\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid newest docutils until sphinx-tabs updates by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1052\"\u003ewntrblm/nox#1052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize the naming of constants to enhance readability by \u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1041\"\u003ewntrblm/nox#1041\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDuplicated session name in cookbook by \u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1050\"\u003ewntrblm/nox#1050\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/wntrblm/nox/commit/5a277b752f6094150e25237d47c34168e2b7526e\"\u003e\u003ccode\u003e5a277b7\u003c/code\u003e\u003c/a\u003e docs: prepare for release (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1061\"\u003e#1061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/90a8aef54122e188dbea80680552507517523ced\"\u003e\u003ccode\u003e90a8aef\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;feat: drop Python 3.8 (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1004\"\u003e#1004\u003c/a\u003e)\u0026quot; (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1060\"\u003e#1060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/264f4577846b30c3f84bb313c8d3f5c497ab7cce\"\u003e\u003ccode\u003e264f457\u003c/code\u003e\u003c/a\u003e chore: normalize extra (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1059\"\u003e#1059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/516d9bc3e134d7fe0f6a370c64a9c52b74a18a85\"\u003e\u003ccode\u003e516d9bc\u003c/code\u003e\u003c/a\u003e fix: show tags (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1058\"\u003e#1058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/7207b3fbde52febfa72a29141440179219b9f272\"\u003e\u003ccode\u003e7207b3f\u003c/code\u003e\u003c/a\u003e fix: support uv 0.10.0 (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/11eee27ceb73fb77a8b4351718ef5e14821155ee\"\u003e\u003ccode\u003e11eee27\u003c/code\u003e\u003c/a\u003e fix: better support for multiple session decorators (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1048\"\u003e#1048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/c72769b1ee7bc729c08c93f518e536364cecee8e\"\u003e\u003ccode\u003ec72769b\u003c/code\u003e\u003c/a\u003e docs: duplicated session name in cookbook (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1050\"\u003e#1050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/a0660b17967de97c10f56b12f67cc5667e79bb08\"\u003e\u003ccode\u003ea0660b1\u003c/code\u003e\u003c/a\u003e docs: avoid newest docutils until sphinx-tabs updates (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1052\"\u003e#1052\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/f8edf5fec2c819ec502566d2005a8346c9363334\"\u003e\u003ccode\u003ef8edf5f\u003c/code\u003e\u003c/a\u003e fix(types): Better typing for .run (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1037\"\u003e#1037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/5dbd95e82f43d05dfd1c60bd296d203f34108ee3\"\u003e\u003ccode\u003e5dbd95e\u003c/code\u003e\u003c/a\u003e chore: optimize the naming of constants to enhance readability (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1041\"\u003e#1041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/wntrblm/nox/compare/2025.11.12...2026.02.09\"\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/TeamGraphix/graphix/pull/438","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/TeamGraphix%2Fgraphix/issues/438","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/438/packages"}],"issue_packages":[{"old_version":"\u003e=2026.4.10","new_version":"\u003e=2026.7.11","update_type":"minor","path":"/is-unicode-supported","pr_created_at":"2026-07-13T12:58:29.000Z","version_change":"\u003e=2026.4.10 → \u003e=2026.7.11","issue":{"uuid":"4873842501","node_id":"PR_kwDOJnW9387xExWh","number":369,"state":"closed","title":"Update nox requirement from \u003e=2026.4.10 to \u003e=2026.7.11 in /is-unicode-supported","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-07-14T02:22:44.000Z","author_association":null,"state_reason":null,"created_at":"2026-07-13T12:58:29.000Z","updated_at":"2026-07-14T02:22:46.000Z","time_to_close":48255,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Update","packages":[{"name":"nox","old_version":"\u003e=2026.4.10","new_version":"\u003e=2026.7.11","repository_url":"https://github.com/wntrblm/nox"}],"path":"/is-unicode-supported","ecosystem":"pip"},"body":"Updates the requirements on [nox](https://github.com/wntrblm/nox) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/wntrblm/nox/blob/main/CHANGELOG.md\"\u003enox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003e2026.07.11\u003c/h2\u003e\n\u003cp\u003eThis release drops Python 3.9 and brings a batch of performance improvements,\nlike caching uv detection and interpreter discovery, plus lazy module imports\non Python 3.15. Various bugs were fixed as well.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SAY-5\"\u003e\u003ccode\u003e@​SAY-5\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Himanshuagrawal4\"\u003e\u003ccode\u003e@​Himanshuagrawal4\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TejasAmle\"\u003e\u003ccode\u003e@​TejasAmle\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/felixfontein\"\u003e\u003ccode\u003e@​felixfontein\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1049\"\u003ewntrblm/nox#1049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ereturn_code\u003c/code\u003e property to \u003ccode\u003eCommandFailed\u003c/code\u003e exception by \u003ca href=\"https://github.com/felixfontein\"\u003e\u003ccode\u003e@​felixfontein\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1129\"\u003ewntrblm/nox#1129\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePerformance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCache session-name normalization, uv detection, interpreter discovery, and metadata reads by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1113\"\u003ewntrblm/nox#1113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLazy modules on Python 3.15 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1115\"\u003ewntrblm/nox#1115\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eScript-mode pip resolution on Windows and \u003ccode\u003e--download-python\u003c/code\u003e fallback by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1110\"\u003ewntrblm/nox#1110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't crash when a parametrized session has an empty parameter list by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1109\"\u003ewntrblm/nox#1109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHash fully non-ASCII session names instead of returning the envdir by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1108\"\u003ewntrblm/nox#1108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInterpreter-resolution edge cases in \u003ccode\u003evirtualenv.py\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/wntrblm/nox/pull/1111\"\u003ewntrblm/nox#1111\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate missing parent directories for the session cache dir by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1104\"\u003ewntrblm/nox#1104\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnforce \u003ccode\u003e--error-on-external-run\u003c/code\u003e even when \u003ccode\u003elog=False\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/wntrblm/nox/pull/1107\"\u003ewntrblm/nox#1107\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle \u003ccode\u003e=\u003c/code\u003e in \u003ccode\u003eset_env\u003c/code\u003e values and out-of-tree \u003ccode\u003echange_dir\u003c/code\u003e in \u003ccode\u003etox-to-nox\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/wntrblm/nox/pull/1105\"\u003ewntrblm/nox#1105\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReturn empty dict from \u003ccode\u003eload_toml\u003c/code\u003e when script file is missing by \u003ca href=\"https://github.com/SAY-5\"\u003e\u003ccode\u003e@​SAY-5\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1096\"\u003ewntrblm/nox#1096\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow envvars in CLI help by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1085\"\u003ewntrblm/nox#1085\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd PyO3 as a user by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1123\"\u003ewntrblm/nox#1123\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eList micromamba in \u003ccode\u003e--default-venv-backend\u003c/code\u003e supported names by \u003ca href=\"https://github.com/SAY-5\"\u003e\u003ccode\u003e@​SAY-5\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1092\"\u003ewntrblm/nox#1092\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClarify \u003ccode\u003esession.notify\u003c/code\u003e target docs by \u003ca href=\"https://github.com/Himanshuagrawal4\"\u003e\u003ccode\u003e@​Himanshuagrawal4\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1099\"\u003ewntrblm/nox#1099\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocument venv backend for EOL Python by \u003ca href=\"https://github.com/Himanshuagrawal4\"\u003e\u003ccode\u003e@​Himanshuagrawal4\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1101\"\u003ewntrblm/nox#1101\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typo in README installation section by \u003ca href=\"https://github.com/TejasAmle\"\u003e\u003ccode\u003e@​TejasAmle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1097\"\u003ewntrblm/nox#1097\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal changes:\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/3284968a16fa5bd7fc0cc64a69a531404ccb4756\"\u003e\u003ccode\u003e3284968\u003c/code\u003e\u003c/a\u003e chore: prepare release 2026.07.11 (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1132\"\u003e#1132\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/d73f96a257af685c948326cd37a3125ffbe778dc\"\u003e\u003ccode\u003ed73f96a\u003c/code\u003e\u003c/a\u003e ci: add Python 3.15 to the test matrix and classifiers (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1133\"\u003e#1133\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/53919851d49123393a6502df05a1350b0c2cfe0b\"\u003e\u003ccode\u003e5391985\u003c/code\u003e\u003c/a\u003e test: isolate run_nox envdir to fix flaky test_main_requires (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1134\"\u003e#1134\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/390d8170819d239b278137503e691419c065fa6d\"\u003e\u003ccode\u003e390d817\u003c/code\u003e\u003c/a\u003e feat: add return_code to CommandFailed. (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1129\"\u003e#1129\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/f1d521079f2c8d9d22494ce30d0f31e8a9cd7b86\"\u003e\u003ccode\u003ef1d5210\u003c/code\u003e\u003c/a\u003e chore(deps): bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1125\"\u003e#1125\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/0894b7340d4012220e146bd56657edde41d91000\"\u003e\u003ccode\u003e0894b73\u003c/code\u003e\u003c/a\u003e chore(deps): bump the pre-commit group with 4 updates (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1126\"\u003e#1126\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/9b747edbc2c72f147325742add03c2c201d7f018\"\u003e\u003ccode\u003e9b747ed\u003c/code\u003e\u003c/a\u003e ci: experimental MSYS2/MinGW test run (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1122\"\u003e#1122\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/8a44270d63c7d232bf4dd0773a12e1d8b43649d4\"\u003e\u003ccode\u003e8a44270\u003c/code\u003e\u003c/a\u003e docs: add PyO3 as a user (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1123\"\u003e#1123\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/5bd0f8357ef4bee910b03373b1cdb24de0a71f35\"\u003e\u003ccode\u003e5bd0f83\u003c/code\u003e\u003c/a\u003e perf: lazy modules on Python 3.15 (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1115\"\u003e#1115\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/982fcfa6a5a5fa10c7777be0d60acd784121e319\"\u003e\u003ccode\u003e982fcfa\u003c/code\u003e\u003c/a\u003e chore(deps): bump dependency-groups in the pre-commit group (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1121\"\u003e#1121\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/wntrblm/nox/compare/2026.04.10...2026.07.11\"\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/adamlui/python-utils/pull/369","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/adamlui%2Fpython-utils/issues/369","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/369/packages"}},{"old_version":"2026.2.9","new_version":"2026.4.10","update_type":"minor","path":null,"pr_created_at":"2026-07-05T23:06:42.000Z","version_change":"2026.2.9 → 2026.4.10","issue":{"uuid":"4814778822","node_id":"PR_kwDOOHh4U87uIDjT","number":166,"state":"open","title":"chore(deps): Bump the python-minor-and-patch group across 1 directory with 12 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-07-05T23:06:42.000Z","updated_at":"2026-07-05T23:08:21.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): Bump","group_name":"python-minor-and-patch","update_count":12,"packages":[{"name":"typing-extensions","old_version":"4.15.0","new_version":"4.16.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"pytest","old_version":"9.0.2","new_version":"9.1.1","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"nox","old_version":"2026.2.9","new_version":"2026.4.10","repository_url":"https://github.com/wntrblm/nox"},{"name":"ruff","old_version":"0.15.9","new_version":"0.15.20","repository_url":"https://github.com/astral-sh/ruff"},{"name":"pre-commit","old_version":"4.5.1","new_version":"4.6.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"argcomplete","old_version":"3.6.3","new_version":"3.7.0","repository_url":"https://github.com/kislyuk/argcomplete"},{"name":"distlib","old_version":"0.4.0","new_version":"0.4.3","repository_url":"https://github.com/pypa/distlib"},{"name":"filelock","old_version":"3.25.2","new_version":"3.29.5","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"humanize","old_version":"4.15.0","new_version":"4.16.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"identify","old_version":"2.6.18","new_version":"2.6.19","repository_url":"https://github.com/pre-commit/identify"},{"name":"packaging","old_version":"26.0","new_version":"26.2","repository_url":"https://github.com/pypa/packaging"},{"name":"platformdirs","old_version":"4.9.4","new_version":"4.10.0","repository_url":"https://github.com/tox-dev/platformdirs"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-minor-and-patch group with 12 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.15.0` | `4.16.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.2` | `9.1.1` |\n| [nox](https://github.com/wntrblm/nox) | `2026.2.9` | `2026.4.10` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.9` | `0.15.20` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.5.1` | `4.6.0` |\n| [argcomplete](https://github.com/kislyuk/argcomplete) | `3.6.3` | `3.7.0` |\n| [distlib](https://github.com/pypa/distlib) | `0.4.0` | `0.4.3` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.25.2` | `3.29.5` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.15.0` | `4.16.0` |\n| [identify](https://github.com/pre-commit/identify) | `2.6.18` | `2.6.19` |\n| [packaging](https://github.com/pypa/packaging) | `26.0` | `26.2` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.9.4` | `4.10.0` |\n\n\nUpdates `typing-extensions` from 4.15.0 to 4.16.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/typing_extensions/releases\"\u003etyping-extensions's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.16.0\u003c/h2\u003e\n\u003cp\u003eNo changes since 4.16.0rc2.\u003c/p\u003e\n\u003cp\u003eChanges since 4.15.0:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003etyping_extensions.TypeAliasType\u003c/code\u003e's \u003ccode\u003e__module__\u003c/code\u003e attribute writable. Backport of CPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/149172\"\u003e#149172\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix setting of \u003ccode\u003e__required_keys__\u003c/code\u003e and \u003ccode\u003e__optional_keys__\u003c/code\u003e when inheriting keys with the same name.\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003eAsyncIterator\u003c/code\u003e, \u003ccode\u003eio.Reader\u003c/code\u003e, \u003ccode\u003eio.Writer\u003c/code\u003e and \u003ccode\u003eos.PathLike\u003c/code\u003e protocols as bases for other protocols.\u003c/li\u003e\n\u003cli\u003eFix incorrect behaviour on Python 3.9 and Python 3.10 that meant that calling \u003ccode\u003eisinstance\u003c/code\u003e with \u003ccode\u003etyping_extensions.Concatenate[...]\u003c/code\u003e or \u003ccode\u003etyping_extensions.Unpack[...]\u003c/code\u003e as the first argument could have a different result in some situations depending on whether or not a profiling function had been set using \u003ccode\u003esys.setprofile\u003c/code\u003e. This affected both CPython and PyPy implementations. Patch by Brian Schubert.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003e__init_subclass__()\u003c/code\u003e behavior in the presence of multiple inheritance involving an \u003ccode\u003e@deprecated\u003c/code\u003e-decorated base class. Backport of CPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/138210\"\u003e#138210\u003c/a\u003e by Brian Schubert.\u003c/li\u003e\n\u003cli\u003eRaise \u003ccode\u003eTypeError\u003c/code\u003e when attempting to subclass \u003ccode\u003etyping_extensions.ParamSpec\u003c/code\u003e on Python 3.9. The \u003ccode\u003etyping\u003c/code\u003e implementation has always raised an error, and the \u003ccode\u003etyping_extensions\u003c/code\u003e implementation has raised an error on Python 3.10+ since \u003ccode\u003etyping_extensions\u003c/code\u003e v4.6.0. Patch by Brian Schubert.\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003ebound\u003c/code\u003e, \u003ccode\u003ecovariant\u003c/code\u003e, \u003ccode\u003econtravariant\u003c/code\u003e, and \u003ccode\u003einfer_variance\u003c/code\u003e parameters to \u003ccode\u003eTypeVarTuple\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eOfficially support the \u003ccode\u003ebound\u003c/code\u003e, \u003ccode\u003ecovariant\u003c/code\u003e, \u003ccode\u003econtravariant\u003c/code\u003e and \u003ccode\u003einfer_variance\u003c/code\u003e parameters to \u003ccode\u003eParamSpec\u003c/code\u003e. Improve the validation of these parameters at runtime.\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003etyping_extensions.Sentinel\u003c/code\u003e to \u003ccode\u003etyping_extensions.sentinel\u003c/code\u003e, following the name that has been adopted for \u003ccode\u003ebuiltins.sentinel\u003c/code\u003e on Python 3.15. \u003ccode\u003etyping_extensions.Sentinel\u003c/code\u003e is retained as a soft-deprecated alias for backwards compatibility.\u003c/li\u003e\n\u003cli\u003eAdd support for pickling sentinels.\u003c/li\u003e\n\u003cli\u003eSentinels now preserve their identity when copied or deep-copied.\u003c/li\u003e\n\u003cli\u003eDeprecate passing \u003ccode\u003ename\u003c/code\u003e as a keyword argument or \u003ccode\u003erepr\u003c/code\u003e as a positional argument to the \u003ccode\u003esentinel\u003c/code\u003e constructor.\u003c/li\u003e\n\u003cli\u003eThe default repr of a sentinel \u003ccode\u003eX = sentinel(\u0026quot;X\u0026quot;)\u003c/code\u003e is now \u003ccode\u003eX\u003c/code\u003e rather than \u003ccode\u003e\u0026lt;X\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eDeprecate arbitrary attribute assignments to sentinels.\u003c/li\u003e\n\u003cli\u003eDeprecate subclassing sentinels.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.15.\u003c/li\u003e\n\u003cli\u003eAvoid a \u003ccode\u003eDeprecationWarning\u003c/code\u003e when \u003ccode\u003edeprecated\u003c/code\u003e is applied to a coroutine function on Python 3.14.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.16.0rc2\u003c/h2\u003e\n\u003cp\u003eChanges since 4.16.0rc1:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid a \u003ccode\u003eDeprecationWarning\u003c/code\u003e when \u003ccode\u003edeprecated\u003c/code\u003e is applied to a coroutine function on Python 3.14.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eChanges since 4.15.0:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003etyping_extensions.TypeAliasType\u003c/code\u003e's \u003ccode\u003e__module__\u003c/code\u003e attribute writable. Backport of CPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/149172\"\u003e#149172\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix setting of \u003ccode\u003e__required_keys__\u003c/code\u003e and \u003ccode\u003e__optional_keys__\u003c/code\u003e when inheriting keys with the same name.\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003eAsyncIterator\u003c/code\u003e, \u003ccode\u003eio.Reader\u003c/code\u003e, \u003ccode\u003eio.Writer\u003c/code\u003e and \u003ccode\u003eos.PathLike\u003c/code\u003e protocols as bases for other protocols.\u003c/li\u003e\n\u003cli\u003eFix incorrect behaviour on Python 3.9 and Python 3.10 that meant that calling \u003ccode\u003eisinstance\u003c/code\u003e with \u003ccode\u003etyping_extensions.Concatenate[...]\u003c/code\u003e or \u003ccode\u003etyping_extensions.Unpack[...]\u003c/code\u003e as the first argument could have a different result in some situations depending on whether or not a profiling function had been set using \u003ccode\u003esys.setprofile\u003c/code\u003e. This affected both CPython and PyPy implementations. Patch by Brian Schubert.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003e__init_subclass__()\u003c/code\u003e behavior in the presence of multiple inheritance involving an \u003ccode\u003e@deprecated\u003c/code\u003e-decorated base class. Backport of CPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/138210\"\u003e#138210\u003c/a\u003e by Brian Schubert.\u003c/li\u003e\n\u003cli\u003eRaise \u003ccode\u003eTypeError\u003c/code\u003e when attempting to subclass \u003ccode\u003etyping_extensions.ParamSpec\u003c/code\u003e on Python 3.9. The \u003ccode\u003etyping\u003c/code\u003e implementation has always raised an error, and the \u003ccode\u003etyping_extensions\u003c/code\u003e implementation has raised an error on Python 3.10+ since \u003ccode\u003etyping_extensions\u003c/code\u003e v4.6.0. Patch by Brian Schubert.\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003ebound\u003c/code\u003e, \u003ccode\u003ecovariant\u003c/code\u003e, \u003ccode\u003econtravariant\u003c/code\u003e, and \u003ccode\u003einfer_variance\u003c/code\u003e parameters to \u003ccode\u003eTypeVarTuple\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eOfficially support the \u003ccode\u003ebound\u003c/code\u003e, \u003ccode\u003ecovariant\u003c/code\u003e, \u003ccode\u003econtravariant\u003c/code\u003e and \u003ccode\u003einfer_variance\u003c/code\u003e parameters to \u003ccode\u003eParamSpec\u003c/code\u003e. Improve the validation of these parameters at runtime.\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003etyping_extensions.Sentinel\u003c/code\u003e to \u003ccode\u003etyping_extensions.sentinel\u003c/code\u003e, following the name that has been adopted for \u003ccode\u003ebuiltins.sentinel\u003c/code\u003e on Python 3.15. \u003ccode\u003etyping_extensions.Sentinel\u003c/code\u003e is retained as a soft-deprecated alias for backwards compatibility.\u003c/li\u003e\n\u003cli\u003eAdd support for pickling sentinels.\u003c/li\u003e\n\u003cli\u003eSentinels now preserve their identity when copied or deep-copied.\u003c/li\u003e\n\u003cli\u003eDeprecate passing \u003ccode\u003ename\u003c/code\u003e as a keyword argument or \u003ccode\u003erepr\u003c/code\u003e as a positional argument to the \u003ccode\u003esentinel\u003c/code\u003e constructor.\u003c/li\u003e\n\u003cli\u003eThe default repr of a sentinel \u003ccode\u003eX = sentinel(\u0026quot;X\u0026quot;)\u003c/code\u003e is now \u003ccode\u003eX\u003c/code\u003e rather than \u003ccode\u003e\u0026lt;X\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eDeprecate arbitrary attribute assignments to sentinels.\u003c/li\u003e\n\u003cli\u003eDeprecate subclassing sentinels.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.15.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.16.0rc1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003etyping_extensions.TypeAliasType\u003c/code\u003e's \u003ccode\u003e__module__\u003c/code\u003e attribute writable. Backport of CPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/149172\"\u003e#149172\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix setting of \u003ccode\u003e__required_keys__\u003c/code\u003e and \u003ccode\u003e__optional_keys__\u003c/code\u003e when inheriting keys with the same 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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/typing_extensions/blob/main/CHANGELOG.md\"\u003etyping-extensions's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease 4.16.0 (July 2, 2025)\u003c/h1\u003e\n\u003cp\u003eNo user-facing changes since 4.16.0rc2.\u003c/p\u003e\n\u003ch1\u003eRelease 4.16.0rc2 (June 25, 2026)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid a \u003ccode\u003eDeprecationWarning\u003c/code\u003e when \u003ccode\u003edeprecated\u003c/code\u003e is applied to a coroutine function on\nPython 3.14.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eRelease 4.16.0rc1 (June 24, 2026)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003etyping_extensions.TypeAliasType\u003c/code\u003e's \u003ccode\u003e__module__\u003c/code\u003e attribute writable.\nBackport of CPython PR\n\u003ca href=\"https://redirect.github.com/python/cpython/pull/149172\"\u003e#149172\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix setting of \u003ccode\u003e__required_keys__\u003c/code\u003e and \u003ccode\u003e__optional_keys__\u003c/code\u003e when inheriting\nkeys with the same name.\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003eAsyncIterator\u003c/code\u003e, \u003ccode\u003eio.Reader\u003c/code\u003e, \u003ccode\u003eio.Writer\u003c/code\u003e and \u003ccode\u003eos.PathLike\u003c/code\u003e protocols\nas bases for other protocols.\u003c/li\u003e\n\u003cli\u003eFix incorrect behaviour on Python 3.9 and Python 3.10 that meant that\ncalling \u003ccode\u003eisinstance\u003c/code\u003e with \u003ccode\u003etyping_extensions.Concatenate[...]\u003c/code\u003e or\n\u003ccode\u003etyping_extensions.Unpack[...]\u003c/code\u003e as the first argument could have a different\nresult in some situations depending on whether or not a profiling function had been\nset using \u003ccode\u003esys.setprofile\u003c/code\u003e. This affected both CPython and PyPy implementations.\nPatch by Brian Schubert.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003e__init_subclass__()\u003c/code\u003e behavior in the presence of multiple inheritance involving\nan \u003ccode\u003e@deprecated\u003c/code\u003e-decorated base class. Backport of CPython PR\n\u003ca href=\"https://redirect.github.com/python/cpython/pull/138210\"\u003e#138210\u003c/a\u003e by Brian Schubert.\u003c/li\u003e\n\u003cli\u003eRaise \u003ccode\u003eTypeError\u003c/code\u003e when attempting to subclass \u003ccode\u003etyping_extensions.ParamSpec\u003c/code\u003e on\nPython 3.9. The \u003ccode\u003etyping\u003c/code\u003e implementation has always raised an error, and the\n\u003ccode\u003etyping_extensions\u003c/code\u003e implementation has raised an error on Python 3.10+ since\n\u003ccode\u003etyping_extensions\u003c/code\u003e v4.6.0. Patch by Brian Schubert.\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003ebound\u003c/code\u003e, \u003ccode\u003ecovariant\u003c/code\u003e, \u003ccode\u003econtravariant\u003c/code\u003e, and \u003ccode\u003einfer_variance\u003c/code\u003e parameters\nto \u003ccode\u003eTypeVarTuple\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eOfficially support the \u003ccode\u003ebound\u003c/code\u003e, \u003ccode\u003ecovariant\u003c/code\u003e, \u003ccode\u003econtravariant\u003c/code\u003e and \u003ccode\u003einfer_variance\u003c/code\u003e\nparameters to \u003ccode\u003eParamSpec\u003c/code\u003e. Improve the validation of these parameters at runtime.\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003etyping_extensions.Sentinel\u003c/code\u003e to \u003ccode\u003etyping_extensions.sentinel\u003c/code\u003e, following the\nname that has been adopted for \u003ccode\u003ebuiltins.sentinel\u003c/code\u003e on Python 3.15.\n\u003ccode\u003etyping_extensions.Sentinel\u003c/code\u003e is retained as a soft-deprecated alias for backwards\ncompatibility.\u003c/li\u003e\n\u003cli\u003eAdd support for pickling sentinels.\u003c/li\u003e\n\u003cli\u003eSentinels now preserve their identity when copied or deep-copied.\u003c/li\u003e\n\u003cli\u003eDeprecate passing \u003ccode\u003ename\u003c/code\u003e as a keyword argument or \u003ccode\u003erepr\u003c/code\u003e as a positional argument\nto the \u003ccode\u003esentinel\u003c/code\u003e constructor.\u003c/li\u003e\n\u003cli\u003eThe default repr of a sentinel \u003ccode\u003eX = sentinel(\u0026quot;X\u0026quot;)\u003c/code\u003e is now \u003ccode\u003eX\u003c/code\u003e rather than \u003ccode\u003e\u0026lt;X\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eDeprecate arbitrary attribute assignments to sentinels.\u003c/li\u003e\n\u003cli\u003eDeprecate subclassing sentinels.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.15.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/f29cd28d8ed7642cafb1d18daf5aa41be6a5c0aa\"\u003e\u003ccode\u003ef29cd28\u003c/code\u003e\u003c/a\u003e Prepare relase 4.16.0 (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/774\"\u003e#774\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/43174610ec0c407ce05ad750077c4e62b9192b2b\"\u003e\u003ccode\u003e4317461\u003c/code\u003e\u003c/a\u003e Bump version to 4.16.0rc2.dev (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/772\"\u003e#772\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/4f71098e5be84798d36416bbca0e776223ee40f9\"\u003e\u003ccode\u003e4f71098\u003c/code\u003e\u003c/a\u003e Prepare release 4.16.0rc2 (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/771\"\u003e#771\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/37ed08a11f3b7c05234f8963ab97e3ebdbdc16a2\"\u003e\u003ccode\u003e37ed08a\u003c/code\u003e\u003c/a\u003e Remove use of \u003ccode\u003easyncio.coroutines.iscoroutinefunction()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/769\"\u003e#769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/8dcc5594cbe5a4e348245fea6ce160ce93ed6601\"\u003e\u003ccode\u003e8dcc559\u003c/code\u003e\u003c/a\u003e Improve \u003ccode\u003eTypedDict\u003c/code\u003e documentation (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/770\"\u003e#770\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/224f8d50551d26f0d603093596c3a47a7302a46f\"\u003e\u003ccode\u003e224f8d5\u003c/code\u003e\u003c/a\u003e Post-release followups for 3.16.0rc1 (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/767\"\u003e#767\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/777de3eb5f4562e2054d1d7ce707f098b1f4fd2f\"\u003e\u003ccode\u003e777de3e\u003c/code\u003e\u003c/a\u003e Prepare release 4.16.0rc1 (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/766\"\u003e#766\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/890be90f1545e7d5fa904dfa3154d5f03c96782c\"\u003e\u003ccode\u003e890be90\u003c/code\u003e\u003c/a\u003e Type variable tuple variance (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/741\"\u003e#741\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/0e0545866d78458b668dc52d2edc411f6e39540d\"\u003e\u003ccode\u003e0e05458\u003c/code\u003e\u003c/a\u003e Pin SQLAlchemy third-party tests to pytest==9.0.3 (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/765\"\u003e#765\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/d2777468c274202ec290103b34313e50cf040229\"\u003e\u003ccode\u003ed277746\u003c/code\u003e\u003c/a\u003e docs: add version compatibility table (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/733\"\u003e#733\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/typing_extensions/compare/4.15.0...4.16.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 9.0.2 to 9.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.1.1\u003c/h2\u003e\n\u003ch1\u003epytest 9.1.1 (2026-06-19)\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/14220\"\u003e#14220\u003c/a\u003e: Fixed a logic bug in \u003ccode\u003epytest.RaisesGroup\u003c/code\u003e which would might cause it to display incorrect \u0026quot;It matches \u003c!-- raw HTML omitted --\u003eFooError()\u003c!-- raw HTML omitted --\u003e which was paired with \u003c!-- raw HTML omitted --\u003eBarError\u003c!-- raw HTML omitted --\u003e\u0026quot; messages.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14591\"\u003e#14591\u003c/a\u003e: Fixed a regression in pytest 9.1.0 which caused overriding a parametrized fixture with an indirect \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/pytest\"\u003e\u003ccode\u003e@​pytest\u003c/code\u003e\u003c/a\u003e.mark.parametrize\u003c!-- raw HTML omitted --\u003e to fail with \u0026quot;duplicate parametrization of '\u0026lt;fixture name\u0026gt;'\u0026quot;.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14606\"\u003e#14606\u003c/a\u003e: Fixed \u003ccode\u003elist-item\u003c/code\u003e typing errors from mypy in \u003ccode\u003e@pytest.mark.parametrize \u0026lt;pytest.mark.parametrize ref\u0026gt;\u003c/code\u003e \u003ccode\u003eargvalues\u003c/code\u003e parameter.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14608\"\u003e#14608\u003c/a\u003e: Fixed a regression in pytest 9.1.0 where \u003ccode\u003econftest.py\u003c/code\u003e files located in \u003ccode\u003e\u0026lt;invocation dir\u0026gt;/test*\u003c/code\u003e were no longer loaded as initial conftests when invoked without arguments.\nThis could cause certain hooks (like \u003ccode\u003epytest_addoption\u003c/code\u003e) in these files to not fire.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e9.1.0\u003c/h2\u003e\n\u003ch1\u003epytest 9.1.0 (2026-06-13)\u003c/h1\u003e\n\u003ch2\u003eRemovals and backward incompatible breaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14533\"\u003e#14533\u003c/a\u003e: When using \u003ccode\u003e--doctest-modules\u003c/code\u003e, autouse fixtures with \u003ccode\u003emodule\u003c/code\u003e, \u003ccode\u003epackage\u003c/code\u003e or \u003ccode\u003esession\u003c/code\u003e scope that are defined inline in Python test modules (not plugins or conftests) will now possibly execute twice.\u003c/p\u003e\n\u003cp\u003eIf this is undesirable, move the fixture definition to a \u003ccode\u003econftest.py\u003c/code\u003e file if possible.\u003c/p\u003e\n\u003cp\u003eTechnical explanation for those interested:\nWhen using \u003c!-- raw HTML omitted --\u003e--doctest-modules\u003c!-- raw HTML omitted --\u003e, pytest possibly collects Python modules twice, once as \u003ccode\u003epytest.Module\u003c/code\u003e and once as a \u003ccode\u003eDoctestModule\u003c/code\u003e (depending on the configuration).\nDue to improvements in pytest's fixture implementation, if e.g. the \u003ccode\u003eDoctestModule\u003c/code\u003e collects a fixture, it is now visible to it only, and not to the \u003ccode\u003eModule\u003c/code\u003e.\nThis means that both need to register the fixtures independently.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations (removal in next major release)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/10819\"\u003e#10819\u003c/a\u003e: Added a deprecation warning for class-scoped fixtures defined as instance methods (without \u003ccode\u003e@classmethod\u003c/code\u003e). Such fixtures set attributes on a different instance than the test methods use, leading to unexpected behavior. Use \u003ccode\u003e@classmethod\u003c/code\u003e decorator instead -- by \u003ccode\u003eyastcher\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eSee \u003ccode\u003e10819\u003c/code\u003e and \u003ccode\u003e14011\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12882\"\u003e#12882\u003c/a\u003e: Calling \u003ccode\u003erequest.getfixturevalue() \u0026lt;pytest.FixtureRequest.getfixturevalue\u0026gt;\u003c/code\u003e during teardown to request a fixture that was not already requested is now deprecated and will become an error in pytest 10.\u003c/p\u003e\n\u003cp\u003eSee \u003ccode\u003edynamic-fixture-request-during-teardown\u003c/code\u003e for details.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13409\"\u003e#13409\u003c/a\u003e: Using non-\u003ccode\u003e~collections.abc.Collection\u003c/code\u003e iterables (such as generators, iterators, or custom iterable objects) for the \u003ccode\u003eargvalues\u003c/code\u003e parameter in \u003ccode\u003e@pytest.mark.parametrize \u0026lt;pytest.mark.parametrize ref\u0026gt;\u003c/code\u003e and \u003ccode\u003emetafunc.parametrize \u0026lt;pytest.Metafunc.parametrize\u0026gt;\u003c/code\u003e is now deprecated.\u003c/p\u003e\n\u003cp\u003eThese iterables get exhausted after the first iteration,\nleading to tests getting unexpectedly skipped in cases such as running \u003ccode\u003epytest.main()\u003c/code\u003e multiple times,\nusing class-level parametrize decorators,\nor collecting tests multiple times.\u003c/p\u003e\n\u003cp\u003eSee \u003ccode\u003eparametrize-iterators\u003c/code\u003e for details and suggestions.\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 is now deprecated.\nUse \u003ccode\u003econfig.getini() \u0026lt;pytest.Config.getini\u0026gt;\u003c/code\u003e to access configuration values instead.\u003c/p\u003e\n\u003cp\u003eSee \u003ccode\u003econfig-inicfg\u003c/code\u003e for more details.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14004\"\u003e#14004\u003c/a\u003e: Passing \u003ccode\u003ebaseid\u003c/code\u003e to \u003ccode\u003e~pytest.FixtureDef\u003c/code\u003e or \u003ccode\u003enodeid\u003c/code\u003e strings to fixture registration APIs is now deprecated. These are internal pytest APIs that are used by some plugins.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/cf470ec0bf7eb89cd97dd56df4859eae5db46447\"\u003e\u003ccode\u003ecf470ec\u003c/code\u003e\u003c/a\u003e Prepare release version 9.1.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/e0c8ce6cc5db1f08363be6f152c32e6838df2690\"\u003e\u003ccode\u003ee0c8ce6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14625\"\u003e#14625\u003c/a\u003e from pytest-dev/patchback/backports/9.1.x/a07c31a97...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/1b82d1694fce22385ee7a4287917fbafbaf2e757\"\u003e\u003ccode\u003e1b82d16\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14624\"\u003e#14624\u003c/a\u003e from pytest-dev/patchback/backports/9.1.x/b375b79ec...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/501c4bc784da3b08bfcaa64858eba5d15dc59e53\"\u003e\u003ccode\u003e501c4bc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14596\"\u003e#14596\u003c/a\u003e from bluetech/doc-classmethod\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b61f588e36e9377c3d1d3f06bece1da0fc31d9ca\"\u003e\u003ccode\u003eb61f588\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14622\"\u003e#14622\u003c/a\u003e from chrisburr/fix-14608-initial-conftest-test-subdir\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/9a567e009f4d2da3ce1721c6db3109cb5744d40a\"\u003e\u003ccode\u003e9a567e0\u003c/code\u003e\u003c/a\u003e [automated] Update plugin list (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14617\"\u003e#14617\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14618\"\u003e#14618\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ef8b2993e5b48639e4a3d97d0525df9760781384\"\u003e\u003ccode\u003eef8b299\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14620\"\u003e#14620\u003c/a\u003e from pytest-dev/patchback/backports/9.1.x/680f9f3ed...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/66abd0784d4cb7c1ba44ab9a8896506cd4985acc\"\u003e\u003ccode\u003e66abd07\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14220\"\u003e#14220\u003c/a\u003e from bysiber/fix-stale-iexp-raisesgroup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/79fbf93b666cac5f27c9dad047943d47b766c8d5\"\u003e\u003ccode\u003e79fbf93\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14612\"\u003e#14612\u003c/a\u003e from pytest-dev/patchback/backports/9.1.x/974ed48b6...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/0d312eb876177e9f1c04262b54060a41034ebf5c\"\u003e\u003ccode\u003e0d312eb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14611\"\u003e#14611\u003c/a\u003e from bluetech/parametrize-argvalues-typing\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/9.0.2...9.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `nox` from 2026.2.9 to 2026.4.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/wntrblm/nox/releases\"\u003enox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2026.04.10 🧹\u003c/h2\u003e\n\u003cp\u003eThis release drops Python 3.8 and adds a \u003ccode\u003e--usage\u003c/code\u003e command for full docstrings. Our \u003ccode\u003e.nox\u003c/code\u003e dir is now ignored by default, virtualenvs are recreated if symlinks are broken (such as after a Python upgrade), and \u003ccode\u003e-t\u003c/code\u003e now selects from all available sessions.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agriyakhetarpal\"\u003e\u003ccode\u003e@​agriyakhetarpal\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scop\"\u003e\u003ccode\u003e@​scop\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.8 (reapply \u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1004\"\u003e#1004\u003c/a\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/wntrblm/nox/pull/1062\"\u003ewntrblm/nox#1062\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003enox --usage \u0026lt;session\u0026gt;\u003c/code\u003e command to print full docstrings for provided sessions by \u003ca href=\"https://github.com/agriyakhetarpal\"\u003e\u003ccode\u003e@​agriyakhetarpal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1064\"\u003ewntrblm/nox#1064\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrite out \u003ccode\u003e.gitignore\u003c/code\u003e/\u003ccode\u003eCACHEDIR.TAG\u003c/code\u003e to \u003ccode\u003e.nox\u003c/code\u003e dir by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1072\"\u003ewntrblm/nox#1072\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRecreate venv if broken symlinks are present by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1078\"\u003ewntrblm/nox#1078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore default selection for tags and keywords by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1057\"\u003ewntrblm/nox#1057\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMore uv variables set by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1056\"\u003ewntrblm/nox#1056\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore forcecolor falsy by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1073\"\u003ewntrblm/nox#1073\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFully pin actions in composite action by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1080\"\u003ewntrblm/nox#1080\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePin CI to working conda version by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1079\"\u003ewntrblm/nox#1079\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse prek by \u003ca href=\"https://github.com/agriyakhetarpal\"\u003e\u003ccode\u003e@​agriyakhetarpal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1065\"\u003ewntrblm/nox#1065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSwitch artifact attestations to actions/attest by \u003ca href=\"https://github.com/scop\"\u003e\u003ccode\u003e@​scop\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1070\"\u003ewntrblm/nox#1070\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse zizmor by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1082\"\u003ewntrblm/nox#1082\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/wntrblm/nox/compare/2026.02.09...2026.04.10\"\u003ehttps://github.com/wntrblm/nox/compare/2026.02.09...2026.04.10\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/wntrblm/nox/blob/main/CHANGELOG.md\"\u003enox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003e2026.04.10\u003c/h2\u003e\n\u003cp\u003eThis release drops Python 3.8 and adds a \u003ccode\u003e--usage\u003c/code\u003e command for full docstrings.\nOur \u003ccode\u003e.nox\u003c/code\u003e dir is now ignored by default, virtualenvs are recreated if symlinks\nare broken (such as after a Python upgrade), and \u003ccode\u003e-t\u003c/code\u003e now selects from all\navailable sessions.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agriyakhetarpal\"\u003e\u003ccode\u003e@​agriyakhetarpal\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scop\"\u003e\u003ccode\u003e@​scop\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.8 (reapply \u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1004\"\u003e#1004\u003c/a\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/wntrblm/nox/pull/1062\"\u003ewntrblm/nox#1062\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003enox --usage \u0026lt;session\u0026gt;\u003c/code\u003e command to print full docstrings for provided sessions by \u003ca href=\"https://github.com/agriyakhetarpal\"\u003e\u003ccode\u003e@​agriyakhetarpal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1064\"\u003ewntrblm/nox#1064\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrite out \u003ccode\u003e.gitignore\u003c/code\u003e/\u003ccode\u003eCACHEDIR.TAG\u003c/code\u003e to \u003ccode\u003e.nox\u003c/code\u003e dir by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1072\"\u003ewntrblm/nox#1072\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRecreate venv if broken symlinks are present by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1078\"\u003ewntrblm/nox#1078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore default selection for tags and keywords by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1057\"\u003ewntrblm/nox#1057\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMore uv variables set by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1056\"\u003ewntrblm/nox#1056\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore forcecolor falsy by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1073\"\u003ewntrblm/nox#1073\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFully pin actions in composite action by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1080\"\u003ewntrblm/nox#1080\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePin CI to working conda version by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1079\"\u003ewntrblm/nox#1079\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse prek by \u003ca href=\"https://github.com/agriyakhetarpal\"\u003e\u003ccode\u003e@​agriyakhetarpal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1065\"\u003ewntrblm/nox#1065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSwitch artifact attestations to actions/attest by \u003ca href=\"https://github.com/scop\"\u003e\u003ccode\u003e@​scop\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1070\"\u003ewntrblm/nox#1070\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse zizmor by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1082\"\u003ewntrblm/nox#1082\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2026.02.09\u003c/h2\u003e\n\u003cp\u003eThis small release supports uv 0.10's new requirement that \u003ccode\u003e--clear\u003c/code\u003e be passed\nto clear an environment. Python 3.8 support was temporarily re-added since uv\n0.10 still supports 3.8, so nox on 3.8 was affected.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/97e345e6a26bb2c5aacff9cc4327bd4ac1b00ce6\"\u003e\u003ccode\u003e97e345e\u003c/code\u003e\u003c/a\u003e docs: add thanks section (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1083\"\u003e#1083\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/8d5c759d5d3f1f2c80ada8f05cd994c673905898\"\u003e\u003ccode\u003e8d5c759\u003c/code\u003e\u003c/a\u003e chore: prepare for 2026.04.10 (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1081\"\u003e#1081\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/2577f31eb4d6d94f18157c444464fdd1e4a7e3df\"\u003e\u003ccode\u003e2577f31\u003c/code\u003e\u003c/a\u003e ci: add zizmor (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1082\"\u003e#1082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/b6a61563737b2e42790f8ea509fe1ddd76fa464f\"\u003e\u003ccode\u003eb6a6156\u003c/code\u003e\u003c/a\u003e fix: fully pin actions in composite action (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1080\"\u003e#1080\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/4c7a2151c538b739337dbbd759aaf440fa1991ac\"\u003e\u003ccode\u003e4c7a215\u003c/code\u003e\u003c/a\u003e fix: write out .gitignore/CACHEDIR.TAG to our dir (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1072\"\u003e#1072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/47cb9c300e07c3a8ca4d5b240dad1a178a65dcdb\"\u003e\u003ccode\u003e47cb9c3\u003c/code\u003e\u003c/a\u003e fix: ignore default selection for tags and keywords (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1057\"\u003e#1057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/63dcab98ecd4f784537a3c1fa1319bac6cbf2436\"\u003e\u003ccode\u003e63dcab9\u003c/code\u003e\u003c/a\u003e fix: more uv variables set (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1056\"\u003e#1056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/e0f64e6c3cb24e3f870f4df8dd38830e03546dce\"\u003e\u003ccode\u003ee0f64e6\u003c/code\u003e\u003c/a\u003e fix: recreate if broken symlinks are present (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1078\"\u003e#1078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/bf9095287afacc1f5b94e5da54f4dbed4ccce875\"\u003e\u003ccode\u003ebf90952\u003c/code\u003e\u003c/a\u003e tests: pin to working conda version (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1079\"\u003e#1079\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/4ff681f169c4043ce3b3d19cba1eadd66720bf1d\"\u003e\u003ccode\u003e4ff681f\u003c/code\u003e\u003c/a\u003e fix: ignore forcecolor falsy (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1073\"\u003e#1073\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/wntrblm/nox/compare/2026.02.09...2026.04.10\"\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.9 to 0.15.20\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.20\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-06-25.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow human-readable names in rule selectors (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25887\"\u003e#25887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEmit a warning instead of an error for unknown rule selectors (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26113\"\u003e#26113\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMatch \u003ccode\u003enoqa\u003c/code\u003e shebang handling in \u003ccode\u003eruff:ignore\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26286\"\u003e#26286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Remove \u003ccode\u003epytest-fixture-autouse\u003c/code\u003e (\u003ccode\u003eRUF076\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26240\"\u003e#26240\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26371\"\u003e#26371\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd versioning sections to custom crate READMEs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26317\"\u003e#26317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003eruff_python_parser\u003c/code\u003e README for crates.io (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26315\"\u003e#26315\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eperflint\u003c/code\u003e] Clarify that \u003ccode\u003ePERF402\u003c/code\u003e applies to any iterable (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26242\"\u003e#26242\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/dhruvmanila\"\u003e\u003ccode\u003e@​dhruvmanila\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/trilamsr\"\u003e\u003ccode\u003e@​trilamsr\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.15.20\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.20/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.20/ruff-installer.ps1 | iex\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003eDownload ruff 0.15.20\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/ruff/releases/download/0.15.20/ruff-aarch64-apple-darwin.tar.gz\"\u003eruff-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/ruff/releases/download/0.15.20/ruff-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/ruff/releases/download/0.15.20/ruff-x86_64-apple-darwin.tar.gz\"\u003eruff-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/ruff/releases/download/0.15.20/ruff-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/ruff/releases/download/0.15.20/ruff-aarch64-pc-windows-msvc.zip\"\u003eruff-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/ruff/releases/download/0.15.20/ruff-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/ruff/releases/download/0.15.20/ruff-i686-pc-windows-msvc.zip\"\u003eruff-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/ruff/releases/download/0.15.20/ruff-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/ruff/releases/download/0.15.20/ruff-x86_64-pc-windows-msvc.zip\"\u003eruff-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/ruff/releases/download/0.15.20/ruff-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/ruff/releases/download/0.15.20/ruff-aarch64-unknown-linux-gnu.tar.gz\"\u003eruff-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/ruff/releases/download/0.15.20/ruff-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/ruff/releases/download/0.15.20/ruff-i686-unknown-linux-gnu.tar.gz\"\u003eruff-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/ruff/releases/download/0.15.20/ruff-i686-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/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.20\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-06-25.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow human-readable names in rule selectors (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25887\"\u003e#25887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEmit a warning instead of an error for unknown rule selectors (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26113\"\u003e#26113\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMatch \u003ccode\u003enoqa\u003c/code\u003e shebang handling in \u003ccode\u003eruff:ignore\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26286\"\u003e#26286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Remove \u003ccode\u003epytest-fixture-autouse\u003c/code\u003e (\u003ccode\u003eRUF076\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26240\"\u003e#26240\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26371\"\u003e#26371\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd versioning sections to custom crate READMEs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26317\"\u003e#26317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003eruff_python_parser\u003c/code\u003e README for crates.io (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26315\"\u003e#26315\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eperflint\u003c/code\u003e] Clarify that \u003ccode\u003ePERF402\u003c/code\u003e applies to any iterable (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26242\"\u003e#26242\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/dhruvmanila\"\u003e\u003ccode\u003e@​dhruvmanila\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/trilamsr\"\u003e\u003ccode\u003e@​trilamsr\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.15.19\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-06-23.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport human-readable names when hovering suppression comments and in code actions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26114\"\u003e#26114\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFall back to default settings when editor-only settings are invalid (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26244\"\u003e#26244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix panic when inserting text at a notebook cell boundary (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26111\"\u003e#26111\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Update fix suggestions for \u003ccode\u003e__floor__\u003c/code\u003e, \u003ccode\u003e__trunc__\u003c/code\u003e, \u003ccode\u003e__length_hint__\u003c/code\u003e, and \u003ccode\u003e__matmul__\u003c/code\u003e variants (\u003ccode\u003ePLC2801\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26239\"\u003e#26239\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid allocating when parsing single string literals (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26200\"\u003e#26200\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid reallocating singleton call arguments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26223\"\u003e#26223\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLazily create source files for lint diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26226\"\u003e#26226\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOptimize formatter text width and indentation (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26236\"\u003e#26236\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReserve capacity for builtin bindings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26229\"\u003e#26229\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSkip repeated-key checks for singleton dictionaries (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26228\"\u003e#26228\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse ArrayVec for qualified name segments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/26224\"\u003e#26224\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/f82a36b6baf8c0547a17bbde6c0d927ccd45d938\"\u003e\u003ccode\u003ef82a36b\u003c/code\u003e\u003c/a\u003e Bump 0.15.20 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/26376\"\u003e#26376\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/af329438b55d5aa8ca28725f17abbae63b5c815d\"\u003e\u003ccode\u003eaf32943\u003c/code\u003e\u003c/a\u003e Improve the summarise-ecosystem-results skill (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/26378\"\u003e#26378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/485ebab5de692aad34720898cd80245b6092ba86\"\u003e\u003ccode\u003e485ebab\u003c/code\u003e\u003c/a\u003e Remove \u003ccode\u003eRUF076\u003c/code\u003e name from schema (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/26371\"\u003e#26371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/ef81835ce3da615346584dc446de0fe26bfc154b\"\u003e\u003ccode\u003eef81835\u003c/code\u003e\u003c/a\u003e [ty] Implement rust-analyzer's \u0026quot;Click for full compiler diagnostic\u0026quot; feature (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/572b31e2377a701a7365f069f6ef87002962cb2b\"\u003e\u003ccode\u003e572b31e\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eruff\u003c/code\u003e] Remove \u003ccode\u003epytest-fixture-autouse\u003c/code\u003e (\u003ccode\u003eRUF076\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/26240\"\u003e#26240\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/f703f219d7fddd1a4abba9fa81e34773c185a4b9\"\u003e\u003ccode\u003ef703f21\u003c/code\u003e\u003c/a\u003e Allow human-readable names in rule selectors (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25887\"\u003e#25887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/0d726b28ee35413926145ffef4ac1143cae9ea1e\"\u003e\u003ccode\u003e0d726b2\u003c/code\u003e\u003c/a\u003e [ty] Reuse equality semantics for membership compatibility (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25955\"\u003e#25955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/dbe6e9848c3f78fdaf543cfc000939ebc73b5f00\"\u003e\u003ccode\u003edbe6e98\u003c/code\u003e\u003c/a\u003e [ty] Infer definite equality comparison results (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/26337\"\u003e#26337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e700ea357a2196d76b58eb89b2031ddb5ca896e0\"\u003e\u003ccode\u003ee700ea3\u003c/code\u003e\u003c/a\u003e [ty] Prove TypedDict structural patterns exhaustive (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/26285\"\u003e#26285\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/6a0d2ec93959d966430b8c39d4de5c3e8a88e911\"\u003e\u003ccode\u003e6a0d2ec\u003c/code\u003e\u003c/a\u003e [ty] Widen inferred class-valued instance attributes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/26338\"\u003e#26338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.15.9...0.15.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit` from 4.5.1 to 4.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.6.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epre-commit hook-impl\u003c/code\u003e: allow \u003ccode\u003e--hook-dir\u003c/code\u003e to be missing to enable easier usage with \u003ccode\u003egit\u003c/code\u003e 2.54+ git hooks.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3662\"\u003e#3662\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epre-commit hook-impl\u003c/code\u003e: \u003ccode\u003e--hook-type\u003c/code\u003e is required.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3661\"\u003e#3661\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.6.0 - 2026-04-21\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epre-commit hook-impl\u003c/code\u003e: allow \u003ccode\u003e--hook-dir\u003c/code\u003e to be missing to enable easier\nusage with \u003ccode\u003egit\u003c/code\u003e 2.54+ git hooks.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3662\"\u003e#3662\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epre-commit hook-impl\u003c/code\u003e: \u003ccode\u003e--hook-type\u003c/code\u003e is required.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3661\"\u003e#3661\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/f35134b05028ec938ac605ae500fdf95462655d3\"\u003e\u003ccode\u003ef35134b\u003c/code\u003e\u003c/a\u003e v4.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2a51ffcb81f6c8ed2e6467913c3343a8800f3ab9\"\u003e\u003ccode\u003e2a51ffc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3662\"\u003e#3662\u003c/a\u003e from pre-commit/hook-impl-optional-hook-dir\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/d7dee322abfc765b042f2e3b872aab3c3a867610\"\u003e\u003ccode\u003ed7dee32\u003c/code\u003e\u003c/a\u003e make --hook-dir optional for hook-impl\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/965aeb1c680e8b526342153547f0ec014484c63d\"\u003e\u003ccode\u003e965aeb1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3661\"\u003e#3661\u003c/a\u003e from pre-commit/hook-impl-required\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2eacc064aa9b5bb33d3a0d84a234b475e34f3096\"\u003e\u003ccode\u003e2eacc06\u003c/code\u003e\u003c/a\u003e --hook-type is required for hook-impl\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/f5678bf4ac35cffc0ff7174ad85f7fdc2a5c977e\"\u003e\u003ccode\u003ef5678bf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3657\"\u003e#3657\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/054cc5bd6bb1b20faa1eefe09f0de3b68fceee94\"\u003e\u003ccode\u003e054cc5b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/5c0f3024d2524f6e029a4c333392fd9be9fb27f6\"\u003e\u003ccode\u003e5c0f302\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3652\"\u003e#3652\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/a5d91142676630f8130020b35e166e0c0e92b8f4\"\u003e\u003ccode\u003ea5d9114\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/129a1f5ca1eaee0c952a5e7a07faae305c5e15bc\"\u003e\u003ccode\u003e129a1f5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3641\"\u003e#3641\u003c/a\u003e from pre-commit/mxr-patch-1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.5.1...v4.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `argcomplete` from 3.6.3 to 3.7.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kislyuk/argcomplete/releases\"\u003eargcomplete's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEscape glob and brace metacharacters in quote_completions (\u003ca href=\"https://redirect.github.com/kislyuk/argcomplete/issues/552\"\u003e#552\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eQuote prefix passed to compgen in FilesCompleter (\u003ca href=\"https://redirect.github.com/kislyuk/argcomplete/issues/551\"\u003e#551\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove deprecated easy_install script detection\u003c/li\u003e\n\u003cli\u003eType hinting improvements\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kislyuk/argcomplete/blob/main/Changes.rst\"\u003eargcomplete's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChanges for v3.7.0 (2026-06-30)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eEscape glob and brace metacharacters in quote_completions (\u003ca href=\"https://redirect.github.com/kislyuk/argcomplete/issues/552\"\u003e#552\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eQuote prefix passed to compgen in FilesCompleter (\u003ca href=\"https://redirect.github.com/kislyuk/argcomplete/issues/551\"\u003e#551\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove deprecated easy_install script detection\u003c/li\u003e\n\u003cli\u003eType hinting 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/kislyuk/argcomplete/commit/6b4528d801bc38e4be7f374ffda416fd82785529\"\u003e\u003ccode\u003e6b4528d\u003c/code\u003e\u003c/a\u003e v3.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kislyuk/argcomplete/commit/81608a8891885dcc60adc06c45baf2dcb2e8b61b\"\u003e\u003ccode\u003e81608a8\u003c/code\u003e\u003c/a\u003e Use Python 3.15 in test matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kislyuk/argcomplete/commit/a59f151dda6a42d721410a165f62972f50391e5a\"\u003e\u003ccode\u003ea59f151\u003c/code\u003e\u003c/a\u003e Update Python classifiers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kislyuk/argcomplete/commit/598c77951c259b8a1b1b2c9769298c3a93e2bb5d\"\u003e\u003ccode\u003e598c779\u003c/code\u003e\u003c/a\u003e Add test for \u003ca href=\"https://redirect.github.com/kislyuk/argcomplete/issues/552\"\u003e#552\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kislyuk/argcomplete/commit/d543c6fea9f24713995d153e48642566e4a80c21\"\u003e\u003ccode\u003ed543c6f\u003c/code\u003e\u003c/a\u003e escape glob and brace metacharacters in quote_completions (\u003ca href=\"https://redirect.github.com/kislyuk/argcomplete/issues/552\"\u003e#552\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kislyuk/argcomplete/commit/24ea0e3ba5f11c72e9debece9aa1685584f52ac1\"\u003e\u003ccode\u003e24ea0e3\u003c/code\u003e\u003c/a\u003e Upgrade GHA to latest supported runners and actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kislyuk/argcomplete/commit/8e6423bed6c79c86f0dd54d9d15a2f485902bb89\"\u003e\u003ccode\u003e8e6423b\u003c/code\u003e\u003c/a\u003e type hinting fixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kislyuk/argcomplete/commit/93eab006915f94a0e31af2b115c4680b69592ae5\"\u003e\u003ccode\u003e93eab00\u003c/code\u003e\u003c/a\u003e Add test for \u003ca href=\"https://redirect.github.com/kislyuk/argcomplete/issues/551\"\u003e#551\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kislyuk/argcomplete/commit/5fefb4597387eada27b1e312436298931f0439ed\"\u003e\u003ccode\u003e5fefb45\u003c/code\u003e\u003c/a\u003e quote prefix passed to compgen in FilesCompleter (\u003ca href=\"https://redirect.github.com/kislyuk/argcomplete/issues/551\"\u003e#551\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kislyuk/argcomplete/commit/8e5ad6a5a702e5529f61ae9a63f720beda68ffaf\"\u003e\u003ccode\u003e8e5ad6a\u003c/code\u003e\u003c/a\u003e Remove easy_install script detection\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/kislyuk/argcomplete/compare/v3.6.3...v3.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `distlib` from 0.4.0 to 0.4.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/distlib/blob/master/CHANGES.rst\"\u003edistlib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.4.3\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nReleased: 2026-06-12\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eresources\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved too-restrictive check for escaping resources.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e0.4.2\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eReleased: 2026-06-08\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003elocators\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix URL percent-encoding using space-padding instead of zero-padding. Thanks to\nKadir Can Ozden for the patch.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eHarden decompression against malicious input. Thanks to tonghuaroot for the patch,\nwhich was adapted slightly.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003emanifest\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse os.lstat in findall to correctly detect symlinked directories. Thanks to\nKadir Can Ozden for the patch.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003emetadata\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eImprove logic to incorporate newer metadata versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eresources\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure that constructed resource paths don't escape the package. Thanks to\ntonghuaroot for the patch.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eutil\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/255\"\u003e#255\u003c/a\u003e: Update cache_from_source() for Python 3.15. Thanks to Victor Stinner\nfor the patch.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCheck during unarchiving that the destination directory isn't escaped via symlinks.\nThanks to tonghuaroot for the patch.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved performance of normalize_name using dual replace. Thanks to\nHugo van Kemenade for the patch.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ewheel\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/distlib/commit/3f4a377c8b164ba1c22a2a61de560f6f80ca7394\"\u003e\u003ccode\u003e3f4a377\u003c/code\u003e\u003c/a\u003e Changes for 0.4.3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/5ee19e6bac8248d7d5246d498d79abe96faa89a5\"\u003e\u003ccode\u003e5ee19e6\u003c/code\u003e\u003c/a\u003e Relax too-strict escaping check for resources.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/f0e3d1ae3e694045b44a5b0e0a50177429ca1b06\"\u003e\u003ccode\u003ef0e3d1a\u003c/code\u003e\u003c/a\u003e Bump version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/06e010db2ddc9497d5bbd886747ff4990ac528a9\"\u003e\u003ccode\u003e06e010d\u003c/code\u003e\u003c/a\u003e Add upper version limit for setuptools for build, to keep metadata version to...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/8b5aa55adf617bd3e81da716d44d034d7938f503\"\u003e\u003ccode\u003e8b5aa55\u003c/code\u003e\u003c/a\u003e Added tag 0.4.2 for changeset 5295c0ceb419\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/8183ea60e83bf021bf7d6903f4a6b3c8df0905a6\"\u003e\u003ccode\u003e8183ea6\u003c/code\u003e\u003c/a\u003e Update change log.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/55ca016b2d597ac5eecb10b6c43b4d9652b73462\"\u003e\u003ccode\u003e55ca016\u003c/code\u003e\u003c/a\u003e Changes for 0.4.2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/7e282abde14bebec2c0e5342faa5a420e70799ca\"\u003e\u003ccode\u003e7e282ab\u003c/code\u003e\u003c/a\u003e Update metadata logic to incorporate newer versions.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/fa4ea501acb14baa31df6b823006da4fd1f8e0dd\"\u003e\u003ccode\u003efa4ea50\u003c/code\u003e\u003c/a\u003e Remove non-portable portion of test.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/e06a1d5fb237cff35c0bd58fe917ef44c84e41cf\"\u003e\u003ccode\u003ee06a1d5\u003c/code\u003e\u003c/a\u003e Further refine tests.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/distlib/compare/0.4.0...0.4.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `filelock` from 3.25.2 to 3.29.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/py-filelock/releases\"\u003efilelock's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.29.5\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eserialise read/write release rollback against a concurrent acquire by \u003ca href=\"https://github.com/dxbjavid\"\u003e\u003ccode\u003e@​dxbjavid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/563\"\u003etox-dev/filelock#563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🔒 fix(soft_rw): refresh held marker through the verified fd by \u003ca href=\"https://github.com/dxbjavid\"\u003e\u003ccode\u003e@​dxbjavid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/565\"\u003etox-dev/filelock#565\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eonly unlink the writer marker on release if it is still ours by \u003ca href=\"https://github.com/dxbjavid\"\u003e\u003ccode\u003e@​dxbjavid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/566\"\u003etox-dev/filelock#566\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edon't follow symlinks in raise_on_not_writable_file by \u003ca href=\"https://github.com/dxbjavid\"\u003e\u003ccode\u003e@​dxbjavid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/567\"\u003etox-dev/filelock#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edon't complete a writer acquire on a peer's reclaimed marker by \u003ca href=\"https://github.com/dxbjavid\"\u003e\u003ccode\u003e@​dxbjavid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/571\"\u003etox-dev/filelock#571\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003euse a private break name in break_lock_file by \u003ca href=\"https://github.com/dxbjavid\"\u003e\u003ccode\u003e@​dxbjavid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/576\"\u003etox-dev/filelock#576\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep Unix lock files after release by \u003ca href=\"https://github.com/itscloud0\"\u003e\u003ccode\u003e@​itscloud0\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/577\"\u003etox-dev/filelock#577\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etest: fix Windows type check broken by \u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/577\"\u003e#577\u003c/a\u003e by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/580\"\u003etox-dev/filelock#580\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eroll back a read acquire's open transaction when its SELECT fails by \u003ca href=\"https://github.com/dxbjavid\"\u003e\u003ccode\u003e@​dxbjavid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/575\"\u003etox-dev/filelock#575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003elifetime: reject negative, non-numeric, and bool values at the setter by \u003ca href=\"https://github.com/HrachShah\"\u003e\u003ccode\u003e@​HrachShah\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/573\"\u003etox-dev/filelock#573\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/itscloud0\"\u003e\u003ccode\u003e@​itscloud0\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/577\"\u003etox-dev/filelock#577\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HrachShah\"\u003e\u003ccode\u003e@​HrachShah\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/573\"\u003etox-dev/filelock#573\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.29.4...3.29.5\"\u003ehttps://github.com/tox-dev/filelock/compare/3.29.4...3.29.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.29.4\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003everify inode in break_lock_file before unlinking a stale lock by \u003ca href=\"https://github.com/dxbjavid\"\u003e\u003ccode\u003e@​dxbjavid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/561\"\u003etox-dev/filelock#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ekeep the read/write heartbeat alive on a transient touch error by \u003ca href=\"https://github.com/dxbjavid\"\u003e\u003ccode\u003e@​dxbjavid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/562\"\u003etox-dev/filelock#562\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.29.3...3.29.4\"\u003ehttps://github.com/tox-dev/filelock/compare/3.29.3...3.29.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.29.3\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 ci(release): publish to PyPI on tag push by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/557\"\u003etox-dev/filelock#557\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003evalidate pid range in _parse_lock_holder by \u003ca href=\"https://github.com/dxbjavid\"\u003e\u003ccode\u003e@​dxbjavid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/556\"\u003etox-dev/filelock#556\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(ci): restore release environment on tag job by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/559\"\u003etox-dev/filelock#559\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(ci): publish from release.yaml on tag push by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/560\"\u003etox-dev/filelock#560\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.29.2...3.29.3\"\u003ehttps://github.com/tox-dev/filelock/compare/3.29.2...3.29.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.29.2\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eopen marker reads non-blocking to refuse attacker-placed fifo by \u003ca href=\"https://github.com/dxbjavid\"\u003e\u003ccode\u003e@​dxbjavid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/549\"\u003etox-dev/filelock#549\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🔒 fix(soft): harden stale-lock breaking and self-heal malformed locks by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/551\"\u003etox-dev/filelock#551\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echeck hostname in is_lock_held_by_us by \u003ca href=\"https://github.com/dxbjavid\"\u003e\u003ccode\u003e@​dxbjavid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/553\"\u003etox-dev/filelock#553\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/be562277636140c26578a98a2a487fdb6f446ee6\"\u003e\u003ccode\u003ebe56227\u003c/code\u003e\u003c/a\u003e lifetime: reject negative, non-numeric, and bool values at the setter (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/573\"\u003e#573\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/1f6cde4ab93d30dfe9867d462e3e1055aaba01c5\"\u003e\u003ccode\u003e1f6cde4\u003c/code\u003e\u003c/a\u003e roll back a read acquire's open transaction when its SELECT fails (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/575\"\u003e#575\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/c76dee6674011e8ba28a5b2e3285af4a738e4109\"\u003e\u003ccode\u003ec76dee6\u003c/code\u003e\u003c/a\u003e test: fix Windows type check broken by \u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/577\"\u003e#577\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/580\"\u003e#580\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/ea594a5cbca43cec92d62f740a8e510a7db0ceed\"\u003e\u003ccode\u003eea594a5\u003c/code\u003e\u003c/a\u003e Keep Unix lock files after release (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/577\"\u003e#577\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/7595a7b48738642ace65a8fbe54bc03ae4317708\"\u003e\u003ccode\u003e7595a7b\u003c/code\u003e\u003c/a\u003e use a private break name in break_lock_file (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/576\"\u003e#576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/0b707fe1a7edf5f5e421d2e0c63acd82017011d4\"\u003e\u003ccode\u003e0b707fe\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/572\"\u003e#572\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/22ecd6a51dacfad30a96d62f291d2707dccf4efb\"\u003e\u003ccode\u003e22ecd6a\u003c/code\u003e\u003c/a\u003e don't complete a writer acquire on a peer's reclaimed marker (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/571\"\u003e#571\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/70ecdb27fedb590ffdb44722c71355d99644148d\"\u003e\u003ccode\u003e70ecdb2\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 6.0.3 to 7.0.0 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/570\"\u003e#570\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/dbcc83a38bab6435e3809594b9de01aa037f2b39\"\u003e\u003ccode\u003edbcc83a\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/568\"\u003e#568\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/022394c34bb61271a813c038cf11b7e886b8123c\"\u003e\u003ccode\u003e022394c\u003c/code\u003e\u003c/a\u003e don't follow symlinks in raise_on_not_writable_file (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/567\"\u003e#567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/py-filelock/compare/3.25.2...3.29.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `humanize` from 4.15.0 to 4.16.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-humanize/humanize/releases\"\u003ehumanize's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.16.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Latvian language localization (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/301\"\u003e#301\u003c/a\u003e) \u003ca href=\"https://github.com/EPoikans\"\u003e\u003ccode\u003e@​EPoikans\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd i18n support for \u003ccode\u003enaturalsize()\u003c/code\u003e and French translation (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/294\"\u003e#294\u003c/a\u003e) \u003ca href=\"https://github.com/Yibomao\"\u003e\u003ccode\u003e@​Yibomao\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePerformance improvements: 1.07x - 8.4x (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/315\"\u003e#315\u003c/a\u003e) \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLazy imports for Python 3.15+ (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/335\"\u003e#335\u003c/a\u003e) \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop experimental Python 3.13 free-threaded (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/336\"\u003e#336\u003c/a\u003e) \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor: simplify \u003ccode\u003escientific()\u003c/code\u003e and extract \u003ccode\u003e_SUPERSCRIPT_MAP\u003c/code\u003e constant (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/313\"\u003e#313\u003c/a\u003e) \u003ca href=\"https://github.com/maayanmatsliah-tech\"\u003e\u003ccode\u003e@​maayanmatsliah-tech\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003enaturalsize()\u003c/code\u003e rounding rollover at unit boundaries (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/329\"\u003e#329\u003c/a\u003e) \u003ca href=\"https://github.com/patchwright\"\u003e\u003ccode\u003e@​patchwright\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCarry \u003ccode\u003emetric()\u003c/code\u003e to the next SI prefix when rounding reaches 1000 (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/328\"\u003e#328\u003c/a\u003e) \u003ca href=\"https://github.com/gaoflow\"\u003e\u003ccode\u003e@​gaoflow\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop printing two minus signs in fractional for a negative mixed number (\u003ca href=\"https://redirect.githu...\n\n_Description has been truncated_","html_url":"https://github.com/de-odex/whoosh-novo/pull/166","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/de-odex%2Fwhoosh-novo/issues/166","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/166/packages"}},{"old_version":"\u003e=2023.4.22","new_version":"\u003e=2026.4.10","update_type":null,"path":null,"pr_created_at":"2026-05-04T05:48:37.000Z","version_change":"\u003e=2023.4.22 → \u003e=2026.4.10","issue":{"uuid":"4374273194","node_id":"PR_kwDONJ14CM7X44rm","number":72,"state":"open","title":"deps(deps-dev): update nox requirement from \u003e=2023.4.22 to \u003e=2026.4.10","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-04T05:48:37.000Z","updated_at":"2026-05-04T05:48:38.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(deps-dev): update","packages":[{"name":"nox","old_version":"\u003e=2023.4.22","new_version":"\u003e=2026.4.10","repository_url":"https://github.com/wntrblm/nox"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [nox](https://github.com/wntrblm/nox) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/wntrblm/nox/blob/main/CHANGELOG.md\"\u003enox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003e2026.04.10\u003c/h2\u003e\n\u003cp\u003eThis release drops Python 3.8 and adds a \u003ccode\u003e--usage\u003c/code\u003e command for full docstrings.\nOur \u003ccode\u003e.nox\u003c/code\u003e dir is now ignored by default, virtualenvs are recreated if symlinks\nare broken (such as after a Python upgrade), and \u003ccode\u003e-t\u003c/code\u003e now selects from all\navailable sessions.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agriyakhetarpal\"\u003e\u003ccode\u003e@​agriyakhetarpal\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scop\"\u003e\u003ccode\u003e@​scop\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.8 (reapply \u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1004\"\u003e#1004\u003c/a\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/wntrblm/nox/pull/1062\"\u003ewntrblm/nox#1062\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003enox --usage \u0026lt;session\u0026gt;\u003c/code\u003e command to print full docstrings for provided sessions by \u003ca href=\"https://github.com/agriyakhetarpal\"\u003e\u003ccode\u003e@​agriyakhetarpal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1064\"\u003ewntrblm/nox#1064\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrite out \u003ccode\u003e.gitignore\u003c/code\u003e/\u003ccode\u003eCACHEDIR.TAG\u003c/code\u003e to \u003ccode\u003e.nox\u003c/code\u003e dir by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1072\"\u003ewntrblm/nox#1072\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRecreate venv if broken symlinks are present by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1078\"\u003ewntrblm/nox#1078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore default selection for tags and keywords by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1057\"\u003ewntrblm/nox#1057\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMore uv variables set by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1056\"\u003ewntrblm/nox#1056\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore forcecolor falsy by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1073\"\u003ewntrblm/nox#1073\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFully pin actions in composite action by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1080\"\u003ewntrblm/nox#1080\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePin CI to working conda version by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1079\"\u003ewntrblm/nox#1079\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse prek by \u003ca href=\"https://github.com/agriyakhetarpal\"\u003e\u003ccode\u003e@​agriyakhetarpal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1065\"\u003ewntrblm/nox#1065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSwitch artifact attestations to actions/attest by \u003ca href=\"https://github.com/scop\"\u003e\u003ccode\u003e@​scop\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1070\"\u003ewntrblm/nox#1070\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse zizmor by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1082\"\u003ewntrblm/nox#1082\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2026.02.09\u003c/h2\u003e\n\u003cp\u003eThis small release supports uv 0.10's new requirement that \u003ccode\u003e--clear\u003c/code\u003e be passed\nto clear an environment. Python 3.8 support was temporarily re-added since uv\n0.10 still supports 3.8, so nox on 3.8 was affected.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/97e345e6a26bb2c5aacff9cc4327bd4ac1b00ce6\"\u003e\u003ccode\u003e97e345e\u003c/code\u003e\u003c/a\u003e docs: add thanks section (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1083\"\u003e#1083\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/8d5c759d5d3f1f2c80ada8f05cd994c673905898\"\u003e\u003ccode\u003e8d5c759\u003c/code\u003e\u003c/a\u003e chore: prepare for 2026.04.10 (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1081\"\u003e#1081\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/2577f31eb4d6d94f18157c444464fdd1e4a7e3df\"\u003e\u003ccode\u003e2577f31\u003c/code\u003e\u003c/a\u003e ci: add zizmor (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1082\"\u003e#1082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/b6a61563737b2e42790f8ea509fe1ddd76fa464f\"\u003e\u003ccode\u003eb6a6156\u003c/code\u003e\u003c/a\u003e fix: fully pin actions in composite action (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1080\"\u003e#1080\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/4c7a2151c538b739337dbbd759aaf440fa1991ac\"\u003e\u003ccode\u003e4c7a215\u003c/code\u003e\u003c/a\u003e fix: write out .gitignore/CACHEDIR.TAG to our dir (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1072\"\u003e#1072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/47cb9c300e07c3a8ca4d5b240dad1a178a65dcdb\"\u003e\u003ccode\u003e47cb9c3\u003c/code\u003e\u003c/a\u003e fix: ignore default selection for tags and keywords (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1057\"\u003e#1057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/63dcab98ecd4f784537a3c1fa1319bac6cbf2436\"\u003e\u003ccode\u003e63dcab9\u003c/code\u003e\u003c/a\u003e fix: more uv variables set (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1056\"\u003e#1056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/e0f64e6c3cb24e3f870f4df8dd38830e03546dce\"\u003e\u003ccode\u003ee0f64e6\u003c/code\u003e\u003c/a\u003e fix: recreate if broken symlinks are present (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1078\"\u003e#1078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/bf9095287afacc1f5b94e5da54f4dbed4ccce875\"\u003e\u003ccode\u003ebf90952\u003c/code\u003e\u003c/a\u003e tests: pin to working conda version (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1079\"\u003e#1079\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/4ff681f169c4043ce3b3d19cba1eadd66720bf1d\"\u003e\u003ccode\u003e4ff681f\u003c/code\u003e\u003c/a\u003e fix: ignore forcecolor falsy (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1073\"\u003e#1073\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/wntrblm/nox/compare/2023.04.22...2026.04.10\"\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/loonghao/repo-template/pull/72","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/loonghao%2Frepo-template/issues/72","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/72/packages"}},{"old_version":"2026.2.9","new_version":"2026.4.10","update_type":"minor","path":null,"pr_created_at":"2026-05-01T07:38:42.000Z","version_change":"2026.2.9 → 2026.4.10","issue":{"uuid":"4363404216","node_id":"PR_kwDOPmcY8c7XXoxJ","number":25,"state":"open","title":"Bump the python-dependencies group with 6 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-05-01T07:38:42.000Z","updated_at":"2026-05-01T07:39:43.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-dependencies","update_count":6,"packages":[{"name":"pydantic","old_version":"2.12.5","new_version":"2.13.3","repository_url":"https://github.com/pydantic/pydantic"},{"name":"nox","old_version":"2026.2.9","new_version":"2026.4.10","repository_url":"https://github.com/wntrblm/nox"},{"name":"pre-commit","old_version":"4.5.1","new_version":"4.6.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"ruff","old_version":"0.15.8","new_version":"0.15.12","repository_url":"https://github.com/astral-sh/ruff"},{"name":"mypy","old_version":"1.20.0","new_version":"1.20.2","repository_url":"https://github.com/python/mypy"},{"name":"pytest-randomly","old_version":"4.0.1","new_version":"4.1.0","repository_url":"https://github.com/pytest-dev/pytest-randomly"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-dependencies group with 6 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.5` | `2.13.3` |\n| [nox](https://github.com/wntrblm/nox) | `2026.2.9` | `2026.4.10` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.5.1` | `4.6.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.8` | `0.15.12` |\n| [mypy](https://github.com/python/mypy) | `1.20.0` | `1.20.2` |\n| [pytest-randomly](https://github.com/pytest-dev/pytest-randomly) | `4.0.1` | `4.1.0` |\n\nUpdates `pydantic` from 2.12.5 to 2.13.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.3 2026-04-20\u003c/h2\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.2 2026-04-17\u003c/h2\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.1 2026-04-15\u003c/h2\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.0 2026-04-13\u003c/h2\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e) are also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd zizmor for GitHub Actions workflow linting by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13039\"\u003e#13039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate jiter to v0.14.0 to fix a segmentation fault on musl Linux by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13064\"\u003e#13064\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.2\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e)\nare also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow default factories of private attributes to take validated model data by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13013\"\u003e#13013\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanges\u003c/h4\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/9e9a11132c980c4ec84ff6d2df06d4c1a55ca8f3\"\u003e\u003ccode\u003e9e9a111\u003c/code\u003e\u003c/a\u003e Fix backported test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1ec8c6aa0cae1c78409c6f31af738a24e16c7124\"\u003e\u003ccode\u003e1ec8c6a\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/fb4f2044436e9fa4ff9745479ce263016a99c4d6\"\u003e\u003ccode\u003efb4f204\u003c/code\u003e\u003c/a\u003e Handle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/ca3ddd1149bd3b14273922a29da174804496a055\"\u003e\u003ccode\u003eca3ddd1\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/000e823a3ab7545b0c6064fde34effdcd02044ab\"\u003e\u003ccode\u003e000e823\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/d45d8be3ffb6dfc6d0c64da6980140c91ff841fb\"\u003e\u003ccode\u003ed45d8be\u003c/code\u003e\u003c/a\u003e Prepare release 2.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/54aca609ce58e73dfe1c681d93432fbe3a4621da\"\u003e\u003ccode\u003e54aca60\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/46bf4fa648af3a1fbf4603a37f210e9d9c618357\"\u003e\u003ccode\u003e46bf4fa\u003c/code\u003e\u003c/a\u003e Fix Pydantic release workflow (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13067\"\u003e#13067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1b359edab09c623464d23c6fd2503ae5ff276d43\"\u003e\u003ccode\u003e1b359ed\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13065\"\u003e#13065\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b1bf19445d8ac144a7a0e82674d2d87eebab6c18\"\u003e\u003ccode\u003eb1bf194\u003c/code\u003e\u003c/a\u003e Fix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13062\"\u003e#13062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.5...v2.13.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `nox` from 2026.2.9 to 2026.4.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/wntrblm/nox/releases\"\u003enox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2026.04.10 🧹\u003c/h2\u003e\n\u003cp\u003eThis release drops Python 3.8 and adds a \u003ccode\u003e--usage\u003c/code\u003e command for full docstrings. Our \u003ccode\u003e.nox\u003c/code\u003e dir is now ignored by default, virtualenvs are recreated if symlinks are broken (such as after a Python upgrade), and \u003ccode\u003e-t\u003c/code\u003e now selects from all available sessions.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agriyakhetarpal\"\u003e\u003ccode\u003e@​agriyakhetarpal\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scop\"\u003e\u003ccode\u003e@​scop\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.8 (reapply \u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1004\"\u003e#1004\u003c/a\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/wntrblm/nox/pull/1062\"\u003ewntrblm/nox#1062\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003enox --usage \u0026lt;session\u0026gt;\u003c/code\u003e command to print full docstrings for provided sessions by \u003ca href=\"https://github.com/agriyakhetarpal\"\u003e\u003ccode\u003e@​agriyakhetarpal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1064\"\u003ewntrblm/nox#1064\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrite out \u003ccode\u003e.gitignore\u003c/code\u003e/\u003ccode\u003eCACHEDIR.TAG\u003c/code\u003e to \u003ccode\u003e.nox\u003c/code\u003e dir by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1072\"\u003ewntrblm/nox#1072\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRecreate venv if broken symlinks are present by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1078\"\u003ewntrblm/nox#1078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore default selection for tags and keywords by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1057\"\u003ewntrblm/nox#1057\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMore uv variables set by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1056\"\u003ewntrblm/nox#1056\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore forcecolor falsy by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1073\"\u003ewntrblm/nox#1073\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFully pin actions in composite action by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1080\"\u003ewntrblm/nox#1080\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePin CI to working conda version by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1079\"\u003ewntrblm/nox#1079\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse prek by \u003ca href=\"https://github.com/agriyakhetarpal\"\u003e\u003ccode\u003e@​agriyakhetarpal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1065\"\u003ewntrblm/nox#1065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSwitch artifact attestations to actions/attest by \u003ca href=\"https://github.com/scop\"\u003e\u003ccode\u003e@​scop\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1070\"\u003ewntrblm/nox#1070\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse zizmor by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1082\"\u003ewntrblm/nox#1082\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/wntrblm/nox/compare/2026.02.09...2026.04.10\"\u003ehttps://github.com/wntrblm/nox/compare/2026.02.09...2026.04.10\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/wntrblm/nox/blob/main/CHANGELOG.md\"\u003enox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003e2026.04.10\u003c/h2\u003e\n\u003cp\u003eThis release drops Python 3.8 and adds a \u003ccode\u003e--usage\u003c/code\u003e command for full docstrings.\nOur \u003ccode\u003e.nox\u003c/code\u003e dir is now ignored by default, virtualenvs are recreated if symlinks\nare broken (such as after a Python upgrade), and \u003ccode\u003e-t\u003c/code\u003e now selects from all\navailable sessions.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agriyakhetarpal\"\u003e\u003ccode\u003e@​agriyakhetarpal\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scop\"\u003e\u003ccode\u003e@​scop\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.8 (reapply \u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1004\"\u003e#1004\u003c/a\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/wntrblm/nox/pull/1062\"\u003ewntrblm/nox#1062\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003enox --usage \u0026lt;session\u0026gt;\u003c/code\u003e command to print full docstrings for provided sessions by \u003ca href=\"https://github.com/agriyakhetarpal\"\u003e\u003ccode\u003e@​agriyakhetarpal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1064\"\u003ewntrblm/nox#1064\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrite out \u003ccode\u003e.gitignore\u003c/code\u003e/\u003ccode\u003eCACHEDIR.TAG\u003c/code\u003e to \u003ccode\u003e.nox\u003c/code\u003e dir by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1072\"\u003ewntrblm/nox#1072\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRecreate venv if broken symlinks are present by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1078\"\u003ewntrblm/nox#1078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore default selection for tags and keywords by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1057\"\u003ewntrblm/nox#1057\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMore uv variables set by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1056\"\u003ewntrblm/nox#1056\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore forcecolor falsy by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1073\"\u003ewntrblm/nox#1073\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFully pin actions in composite action by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1080\"\u003ewntrblm/nox#1080\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePin CI to working conda version by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1079\"\u003ewntrblm/nox#1079\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse prek by \u003ca href=\"https://github.com/agriyakhetarpal\"\u003e\u003ccode\u003e@​agriyakhetarpal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1065\"\u003ewntrblm/nox#1065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSwitch artifact attestations to actions/attest by \u003ca href=\"https://github.com/scop\"\u003e\u003ccode\u003e@​scop\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1070\"\u003ewntrblm/nox#1070\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse zizmor by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1082\"\u003ewntrblm/nox#1082\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2026.02.09\u003c/h2\u003e\n\u003cp\u003eThis small release supports uv 0.10's new requirement that \u003ccode\u003e--clear\u003c/code\u003e be passed\nto clear an environment. Python 3.8 support was temporarily re-added since uv\n0.10 still supports 3.8, so nox on 3.8 was affected.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/97e345e6a26bb2c5aacff9cc4327bd4ac1b00ce6\"\u003e\u003ccode\u003e97e345e\u003c/code\u003e\u003c/a\u003e docs: add thanks section (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1083\"\u003e#1083\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/8d5c759d5d3f1f2c80ada8f05cd994c673905898\"\u003e\u003ccode\u003e8d5c759\u003c/code\u003e\u003c/a\u003e chore: prepare for 2026.04.10 (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1081\"\u003e#1081\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/2577f31eb4d6d94f18157c444464fdd1e4a7e3df\"\u003e\u003ccode\u003e2577f31\u003c/code\u003e\u003c/a\u003e ci: add zizmor (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1082\"\u003e#1082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/b6a61563737b2e42790f8ea509fe1ddd76fa464f\"\u003e\u003ccode\u003eb6a6156\u003c/code\u003e\u003c/a\u003e fix: fully pin actions in composite action (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1080\"\u003e#1080\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/4c7a2151c538b739337dbbd759aaf440fa1991ac\"\u003e\u003ccode\u003e4c7a215\u003c/code\u003e\u003c/a\u003e fix: write out .gitignore/CACHEDIR.TAG to our dir (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1072\"\u003e#1072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/47cb9c300e07c3a8ca4d5b240dad1a178a65dcdb\"\u003e\u003ccode\u003e47cb9c3\u003c/code\u003e\u003c/a\u003e fix: ignore default selection for tags and keywords (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1057\"\u003e#1057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/63dcab98ecd4f784537a3c1fa1319bac6cbf2436\"\u003e\u003ccode\u003e63dcab9\u003c/code\u003e\u003c/a\u003e fix: more uv variables set (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1056\"\u003e#1056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/e0f64e6c3cb24e3f870f4df8dd38830e03546dce\"\u003e\u003ccode\u003ee0f64e6\u003c/code\u003e\u003c/a\u003e fix: recreate if broken symlinks are present (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1078\"\u003e#1078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/bf9095287afacc1f5b94e5da54f4dbed4ccce875\"\u003e\u003ccode\u003ebf90952\u003c/code\u003e\u003c/a\u003e tests: pin to working conda version (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1079\"\u003e#1079\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/4ff681f169c4043ce3b3d19cba1eadd66720bf1d\"\u003e\u003ccode\u003e4ff681f\u003c/code\u003e\u003c/a\u003e fix: ignore forcecolor falsy (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1073\"\u003e#1073\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/wntrblm/nox/compare/2026.02.09...2026.04.10\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit` from 4.5.1 to 4.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.6.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epre-commit hook-impl\u003c/code\u003e: allow \u003ccode\u003e--hook-dir\u003c/code\u003e to be missing to enable easier usage with \u003ccode\u003egit\u003c/code\u003e 2.54+ git hooks.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3662\"\u003e#3662\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epre-commit hook-impl\u003c/code\u003e: \u003ccode\u003e--hook-type\u003c/code\u003e is required.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3661\"\u003e#3661\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.6.0 - 2026-04-21\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epre-commit hook-impl\u003c/code\u003e: allow \u003ccode\u003e--hook-dir\u003c/code\u003e to be missing to enable easier\nusage with \u003ccode\u003egit\u003c/code\u003e 2.54+ git hooks.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3662\"\u003e#3662\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epre-commit hook-impl\u003c/code\u003e: \u003ccode\u003e--hook-type\u003c/code\u003e is required.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3661\"\u003e#3661\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/f35134b05028ec938ac605ae500fdf95462655d3\"\u003e\u003ccode\u003ef35134b\u003c/code\u003e\u003c/a\u003e v4.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2a51ffcb81f6c8ed2e6467913c3343a8800f3ab9\"\u003e\u003ccode\u003e2a51ffc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3662\"\u003e#3662\u003c/a\u003e from pre-commit/hook-impl-optional-hook-dir\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/d7dee322abfc765b042f2e3b872aab3c3a867610\"\u003e\u003ccode\u003ed7dee32\u003c/code\u003e\u003c/a\u003e make --hook-dir optional for hook-impl\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/965aeb1c680e8b526342153547f0ec014484c63d\"\u003e\u003ccode\u003e965aeb1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3661\"\u003e#3661\u003c/a\u003e from pre-commit/hook-impl-required\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2eacc064aa9b5bb33d3a0d84a234b475e34f3096\"\u003e\u003ccode\u003e2eacc06\u003c/code\u003e\u003c/a\u003e --hook-type is required for hook-impl\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/f5678bf4ac35cffc0ff7174ad85f7fdc2a5c977e\"\u003e\u003ccode\u003ef5678bf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3657\"\u003e#3657\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/054cc5bd6bb1b20faa1eefe09f0de3b68fceee94\"\u003e\u003ccode\u003e054cc5b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/5c0f3024d2524f6e029a4c333392fd9be9fb27f6\"\u003e\u003ccode\u003e5c0f302\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3652\"\u003e#3652\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/a5d91142676630f8130020b35e166e0c0e92b8f4\"\u003e\u003ccode\u003ea5d9114\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/129a1f5ca1eaee0c952a5e7a07faae305c5e15bc\"\u003e\u003ccode\u003e129a1f5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3641\"\u003e#3641\u003c/a\u003e from pre-commit/mxr-patch-1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.5.1...v4.6.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.8 to 0.15.12\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.12\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-24.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplement \u003ccode\u003e#ruff:file-ignore\u003c/code\u003e file-level suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23599\"\u003e#23599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement \u003ccode\u003e#ruff:ignore\u003c/code\u003e logical-line suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23404\"\u003e#23404\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevert preview changes to displayed diagnostic severity in LSP (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24789\"\u003e#24789\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003etask-branch-as-short-circuit\u003c/code\u003e (\u003ccode\u003eAIR004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23579\"\u003e#23579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Fix \u003ccode\u003ebreak\u003c/code\u003e/\u003ccode\u003econtinue\u003c/code\u003e handling in \u003ccode\u003eloop-iterator-mutation\u003c/code\u003e (\u003ccode\u003eB909\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24440\"\u003e#24440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLC2701\u003c/code\u003e for type parameter scopes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24576\"\u003e#24576\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epandas-vet\u003c/code\u003e] Suggest \u003ccode\u003e.array\u003c/code\u003e as well in \u003ccode\u003ePD011\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24805\"\u003e#24805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRespect default Unix permissions for cache files (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24794\"\u003e#24794\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLR0124\u003c/code\u003e description not to claim self-comparison always returns the same value (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24749\"\u003e#24749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Expand docs on reusable \u003ccode\u003eTypeVar\u003c/code\u003es and scoping (\u003ccode\u003eUP046\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24153\"\u003e#24153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove rules table accessibility (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24711\"\u003e#24711\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/woodruffw\"\u003e\u003ccode\u003e@​woodruffw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/avasis-ai\"\u003e\u003ccode\u003e@​avasis-ai\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Dev-iL\"\u003e\u003ccode\u003e@​Dev-iL\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/ShipItAndPray\"\u003e\u003ccode\u003e@​ShipItAndPray\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/augustelalande\"\u003e\u003ccode\u003e@​augustelalande\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/majiayu000\"\u003e\u003ccode\u003e@​majiayu000\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.15.12\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.12/ruff-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.12\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-24.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplement \u003ccode\u003e#ruff:file-ignore\u003c/code\u003e file-level suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23599\"\u003e#23599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement \u003ccode\u003e#ruff:ignore\u003c/code\u003e logical-line suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23404\"\u003e#23404\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevert preview changes to displayed diagnostic severity in LSP (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24789\"\u003e#24789\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003etask-branch-as-short-circuit\u003c/code\u003e (\u003ccode\u003eAIR004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23579\"\u003e#23579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Fix \u003ccode\u003ebreak\u003c/code\u003e/\u003ccode\u003econtinue\u003c/code\u003e handling in \u003ccode\u003eloop-iterator-mutation\u003c/code\u003e (\u003ccode\u003eB909\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24440\"\u003e#24440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLC2701\u003c/code\u003e for type parameter scopes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24576\"\u003e#24576\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epandas-vet\u003c/code\u003e] Suggest \u003ccode\u003e.array\u003c/code\u003e as well in \u003ccode\u003ePD011\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24805\"\u003e#24805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRespect default Unix permissions for cache files (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24794\"\u003e#24794\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLR0124\u003c/code\u003e description not to claim self-comparison always returns the same value (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24749\"\u003e#24749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Expand docs on reusable \u003ccode\u003eTypeVar\u003c/code\u003es and scoping (\u003ccode\u003eUP046\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24153\"\u003e#24153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove rules table accessibility (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24711\"\u003e#24711\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/woodruffw\"\u003e\u003ccode\u003e@​woodruffw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/avasis-ai\"\u003e\u003ccode\u003e@​avasis-ai\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Dev-iL\"\u003e\u003ccode\u003e@​Dev-iL\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/ShipItAndPray\"\u003e\u003ccode\u003e@​ShipItAndPray\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/augustelalande\"\u003e\u003ccode\u003e@​augustelalande\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/majiayu000\"\u003e\u003ccode\u003e@​majiayu000\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.15.11\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-16.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Ignore \u003ccode\u003eRUF029\u003c/code\u003e when function is decorated with \u003ccode\u003easynccontextmanager\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24642\"\u003e#24642\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003eairflow-xcom-pull-in-template-string\u003c/code\u003e (\u003ccode\u003eAIR201\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23583\"\u003e#23583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix \u003ccode\u003eS103\u003c/code\u003e false positives and negatives in mask analysis (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24424\"\u003e#24424\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/66f93cf7ed4d36325f35a452e4afa28268fbcd28\"\u003e\u003ccode\u003e66f93cf\u003c/code\u003e\u003c/a\u003e Bump 0.15.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24815\"\u003e#24815\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/476a4d02e8e3b6c157ac39979d8b698a1b6baa91\"\u003e\u003ccode\u003e476a4d0\u003c/code\u003e\u003c/a\u003e [ty] Complete support for more detailed diagnostics on possibly unbound error...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/ed669eab30095d6c51fe6cdef6050fb01276bcb3\"\u003e\u003ccode\u003eed669ea\u003c/code\u003e\u003c/a\u003e Implement \u003ccode\u003e#ruff:file-ignore\u003c/code\u003e file-level suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23599\"\u003e#23599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e73d952e43feb51356ee740c5a973fce81396ff6\"\u003e\u003ccode\u003ee73d952\u003c/code\u003e\u003c/a\u003e [ty] Include inferred type in \u003ccode\u003einvalid-key\u003c/code\u003e concise diagnostic for union/inte...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/80feb29b31cd98c093316df2e0407b0c70c01b55\"\u003e\u003ccode\u003e80feb29\u003c/code\u003e\u003c/a\u003e [ty] report only dead annotation-only locals as unused (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24811\"\u003e#24811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/0fbf2bc27336a3d17d39af52cf89b78dcda8c7c8\"\u003e\u003ccode\u003e0fbf2bc\u003c/code\u003e\u003c/a\u003e Drop deprecated license classifier (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24808\"\u003e#24808\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/43b174cc7f2fcb0080bb1d4843cd4bf6b72bbe27\"\u003e\u003ccode\u003e43b174c\u003c/code\u003e\u003c/a\u003e [ty] Infer lambda parameter types with \u003ccode\u003eCallable\u003c/code\u003e type context (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24317\"\u003e#24317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/4f449ae4a2377569330a5ab94799d389357b5a3f\"\u003e\u003ccode\u003e4f449ae\u003c/code\u003e\u003c/a\u003e [ty] Add error context for intersection types (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24772\"\u003e#24772\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/5b4e753acb46e96ad408e4904c15308e33efe307\"\u003e\u003ccode\u003e5b4e753\u003c/code\u003e\u003c/a\u003e [ty] Add support for goto in literal enum member inlay hint (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24792\"\u003e#24792\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e7cc76275a758ce1c636ea1c2d091fd576aac794\"\u003e\u003ccode\u003ee7cc762\u003c/code\u003e\u003c/a\u003e [ty] Add error context for TypedDict assignments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24790\"\u003e#24790\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.15.8...0.15.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.20.0 to 1.20.2\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.20.2\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse WAL with SQLite cache and fix close (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21154\"\u003e21154\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdjust SQLite journal mode (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21217\"\u003e21217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCorrectly aggregate narrowing information on parent expressions (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21206\"\u003e21206\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix regression related to generic callables (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21208\"\u003e21208\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix regression by avoiding widening types in some contexts (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21242\"\u003e21242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix slicing in non-strict optional mode (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21282\"\u003e21282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emypyc: Fix match statement semantics for \u0026quot;or\u0026quot; pattern (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21156\"\u003e21156\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emypyc: Fix issue with module dunder attributes (Piotr Sawicki, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21275\"\u003e21275\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInitial support for Python 3.15.0a8 (Marc Mueller, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21255\"\u003e21255\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\u003eAaron Wieczorek\u003c/li\u003e\n\u003cli\u003eAdam Turner\u003c/li\u003e\n\u003cli\u003eAli Hamdan\u003c/li\u003e\n\u003cli\u003easce\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003eBrent Westbrook\u003c/li\u003e\n\u003cli\u003eBrian Schubert\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChris Burroughs\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eColin Watson\u003c/li\u003e\n\u003cli\u003eDonghoon Nam\u003c/li\u003e\n\u003cli\u003eE. M. Bray\u003c/li\u003e\n\u003cli\u003eEmma Smith\u003c/li\u003e\n\u003cli\u003eEthan Sarp\u003c/li\u003e\n\u003cli\u003eGeorge Ogden\u003c/li\u003e\n\u003cli\u003egetzze\u003c/li\u003e\n\u003cli\u003egrayjk\u003c/li\u003e\n\u003cli\u003eGregor Riepl\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilliard\u003c/li\u003e\n\u003cli\u003eJames Le Cuirot\u003c/li\u003e\n\u003cli\u003eJeremy Nimmer\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eKai (Kazuya Ito)\u003c/li\u003e\n\u003cli\u003ekaushal trivedi\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eLukas Geiger\u003c/li\u003e\n\u003cli\u003eŁukasz Langa\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael R. Crusoe\u003c/li\u003e\n\u003cli\u003emichaelm-openai\u003c/li\u003e\n\u003cli\u003eNeil Schemenauer\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/145a062651b5f9996b75ef32b7040bd2e885ed82\"\u003e\u003ccode\u003e145a062\u003c/code\u003e\u003c/a\u003e Bump version to 1.20.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/81cd49215c288eacb987de066f02daff2553b7c7\"\u003e\u003ccode\u003e81cd492\u003c/code\u003e\u003c/a\u003e Fix slicing with nonstrict optional (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21282\"\u003e#21282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/908d3441eecbaa2a6193165317177db834d7ca1a\"\u003e\u003ccode\u003e908d344\u003c/code\u003e\u003c/a\u003e [mypyc] Set dunder attrs when adding module to sys.modules (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21275\"\u003e#21275\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/ba28610fac9d2b33be210ca8dcfe4bc47b7af424\"\u003e\u003ccode\u003eba28610\u003c/code\u003e\u003c/a\u003e Initial support for Python 3.15.0a8 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21255\"\u003e#21255\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/7b0e09f48dbd3717ed008a273cd17e8e960c2037\"\u003e\u003ccode\u003e7b0e09f\u003c/code\u003e\u003c/a\u003e Fix match statement semantics for \u0026quot;or\u0026quot; pattern (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21156\"\u003e#21156\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/92b74f226de62f7505f5ef5cb158e8ec9c58b8b7\"\u003e\u003ccode\u003e92b74f2\u003c/code\u003e\u003c/a\u003e Avoid widening types in conditional_types (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21242\"\u003e#21242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/0dcbfaa40b0e360a16baea9cf851955375d91b54\"\u003e\u003ccode\u003e0dcbfaa\u003c/code\u003e\u003c/a\u003e Fix is_overlapping_types for generic callables (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21208\"\u003e#21208\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/210f518dede35292033ef0d387847406a0ccef8f\"\u003e\u003ccode\u003e210f518\u003c/code\u003e\u003c/a\u003e Correctly aggregate narrowing information on parent expressions (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21206\"\u003e#21206\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c34530e53a10e385d8b0f1af4baa88a596b5ceaa\"\u003e\u003ccode\u003ec34530e\u003c/code\u003e\u003c/a\u003e Only set journal mode in coordinator (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21217\"\u003e#21217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/79a3ec6d01b56a27c00e9b3320c2b1d4d73a77f9\"\u003e\u003ccode\u003e79a3ec6\u003c/code\u003e\u003c/a\u003e Use WAL with SQLite cache, fix close (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21154\"\u003e#21154\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.20.0...v1.20.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-randomly` from 4.0.1 to 4.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-randomly/blob/main/CHANGELOG.rst\"\u003epytest-randomly's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.1.0 (2026-04-20)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix a crash with Faker installed when explicitly enabling and disabling the plugin (via \u003ccode\u003e-p randomly -p no:randomly\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003eThanks to mojosan77 for the report in \u003ccode\u003eIssue [#718](https://github.com/pytest-dev/pytest-randomly/issues/718) \u0026lt;https://github.com/pytest-dev/pytest-randomly/issues/718\u0026gt;\u003c/code\u003e__.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrop Python 3.9 support.\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-randomly/commit/c412c8d6d328224a6a0cb9e4324438c62b46f4f5\"\u003e\u003ccode\u003ec412c8d\u003c/code\u003e\u003c/a\u003e Version 4.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-randomly/commit/657d9c356d1970bbe664b36446d4f8a9461e4988\"\u003e\u003ccode\u003e657d9c3\u003c/code\u003e\u003c/a\u003e Upgrade dependencies (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-randomly/issues/722\"\u003e#722\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-randomly/commit/49c8c1bb487d03ca1bda2ac7567e4205bf82aae6\"\u003e\u003ccode\u003e49c8c1b\u003c/code\u003e\u003c/a\u003e Fix a crash with Faker installed and plugin disabled (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-randomly/issues/721\"\u003e#721\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-randomly/commit/c9181c28607e990123ee480200ae2e684f58e7b6\"\u003e\u003ccode\u003ec9181c2\u003c/code\u003e\u003c/a\u003e Bump django from 5.2.12 to 5.2.13 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-randomly/issues/717\"\u003e#717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-randomly/commit/1292cc060c8892d3cccc2bd67c44b3405a6693d4\"\u003e\u003ccode\u003e1292cc0\u003c/code\u003e\u003c/a\u003e Upgrade pre-commit to Python 3.14 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-randomly/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-randomly/commit/56d13889650fa7f71df504c8ab810967fd3fb44e\"\u003e\u003ccode\u003e56d1388\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-randomly/issues/715\"\u003e#715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-randomly/commit/43702c107ada21dca7e59836a8547ed1e62e77aa\"\u003e\u003ccode\u003e43702c1\u003c/code\u003e\u003c/a\u003e Upgrade dependencies (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-randomly/issues/714\"\u003e#714\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-randomly/commit/c3dc97c20e2931b7557ab529703a6bf754df9110\"\u003e\u003ccode\u003ec3dc97c\u003c/code\u003e\u003c/a\u003e Bump pygments from 2.19.2 to 2.20.0 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-randomly/issues/713\"\u003e#713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-randomly/commit/a2dee8a6b620f0ceaf385acfb1d0b778b0fd2892\"\u003e\u003ccode\u003ea2dee8a\u003c/code\u003e\u003c/a\u003e Improve Coverage.py configuration (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-randomly/issues/712\"\u003e#712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-randomly/commit/fed476639744207a10bc1742d7420fc413b555bf\"\u003e\u003ccode\u003efed4766\u003c/code\u003e\u003c/a\u003e Upgrade dependencies (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-randomly/issues/711\"\u003e#711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-randomly/compare/4.0.1...4.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot 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/impressdesigns/brightsites-sdk/pull/25","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/impressdesigns%2Fbrightsites-sdk/issues/25","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/25/packages"}},{"old_version":"2026.2.9","new_version":"2026.4.10","update_type":"minor","path":null,"pr_created_at":"2026-05-01T00:15:08.000Z","version_change":"2026.2.9 → 2026.4.10","issue":{"uuid":"4362059023","node_id":"PR_kwDOBc_aAM7XTY_O","number":711,"state":"closed","title":"Bump the dependencies group across 1 directory with 25 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-06-01T00:13:41.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-01T00:15:08.000Z","updated_at":"2026-06-01T00:13:43.000Z","time_to_close":2678313,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"dependencies","update_count":25,"packages":[{"name":"idna","old_version":"3.11","new_version":"3.13","repository_url":"https://github.com/kjd/idna"},{"name":"certifi","old_version":"2026.2.25","new_version":"2026.4.22","repository_url":"https://github.com/certifi/python-certifi"},{"name":"charset-normalizer","old_version":"3.4.4","new_version":"3.4.7","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"imagesize","old_version":"1.4.1","new_version":"2.0.0","repository_url":"https://github.com/shibukawa/imagesize_py"},{"name":"packaging","old_version":"26.0","new_version":"26.2","repository_url":"https://github.com/pypa/packaging"},{"name":"pygments","old_version":"2.19.2","new_version":"2.20.0","repository_url":"https://github.com/pygments/pygments"},{"name":"requests","old_version":"2.32.5","new_version":"2.33.1","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":"attrs","old_version":"25.4.0","new_version":"26.1.0","repository_url":"https://github.com/python-attrs/attrs"},{"name":"black","old_version":"26.1.0","new_version":"26.3.1","repository_url":"https://github.com/psf/black"},{"name":"click","old_version":"8.3.1","new_version":"8.3.3","repository_url":"https://github.com/pallets/click"},{"name":"filelock","old_version":"3.24.3","new_version":"3.29.0","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"librt","old_version":"0.8.1","new_version":"0.9.0","repository_url":"https://github.com/mypyc/librt"},{"name":"mypy","old_version":"1.19.1","new_version":"1.20.2","repository_url":"https://github.com/python/mypy"},{"name":"nox","old_version":"2026.2.9","new_version":"2026.4.10","repository_url":"https://github.com/wntrblm/nox"},{"name":"pathspec","old_version":"1.0.4","new_version":"1.1.1","repository_url":"https://github.com/cpburnz/python-pathspec"},{"name":"platformdirs","old_version":"4.9.2","new_version":"4.9.6","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pytest","old_version":"9.0.2","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"python-discovery","old_version":"1.1.0","new_version":"1.2.2","repository_url":"https://github.com/tox-dev/python-discovery"},{"name":"types-cffi","old_version":"1.17.0.20250915","new_version":"2.0.0.20260429","repository_url":"https://github.com/python/typeshed"},{"name":"types-setuptools","old_version":"82.0.0.20260210","new_version":"82.0.0.20260408","repository_url":"https://github.com/python/typeshed"},{"name":"virtualenv","old_version":"21.1.0","new_version":"21.3.0","repository_url":"https://github.com/pypa/virtualenv"},{"name":"coverage","old_version":"7.13.4","new_version":"7.13.5","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"pyasn1","old_version":"0.6.2","new_version":"0.6.3","repository_url":"https://github.com/pyasn1/pyasn1"},{"name":"pyopenssl","old_version":"25.3.0","new_version":"26.1.0","repository_url":"https://github.com/pyca/pyopenssl"}],"path":null,"ecosystem":"pip"},"body":"Bumps the dependencies group with 25 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [idna](https://github.com/kjd/idna) | `3.11` | `3.13` |\n| [certifi](https://github.com/certifi/python-certifi) | `2026.2.25` | `2026.4.22` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.4` | `3.4.7` |\n| [imagesize](https://github.com/shibukawa/imagesize_py) | `1.4.1` | `2.0.0` |\n| [packaging](https://github.com/pypa/packaging) | `26.0` | `26.2` |\n| [pygments](https://github.com/pygments/pygments) | `2.19.2` | `2.20.0` |\n| [requests](https://github.com/psf/requests) | `2.32.5` | `2.33.1` |\n| [tomli](https://github.com/hukkin/tomli) | `2.4.0` | `2.4.1` |\n| [attrs](https://github.com/python-attrs/attrs) | `25.4.0` | `26.1.0` |\n| [black](https://github.com/psf/black) | `26.1.0` | `26.3.1` |\n| [click](https://github.com/pallets/click) | `8.3.1` | `8.3.3` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.24.3` | `3.29.0` |\n| [librt](https://github.com/mypyc/librt) | `0.8.1` | `0.9.0` |\n| [mypy](https://github.com/python/mypy) | `1.19.1` | `1.20.2` |\n| [nox](https://github.com/wntrblm/nox) | `2026.2.9` | `2026.4.10` |\n| [pathspec](https://github.com/cpburnz/python-pathspec) | `1.0.4` | `1.1.1` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.9.2` | `4.9.6` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.2` | `9.0.3` |\n| [python-discovery](https://github.com/tox-dev/python-discovery) | `1.1.0` | `1.2.2` |\n| [types-cffi](https://github.com/python/typeshed) | `1.17.0.20250915` | `2.0.0.20260429` |\n| [types-setuptools](https://github.com/python/typeshed) | `82.0.0.20260210` | `82.0.0.20260408` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `21.1.0` | `21.3.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.13.4` | `7.13.5` |\n| [pyasn1](https://github.com/pyasn1/pyasn1) | `0.6.2` | `0.6.3` |\n| [pyopenssl](https://github.com/pyca/pyopenssl) | `25.3.0` | `26.1.0` |\n\n\nUpdates `idna` from 3.11 to 3.13\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.13 (2026-04-22)\n+++++++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCorrect classification error for codepoint U+A7F1\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e3.12 (2026-04-21)\n+++++++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate to Unicode 17.0.0.\u003c/li\u003e\n\u003cli\u003eIssue a deprecation warning for the transitional argument.\u003c/li\u003e\n\u003cli\u003eAdded lazy-loading to provide some performance improvements.\u003c/li\u003e\n\u003cli\u003eRemoved vestiges of code related to Python 2 support, including\nsegmentation of data structures specific to Jython.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to Rodrigo Nogueira for contributions to this release.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/89cdfd27338896cee6b1ee18e64c96ac28684ce0\"\u003e\u003ccode\u003e89cdfd2\u003c/code\u003e\u003c/a\u003e Release v3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/1eb068687543118147417a8d8a70674e2c172891\"\u003e\u003ccode\u003e1eb0686\u003c/code\u003e\u003c/a\u003e Pre-release 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/5f20d1e41eea3b3873d18d83d7a384784f72a92e\"\u003e\u003ccode\u003e5f20d1e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kjd/idna/issues/220\"\u003e#220\u003c/a\u003e from kjd/unicode-next\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/4ea84252ab21e62a79e5a3273746112b5dcfb810\"\u003e\u003ccode\u003e4ea8425\u003c/code\u003e\u003c/a\u003e Regenerate idnadata.py with correct NFKC_CF data\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/fd47341a08bbdcffda33694211ca4de10170cd41\"\u003e\u003ccode\u003efd47341\u003c/code\u003e\u003c/a\u003e Use NFKC_CF from Unicode data files instead of Python's unicodedata module\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/a5304a4cdbd7b31595f8ac42ffdfa88f5b936467\"\u003e\u003ccode\u003ea5304a4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kjd/idna/issues/219\"\u003e#219\u003c/a\u003e from kjd/release-3.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/d80d6f9254d699961fa2c669a1534cde9d4ee5b6\"\u003e\u003ccode\u003ed80d6f9\u003c/code\u003e\u003c/a\u003e Release v3.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/1bb44ddb3f2a9dcf97a6ac11aba34e5b6ed31291\"\u003e\u003ccode\u003e1bb44dd\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kjd/idna/issues/218\"\u003e#218\u003c/a\u003e from kjd/release-candidate-3.12rc0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/909c49d15b8d159be163bccc7972116baffdb47b\"\u003e\u003ccode\u003e909c49d\u003c/code\u003e\u003c/a\u003e Release candidate for 3.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/c5459a10370f005dc09921aee3201b5a45699f9d\"\u003e\u003ccode\u003ec5459a1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kjd/idna/issues/217\"\u003e#217\u003c/a\u003e from kjd/housekeeping-2\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kjd/idna/compare/v3.11...v3.13\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2026.2.25 to 2026.4.22\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/5dddfb072243da27adde885b73ba9b809c3224ca\"\u003e\u003ccode\u003e5dddfb0\u003c/code\u003e\u003c/a\u003e 2026.04.22 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/410\"\u003e#410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/f99eccdaf87f7c10e521a58a700ca3eb94a0787e\"\u003e\u003ccode\u003ef99eccd\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 8.1.0 to 8.1.1 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/404\"\u003e#404\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/918bed055f7291719512af186c1c24710f845660\"\u003e\u003ccode\u003e918bed0\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 7.0.0 to 7.0.1 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/405\"\u003e#405\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/0a49067eb434e53e1f8df5f7707d5dc05ef9def4\"\u003e\u003ccode\u003e0a49067\u003c/code\u003e\u003c/a\u003e Bump pypa/gh-action-pypi-publish from 1.13.0 to 1.14.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/403\"\u003e#403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/acf6ce8e39e3b125f4349e11904295e4fe4c1bed\"\u003e\u003ccode\u003eacf6ce8\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 8.0.0 to 8.0.1 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/398\"\u003e#398\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/feb0ed26163a9417ea0fb8eb52d47e79fcf202ab\"\u003e\u003ccode\u003efeb0ed2\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 7.0.0 to 8.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/397\"\u003e#397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/d9c11a50369cc377abb40f7909ded3d6da4d98a3\"\u003e\u003ccode\u003ed9c11a5\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 6.0.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/396\"\u003e#396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2026.02.25...2026.04.22\"\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.7\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.7\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.6...3.4.7\"\u003e3.4.7\u003c/a\u003e (2026-04-02)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePre-built optimized version using mypy[c] v1.20.\u003c/li\u003e\n\u003cli\u003eRelax \u003ccode\u003esetuptools\u003c/code\u003e constraint to \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;82.1\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCorrectly remove SIG remnant in utf-7 decoded string. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/718\"\u003e#718\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\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.6...3.4.7\"\u003e3.4.7\u003c/a\u003e (2026-04-02)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePre-built optimized version using mypy[c] v1.20.\u003c/li\u003e\n\u003cli\u003eRelax \u003ccode\u003esetuptools\u003c/code\u003e constraint to \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;82.1\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCorrectly remove SIG remnant in utf-7 decoded string. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/718\"\u003e#718\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\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\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\u003c/blockquote\u003e\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/0f07891bf516b5d5231f1bd4dd2d8da7d4d09a9a\"\u003e\u003ccode\u003e0f07891\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/729\"\u003e#729\u003c/a\u003e from jawah/release-3.4.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/fdbeb299479e8f4d737e4d227cd0b2bd5d273dc0\"\u003e\u003ccode\u003efdbeb29\u003c/code\u003e\u003c/a\u003e chore: update dev, and ci requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/b66f922bfbdbdd9dd46af18a8964d4fb888756d4\"\u003e\u003ccode\u003eb66f922\u003c/code\u003e\u003c/a\u003e chore: add ft classifier\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f94249d0a2c712f2d03124f4de6b77f5e03aaa96\"\u003e\u003ccode\u003ef94249d\u003c/code\u003e\u003c/a\u003e chore: add test cases for utf_7 recent fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/95c866f6c984bbd043e7e3ed0628aa4f3f8d5a26\"\u003e\u003ccode\u003e95c866f\u003c/code\u003e\u003c/a\u003e chore: bump version to 3.4.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/4f429bb764c7e893f99bb4bceb60856da1baacfb\"\u003e\u003ccode\u003e4f429bb\u003c/code\u003e\u003c/a\u003e chore: bump mypy pre-commit to v1.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/b579cd6cab9bd83aa3fc0ca169d4df022bf4888c\"\u003e\u003ccode\u003eb579cd6\u003c/code\u003e\u003c/a\u003e fix: correctly remove SIG remnant in utf-7 decoded string\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/58bf944a77cc0883fc46a6ee8edac3549fea5d59\"\u003e\u003ccode\u003e58bf944\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump github/codeql-action from 4.32.4 to 4.35.1 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/728\"\u003e#728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/44cf8a1b676a2532a8f1694e62e4f4f98f9132e1\"\u003e\u003ccode\u003e44cf8a1\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump actions/download-artifact from 8.0.0 to 8.0.1 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/726\"\u003e#726\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/362bc20073f737b1ba4ca2f68cffb0c4cc024d20\"\u003e\u003ccode\u003e362bc20\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump docker/setup-qemu-action from 3.7.0 to 4.0.0 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/725\"\u003e#725\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.4...3.4.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `imagesize` from 1.4.1 to 2.0.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shibukawa/imagesize_py/commit/5ab28d47b96d6a0738ec036034919a739b4d64da\"\u003e\u003ccode\u003e5ab28d4\u003c/code\u003e\u003c/a\u003e bump module version to 2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shibukawa/imagesize_py/commit/63d6afb8e24b9f9d599f7a15fa50ebc7964ad7c7\"\u003e\u003ccode\u003e63d6afb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/shibukawa/imagesize_py/issues/82\"\u003e#82\u003c/a\u003e from shibukawa/codex/update-readme-and-setup-instructi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shibukawa/imagesize_py/commit/294606629eaf3950290de90a4b1ab9aaed7c89c3\"\u003e\u003ccode\u003e2946066\u003c/code\u003e\u003c/a\u003e docs: clarify EXIF orientation formats in v2.0 notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shibukawa/imagesize_py/commit/53eff2e3ab713b81883003bbd4eca586cc592431\"\u003e\u003ccode\u003e53eff2e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/shibukawa/imagesize_py/issues/81\"\u003e#81\u003c/a\u003e from shibukawa/codex/refactor-code-to-reduce-duplication\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shibukawa/imagesize_py/commit/ac14f2af0208f9d57780d86ff619a32f80b90109\"\u003e\u003ccode\u003eac14f2a\u003c/code\u003e\u003c/a\u003e Refactor duplicated JPEG segment parsing logic\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shibukawa/imagesize_py/commit/48ab954c707642d06081c8b5eae53b61b410715a\"\u003e\u003ccode\u003e48ab954\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/shibukawa/imagesize_py/issues/80\"\u003e#80\u003c/a\u003e from shibukawa/codex/add-avif-exif-rotation-support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shibukawa/imagesize_py/commit/5cada1084cc21621541216810ecaf4514ca0e60b\"\u003e\u003ccode\u003e5cada10\u003c/code\u003e\u003c/a\u003e Add AVIF EXIF rotation support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shibukawa/imagesize_py/commit/232c6d5204e38d5a288114c098304cc2f8358f69\"\u003e\u003ccode\u003e232c6d5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/shibukawa/imagesize_py/issues/79\"\u003e#79\u003c/a\u003e from shibukawa/codex/add-heic/heif-support-and-rotation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shibukawa/imagesize_py/commit/324c970eb6c8d5326a6e3e16216ed2d498358219\"\u003e\u003ccode\u003e324c970\u003c/code\u003e\u003c/a\u003e Add HEIC/HEIF size and rotation support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shibukawa/imagesize_py/commit/7b7bb5f720401332eba12e93ad2e31d1bbc01cd4\"\u003e\u003ccode\u003e7b7bb5f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/shibukawa/imagesize_py/issues/78\"\u003e#78\u003c/a\u003e from shibukawa/codex/add-pypi-link-and-python-version-...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/shibukawa/imagesize_py/compare/1.4.1...2.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `packaging` from 26.0 to 26.2\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.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix incorrect sysconfig var name for pyemscripten by \u003ca href=\"https://github.com/ryanking13\"\u003e\u003ccode\u003e@​ryanking13\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1160\"\u003epypa/packaging#1160\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eVersion\u003c/code\u003e, \u003ccode\u003eSpecifier\u003c/code\u003e, \u003ccode\u003eSpecifierSet\u003c/code\u003e, \u003ccode\u003eTag\u003c/code\u003e, \u003ccode\u003eMarker\u003c/code\u003e, and \u003ccode\u003eRequirement\u003c/code\u003e pickle-safe\nand backward-compatible with pickles created in 25.0-26.1 (including references to the removed\n\u003ccode\u003epackaging._structures\u003c/code\u003e module) by \u003ca href=\"https://github.com/eachimei\"\u003e\u003ccode\u003e@​eachimei\u003c/code\u003e\u003c/a\u003e and \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/1163\"\u003epypa/packaging#1163\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1168\"\u003epypa/packaging#1168\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1170\"\u003epypa/packaging#1170\u003c/a\u003e, and \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1171\"\u003epypa/packaging#1171\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: re-export ExceptionGroup for now 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/1164\"\u003epypa/packaging#1164\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003edocs: add errors section and fix missing details 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/1159\"\u003epypa/packaging#1159\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs(dev): document property-based test suite by \u003ca href=\"https://github.com/r266-tech\"\u003e\u003ccode\u003e@​r266-tech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1167\"\u003epypa/packaging#1167\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typo in DirectUrl documentation 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/1169\"\u003epypa/packaging#1169\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs(specifiers): add is_unsatisfiable() usage example by \u003ca href=\"https://github.com/r266-tech\"\u003e\u003ccode\u003e@​r266-tech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1166\"\u003epypa/packaging#1166\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnable the auditor persona on zizmor 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/1158\"\u003epypa/packaging#1158\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest new pickle guarantees 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/1174\"\u003epypa/packaging#1174\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse native uv integration in rtd 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/1175\"\u003epypa/packaging#1175\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/ryanking13\"\u003e\u003ccode\u003e@​ryanking13\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1160\"\u003epypa/packaging#1160\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eachimei\"\u003e\u003ccode\u003e@​eachimei\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1163\"\u003epypa/packaging#1163\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pypa/packaging/compare/26.1...26.2\"\u003ehttps://github.com/pypa/packaging/compare/26.1...26.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e26.1\u003c/h2\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cdel\u003ePEP 783: add handling for Emscripten wheel tags by \u003ca href=\"https://github.com/hoodmane\"\u003e\u003ccode\u003e@​hoodmane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/804\"\u003epypa/packaging#804\u003c/a\u003e\u003c/del\u003e (old name used in implementation, will be fixed in next release)\u003c/li\u003e\n\u003cli\u003ePEP 803: add handling for the \u003ccode\u003eabi3.abi3t\u003c/code\u003e free-threading tag by \u003ca href=\"https://github.com/ngoldbaum\"\u003e\u003ccode\u003e@​ngoldbaum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1099\"\u003epypa/packaging#1099\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePEP 723: add \u003ccode\u003epackaging.dependency_groups\u003c/code\u003e module, based on the \u003ccode\u003edependency-groups\u003c/code\u003e package by \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1065\"\u003epypa/packaging#1065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.direct_url\u003c/code\u003e module 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/944\"\u003epypa/packaging#944\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.errors\u003c/code\u003e module 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/1071\"\u003epypa/packaging#1071\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSpecifierSet.is_unsatisfiable\u003c/code\u003e using ranges (new internals that will be expanded in future versions) 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/1119\"\u003epypa/packaging#1119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ecreate_compatible_tags_selector\u003c/code\u003e to select compatible tags 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/1110\"\u003epypa/packaging#1110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003ekey\u003c/code\u003e argument to \u003ccode\u003eSpecifierSet.filter()\u003c/code\u003e by \u003ca href=\"https://github.com/frostming\"\u003e\u003ccode\u003e@​frostming\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1068\"\u003epypa/packaging#1068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e\u0026amp;\u003c/code\u003e and \u003ccode\u003e|\u003c/code\u003e for \u003ccode\u003eMarker\u003c/code\u003e's 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/1146\"\u003epypa/packaging#1146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize \u003ccode\u003eVersion.__replace__\u003c/code\u003e and add \u003ccode\u003eVersion.from_parts\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/1078\"\u003epypa/packaging#1078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd an option to validate compressed tag set sort order in \u003ccode\u003eparse_wheel_filename\u003c/code\u003e by \u003ca href=\"https://github.com/r266-tech\"\u003e\u003ccode\u003e@​r266-tech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1150\"\u003epypa/packaging#1150\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNarrow exclusion of pre-releases for \u003ccode\u003e\u0026lt;V.postN\u003c/code\u003e to match spec 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/1140\"\u003epypa/packaging#1140\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.2 - 2026-04-24\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nFixes:\n\u003cul\u003e\n\u003cli\u003eFix incorrect sysconfig var name for pyemscripten in (:pull:\u003ccode\u003e1160\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eVersion\u003c/code\u003e, \u003ccode\u003eSpecifier\u003c/code\u003e, \u003ccode\u003eSpecifierSet\u003c/code\u003e, \u003ccode\u003eTag\u003c/code\u003e, \u003ccode\u003eMarker\u003c/code\u003e, and \u003ccode\u003eRequirement\u003c/code\u003e pickle-safe\u003cbr /\u003e\nand backward-compatible with pickles created in 25.0-26.1 (including references to the removed\u003cbr /\u003e\n\u003ccode\u003epackaging._structures\u003c/code\u003e module) (:pull:\u003ccode\u003e1163\u003c/code\u003e, :pull:\u003ccode\u003e1168\u003c/code\u003e, :pull:\u003ccode\u003e1170\u003c/code\u003e, :pull:\u003ccode\u003e1171\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eRe-export \u003ccode\u003eExceptionGroup\u003c/code\u003e in metadata for now in (:pull:\u003ccode\u003e1164\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd errors section and fix missing details in (:pull:\u003ccode\u003e1159\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDocument our property-based test suite in (:pull:\u003ccode\u003e1167\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix a \u003ccode\u003eDirectUrl\u003c/code\u003e typo in (:pull:\u003ccode\u003e1167\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd example of \u003ccode\u003eis_unsatisfiable\u003c/code\u003e in (:pull:\u003ccode\u003e1166\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnable the auditor persona on zizmor in (:pull:\u003ccode\u003e1158\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eTest new pickle guarantees in (:pull:\u003ccode\u003e1174\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse new native ReadTheDocs uv integration in (:pull:\u003ccode\u003e1175\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e26.1 - 2026-04-14\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePEP 783: add handling for Emscripten wheel tags in (:pull:\u003ccode\u003e804\u003c/code\u003e) (old name used in implementation, fixed in next release)\u003c/li\u003e\n\u003cli\u003ePEP 803: add handling for the \u003ccode\u003eabi3.abi3t\u003c/code\u003e free-threading tag in (:pull:\u003ccode\u003e1099\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePEP 723: add \u003ccode\u003epackaging.dependency_groups\u003c/code\u003e module, based on the \u003ccode\u003edependency-groups\u003c/code\u003e package in (:pull:\u003ccode\u003e1065\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.direct_url\u003c/code\u003e module in (:pull:\u003ccode\u003e944\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.errors\u003c/code\u003e module in (:pull:\u003ccode\u003e1071\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSpecifierSet.is_unsatisfiable\u003c/code\u003e using ranges (new internals that will be expanded in future versions) in (:pull:\u003ccode\u003e1119\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ecreate_compatible_tags_selector\u003c/code\u003e to select compatible tags in (:pull:\u003ccode\u003e1110\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003ekey\u003c/code\u003e argument to \u003ccode\u003eSpecifierSet.filter()\u003c/code\u003e in (:pull:\u003ccode\u003e1068\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e\u0026amp;\u003c/code\u003e and \u003ccode\u003e|\u003c/code\u003e for \u003ccode\u003eMarker\u003c/code\u003e's in (:pull:\u003ccode\u003e1146\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eNormalize \u003ccode\u003eVersion.__replace__\u003c/code\u003e and add \u003ccode\u003eVersion.from_parts\u003c/code\u003e in (:pull:\u003ccode\u003e1078\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd an option to validate compressed tag set sort order in \u003ccode\u003eparse_wheel_filename\u003c/code\u003e in (:pull:\u003ccode\u003e1150\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNarrow exclusion of pre-releases for \u003ccode\u003e\u0026lt;V.postN\u003c/code\u003e to match spec in (:pull:\u003ccode\u003e1140\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eNarrow exclusion of post-releases for \u003ccode\u003e\u0026gt;V\u003c/code\u003e to match spec in (:pull:\u003ccode\u003e1141\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003eformat_full_version\u003c/code\u003e to \u003ccode\u003e_format_full_version\u003c/code\u003e to make it visibly private in (:pull:\u003ccode\u003e1125\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eRestrict local version to ASCII in (:pull:\u003ccode\u003e1102\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePylock (PEP 751) updates:\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/84a87ee42483d7352f9502d78a9553da8859aa7a\"\u003e\u003ccode\u003e84a87ee\u003c/code\u003e\u003c/a\u003e Bump for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/4a616b65bed23c8c6d58e6b0fc1a4434d4ff1f14\"\u003e\u003ccode\u003e4a616b6\u003c/code\u003e\u003c/a\u003e docs: a few more updates to prepare for 26.2 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1176\"\u003e#1176\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/9de6f44f1e82d4595edf3aad1c4f6f98c85935a0\"\u003e\u003ccode\u003e9de6f44\u003c/code\u003e\u003c/a\u003e ci: use native uv integration in rtd (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1175\"\u003e#1175\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/bc76e14debd1a2799d1ca8f9d9c9823f35bfa466\"\u003e\u003ccode\u003ebc76e14\u003c/code\u003e\u003c/a\u003e chore: update changelog for 26.2 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1161\"\u003e#1161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/3f00091c08f0aa830e33ed7db00f16f11c8ac97f\"\u003e\u003ccode\u003e3f00091\u003c/code\u003e\u003c/a\u003e tests: add a pickle check (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1174\"\u003e#1174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/48a8a069805291186522de3eff73ea80a8ca96ad\"\u003e\u003ccode\u003e48a8a06\u003c/code\u003e\u003c/a\u003e fix: make Requirements/Markers pickle-safe (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1171\"\u003e#1171\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/823b44ed1f904084a77ae3adf0ef130af6365f84\"\u003e\u003ccode\u003e823b44e\u003c/code\u003e\u003c/a\u003e fix: make Tags pickle-safe (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1170\"\u003e#1170\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/4bed32d920ca7211dd65fdf0a1ee06376e9c4733\"\u003e\u003ccode\u003e4bed32d\u003c/code\u003e\u003c/a\u003e fix: make Specifier / SpecifierSet pickle-safe (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1168\"\u003e#1168\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/963118e37caae97bc8b72f72956c7fb4ca9857ec\"\u003e\u003ccode\u003e963118e\u003c/code\u003e\u003c/a\u003e fix: re-export ExceptionGroup for now (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1164\"\u003e#1164\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/66e34a80256c96dea11da143682950c84b8133bb\"\u003e\u003ccode\u003e66e34a8\u003c/code\u003e\u003c/a\u003e docs(specifiers): add is_unsatisfiable() usage example (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1166\"\u003e#1166\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/packaging/compare/26.0...26.2\"\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 `requests` from 2.32.5 to 2.33.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.1\u003c/h2\u003e\n\u003ch2\u003e2.33.1 (2026-03-30)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed test cleanup for CVE-2026-25645 to avoid leaving unnecessary\nfiles in the tmp directory. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed Content-Type header parsing for malformed values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved error consistency for malformed header values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ferdnyc\"\u003e\u003ccode\u003e@​ferdnyc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7277\"\u003epsf/requests#7277\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2331-2026-03-30\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2331-2026-03-30\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.1 (2026-03-30)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed test cleanup for CVE-2026-25645 to avoid leaving unnecessary\nfiles in the tmp directory. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed Content-Type header parsing for malformed values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved error consistency for malformed header values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/111d2b77790bf49943c0dfa09b365371c24aec7e\"\u003e\u003ccode\u003e111d2b7\u003c/code\u003e\u003c/a\u003e v2.33.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/f0198e6dfc431a2293dc16e1b1e8fcddc910a7f3\"\u003e\u003ccode\u003ef0198e6\u003c/code\u003e\u003c/a\u003e Fix malformed value parsing for Content-Type (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc7dd0fc4d56e808bcdd85ac2d797b3107c89259\"\u003e\u003ccode\u003ebc7dd0f\u003c/code\u003e\u003c/a\u003e Fix cosmetic header validity parsing regex (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/4443b1a847b190010c2972a658924b98b5db6360\"\u003e\u003ccode\u003e4443b1a\u003c/code\u003e\u003c/a\u003e Fix unintended test extra (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7306\"\u003e#7306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/389eea58dfb2f2ee096421a812e3af29c0298951\"\u003e\u003ccode\u003e389eea5\u003c/code\u003e\u003c/a\u003e Cleanup extracted file after extract_zipped_path test (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/7407309c8a8a73aa2f4337184025d440bbedab7a\"\u003e\u003ccode\u003e7407309\u003c/code\u003e\u003c/a\u003e Packaging: DRY out extras definition (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7277\"\u003e#7277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.5...v2.33.1\"\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 `attrs` from 25.4.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/python-attrs/attrs/releases\"\u003eattrs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.1.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cp\u003eThe main outward change here only affects people using field transformers, but it should be a nice quality of life improvement!\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eFull changelog below!\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eSpecial Thanks\u003c/h2\u003e\n\u003cp\u003eThis release would not be possible without my generous sponsors! Thank you to all of you making sustainable maintenance possible! If \u003cem\u003eyou\u003c/em\u003e would like to join them, go to \u003ca href=\"https://github.com/sponsors/hynek\"\u003ehttps://github.com/sponsors/hynek\u003c/a\u003e and check out the sweet perks!\u003c/p\u003e\n\u003ch3\u003eAbove and Beyond\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://www.variomedia.de/\"\u003eVariomedia AG\u003c/a\u003e (@\u003ca href=\"https://github.com/variomedia\"\u003evariomedia\u003c/a\u003e), \u003ca href=\"https://www.tidelift.com/\"\u003eTidelift\u003c/a\u003e (@\u003ca href=\"https://github.com/tidelift\"\u003etidelift\u003c/a\u003e), \u003ca href=\"https://kraken.tech\"\u003eKraken Tech\u003c/a\u003e (@\u003ca href=\"https://github.com/kraken-tech\"\u003ekraken-tech\u003c/a\u003e), \u003ca href=\"https://privacy-solutions.org\"\u003ePrivacy Solutions GmbH\u003c/a\u003e (@\u003ca href=\"https://github.com/privacy-solutions\"\u003eprivacy-solutions\u003c/a\u003e), \u003ca href=\"http://filepreviews.io/\"\u003eFilePreviews\u003c/a\u003e (@\u003ca href=\"https://github.com/filepreviews\"\u003efilepreviews\u003c/a\u003e), \u003ca href=\"https://ecosyste.ms\"\u003eEcosystems\u003c/a\u003e (@\u003ca href=\"https://github.com/ecosyste-ms\"\u003eecosyste-ms\u003c/a\u003e), \u003ca href=\"https://www.lambdatest.com\"\u003eTestMu AI Open Source Office (Formerly LambdaTest)\u003c/a\u003e (@\u003ca href=\"https://github.com/LambdaTest-Inc\"\u003eLambdaTest-Inc\u003c/a\u003e), \u003ca href=\"https://doist.com/\"\u003eDoist\u003c/a\u003e (@\u003ca href=\"https://github.com/Doist\"\u003eDoist\u003c/a\u003e), Daniel Fortunov (@\u003ca href=\"https://github.com/asqui\"\u003easqui\u003c/a\u003e), and Kevin P. Fleming (@\u003ca href=\"https://github.com/kpfleming\"\u003ekpfleming\u003c/a\u003e).\u003c/p\u003e\n\u003ch3\u003eMaintenance Sustainers\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://buttondown.com\"\u003eButtondown\u003c/a\u003e (@\u003ca href=\"https://github.com/buttondown\"\u003ebuttondown\u003c/a\u003e), \u003ca href=\"https://christopher.xyz\"\u003eChristopher Dignam\u003c/a\u003e (@\u003ca href=\"https://github.com/chdsbd\"\u003echdsbd\u003c/a\u003e), Magnus Watn (@\u003ca href=\"https://github.com/magnuswatn\"\u003emagnuswatn\u003c/a\u003e), \u003ca href=\"https://cra.mr\"\u003eDavid Cramer\u003c/a\u003e (@\u003ca href=\"https://github.com/dcramer\"\u003edcramer\u003c/a\u003e), \u003ca href=\"https://rivolaks.com\"\u003eRivo Laks\u003c/a\u003e (@\u003ca href=\"https://github.com/rivol\"\u003erivol\u003c/a\u003e), \u003ca href=\"https://polar.sh\"\u003ePolar\u003c/a\u003e (@\u003ca href=\"https://github.com/polarsource\"\u003epolarsource\u003c/a\u003e), \u003ca href=\"https://miketheman.dev\"\u003eMike Fiedler\u003c/a\u003e (@\u003ca href=\"https://github.com/miketheman\"\u003emiketheman\u003c/a\u003e), Duncan Hill (@\u003ca href=\"https://github.com/cricalix\"\u003ecricalix\u003c/a\u003e), Colin Marquardt (@\u003ca href=\"https://github.com/cmarqu\"\u003ecmarqu\u003c/a\u003e), \u003ca href=\"https://blog.journeythatcounts.nl\"\u003ePieter Swinkels\u003c/a\u003e (@\u003ca href=\"https://github.com/swinkels\"\u003eswinkels\u003c/a\u003e), Nick Libertini (@\u003ca href=\"https://github.com/libertininick\"\u003elibertininick\u003c/a\u003e), \u003ca href=\"https://bmdphd.info/\"\u003eBrian M. Dennis\u003c/a\u003e (@\u003ca href=\"https://github.com/crossjam\"\u003ecrossjam\u003c/a\u003e), Celebrity News AG (@\u003ca href=\"https://github.com/celebritynewsag\"\u003ecelebritynewsag\u003c/a\u003e), \u003ca href=\"https://westervelt.com\"\u003eThe Westervelt Company\u003c/a\u003e (@\u003ca href=\"https://github.com/westerveltco\"\u003ewesterveltco\u003c/a\u003e), \u003ca href=\"https://slafs.net\"\u003eSławomir Ehlert\u003c/a\u003e (@\u003ca href=\"https://github.com/slafs\"\u003eslafs\u003c/a\u003e), Mostafa Khalil (@\u003ca href=\"https://github.com/khadrawy\"\u003ekhadrawy\u003c/a\u003e), \u003ca href=\"https://fmularczyk.pl\"\u003eFilip Mularczyk\u003c/a\u003e (@\u003ca href=\"https://github.com/mukiblejlok\"\u003emukiblejlok\u003c/a\u003e), Thomas Klinger (@\u003ca href=\"https://github.com/thmsklngr\"\u003ethmsklngr\u003c/a\u003e), \u003ca href=\"https://poehlmann.io\"\u003eAndreas Poehlmann\u003c/a\u003e (@\u003ca href=\"https://github.com/ap--\"\u003eap--\u003c/a\u003e), \u003ca href=\"https://atbigelow.com\"\u003eAugust Trapper Bigelow\u003c/a\u003e (@\u003ca href=\"https://github.com/atbigelow\"\u003eatbigelow\u003c/a\u003e), \u003ca href=\"https://noumenal.es/\"\u003eCarlton Gibson\u003c/a\u003e (@\u003ca href=\"https://github.com/carltongibson\"\u003ecarltongibson\u003c/a\u003e), and \u003ca href=\"https://roboflow.com\"\u003eRoboflow\u003c/a\u003e (@\u003ca href=\"https://github.com/roboflow\"\u003eroboflow\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003eFull Changelog\u003c/h2\u003e\n\u003ch3\u003eBackwards-incompatible Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eField aliases are now resolved \u003cem\u003ebefore\u003c/em\u003e calling \u003ccode\u003efield_transformer\u003c/code\u003e, so transformers receive fully populated \u003ccode\u003eAttribute\u003c/code\u003e objects with usable \u003ccode\u003ealias\u003c/code\u003e values instead of \u003ccode\u003eNone\u003c/code\u003e. The new \u003ccode\u003eAttribute.alias_is_default\u003c/code\u003e flag indicates whether the alias was auto-generated (\u003ccode\u003eTrue\u003c/code\u003e) or explicitly set by the user (\u003ccode\u003eFalse\u003c/code\u003e). \u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1509\"\u003e#1509\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix type annotations for \u003ccode\u003eattrs.validators.optional()\u003c/code\u003e, so it no longer rejects tuples with more than one validator. \u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1496\"\u003e#1496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003eattrs.validators.disabled()\u003c/code\u003e contextmanager can now be nested. \u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1513\"\u003e#1513\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFrozen classes can set \u003ccode\u003eon_setattr=attrs.setters.NO_OP\u003c/code\u003e in addition to \u003ccode\u003eNone\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1515\"\u003e#1515\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIt's now possible to pass \u003cem\u003eattrs\u003c/em\u003e \u003cstrong\u003einstances\u003c/strong\u003e in addition to \u003cem\u003eattrs\u003c/em\u003e \u003cstrong\u003eclasses\u003c/strong\u003e to \u003ccode\u003eattrs.fields()\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1529\"\u003e#1529\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eThis release contains contributions from \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/DavidCEllis\"\u003e\u003ccode\u003e@​DavidCEllis\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/finite-state-machine\"\u003e\u003ccode\u003e@​finite-state-machine\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/hynek\"\u003e\u003ccode\u003e@​hynek\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/vstinner\"\u003e\u003ccode\u003e@​vstinner\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eArtifact Attestations\u003c/h2\u003e\n\u003cp\u003eYou can verify this release's \u003ca href=\"https://docs.github.com/en/actions/security-guides/using-artifact-attestations-to-establish-provenance-for-builds\"\u003eartifact attestions\u003c/a\u003e using \u003ca href=\"https://cli.github.com\"\u003eGitHub's CLI tool\u003c/a\u003e by downloading the sdist and wheel from \u003ca href=\"https://pypi.org/project/attrs\"\u003ePyPI\u003c/a\u003e and running:\u003c/p\u003e\n\u003cpre lang=\"console\"\u003e\u003ccode\u003e$ gh attestation verify --owner python-attrs attrs-26.1.0.tar.gz\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-attrs/attrs/blob/main/CHANGELOG.md\"\u003eattrs's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/python-attrs/attrs/tree/26.1.0\"\u003e26.1.0\u003c/a\u003e - 2026-03-19\u003c/h2\u003e\n\u003ch3\u003eBackwards-incompatible Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eField aliases are now resolved \u003cem\u003ebefore\u003c/em\u003e calling \u003ccode\u003efield_transformer\u003c/code\u003e, so transformers receive fully populated \u003ccode\u003eAttribute\u003c/code\u003e objects with usable \u003ccode\u003ealias\u003c/code\u003e values instead of \u003ccode\u003eNone\u003c/code\u003e.\nThe new \u003ccode\u003eAttribute.alias_is_default\u003c/code\u003e flag indicates whether the alias was auto-generated (\u003ccode\u003eTrue\u003c/code\u003e) or explicitly set by the user (\u003ccode\u003eFalse\u003c/code\u003e).\n\u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1509\"\u003e#1509\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix type annotations for \u003ccode\u003eattrs.validators.optional()\u003c/code\u003e, so it no longer rejects tuples with more than one validator.\n\u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1496\"\u003e#1496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003eattrs.validators.disabled()\u003c/code\u003e contextmanager can now be nested.\n\u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1513\"\u003e#1513\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFrozen classes can set \u003ccode\u003eon_setattr=attrs.setters.NO_OP\u003c/code\u003e in addition to \u003ccode\u003eNone\u003c/code\u003e.\n\u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1515\"\u003e#1515\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIt's now possible to pass \u003cem\u003eattrs\u003c/em\u003e \u003cstrong\u003einstances\u003c/strong\u003e in addition to \u003cem\u003eattrs\u003c/em\u003e \u003cstrong\u003eclasses\u003c/strong\u003e to \u003ccode\u003eattrs.fields()\u003c/code\u003e.\n\u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1529\"\u003e#1529\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-attrs/attrs/commit/7bfc49e9b22d5ba25b6e429524c3d49fee27cb36\"\u003e\u003ccode\u003e7bfc49e\u003c/code\u003e\u003c/a\u003e Prepare 26.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-attrs/attrs/commit/31e02869da10824b492c378c1dc87ccc720ee5ad\"\u003e\u003ccode\u003e31e0286\u003c/code\u003e\u003c/a\u003e Update test_validators.py for Python 3.15a7 (\u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1530\"\u003e#1530\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-attrs/attrs/commit/48b8611c27779811d161200e17de8da24aae7feb\"\u003e\u003ccode\u003e48b8611\u003c/code\u003e\u003c/a\u003e Add instance support to attrs.fields() (\u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1529\"\u003e#1529\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-attrs/attrs/commit/3a68d4913221abc6f8ad3be50937f7ae49300a98\"\u003e\u003ccode\u003e3a68d49\u003c/code\u003e\u003c/a\u003e dev: document missing git tags failure mode\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-attrs/attrs/commit/a572c3a4c558a8b9b48cf989fcd956ab1a279439\"\u003e\u003ccode\u003ea572c3a\u003c/cod...\n\n_Description has been truncated_","html_url":"https://github.com/python-trio/trustme/pull/711","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/python-trio%2Ftrustme/issues/711","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/711/packages"}},{"old_version":"2025.11.12","new_version":"2026.4.10","update_type":"major","path":null,"pr_created_at":"2026-04-28T09:38:29.000Z","version_change":"2025.11.12 → 2026.4.10","issue":{"uuid":"4342086837","node_id":"PR_kwDOCUVVSc7WRuOx","number":5469,"state":"open","title":"Build(deps): bump the python-dependencies group across 1 directory with 13 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-04-28T09:38:29.000Z","updated_at":"2026-04-29T08:53:16.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Build(deps): bump","group_name":"python-dependencies","update_count":13,"packages":[{"name":"pybammsolvers","old_version":"0.6.0","new_version":"0.7.0"},{"name":"black","old_version":"26.1.0","new_version":"26.3.1","repository_url":"https://github.com/psf/black"},{"name":"posthog","old_version":"7.8.3","new_version":"7.13.0","repository_url":"https://github.com/posthog/posthog-python"},{"name":"platformdirs","old_version":"4.5.1","new_version":"4.9.6","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pybtex","old_version":"0.25.1","new_version":"0.26.1"},{"name":"bpx","old_version":"0.5.0","new_version":"1.1.0","repository_url":"https://github.com/FaradayInstitution/BPX"},{"name":"pydata-sphinx-theme","old_version":"0.16.1","new_version":"0.17.1","repository_url":"https://github.com/pydata/pydata-sphinx-theme"},{"name":"ipykernel","old_version":"7.1.0","new_version":"7.2.0","repository_url":"https://github.com/ipython/ipykernel"},{"name":"ruff","old_version":"0.15.0","new_version":"0.15.11","repository_url":"https://github.com/astral-sh/ruff"},{"name":"nox","old_version":"2025.11.12","new_version":"2026.4.10","repository_url":"https://github.com/wntrblm/nox"},{"name":"pytest-cov","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pytest","old_version":"9.0.2","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"hypothesis","old_version":"6.151.5","new_version":"6.152.1","repository_url":"https://github.com/HypothesisWorks/hypothesis"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-dependencies group with 13 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| pybammsolvers | `0.6.0` | `0.7.0` |\n| [black](https://github.com/psf/black) | `26.1.0` | `26.3.1` |\n| [posthog](https://github.com/posthog/posthog-python) | `7.8.3` | `7.13.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.5.1` | `4.9.6` |\n| [pybtex](https://pybtex.org/) | `0.25.1` | `0.26.1` |\n| [bpx](https://github.com/FaradayInstitution/BPX) | `0.5.0` | `1.1.0` |\n| [pydata-sphinx-theme](https://github.com/pydata/pydata-sphinx-theme) | `0.16.1` | `0.17.1` |\n| [ipykernel](https://github.com/ipython/ipykernel) | `7.1.0` | `7.2.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.0` | `0.15.11` |\n| [nox](https://github.com/wntrblm/nox) | `2025.11.12` | `2026.4.10` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `7.0.0` | `7.1.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.2` | `9.0.3` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.151.5` | `6.152.1` |\n\n\nUpdates `pybammsolvers` from 0.6.0 to 0.7.0\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\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/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 `posthog` from 7.8.3 to 7.13.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/posthog/posthog-python/releases\"\u003eposthog's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.13.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: use \u003ca href=\"mailto:engineering@posthog.com\"\u003eengineering@posthog.com\u003c/a\u003e in package metadata by \u003ca href=\"https://github.com/marandaneto\"\u003e\u003ccode\u003e@​marandaneto\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/514\"\u003ePostHog/posthog-python#514\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(examples): add Dedalus Labs and Cloudflare AI Gateway examples by \u003ca href=\"https://github.com/richardsolomou\"\u003e\u003ccode\u003e@​richardsolomou\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/508\"\u003ePostHog/posthog-python#508\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(flags): implement get_feature_flag endpoint in SDK compliance adapter by \u003ca href=\"https://github.com/andehen\"\u003e\u003ccode\u003e@​andehen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/500\"\u003ePostHog/posthog-python#500\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: fix python release docs package registry by \u003ca href=\"https://github.com/marandaneto\"\u003e\u003ccode\u003e@​marandaneto\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/516\"\u003ePostHog/posthog-python#516\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: use client-id for create-github-app-token by \u003ca href=\"https://github.com/marandaneto\"\u003e\u003ccode\u003e@​marandaneto\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/517\"\u003ePostHog/posthog-python#517\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update GitHub Actions for Node 24 by \u003ca href=\"https://github.com/marandaneto\"\u003e\u003ccode\u003e@​marandaneto\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/518\"\u003ePostHog/posthog-python#518\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: remove use of six and mock by \u003ca href=\"https://github.com/s-t-e-v-e-n-k\"\u003e\u003ccode\u003e@​s-t-e-v-e-n-k\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/442\"\u003ePostHog/posthog-python#442\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: reduce Dependabot PR noise by \u003ca href=\"https://github.com/marandaneto\"\u003e\u003ccode\u003e@​marandaneto\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/519\"\u003ePostHog/posthog-python#519\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(prompts): add capture_errors option for error tracking by \u003ca href=\"https://github.com/andrewm4894\"\u003e\u003ccode\u003e@​andrewm4894\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/520\"\u003ePostHog/posthog-python#520\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: add dedicated contributing guides by \u003ca href=\"https://github.com/marandaneto\"\u003e\u003ccode\u003e@​marandaneto\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/521\"\u003ePostHog/posthog-python#521\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: align contributing guide with CI checks by \u003ca href=\"https://github.com/marandaneto\"\u003e\u003ccode\u003e@​marandaneto\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/522\"\u003ePostHog/posthog-python#522\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: remove v prefix from release tags by \u003ca href=\"https://github.com/marandaneto\"\u003e\u003ccode\u003e@​marandaneto\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/524\"\u003ePostHog/posthog-python#524\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: trim whitespace from API keys and host config by \u003ca href=\"https://github.com/marandaneto\"\u003e\u003ccode\u003e@​marandaneto\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/525\"\u003ePostHog/posthog-python#525\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/s-t-e-v-e-n-k\"\u003e\u003ccode\u003e@​s-t-e-v-e-n-k\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/442\"\u003ePostHog/posthog-python#442\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/PostHog/posthog-python/compare/v7.12.0...7.13.0\"\u003ehttps://github.com/PostHog/posthog-python/compare/v7.12.0...7.13.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.12.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: merge master into main by \u003ca href=\"https://github.com/marandaneto\"\u003e\u003ccode\u003e@​marandaneto\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/513\"\u003ePostHog/posthog-python#513\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/PostHog/posthog-python/compare/v7.11.2...v7.12.0\"\u003ehttps://github.com/PostHog/posthog-python/compare/v7.11.2...v7.12.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.11.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: add GitHub community health files by \u003ca href=\"https://github.com/marandaneto\"\u003e\u003ccode\u003e@​marandaneto\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/505\"\u003ePostHog/posthog-python#505\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump pyasn1 from 0.6.1 to 0.6.3 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/PostHog/posthog-python/pull/465\"\u003ePostHog/posthog-python#465\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump litellm from 1.82.6 to 1.83.0 in /examples/example-ai-dspy 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/PostHog/posthog-python/pull/487\"\u003ePostHog/posthog-python#487\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump requests from 2.32.5 to 2.33.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/473\"\u003ePostHog/posthog-python#473\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update branch references to main by \u003ca href=\"https://github.com/marandaneto\"\u003e\u003ccode\u003e@​marandaneto\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/506\"\u003ePostHog/posthog-python#506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update endpoint for flags local eval by \u003ca href=\"https://github.com/patricio-posthog\"\u003e\u003ccode\u003e@​patricio-posthog\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/509\"\u003ePostHog/posthog-python#509\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/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/465\"\u003ePostHog/posthog-python#465\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/PostHog/posthog-python/compare/v7.11.1...v7.11.2\"\u003ehttps://github.com/PostHog/posthog-python/compare/v7.11.1...v7.11.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.11.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: add stale workflow for issues and PRs by \u003ca href=\"https://github.com/marandaneto\"\u003e\u003ccode\u003e@​marandaneto\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/502\"\u003ePostHog/posthog-python#502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(compliance): declare capabilities in health endpoint by \u003ca href=\"https://github.com/andehen\"\u003e\u003ccode\u003e@​andehen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/501\"\u003ePostHog/posthog-python#501\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Add os_distro information to events by \u003ca href=\"https://github.com/parinporecha\"\u003e\u003ccode\u003e@​parinporecha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/467\"\u003ePostHog/posthog-python#467\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/PostHog/posthog-python/compare/v7.11.0...v7.11.1\"\u003ehttps://github.com/PostHog/posthog-python/compare/v7.11.0...v7.11.1\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/PostHog/posthog-python/blob/main/CHANGELOG.md\"\u003eposthog's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.13.0 — 2026-04-21\u003c/h2\u003e\n\u003ch3\u003eMinor changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/posthog/posthog-python/commit/12c38e7a788c29a244b715c4f9965b1ac0bb4b3f\"\u003e12c38e7\u003c/a\u003e Add \u003ccode\u003ecapture_errors\u003c/code\u003e option to \u003ccode\u003ePrompts\u003c/code\u003e that reports prompt fetch failures to PostHog error tracking via \u003ccode\u003ecapture_exception()\u003c/code\u003e when enabled. — Thanks \u003ca href=\"https://github.com/andrewm4894\"\u003e\u003ccode\u003e@​andrewm4894\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePatch changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/posthog/posthog-python/commit/1b098e7dc1b25b41ee35a2eef7469e71fe42b1fc\"\u003e1b098e7\u003c/a\u003e Trim surrounding whitespace from API keys and host config before using them. — Thanks \u003ca href=\"https://github.com/marandaneto\"\u003e\u003ccode\u003e@​marandaneto\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e7.12.0 — 2026-04-16\u003c/h2\u003e\n\u003ch3\u003eMinor changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/posthog/posthog-python/commit/220d9e88877dee7eabd34fed68c2a4a65e6526a7\"\u003e220d9e8\u003c/a\u003e \u003ccode\u003ePrompts.get()\u003c/code\u003e now accepts \u003ccode\u003ewith_metadata=True\u003c/code\u003e and returns a \u003ccode\u003ePromptResult\u003c/code\u003e dataclass containing \u003ccode\u003esource\u003c/code\u003e (\u003ccode\u003eapi\u003c/code\u003e, \u003ccode\u003ecache\u003c/code\u003e, \u003ccode\u003estale_cache\u003c/code\u003e, or \u003ccode\u003ecode_fallback\u003c/code\u003e), \u003ccode\u003ename\u003c/code\u003e, and \u003ccode\u003eversion\u003c/code\u003e alongside the prompt text. The previous plain-string return is deprecated and will be removed in a future major version. — Thanks \u003ca href=\"https://github.com/marandaneto\"\u003e\u003ccode\u003e@​marandaneto\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e7.11.2 — 2026-04-15\u003c/h2\u003e\n\u003ch3\u003ePatch changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/posthog/posthog-python/commit/f5a95b454ae7fd8bf46381b1c624df827903260d\"\u003ef5a95b4\u003c/a\u003e feat(flags): switch local evaluation polling from \u003ccode\u003e/api/feature_flag/local_evaluation\u003c/code\u003e to \u003ccode\u003e/flags/definitions\u003c/code\u003e — Thanks \u003ca href=\"https://github.com/patricio-posthog\"\u003e\u003ccode\u003e@​patricio-posthog\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e7.11.1 — 2026-04-14\u003c/h2\u003e\n\u003ch3\u003ePatch changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/posthog/posthog-python/commit/c3f097f72f5ef6c1ecd25ade7d3ba08e57765eaf\"\u003ec3f097f\u003c/a\u003e feat: Add os_distro information to events — Thanks \u003ca href=\"https://github.com/parinporecha\"\u003e\u003ccode\u003e@​parinporecha\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e7.11.0 — 2026-04-10\u003c/h2\u003e\n\u003ch3\u003eMinor changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/posthog/posthog-python/commit/b921fe33a9115fbf5f5171b80e1deabffd3e66ca\"\u003eb921fe3\u003c/a\u003e Add Gemini \u003ccode\u003eembed_content\u003c/code\u003e tracking support for both sync and async clients — Thanks \u003ca href=\"https://github.com/carlos-marchal-ph\"\u003e\u003ccode\u003e@​carlos-marchal-ph\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/posthog/posthog-python/commit/44b92a844a2d8170e5b2247e509279f4654c4ef6\"\u003e44b92a8\u003c/a\u003e feat(ai): add $ai_stop_reason extraction for all providers — Thanks \u003ca href=\"https://github.com/carlos-marchal-ph\"\u003e\u003ccode\u003e@​carlos-marchal-ph\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePatch changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/posthog/posthog-python/commit/7c5cad8fcf818c9b8b4f074876718b937f2f8072\"\u003e7c5cad8\u003c/a\u003e fix: graceful fallback in claude_agent_sdk query wrapper when PostHog is not configured — Thanks \u003ca href=\"https://github.com/andrewm4894\"\u003e\u003ccode\u003e@​andrewm4894\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e7.10.3 — 2026-04-08\u003c/h2\u003e\n\u003ch3\u003ePatch changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/posthog/posthog-python/commit/e22e893b236bf6af1cb8f6c18712727d24fe5c7e\"\u003ee22e893\u003c/a\u003e fix: pass the module-level \u003ccode\u003eposthog.before_send\u003c/code\u003e callback into the lazily initialized default client — Thanks \u003ca href=\"https://github.com/marandaneto\"\u003e\u003ccode\u003e@​marandaneto\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e7.10.2 — 2026-04-08\u003c/h2\u003e\n\u003ch3\u003ePatch changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/posthog/posthog-python/commit/bae355cd787f4c1a119fd2b396ba444b1a218b6a\"\u003ebae355c\u003c/a\u003e feat(flags): make local evaluation endpoint configurable via \u003ccode\u003ePOSTHOG_LOCAL_EVALUATION_ENDPOINT\u003c/code\u003e env var with fallback to default endpoint — Thanks \u003ca href=\"https://github.com/patricio-posthog\"\u003e\u003ccode\u003e@​patricio-posthog\u003c/code\u003e\u003c/a\u003e for your first contribution 🎉!\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-python/commit/48012cb759d5a4dae1f9b6c1dd9b0ae651b5898f\"\u003e\u003ccode\u003e48012cb\u003c/code\u003e\u003c/a\u003e chore: Release v7.13.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-python/commit/1b098e7dc1b25b41ee35a2eef7469e71fe42b1fc\"\u003e\u003ccode\u003e1b098e7\u003c/code\u003e\u003c/a\u003e fix: trim whitespace from API keys and host config (\u003ca href=\"https://redirect.github.com/posthog/posthog-python/issues/525\"\u003e#525\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-python/commit/8d82855419d6ffb7a12d5f110acf6ef909ff8758\"\u003e\u003ccode\u003e8d82855\u003c/code\u003e\u003c/a\u003e chore: remove v prefix from release tags (\u003ca href=\"https://redirect.github.com/posthog/posthog-python/issues/524\"\u003e#524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-python/commit/15c15275eb9d2468fbe5703c511701568c10791a\"\u003e\u003ccode\u003e15c1527\u003c/code\u003e\u003c/a\u003e docs: align contributing guide with CI checks (\u003ca href=\"https://redirect.github.com/posthog/posthog-python/issues/522\"\u003e#522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-python/commit/fe123094860a5a236d10c7f44fbd8f0d0679712d\"\u003e\u003ccode\u003efe12309\u003c/code\u003e\u003c/a\u003e docs: add dedicated contributing guides (\u003ca href=\"https://redirect.github.com/posthog/posthog-python/issues/521\"\u003e#521\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-python/commit/12c38e7a788c29a244b715c4f9965b1ac0bb4b3f\"\u003e\u003ccode\u003e12c38e7\u003c/code\u003e\u003c/a\u003e feat(prompts): add capture_errors option for error tracking (\u003ca href=\"https://redirect.github.com/posthog/posthog-python/issues/520\"\u003e#520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-python/commit/b17856519c409345ba567261388a213951289834\"\u003e\u003ccode\u003eb178565\u003c/code\u003e\u003c/a\u003e chore: reduce Dependabot PR noise (\u003ca href=\"https://redirect.github.com/posthog/posthog-python/issues/519\"\u003e#519\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-python/commit/c2962557cb262785813a7e9232530ad78147ac0d\"\u003e\u003ccode\u003ec296255\u003c/code\u003e\u003c/a\u003e chore: remove use of six and mock (\u003ca href=\"https://redirect.github.com/posthog/posthog-python/issues/442\"\u003e#442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-python/commit/43386cc5b1db07f20f10c6b9f121569b1e115a0f\"\u003e\u003ccode\u003e43386cc\u003c/code\u003e\u003c/a\u003e chore: update GitHub Actions for Node 24 (\u003ca href=\"https://redirect.github.com/posthog/posthog-python/issues/518\"\u003e#518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-python/commit/5346370bfe3d90d890402dfbf7905a4cb5e295fc\"\u003e\u003ccode\u003e5346370\u003c/code\u003e\u003c/a\u003e chore: use client-id for create-github-app-token (\u003ca href=\"https://redirect.github.com/posthog/posthog-python/issues/517\"\u003e#517\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/posthog/posthog-python/compare/v7.8.3...7.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `platformdirs` from 4.5.1 to 4.9.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/platformdirs/releases\"\u003eplatformdirs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.9.6\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 fix(release): use double quotes for tag variable expansion by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/477\"\u003etox-dev/platformdirs#477\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.9.5...4.9.6\"\u003ehttps://github.com/tox-dev/platformdirs/compare/4.9.5...4.9.6\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.9.4\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/tox-dev/platformdirs/pull/455\"\u003etox-dev/platformdirs#455\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove SECURITY.md to .github/SECURITY.md by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/456\"\u003etox-dev/platformdirs#456\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/tox-dev/platformdirs/pull/458\"\u003etox-dev/platformdirs#458\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e📝 docs: add project logo to documentation by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/459\"\u003etox-dev/platformdirs#459\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.9.3...4.9.4\"\u003ehttps://github.com/tox-dev/platformdirs/compare/4.9.3...4.9.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.9.3\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix test failures on BSD for runtime directory defaults by \u003ca href=\"https://github.com/Fridayai700\"\u003e\u003ccode\u003e@​Fridayai700\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/451\"\u003etox-dev/platformdirs#451\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRespect XDG_CONFIG_HOME in _get_user_dirs_folder by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/453\"\u003etox-dev/platformdirs#453\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd missing _optionally_create_directory in Android user_log_dir and user_runtime_dir by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/452\"\u003etox-dev/platformdirs#452\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/Fridayai700\"\u003e\u003ccode\u003e@​Fridayai700\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/451\"\u003etox-dev/platformdirs#451\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/453\"\u003etox-dev/platformdirs#453\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.9.2...4.9.3\"\u003ehttps://github.com/tox-dev/platformdirs/compare/4.9.2...4.9.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.9.2\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e📝 docs(platforms): fix RST formatting and TOC hierarchy by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/447\"\u003etox-dev/platformdirs#447\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e📝 docs: restructure following Diataxis framework by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/448\"\u003etox-dev/platformdirs#448\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.9.1...4.9.2\"\u003ehttps://github.com/tox-dev/platformdirs/compare/4.9.1...4.9.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.9.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e📝 docs: enhance README, fix issues, and reorganize platforms.rst by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/445\"\u003etox-dev/platformdirs#445\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/platformdirs/blob/main/docs/changelog.rst\"\u003eplatformdirs's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e###########\nChangelog\n###########\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e4.9.6 (2026-04-09)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 fix(release): use double quotes for tag variable expansion :pr:\u003ccode\u003e477\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e4.9.5 (2026-04-06)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e📝 docs(appauthor): clarify None vs False on Windows :pr:\u003ccode\u003e476\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eSeparates implementations of macOS dirs that share a default :pr:\u003ccode\u003e473\u003c/code\u003e - by :user:\u003ccode\u003eGoddesen\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove persist-credentials: false from release job :pr:\u003ccode\u003e472\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003efix: do not duplicate site dirs in Unix.iter_{config,site}_dirs() when use_site_for_root is active :pr:\u003ccode\u003e469\u003c/code\u003e - by\n:user:\u003ccode\u003eviccie30\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e🔧 fix(type): resolve ty 0.0.25 type errors :pr:\u003ccode\u003e468\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e🔒 ci(workflows): add zizmor security auditing :pr:\u003ccode\u003e467\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(release): generate docstrfmt-compatible changelog entries :pr:\u003ccode\u003e463\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e4.9.4 (2026-03-05)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate :pr:\u003ccode\u003e461\u003c/code\u003e - by :user:\u003ccode\u003epre-commit-ci[bot]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUpdate README.md\u003c/li\u003e\n\u003cli\u003e📝 docs: add project logo to documentation :pr:\u003ccode\u003e459\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eStandardize .github files to .yaml suffix\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump the all group with 2 updates :pr:\u003ccode\u003e457\u003c/code\u003e - by :user:\u003ccode\u003edependabot[bot]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eMove SECURITY.md to .github/SECURITY.md\u003c/li\u003e\n\u003cli\u003eAdd permissions to workflows :pr:\u003ccode\u003e455\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd security policy\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate :pr:\u003ccode\u003e454\u003c/code\u003e - by :user:\u003ccode\u003epre-commit-ci[bot]\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e4.9.2 (2026-02-16)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e📝 docs: restructure following Diataxis framework :pr:\u003ccode\u003e448\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e📝 docs(platforms): fix RST formatting and TOC hierarchy :pr:\u003ccode\u003e447\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e4.9.1 (2026-02-14)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e📝 docs: enhance README, fix issues, and reorganize platforms.rst :pr:\u003ccode\u003e445\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/56efd776d68a94898b319c108933d0cfbff813af\"\u003e\u003ccode\u003e56efd77\u003c/code\u003e\u003c/a\u003e Release 4.9.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/d5d812a02102c633a39f3dfdddbc6bb1670b13ae\"\u003e\u003ccode\u003ed5d812a\u003c/code\u003e\u003c/a\u003e 🐛 fix(release): use double quotes for tag variable expansion (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/477\"\u003e#477\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/c2b0cee3a8261b3a75b283b9ef148d2425d48d35\"\u003e\u003ccode\u003ec2b0cee\u003c/code\u003e\u003c/a\u003e build(deps): bump pypa/gh-action-pypi-publish from 1.13.0 to 1.14.0 in the al...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/7688069a09e03bb4e97fe0f9cf3aebedc8a6f7f9\"\u003e\u003ccode\u003e7688069\u003c/code\u003e\u003c/a\u003e Release 4.9.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/104d28b48c59b327a7832b23509187eef2764af8\"\u003e\u003ccode\u003e104d28b\u003c/code\u003e\u003c/a\u003e 📝 docs(appauthor): clarify None vs False on Windows (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/476\"\u003e#476\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/0955048684241725bb2eae8a2ba5bc7f7f46c9a0\"\u003e\u003ccode\u003e0955048\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/475\"\u003e#475\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/bd3c76602f88284eb832c7f5297c354ea7ac5906\"\u003e\u003ccode\u003ebd3c766\u003c/code\u003e\u003c/a\u003e build(deps): bump astral-sh/setup-uv from 7.6.0 to 8.0.0 in the all group (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/474\"\u003e#474\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/749ac3f33ffc5af04fb8bb046bbbcc4d5aa562c9\"\u003e\u003ccode\u003e749ac3f\u003c/code\u003e\u003c/a\u003e Separates implementations of macOS dirs that share a default (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/473\"\u003e#473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/cb8815684f15c58ad1b87c8b1d34f9bf2d79780e\"\u003e\u003ccode\u003ecb88156\u003c/code\u003e\u003c/a\u003e Remove persist-credentials: false from release job (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/472\"\u003e#472\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/a501eabd7dd0e56116c38fa9dba15f3c0b60010a\"\u003e\u003ccode\u003ea501eab\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/470\"\u003e#470\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.5.1...4.9.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pybtex` from 0.25.1 to 0.26.1\n\nUpdates `bpx` from 0.5.0 to 1.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/FaradayInstitution/BPX/releases\"\u003ebpx's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.1.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd dependabot for automatic workflow updates by \u003ca href=\"https://github.com/kratman\"\u003e\u003ccode\u003e@​kratman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/FaradayInstitution/BPX/pull/84\"\u003eFaradayInstitution/BPX#84\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: fix coverage + minor touch ups by \u003ca href=\"https://github.com/Saransh-cpp\"\u003e\u003ccode\u003e@​Saransh-cpp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/FaradayInstitution/BPX/pull/86\"\u003eFaradayInstitution/BPX#86\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the actions group with 4 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/FaradayInstitution/BPX/pull/85\"\u003eFaradayInstitution/BPX#85\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdds codecov token reference by \u003ca href=\"https://github.com/pipliggins\"\u003e\u003ccode\u003e@​pipliggins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/FaradayInstitution/BPX/pull/95\"\u003eFaradayInstitution/BPX#95\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFinalises migration to Pydantic V2 by \u003ca href=\"https://github.com/pipliggins\"\u003e\u003ccode\u003e@​pipliggins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/FaradayInstitution/BPX/pull/96\"\u003eFaradayInstitution/BPX#96\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStops incorrect error cascade by \u003ca href=\"https://github.com/pipliggins\"\u003e\u003ccode\u003e@​pipliggins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/FaradayInstitution/BPX/pull/97\"\u003eFaradayInstitution/BPX#97\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse string version for BPX by \u003ca href=\"https://github.com/pipliggins\"\u003e\u003ccode\u003e@​pipliggins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/FaradayInstitution/BPX/pull/100\"\u003eFaradayInstitution/BPX#100\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow arbitrary JSON hierarchy under User-defined by \u003ca href=\"https://github.com/pipliggins\"\u003e\u003ccode\u003e@​pipliggins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/FaradayInstitution/BPX/pull/94\"\u003eFaradayInstitution/BPX#94\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow integers by \u003ca href=\"https://github.com/pipliggins\"\u003e\u003ccode\u003e@​pipliggins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/FaradayInstitution/BPX/pull/99\"\u003eFaradayInstitution/BPX#99\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the actions group across 1 directory 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/FaradayInstitution/BPX/pull/92\"\u003eFaradayInstitution/BPX#92\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9 by \u003ca href=\"https://github.com/rtimms\"\u003e\u003ccode\u003e@​rtimms\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/FaradayInstitution/BPX/pull/108\"\u003eFaradayInstitution/BPX#108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eremove thermal conductivity from schema by \u003ca href=\"https://github.com/rtimms\"\u003e\u003ccode\u003e@​rtimms\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/FaradayInstitution/BPX/pull/109\"\u003eFaradayInstitution/BPX#109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd hysteresis to schema by \u003ca href=\"https://github.com/rtimms\"\u003e\u003ccode\u003e@​rtimms\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/FaradayInstitution/BPX/pull/102\"\u003eFaradayInstitution/BPX#102\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the actions group across 1 directory with 5 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/FaradayInstitution/BPX/pull/110\"\u003eFaradayInstitution/BPX#110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdds a 'State' section with lists of materials by \u003ca href=\"https://github.com/pipliggins\"\u003e\u003ccode\u003e@​pipliggins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/FaradayInstitution/BPX/pull/113\"\u003eFaradayInstitution/BPX#113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a 'partial' model type by \u003ca href=\"https://github.com/pipliggins\"\u003e\u003ccode\u003e@​pipliggins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/FaradayInstitution/BPX/pull/115\"\u003eFaradayInstitution/BPX#115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the actions 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/FaradayInstitution/BPX/pull/116\"\u003eFaradayInstitution/BPX#116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the actions group across 1 directory 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/FaradayInstitution/BPX/pull/120\"\u003eFaradayInstitution/BPX#120\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix thermal environment, bump version number by \u003ca href=\"https://github.com/rtimms\"\u003e\u003ccode\u003e@​rtimms\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/FaradayInstitution/BPX/pull/121\"\u003eFaradayInstitution/BPX#121\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/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/FaradayInstitution/BPX/pull/85\"\u003eFaradayInstitution/BPX#85\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pipliggins\"\u003e\u003ccode\u003e@​pipliggins\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/FaradayInstitution/BPX/pull/95\"\u003eFaradayInstitution/BPX#95\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/FaradayInstitution/BPX/compare/v0.5.1...v1.1.0\"\u003ehttps://github.com/FaradayInstitution/BPX/compare/v0.5.1...v1.1.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.5.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix publish workflow by \u003ca href=\"https://github.com/kratman\"\u003e\u003ccode\u003e@​kratman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/FaradayInstitution/BPX/pull/83\"\u003eFaradayInstitution/BPX#83\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/FaradayInstitution/BPX/compare/v0.5.0...v0.5.1\"\u003ehttps://github.com/FaradayInstitution/BPX/compare/v0.5.0...v0.5.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/FaradayInstitution/BPX/blob/main/CHANGELOG.md\"\u003ebpx's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/FaradayInstitution/BPX\"\u003eUnreleased\u003c/a\u003e\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003epartial\u003c/code\u003e model option to allow partial schemas to be defined in \u003ccode\u003eParameterisation\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/FaradayInstitution/BPX/pull/115\"\u003e#115\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eState\u003c/code\u003e section to the schema and moved temperature \u0026amp; concentration parameters\nfrom \u003ccode\u003eParameterisation\u003c/code\u003e in. (\u003ca href=\"https://redirect.github.com/FaradayInstitution/BPX/pull/113\"\u003e#113\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/FaradayInstitution/BPX/commit/eb5da74588631ffee0e81f00746352a3f5ba5414\"\u003e\u003ccode\u003eeb5da74\u003c/code\u003e\u003c/a\u003e fix thermal environment, bump version number (\u003ca href=\"https://redirect.github.com/FaradayInstitution/BPX/issues/121\"\u003e#121\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FaradayInstitution/BPX/commit/a6df6bfc6137815d9d1c5f6e426b4dfc91b0996d\"\u003e\u003ccode\u003ea6df6bf\u003c/code\u003e\u003c/a\u003e Bump the actions group across 1 directory with 3 updates (\u003ca href=\"https://redirect.github.com/FaradayInstitution/BPX/issues/120\"\u003e#120\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FaradayInstitution/BPX/commit/322882528574f68915b4131adbdf20c2a11a253c\"\u003e\u003ccode\u003e3228825\u003c/code\u003e\u003c/a\u003e Bump the actions group with 2 updates (\u003ca href=\"https://redirect.github.com/FaradayInstitution/BPX/issues/116\"\u003e#116\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FaradayInstitution/BPX/commit/3b068a52d8ca9ef6e5d8a73daa86f5d5b1a19a41\"\u003e\u003ccode\u003e3b068a5\u003c/code\u003e\u003c/a\u003e Add a 'partial' model type (\u003ca href=\"https://redirect.github.com/FaradayInstitution/BPX/issues/115\"\u003e#115\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FaradayInstitution/BPX/commit/22d8f3b61b07f6eed11e92b33c78d73b96625cae\"\u003e\u003ccode\u003e22d8f3b\u003c/code\u003e\u003c/a\u003e feat: adds a 'State' section with lists of materials (\u003ca href=\"https://redirect.github.com/FaradayInstitution/BPX/issues/113\"\u003e#113\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FaradayInstitution/BPX/commit/6710440832ab01406e168b18a426de6087f1ec3d\"\u003e\u003ccode\u003e6710440\u003c/code\u003e\u003c/a\u003e Bump the actions group across 1 directory with 5 updates (\u003ca href=\"https://redirect.github.com/FaradayInstitution/BPX/issues/110\"\u003e#110\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FaradayInstitution/BPX/commit/0cf060d01ad9bab08c001d1af8c3c85d7d2477a1\"\u003e\u003ccode\u003e0cf060d\u003c/code\u003e\u003c/a\u003e Add hysteresis to schema (\u003ca href=\"https://redirect.github.com/FaradayInstitution/BPX/issues/102\"\u003e#102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FaradayInstitution/BPX/commit/2d3c84ffd64f708d7e6cff2c91a47c83c23abf79\"\u003e\u003ccode\u003e2d3c84f\u003c/code\u003e\u003c/a\u003e remove thermal conductivity from schema (\u003ca href=\"https://redirect.github.com/FaradayInstitution/BPX/issues/109\"\u003e#109\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FaradayInstitution/BPX/commit/e3539f580c720ce131f70a0afdc894c07f7c166f\"\u003e\u003ccode\u003ee3539f5\u003c/code\u003e\u003c/a\u003e Drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/FaradayInstitution/BPX/issues/108\"\u003e#108\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FaradayInstitution/BPX/commit/218b28dc1c1608e6803014149ccc4ac892613d75\"\u003e\u003ccode\u003e218b28d\u003c/code\u003e\u003c/a\u003e Bump the actions group across 1 directory with 3 updates (\u003ca href=\"https://redirect.github.com/FaradayInstitution/BPX/issues/92\"\u003e#92\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/FaradayInstitution/BPX/compare/v0.5.0...v1.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydata-sphinx-theme` from 0.16.1 to 0.17.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydata/pydata-sphinx-theme/releases\"\u003epydata-sphinx-theme's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.17.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix docs build with sphinx 'extensions' config key by \u003ca href=\"https://github.com/Yann-P\"\u003e\u003ccode\u003e@​Yann-P\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2352\"\u003epydata/pydata-sphinx-theme#2352\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix default behavior when shorten_urls is unset by \u003ca href=\"https://github.com/hntk03\"\u003e\u003ccode\u003e@​hntk03\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2351\"\u003epydata/pydata-sphinx-theme#2351\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix search input receiving keystrokes after escape dismiss in Safari by \u003ca href=\"https://github.com/tmchow\"\u003e\u003ccode\u003e@​tmchow\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2338\"\u003epydata/pydata-sphinx-theme#2338\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace broken Unsplash image URLs with Picsum in light-dark guide by \u003ca href=\"https://github.com/tmchow\"\u003e\u003ccode\u003e@​tmchow\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2341\"\u003epydata/pydata-sphinx-theme#2341\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efeat: add disable_search theme option by \u003ca href=\"https://github.com/PhilipSchmid\"\u003e\u003ccode\u003e@​PhilipSchmid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2315\"\u003epydata/pydata-sphinx-theme#2315\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDependencies\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBump pydata/pydata-sphinx-theme/.github/workflows/docs.yml from 43f9003549c495bcb43483fa21b6c1c396247f39 to cd00a86a87aba3903543c00c5ce5f009c436e0b1 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/pydata/pydata-sphinx-theme/pull/2342\"\u003epydata/pydata-sphinx-theme#2342\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pydata/pydata-sphinx-theme/.github/workflows/CI.yml from e8db643b990df73812cf9397bc0f8cfa1164e4d3 to cd00a86a87aba3903543c00c5ce5f009c436e0b1 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/pydata/pydata-sphinx-theme/pull/2345\"\u003epydata/pydata-sphinx-theme#2345\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump octokit/request-action from 2.4.0 to 3.0.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2346\"\u003epydata/pydata-sphinx-theme#2346\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/PhilipSchmid\"\u003e\u003ccode\u003e@​PhilipSchmid\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2315\"\u003epydata/pydata-sphinx-theme#2315\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tmchow\"\u003e\u003ccode\u003e@​tmchow\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2338\"\u003epydata/pydata-sphinx-theme#2338\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydata/pydata-sphinx-theme/compare/v0.17.0...v0.17.1\"\u003ehttps://github.com/pydata/pydata-sphinx-theme/compare/v0.17.0...v0.17.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.17.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBUG - Add \u003ccode\u003e--pst-color-heading\u003c/code\u003e fallback by \u003ca href=\"https://github.com/trallard\"\u003e\u003ccode\u003e@​trallard\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2082\"\u003epydata/pydata-sphinx-theme#2082\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate hooks 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/pydata/pydata-sphinx-theme/pull/2091\"\u003epydata/pydata-sphinx-theme#2091\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd search-as-you-type (inline search results) feature by \u003ca href=\"https://github.com/kaycebasques\"\u003e\u003ccode\u003e@​kaycebasques\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2093\"\u003epydata/pydata-sphinx-theme#2093\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupdate ReadTheDocs settings file by \u003ca href=\"https://github.com/drammock\"\u003e\u003ccode\u003e@​drammock\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2083\"\u003epydata/pydata-sphinx-theme#2083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStrip whitespace from announcement file before processing. by \u003ca href=\"https://github.com/AAriam\"\u003e\u003ccode\u003e@​AAriam\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2105\"\u003epydata/pydata-sphinx-theme#2105\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for versionremoved directive by \u003ca href=\"https://github.com/stevepiercy\"\u003e\u003ccode\u003e@​stevepiercy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2087\"\u003epydata/pydata-sphinx-theme#2087\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBUG - center search dialog on wide screens by \u003ca href=\"https://github.com/gabalafou\"\u003e\u003ccode\u003e@​gabalafou\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2085\"\u003epydata/pydata-sphinx-theme#2085\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix brand color example by \u003ca href=\"https://github.com/drammock\"\u003e\u003ccode\u003e@​drammock\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2104\"\u003epydata/pydata-sphinx-theme#2104\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFIX - Pin Astroid to fix Read the Docs by \u003ca href=\"https://github.com/gabalafou\"\u003e\u003ccode\u003e@​gabalafou\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2126\"\u003epydata/pydata-sphinx-theme#2126\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFIX - Remove broken Plotly example until fixed by \u003ca href=\"https://github.com/gabalafou\"\u003e\u003ccode\u003e@​gabalafou\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2124\"\u003epydata/pydata-sphinx-theme#2124\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFIX - const reassignment by \u003ca href=\"https://github.com/gabalafou\"\u003e\u003ccode\u003e@​gabalafou\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2121\"\u003epydata/pydata-sphinx-theme#2121\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDOC - clearer logo recommendation by \u003ca href=\"https://github.com/gabalafou\"\u003e\u003ccode\u003e@​gabalafou\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2120\"\u003epydata/pydata-sphinx-theme#2120\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate hooks 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/pydata/pydata-sphinx-theme/pull/2118\"\u003epydata/pydata-sphinx-theme#2118\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpload Playwright trace if test fails by \u003ca href=\"https://github.com/gabalafou\"\u003e\u003ccode\u003e@​gabalafou\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2122\"\u003epydata/pydata-sphinx-theme#2122\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHighlight headings when the user navigates to them by \u003ca href=\"https://github.com/gabalafou\"\u003e\u003ccode\u003e@​gabalafou\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2132\"\u003epydata/pydata-sphinx-theme#2132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix missing paren in example code by \u003ca href=\"https://github.com/drammock\"\u003e\u003ccode\u003e@​drammock\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2134\"\u003epydata/pydata-sphinx-theme#2134\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdates for file src/pydata_sphinx_theme/locale/en/LC_MESSAGES/sphinx.po in de by \u003ca href=\"https://github.com/transifex-integration\"\u003e\u003ccode\u003e@​transifex-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2136\"\u003epydata/pydata-sphinx-theme#2136\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[MAINT] Bump version to 0.16.2dev0 by \u003ca href=\"https://github.com/peytondmurray\"\u003e\u003ccode\u003e@​peytondmurray\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2137\"\u003epydata/pydata-sphinx-theme#2137\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMAINT - Update release instructions by \u003ca href=\"https://github.com/trallard\"\u003e\u003ccode\u003e@​trallard\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2138\"\u003epydata/pydata-sphinx-theme#2138\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[DOC] Create accessibility statement by \u003ca href=\"https://github.com/isabela-pf\"\u003e\u003ccode\u003e@​isabela-pf\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2135\"\u003epydata/pydata-sphinx-theme#2135\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReposition the admonition title icon to the top of the paragraph in m… by \u003ca href=\"https://github.com/stevepiercy\"\u003e\u003ccode\u003e@​stevepiercy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2100\"\u003epydata/pydata-sphinx-theme#2100\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ecleanup UX inspiration page by \u003ca href=\"https://github.com/drammock\"\u003e\u003ccode\u003e@​drammock\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/pull/2141\"\u003epydata/pydata-sphinx-theme#2141\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/pydata/pydata-sphinx-theme/commit/a4986faa4b8241e041634d39ca6ed0e30c175240\"\u003e\u003ccode\u003ea4986fa\u003c/code\u003e\u003c/a\u003e bump: 0.17.0 → 0.17.1 (\u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/issues/2355\"\u003e#2355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydata/pydata-sphinx-theme/commit/ff8be647971c91f759ef20222355ea57cc39362f\"\u003e\u003ccode\u003eff8be64\u003c/code\u003e\u003c/a\u003e Fix default behavior when shorten_urls is unset (\u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/issues/2351\"\u003e#2351\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydata/pydata-sphinx-theme/commit/086775948a2e98ede34ccc0568508127eac5dc92\"\u003e\u003ccode\u003e0867759\u003c/code\u003e\u003c/a\u003e Replace broken Unsplash image URLs with Picsum in light-dark guide (\u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/issues/2341\"\u003e#2341\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydata/pydata-sphinx-theme/commit/56157e947983f5dee69650619e4c991ebe1016ba\"\u003e\u003ccode\u003e56157e9\u003c/code\u003e\u003c/a\u003e Bump octokit/request-action from 2.4.0 to 3.0.0 (\u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/issues/2346\"\u003e#2346\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydata/pydata-sphinx-theme/commit/8cce21de32c72ae5ab063cf14152ea17704b66c8\"\u003e\u003ccode\u003e8cce21d\u003c/code\u003e\u003c/a\u003e Bump pydata/pydata-sphinx-theme/.github/workflows/CI.yml from e8db643b990df73...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydata/pydata-sphinx-theme/commit/30b4830ab76f28b4e4e752ddd82e589cfef59a22\"\u003e\u003ccode\u003e30b4830\u003c/code\u003e\u003c/a\u003e Bump pydata/pydata-sphinx-theme/.github/workflows/docs.yml from 43f9003549c49...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydata/pydata-sphinx-theme/commit/6673b56f499fa54c40c2c0c828ca21ba3f0d40c1\"\u003e\u003ccode\u003e6673b56\u003c/code\u003e\u003c/a\u003e Fix docs build with sphinx 'extensions' config key (\u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/issues/2352\"\u003e#2352\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydata/pydata-sphinx-theme/commit/ebc3f1723a51750e7e3bc3b0851d7fa88a467c83\"\u003e\u003ccode\u003eebc3f17\u003c/code\u003e\u003c/a\u003e Fix search input receiving keystrokes after escape dismiss in Safari (\u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/issues/2338\"\u003e#2338\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydata/pydata-sphinx-theme/commit/8e676945c216502bc883baf1ccd4ef70244696f7\"\u003e\u003ccode\u003e8e67694\u003c/code\u003e\u003c/a\u003e feat: add disable_search theme option (\u003ca href=\"https://redirect.github.com/pydata/pydata-sphinx-theme/issues/2315\"\u003e#2315\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydata/pydata-sphinx-theme/commit/cd00a86a87aba3903543c00c5ce5f009c436e0b1\"\u003e\u003ccode\u003ecd00a86\u003c/code\u003e\u003c/a\u003e bump: 0.16.2.dev0 -\u0026gt; 0.17.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydata/pydata-sphinx-theme/compare/v0.16.1...v0.17.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ipykernel` from 7.1.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/ipython/ipykernel/releases\"\u003eipykernel's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.2.0\u003c/h2\u003e\n\u003ch2\u003e7.2.0\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/ipykernel/compare/39eaf96a...1630c4f7d5365918c4f06cf3caee3c278b52afc2\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eNew features added\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded kernel_protocol_version to kernelspec \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1483\"\u003e#1483\u003c/a\u003e (\u003ca href=\"https://github.com/JohanMabille\"\u003e\u003ccode\u003e@​JohanMabille\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReplaced PUB socket with XPUB socket \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1482\"\u003e#1482\u003c/a\u003e (\u003ca href=\"https://github.com/JohanMabille\"\u003e\u003ccode\u003e@​JohanMabille\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/SylvainCorlay\"\u003e\u003ccode\u003e@​SylvainCorlay\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ccordoba12\"\u003e\u003ccode\u003e@​ccordoba12\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eEnhancements made\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMade IOPubThread constructor backward compatible \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1492\"\u003e#1492\u003c/a\u003e (\u003ca href=\"https://github.com/JohanMabille\"\u003e\u003ccode\u003e@​JohanMabille\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/SylvainCorlay\"\u003e\u003ccode\u003e@​SylvainCorlay\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdvertizes kernel protocol 5.5 \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1488\"\u003e#1488\u003c/a\u003e (\u003ca href=\"https://github.com/JohanMabille\"\u003e\u003ccode\u003e@​JohanMabille\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpgrade to jupyter_client 8.8.0 \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1487\"\u003e#1487\u003c/a\u003e (\u003ca href=\"https://github.com/JohanMabille\"\u003e\u003ccode\u003e@​JohanMabille\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement kernel-side callstack filtering for internal frames \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1481\"\u003e#1481\u003c/a\u003e (\u003ca href=\"https://github.com/arjxn-py\"\u003e\u003ccode\u003e@​arjxn-py\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/JohanMabille\"\u003e\u003ccode\u003e@​JohanMabille\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd close event for wx timer app in loop_wx \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1478\"\u003e#1478\u003c/a\u003e (\u003ca href=\"https://github.com/newville\"\u003e\u003ccode\u003e@​newville\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\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\u003eTemporarily revert \u0026quot;Test changing base method to async after (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1464\"\u003e#1464\u003c/a\u003e)\u0026quot; \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1493\"\u003e#1493\u003c/a\u003e (\u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/JohanMabille\"\u003e\u003ccode\u003e@​JohanMabille\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate pytest requirement from \u0026lt;9,\u0026gt;=7.0 to \u0026gt;=7.0,\u0026lt;10 in the actions group across 1 directory \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1489\"\u003e#1489\u003c/a\u003e (\u003ca href=\"https://github.com/JohanMabille\"\u003e\u003ccode\u003e@​JohanMabille\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved spyder downstream tests \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1486\"\u003e#1486\u003c/a\u003e (\u003ca href=\"https://github.com/JohanMabille\"\u003e\u003ccode\u003e@​JohanMabille\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump scientific-python/upload-nightly-action from 0.6.2 to 0.6.3 in the actions group \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1484\"\u003e#1484\u003c/a\u003e (\u003ca href=\"https://github.com/JohanMabille\"\u003e\u003ccode\u003e@​JohanMabille\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix linting errors \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1480\"\u003e#1480\u003c/a\u003e (\u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 5 to 6 in the actions group \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1479\"\u003e#1479\u003c/a\u003e (\u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: update pre-commit hooks \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1472\"\u003e#1472\u003c/a\u003e (\u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: update pre-commit hooks \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1467\"\u003e#1467\u003c/a\u003e (\u003ca href=\"https://github.com/JohanMabille\"\u003e\u003ccode\u003e@​JohanMabille\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTest changing base method to async after \u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1295\"\u003e#1295\u003c/a\u003e \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1464\"\u003e#1464\u003c/a\u003e (\u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\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/ipython/ipykernel/graphs/contributors?from=2025-10-27\u0026amp;to=2026-02-06\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/arjxn-py\"\u003e\u003ccode\u003e@​arjxn-py\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Aarjxn-py+updated%3A2025-10-27..2026-02-06\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3ACarreau+updated%3A2025-10-27..2026-02-06\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/ccordoba12\"\u003e\u003ccode\u003e@​ccordoba12\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Accordoba12+updated%3A2025-10-27..2026-02-06\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Aianthomas23+updated%3A2025-10-27..2026-02-06\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/JohanMabille\"\u003e\u003ccode\u003e@​JohanMabille\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3AJohanMabille+updated%3A2025-10-27..2026-02-06\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Aminrk+updated%3A2025-10-27..2026-02-06\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/newville\"\u003e\u003ccode\u003e@​newville\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Anewville+updated%3A2025-10-27..2026-02-06\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e) | \u003ca href=\"https://github.com/SylvainCorlay\"\u003e\u003ccode\u003e@​SylvainCorlay\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3ASylvainCorlay+updated%3A2025-10-27..2026-02-06\u0026amp;type=Issues\"\u003eactivity\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003ev7.2.0a1\u003c/h2\u003e\n\u003ch2\u003e7.2.0a1\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/ipykernel/compare/v7.2.0a0...220a3c6e8b24ffb3f8678925712ff3644aafb41e\"\u003eFull Changelog\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/ipython/ipykernel/blob/main/CHANGELOG.md\"\u003eipykernel's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.2.0\u003c/h2\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/ipykernel/compare/39eaf96a...1630c4f7d5365918c4f06cf3caee3c278b52afc2\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eNew features added\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded kernel_protocol_version to kernelspec \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1483\"\u003e#1483\u003c/a\u003e (\u003ca href=\"https://github.com/JohanMabille\"\u003e\u003ccode\u003e@​JohanMabille\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReplaced PUB socket with XPUB socket \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1482\"\u003e#1482\u003c/a\u003e (\u003ca href=\"https://github.com/JohanMabille\"\u003e\u003ccode\u003e@​JohanMabille\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/SylvainCorlay\"\u003e\u003ccode\u003e@​SylvainCorlay\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ccordoba12\"\u003e\u003ccode\u003e@​ccordoba12\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eEnhancements made\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMade IOPubThread constructor backward compatible \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1492\"\u003e#1492\u003c/a\u003e (\u003ca href=\"https://github.com/JohanMabille\"\u003e\u003ccode\u003e@​JohanMabille\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/SylvainCorlay\"\u003e\u003ccode\u003e@​SylvainCorlay\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdvertises kernel protocol 5.5 \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1488\"\u003e#1488\u003c/a\u003e (\u003ca href=\"https://github.com/JohanMabille\"\u003e\u003ccode\u003e@​JohanMabille\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpgrade to jupyter_client 8.8.0 \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1487\"\u003e#1487\u003c/a\u003e (\u003ca href=\"https://github.com/JohanMabille\"\u003e\u003ccode\u003e@​JohanMabille\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement kernel-side callstack filtering for internal frames \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1481\"\u003e#1481\u003c/a\u003e (\u003ca href=\"https://github.com/arjxn-py\"\u003e\u003ccode\u003e@​arjxn-py\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/JohanMabille\"\u003e\u003ccode\u003e@​JohanMabille\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd close event for wx timer app in loop_wx \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1478\"\u003e#1478\u003c/a\u003e (\u003ca href=\"https://github.com/newville\"\u003e\u003ccode\u003e@​newville\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\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\u003eTemporarily revert \u0026quot;Test changing base method to async after (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1464\"\u003e#1464\u003c/a\u003e)\u0026quot; \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1493\"\u003e#1493\u003c/a\u003e (\u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/JohanMabille\"\u003e\u003ccode\u003e@​JohanMabille\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate pytest requirement from \u0026lt;9,\u0026gt;=7.0 to \u0026gt;=7.0,\u0026lt;10 in the actions group across 1 directory \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1489\"\u003e#1489\u003c/a\u003e (\u003ca href=\"https://github.com/JohanMabille\"\u003e\u003ccode\u003e@​JohanMabille\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved spyder downstream tests \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1486\"\u003e#1486\u003c/a\u003e (\u003ca href=\"https://github.com/JohanMabille\"\u003e\u003ccode\u003e@​JohanMabille\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump scientific-python/upload-nightly-action from 0.6.2 to 0.6.3 in the actions group \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1484\"\u003e#1484\u003c/a\u003e (\u003ca href=\"https://github.com/JohanMabille\"\u003e\u003ccode\u003e@​JohanMabille\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix linting errors \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1480\"\u003e#1480\u003c/a\u003e (\u003ca href=\"https://github.com/iant...\n\n_Description has been truncated_","html_url":"https://github.com/pybamm-team/PyBaMM/pull/5469","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/pybamm-team%2FPyBaMM/issues/5469","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/5469/packages"}},{"old_version":"2025.11.12","new_version":"2026.4.10","update_type":"major","path":null,"pr_created_at":"2026-04-27T10:22:48.000Z","version_change":"2025.11.12 → 2026.4.10","issue":{"uuid":"4334970790","node_id":"PR_kwDOPf23ns7V64Vz","number":4091,"state":"closed","title":"deps(deps): bump nox from 2025.11.12 to 2026.4.10","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":20,"pull_request":true,"closed_at":"2026-04-27T14:21:21.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-27T10:22:48.000Z","updated_at":"2026-04-28T17:54:51.000Z","time_to_close":14313,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(deps)","packages":[{"name":"nox","old_version":"2025.11.12","new_version":"2026.4.10","repository_url":null}],"path":null,"ecosystem":"pip"},"body":"## Summary of Changes — PR #4091 · `31a623f9` · 2026-04-27T11:12Z\n\n### Recent Commits\n- `31a623f Merge 0fd4383abab015e182d14d4518f02f7a76edf2ce into 1961d65b8d24e3f055dbe5dab3fd217d6868e945`\n\n---\n\n## 🎯 Merge-Readiness Scorecard\n\n**Score: 70/100 (70%) — 🔴 NOT READY** · _2026-04-27T11:12Z_\n\n| Dimension | Wt | Status |\n|-----------|----:|--------|\n| auto_fix (0 auto-fixable) | 15 | ✅ 0 auto-fixable |\n| sync_tracked_files | 12 | ❌ stale |\n| action_versions (all approved) | 12 | ✅ all approved |\n| ruff (src/ clean) | 10 | ❌ lint violations |\n| github-script ≥ v8 | 8 | ✅ all ≥ v8 |\n| Pattern 27 registered | 7 | ✅ registered |\n| download-artifact min v5 | 7 | ✅ v5 |\n| PDA entry today | 8 | ⚠️ no entry today |\n| accountability report today | 8 | ✅ today |\n| AAIS composite 97.5/100 | 13 | ✅ 97.5/100 |\n\n---\n\n## 🔄 Follow-Up Prompt\n\n```\n@copilot CTEP Mode: ON\n\nFailing dimensions to fix:\n  - sync_tracked_files\n  - ruff (src/ clean)\n  - PDA entry today\n\nRun: python3 scripts/ci/session_wrapup_autofix.py --pr-number \u003cN\u003e --activate-workflows\n```\n\n---\n\n---\n\n## 🔄 Workflow Execution Checklist\n\n### ✅ Always Required — fire automatically on every push (cannot be skipped)\n- [x] pre-merge-validation.yml — Pre-merge checks (always required)\n- [x] comment-review-gate.yml — Comment review gate (always required)\n- [x] deferral-language-gate.yml — Deferral language guard (always required)\n- [x] agent-auth-delegation.yml — Agent token delegation (always required)\n- [x] workflow-execution-gate.yml — WEC gate — parse checklist \u0026 arm allowed workflows (always required)\n\n### 🔄 Always Active — fire via push/workflow_run (need approval in Actions tab)\n- [x] copilot-agent-checkin.yml — Agent check-in / S221 guard (fires on push)\n- [x] copilot-agent-session-done.yml — Auto-post @copilot review after agent session (fires on workflow_run)\n- [x] copilot-iterative-self-healing.yml — Iterative self-healing CI loop (fires on workflow_run — needs approval)\n- [x] cost-gate.yml — Cost governance gate (called by agent-auth-delegation)\n\n### ⚡ Auto-Approve\n- [x] auto-approve-workflows — Auto-Approve workflow to run (approves all pending runs on last commit SHA)\n\n### 🧪 Opt-In: Testing \u0026 Validation\n- [x] validate.yml — Validation Pipeline (detect-secrets, ruff, pre-commit, sync-tracked)\n- [x] resilient_validation.yml — Resilient Validation Suite (full pytest, 4 shards)\n- [ ] test-rag.yml — RAG Module Tests (coverage ≥95%)\n- [x] nox_gates.yml — Nox quality gates (ruff, mypy, coverage)\n- [x] mypy-baseline.yml — mypy type-check anti-regression gate\n- [x] coverage-with-timeout.yml — Coverage with timeout guards\n- [ ] progressive-validation.yml — Progressive Validation Suite\n- [x] pre-flight-validation.yml — Pre-flight CI validation\n- [x] ci-checkpoint-validation.yml — CI Checkpoint Validation\n- [ ] data-quality-suite.yml — Data Quality \u0026 Determinism Suite\n- [x] auth-tests.yml — Authentication Tests\n- [x] pr-checks.yml — PR Checks (isolated cache, src/ scope)\n- [ ] html_visual_regression.yml — HTML Visual Regression Screenshots\n\n### 🔒 Opt-In: Security \u0026 Quality\n- [x] security-scanning-suite.yml — Full security audit (bandit, pip-audit)\n- [x] codeql-analysis.yml — CodeQL SAST analysis\n- [x] actionlint-audit.yml — Workflow compliance audit (actionlint)\n- [x] semgrep_sarif.yml — Semgrep SAST (SARIF upload)\n- [x] auto-fix-common-issues.yml — Auto-Fix Common CI Issues\n- [x] auto-fix-pr-check.yml — PR Auto-Fix Check\n- [x] code-quality-coverage-suite.yml — Code Quality \u0026 Coverage Suite\n- [x] audit-qa-suite.yml — Audit \u0026 QA Suite (Unified)\n\n### 📄 Opt-In: Documentation\n- [ ] documentation-link-checker.yml — Documentation link checker\n- [x] pages-pre-merge-validation.yml — Pages pre-merge validation\n\n### ⚙️ Opt-In: Infrastructure \u0026 Deployment\n- [x] reference-integrity.yml — Reference integrity + agent size gate\n- [x] dependency-submission.yml — Resilient dependency submission\n- [ ] docker-build-push.yml — Build \u0026 push Docker image (GHCR)\n- [ ] rust_swarm_ci.yml — Rust-Python hybrid swarm CI/CD\n- [x] root-org-validation.yml — Root organization validation\n- [x] agent-registry-validation.yml — Agent registry validation\n- [x] qa-walkthrough.yml — QA walkthrough agent\n\n\u003e **⚠️ HARDENED AGENT INSTRUCTION (non-negotiable):** This entire WEC block MUST be\n\u003e appended verbatim to **every** PR body update — including every `report_progress` call.\n\u003e Copy the WEC block from the current PR body into the `prDescription` parameter, keeping\n\u003e **all previously-checked `[x]` items checked**. Never reset a maintainer selection to `[ ]`.\n\u003e Only 'always required' items may be auto-checked. All other items preserve their current state.\n","html_url":"https://github.com/Aries-Serpent/_codex_/pull/4091","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Aries-Serpent%2F_codex_/issues/4091","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/4091/packages"}},{"old_version":"2026.2.9","new_version":"2026.4.10","update_type":"minor","path":null,"pr_created_at":"2026-04-20T02:17:53.000Z","version_change":"2026.2.9 → 2026.4.10","issue":{"uuid":"4292712175","node_id":"PR_kwDORT1TBs7TzA7z","number":113,"state":"open","title":"build(deps-dev): bump nox from 2026.2.9 to 2026.4.10","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-04-20T02:17:53.000Z","updated_at":"2026-04-20T02:18:35.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps-dev)","packages":[{"name":"nox","old_version":"2026.2.9","new_version":"2026.4.10","repository_url":"https://github.com/wntrblm/nox"}],"path":null,"ecosystem":"pip"},"body":"Bumps [nox](https://github.com/wntrblm/nox) from 2026.2.9 to 2026.4.10.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/wntrblm/nox/releases\"\u003enox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2026.04.10 🧹\u003c/h2\u003e\n\u003cp\u003eThis release drops Python 3.8 and adds a \u003ccode\u003e--usage\u003c/code\u003e command for full docstrings. Our \u003ccode\u003e.nox\u003c/code\u003e dir is now ignored by default, virtualenvs are recreated if symlinks are broken (such as after a Python upgrade), and \u003ccode\u003e-t\u003c/code\u003e now selects from all available sessions.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agriyakhetarpal\"\u003e\u003ccode\u003e@​agriyakhetarpal\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scop\"\u003e\u003ccode\u003e@​scop\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.8 (reapply \u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1004\"\u003e#1004\u003c/a\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/wntrblm/nox/pull/1062\"\u003ewntrblm/nox#1062\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003enox --usage \u0026lt;session\u0026gt;\u003c/code\u003e command to print full docstrings for provided sessions by \u003ca href=\"https://github.com/agriyakhetarpal\"\u003e\u003ccode\u003e@​agriyakhetarpal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1064\"\u003ewntrblm/nox#1064\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrite out \u003ccode\u003e.gitignore\u003c/code\u003e/\u003ccode\u003eCACHEDIR.TAG\u003c/code\u003e to \u003ccode\u003e.nox\u003c/code\u003e dir by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1072\"\u003ewntrblm/nox#1072\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRecreate venv if broken symlinks are present by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1078\"\u003ewntrblm/nox#1078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore default selection for tags and keywords by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1057\"\u003ewntrblm/nox#1057\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMore uv variables set by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1056\"\u003ewntrblm/nox#1056\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore forcecolor falsy by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1073\"\u003ewntrblm/nox#1073\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFully pin actions in composite action by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1080\"\u003ewntrblm/nox#1080\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePin CI to working conda version by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1079\"\u003ewntrblm/nox#1079\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse prek by \u003ca href=\"https://github.com/agriyakhetarpal\"\u003e\u003ccode\u003e@​agriyakhetarpal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1065\"\u003ewntrblm/nox#1065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSwitch artifact attestations to actions/attest by \u003ca href=\"https://github.com/scop\"\u003e\u003ccode\u003e@​scop\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1070\"\u003ewntrblm/nox#1070\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse zizmor by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1082\"\u003ewntrblm/nox#1082\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/wntrblm/nox/compare/2026.02.09...2026.04.10\"\u003ehttps://github.com/wntrblm/nox/compare/2026.02.09...2026.04.10\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/wntrblm/nox/blob/main/CHANGELOG.md\"\u003enox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003e2026.04.10\u003c/h2\u003e\n\u003cp\u003eThis release drops Python 3.8 and adds a \u003ccode\u003e--usage\u003c/code\u003e command for full docstrings.\nOur \u003ccode\u003e.nox\u003c/code\u003e dir is now ignored by default, virtualenvs are recreated if symlinks\nare broken (such as after a Python upgrade), and \u003ccode\u003e-t\u003c/code\u003e now selects from all\navailable sessions.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agriyakhetarpal\"\u003e\u003ccode\u003e@​agriyakhetarpal\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scop\"\u003e\u003ccode\u003e@​scop\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.8 (reapply \u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1004\"\u003e#1004\u003c/a\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/wntrblm/nox/pull/1062\"\u003ewntrblm/nox#1062\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003enox --usage \u0026lt;session\u0026gt;\u003c/code\u003e command to print full docstrings for provided sessions by \u003ca href=\"https://github.com/agriyakhetarpal\"\u003e\u003ccode\u003e@​agriyakhetarpal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1064\"\u003ewntrblm/nox#1064\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrite out \u003ccode\u003e.gitignore\u003c/code\u003e/\u003ccode\u003eCACHEDIR.TAG\u003c/code\u003e to \u003ccode\u003e.nox\u003c/code\u003e dir by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1072\"\u003ewntrblm/nox#1072\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRecreate venv if broken symlinks are present by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1078\"\u003ewntrblm/nox#1078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore default selection for tags and keywords by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1057\"\u003ewntrblm/nox#1057\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMore uv variables set by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1056\"\u003ewntrblm/nox#1056\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore forcecolor falsy by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1073\"\u003ewntrblm/nox#1073\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFully pin actions in composite action by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1080\"\u003ewntrblm/nox#1080\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePin CI to working conda version by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1079\"\u003ewntrblm/nox#1079\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse prek by \u003ca href=\"https://github.com/agriyakhetarpal\"\u003e\u003ccode\u003e@​agriyakhetarpal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1065\"\u003ewntrblm/nox#1065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSwitch artifact attestations to actions/attest by \u003ca href=\"https://github.com/scop\"\u003e\u003ccode\u003e@​scop\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1070\"\u003ewntrblm/nox#1070\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse zizmor by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1082\"\u003ewntrblm/nox#1082\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2026.02.09\u003c/h2\u003e\n\u003cp\u003eThis small release supports uv 0.10's new requirement that \u003ccode\u003e--clear\u003c/code\u003e be passed\nto clear an environment. Python 3.8 support was temporarily re-added since uv\n0.10 still supports 3.8, so nox on 3.8 was affected.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/97e345e6a26bb2c5aacff9cc4327bd4ac1b00ce6\"\u003e\u003ccode\u003e97e345e\u003c/code\u003e\u003c/a\u003e docs: add thanks section (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1083\"\u003e#1083\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/8d5c759d5d3f1f2c80ada8f05cd994c673905898\"\u003e\u003ccode\u003e8d5c759\u003c/code\u003e\u003c/a\u003e chore: prepare for 2026.04.10 (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1081\"\u003e#1081\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/2577f31eb4d6d94f18157c444464fdd1e4a7e3df\"\u003e\u003ccode\u003e2577f31\u003c/code\u003e\u003c/a\u003e ci: add zizmor (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1082\"\u003e#1082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/b6a61563737b2e42790f8ea509fe1ddd76fa464f\"\u003e\u003ccode\u003eb6a6156\u003c/code\u003e\u003c/a\u003e fix: fully pin actions in composite action (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1080\"\u003e#1080\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/4c7a2151c538b739337dbbd759aaf440fa1991ac\"\u003e\u003ccode\u003e4c7a215\u003c/code\u003e\u003c/a\u003e fix: write out .gitignore/CACHEDIR.TAG to our dir (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1072\"\u003e#1072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/47cb9c300e07c3a8ca4d5b240dad1a178a65dcdb\"\u003e\u003ccode\u003e47cb9c3\u003c/code\u003e\u003c/a\u003e fix: ignore default selection for tags and keywords (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1057\"\u003e#1057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/63dcab98ecd4f784537a3c1fa1319bac6cbf2436\"\u003e\u003ccode\u003e63dcab9\u003c/code\u003e\u003c/a\u003e fix: more uv variables set (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1056\"\u003e#1056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/e0f64e6c3cb24e3f870f4df8dd38830e03546dce\"\u003e\u003ccode\u003ee0f64e6\u003c/code\u003e\u003c/a\u003e fix: recreate if broken symlinks are present (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1078\"\u003e#1078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/bf9095287afacc1f5b94e5da54f4dbed4ccce875\"\u003e\u003ccode\u003ebf90952\u003c/code\u003e\u003c/a\u003e tests: pin to working conda version (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1079\"\u003e#1079\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/4ff681f169c4043ce3b3d19cba1eadd66720bf1d\"\u003e\u003ccode\u003e4ff681f\u003c/code\u003e\u003c/a\u003e fix: ignore forcecolor falsy (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1073\"\u003e#1073\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/wntrblm/nox/compare/2026.02.09...2026.04.10\"\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=nox\u0026package-manager=uv\u0026previous-version=2026.2.9\u0026new-version=2026.4.10)](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\n\u003c!-- devin-review-badge-begin --\u003e\n\n---\n\n\u003ca href=\"https://app.devin.ai/review/alexeev-prog/nadzoring/pull/113\" target=\"_blank\"\u003e\n  \u003cpicture\u003e\n    \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://static.devin.ai/assets/gh-open-in-devin-review-dark.svg?v=1\"\u003e\n    \u003cimg src=\"https://static.devin.ai/assets/gh-open-in-devin-review-light.svg?v=1\" alt=\"Open in Devin Review\"\u003e\n  \u003c/picture\u003e\n\u003c/a\u003e\n\u003c!-- devin-review-badge-end --\u003e\n","html_url":"https://github.com/alexeev-prog/nadzoring/pull/113","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexeev-prog%2Fnadzoring/issues/113","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/113/packages"}},{"old_version":"\u003c2026.3.0,\u003e=2023.4.22","new_version":"\u003e=2023.4.22,\u003c2026.5.0","update_type":"minor","path":null,"pr_created_at":"2026-04-13T01:34:01.000Z","version_change":"\u003c2026.3.0,\u003e=2023.4.22 → \u003e=2023.4.22,\u003c2026.5.0","issue":{"uuid":"4250672874","node_id":"PR_kwDOKs8kH87R17QB","number":67,"state":"open","title":"Update nox requirement from \u003c2026.3.0,\u003e=2023.4.22 to \u003e=2023.4.22,\u003c2026.5.0","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-13T01:34:01.000Z","updated_at":"2026-04-13T01:34:02.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Update","packages":[{"name":"nox","old_version":"\u003c2026.3.0,\u003e=2023.4.22","new_version":"\u003e=2023.4.22,\u003c2026.5.0","repository_url":"https://github.com/wntrblm/nox"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [nox](https://github.com/wntrblm/nox) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/wntrblm/nox/blob/main/CHANGELOG.md\"\u003enox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003e2026.04.10\u003c/h2\u003e\n\u003cp\u003eThis release drops Python 3.8 and adds a \u003ccode\u003e--usage\u003c/code\u003e command for full docstrings.\nOur \u003ccode\u003e.nox\u003c/code\u003e dir is now ignored by default, virtualenvs are recreated if symlinks\nare broken (such as after a Python upgrade), and \u003ccode\u003e-t\u003c/code\u003e now selects from all\navailable sessions.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agriyakhetarpal\"\u003e\u003ccode\u003e@​agriyakhetarpal\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scop\"\u003e\u003ccode\u003e@​scop\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.8 (reapply \u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1004\"\u003e#1004\u003c/a\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/wntrblm/nox/pull/1062\"\u003ewntrblm/nox#1062\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003enox --usage \u0026lt;session\u0026gt;\u003c/code\u003e command to print full docstrings for provided sessions by \u003ca href=\"https://github.com/agriyakhetarpal\"\u003e\u003ccode\u003e@​agriyakhetarpal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1064\"\u003ewntrblm/nox#1064\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrite out \u003ccode\u003e.gitignore\u003c/code\u003e/\u003ccode\u003eCACHEDIR.TAG\u003c/code\u003e to \u003ccode\u003e.nox\u003c/code\u003e dir by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1072\"\u003ewntrblm/nox#1072\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRecreate venv if broken symlinks are present by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1078\"\u003ewntrblm/nox#1078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore default selection for tags and keywords by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1057\"\u003ewntrblm/nox#1057\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMore uv variables set by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1056\"\u003ewntrblm/nox#1056\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore forcecolor falsy by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1073\"\u003ewntrblm/nox#1073\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFully pin actions in composite action by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1080\"\u003ewntrblm/nox#1080\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePin CI to working conda version by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1079\"\u003ewntrblm/nox#1079\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse prek by \u003ca href=\"https://github.com/agriyakhetarpal\"\u003e\u003ccode\u003e@​agriyakhetarpal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1065\"\u003ewntrblm/nox#1065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSwitch artifact attestations to actions/attest by \u003ca href=\"https://github.com/scop\"\u003e\u003ccode\u003e@​scop\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1070\"\u003ewntrblm/nox#1070\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse zizmor by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1082\"\u003ewntrblm/nox#1082\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2026.02.09\u003c/h2\u003e\n\u003cp\u003eThis small release supports uv 0.10's new requirement that \u003ccode\u003e--clear\u003c/code\u003e be passed\nto clear an environment. Python 3.8 support was temporarily re-added since uv\n0.10 still supports 3.8, so nox on 3.8 was affected.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/97e345e6a26bb2c5aacff9cc4327bd4ac1b00ce6\"\u003e\u003ccode\u003e97e345e\u003c/code\u003e\u003c/a\u003e docs: add thanks section (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1083\"\u003e#1083\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/8d5c759d5d3f1f2c80ada8f05cd994c673905898\"\u003e\u003ccode\u003e8d5c759\u003c/code\u003e\u003c/a\u003e chore: prepare for 2026.04.10 (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1081\"\u003e#1081\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/2577f31eb4d6d94f18157c444464fdd1e4a7e3df\"\u003e\u003ccode\u003e2577f31\u003c/code\u003e\u003c/a\u003e ci: add zizmor (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1082\"\u003e#1082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/b6a61563737b2e42790f8ea509fe1ddd76fa464f\"\u003e\u003ccode\u003eb6a6156\u003c/code\u003e\u003c/a\u003e fix: fully pin actions in composite action (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1080\"\u003e#1080\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/4c7a2151c538b739337dbbd759aaf440fa1991ac\"\u003e\u003ccode\u003e4c7a215\u003c/code\u003e\u003c/a\u003e fix: write out .gitignore/CACHEDIR.TAG to our dir (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1072\"\u003e#1072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/47cb9c300e07c3a8ca4d5b240dad1a178a65dcdb\"\u003e\u003ccode\u003e47cb9c3\u003c/code\u003e\u003c/a\u003e fix: ignore default selection for tags and keywords (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1057\"\u003e#1057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/63dcab98ecd4f784537a3c1fa1319bac6cbf2436\"\u003e\u003ccode\u003e63dcab9\u003c/code\u003e\u003c/a\u003e fix: more uv variables set (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1056\"\u003e#1056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/e0f64e6c3cb24e3f870f4df8dd38830e03546dce\"\u003e\u003ccode\u003ee0f64e6\u003c/code\u003e\u003c/a\u003e fix: recreate if broken symlinks are present (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1078\"\u003e#1078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/bf9095287afacc1f5b94e5da54f4dbed4ccce875\"\u003e\u003ccode\u003ebf90952\u003c/code\u003e\u003c/a\u003e tests: pin to working conda version (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1079\"\u003e#1079\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/4ff681f169c4043ce3b3d19cba1eadd66720bf1d\"\u003e\u003ccode\u003e4ff681f\u003c/code\u003e\u003c/a\u003e fix: ignore forcecolor falsy (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1073\"\u003e#1073\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/wntrblm/nox/compare/2023.04.22...2026.04.10\"\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/Cray-HPE/vtds-provider-gcp/pull/67","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cray-HPE%2Fvtds-provider-gcp/issues/67","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/67/packages"}},{"old_version":"2025.11.12","new_version":"2026.2.9","update_type":"major","path":null,"pr_created_at":"2026-04-02T02:56:53.000Z","version_change":"2025.11.12 → 2026.2.9","issue":{"uuid":"4191104897","node_id":"PR_kwDOI0bBw87PblnF","number":146,"state":"open","title":"Bump the python-dependencies group with 8 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-02T02:56:53.000Z","updated_at":"2026-04-11T06:08:57.298Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-dependencies","update_count":8,"packages":[{"name":"nox","old_version":"2025.11.12","new_version":"2026.2.9","repository_url":"https://github.com/wntrblm/nox"},{"name":"prek","old_version":"0.2.28","new_version":"0.3.8","repository_url":"https://github.com/j178/prek"},{"name":"ruff","old_version":"0.14.11","new_version":"0.15.8","repository_url":"https://github.com/astral-sh/ruff"},{"name":"mypy","old_version":"1.19.1","new_version":"1.20.0","repository_url":"https://github.com/python/mypy"},{"name":"ty","old_version":"0.0.12","new_version":"0.0.27","repository_url":"https://github.com/astral-sh/ty"},{"name":"coverage","old_version":"7.13.1","new_version":"7.13.5","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"pytest-codspeed","old_version":"4.2.0","new_version":"4.3.0","repository_url":"https://github.com/CodSpeedHQ/pytest-codspeed"},{"name":"sphinx-autoapi","old_version":"3.6.1","new_version":"3.8.0","repository_url":"https://github.com/readthedocs/sphinx-autoapi"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-dependencies group with 8 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [nox](https://github.com/wntrblm/nox) | `2025.11.12` | `2026.2.9` |\n| [prek](https://github.com/j178/prek) | `0.2.28` | `0.3.8` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.11` | `0.15.8` |\n| [mypy](https://github.com/python/mypy) | `1.19.1` | `1.20.0` |\n| [ty](https://github.com/astral-sh/ty) | `0.0.12` | `0.0.27` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.13.1` | `7.13.5` |\n| [pytest-codspeed](https://github.com/CodSpeedHQ/pytest-codspeed) | `4.2.0` | `4.3.0` |\n| [sphinx-autoapi](https://github.com/readthedocs/sphinx-autoapi) | `3.6.1` | `3.8.0` |\n\nUpdates `nox` from 2025.11.12 to 2026.2.9\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/wntrblm/nox/releases\"\u003enox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2026.02.09 ❤️‍🩹\u003c/h2\u003e\n\u003cp\u003eThis small release supports uv 0.10's new requirement that \u003ccode\u003e--clear\u003c/code\u003e be passed to clear an environment. Python 3.8 support was temporarily re-added since uv 0.10 still supports 3.8, so nox on 3.8 was affected.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport uv 0.10.0 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1055\"\u003ewntrblm/nox#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow tags by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1058\"\u003ewntrblm/nox#1058\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter support for multiple session decorators by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1048\"\u003ewntrblm/nox#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize extra \u003ccode\u003etox-to-nox\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/wntrblm/nox/pull/1059\"\u003ewntrblm/nox#1059\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter typing for \u003ccode\u003e.run\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/wntrblm/nox/pull/1037\"\u003ewntrblm/nox#1037\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix conda CI job by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1035\"\u003ewntrblm/nox#1035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1004\"\u003ewntrblm/nox#1004\u003c/a\u003e and revert in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1060\"\u003ewntrblm/nox#1060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix action test by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1036\"\u003ewntrblm/nox#1036\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump packaging dep to remove pyparsing by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1047\"\u003ewntrblm/nox#1047\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid newest docutils until sphinx-tabs updates by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1052\"\u003ewntrblm/nox#1052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize the naming of constants to enhance readability by \u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1041\"\u003ewntrblm/nox#1041\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDuplicated session name in cookbook by \u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1050\"\u003ewntrblm/nox#1050\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/wntrblm/nox/blob/main/CHANGELOG.md\"\u003enox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003e2026.02.09\u003c/h2\u003e\n\u003cp\u003eThis small release supports uv 0.10's new requirement that \u003ccode\u003e--clear\u003c/code\u003e be passed\nto clear an environment. Python 3.8 support was temporarily re-added since uv\n0.10 still supports 3.8, so nox on 3.8 was affected.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport uv 0.10.0 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1055\"\u003ewntrblm/nox#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow tags by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1058\"\u003ewntrblm/nox#1058\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter support for multiple session decorators by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1048\"\u003ewntrblm/nox#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize extra \u003ccode\u003etox-to-nox\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/wntrblm/nox/pull/1059\"\u003ewntrblm/nox#1059\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter typing for \u003ccode\u003e.run\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/wntrblm/nox/pull/1037\"\u003ewntrblm/nox#1037\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix conda CI job by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1035\"\u003ewntrblm/nox#1035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1004\"\u003ewntrblm/nox#1004\u003c/a\u003e and revert in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1060\"\u003ewntrblm/nox#1060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix action test by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1036\"\u003ewntrblm/nox#1036\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump packaging dep to remove pyparsing by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1047\"\u003ewntrblm/nox#1047\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid newest docutils until sphinx-tabs updates by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1052\"\u003ewntrblm/nox#1052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize the naming of constants to enhance readability by \u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1041\"\u003ewntrblm/nox#1041\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDuplicated session name in cookbook by \u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1050\"\u003ewntrblm/nox#1050\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/wntrblm/nox/commit/5a277b752f6094150e25237d47c34168e2b7526e\"\u003e\u003ccode\u003e5a277b7\u003c/code\u003e\u003c/a\u003e docs: prepare for release (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1061\"\u003e#1061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/90a8aef54122e188dbea80680552507517523ced\"\u003e\u003ccode\u003e90a8aef\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;feat: drop Python 3.8 (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1004\"\u003e#1004\u003c/a\u003e)\u0026quot; (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1060\"\u003e#1060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/264f4577846b30c3f84bb313c8d3f5c497ab7cce\"\u003e\u003ccode\u003e264f457\u003c/code\u003e\u003c/a\u003e chore: normalize extra (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1059\"\u003e#1059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/516d9bc3e134d7fe0f6a370c64a9c52b74a18a85\"\u003e\u003ccode\u003e516d9bc\u003c/code\u003e\u003c/a\u003e fix: show tags (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1058\"\u003e#1058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/7207b3fbde52febfa72a29141440179219b9f272\"\u003e\u003ccode\u003e7207b3f\u003c/code\u003e\u003c/a\u003e fix: support uv 0.10.0 (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/11eee27ceb73fb77a8b4351718ef5e14821155ee\"\u003e\u003ccode\u003e11eee27\u003c/code\u003e\u003c/a\u003e fix: better support for multiple session decorators (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1048\"\u003e#1048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/c72769b1ee7bc729c08c93f518e536364cecee8e\"\u003e\u003ccode\u003ec72769b\u003c/code\u003e\u003c/a\u003e docs: duplicated session name in cookbook (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1050\"\u003e#1050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/a0660b17967de97c10f56b12f67cc5667e79bb08\"\u003e\u003ccode\u003ea0660b1\u003c/code\u003e\u003c/a\u003e docs: avoid newest docutils until sphinx-tabs updates (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1052\"\u003e#1052\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/f8edf5fec2c819ec502566d2005a8346c9363334\"\u003e\u003ccode\u003ef8edf5f\u003c/code\u003e\u003c/a\u003e fix(types): Better typing for .run (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1037\"\u003e#1037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/5dbd95e82f43d05dfd1c60bd296d203f34108ee3\"\u003e\u003ccode\u003e5dbd95e\u003c/code\u003e\u003c/a\u003e chore: optimize the naming of constants to enhance readability (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1041\"\u003e#1041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/wntrblm/nox/compare/2025.11.12...2026.02.09\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `prek` from 0.2.28 to 0.3.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/j178/prek/releases\"\u003eprek's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.3.8\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-03-23.\u003c/p\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd experimental \u003ccode\u003elanguage: deno\u003c/code\u003e support (\u003ca href=\"https://redirect.github.com/j178/prek/pull/1516\"\u003e#1516\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003epretty-format-json\u003c/code\u003e as builtin hook (\u003ca href=\"https://redirect.github.com/j178/prek/pull/915\"\u003e#915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003echeck-vcs-permalinks\u003c/code\u003e as builtin hook (\u003ca href=\"https://redirect.github.com/j178/prek/pull/1842\"\u003e#1842\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003echeck-illegal-windows-names\u003c/code\u003e as builtin hook (\u003ca href=\"https://redirect.github.com/j178/prek/pull/1841\"\u003e#1841\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003echeck-shebang-scripts-are-executable\u003c/code\u003e builtin hook (\u003ca href=\"https://redirect.github.com/j178/prek/pull/1847\"\u003e#1847\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003edestroyed-symlinks\u003c/code\u003e builtin hook (\u003ca href=\"https://redirect.github.com/j178/prek/pull/1851\"\u003e#1851\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003efile-contents-sorter\u003c/code\u003e as builtin hook (\u003ca href=\"https://redirect.github.com/j178/prek/pull/1846\"\u003e#1846\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e--all\u003c/code\u003e flag to \u003ccode\u003eprek uninstall\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/j178/prek/pull/1817\"\u003e#1817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove file pattern parse errors (\u003ca href=\"https://redirect.github.com/j178/prek/pull/1829\"\u003e#1829\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eValidate \u003ccode\u003euv\u003c/code\u003e binary after download (\u003ca href=\"https://redirect.github.com/j178/prek/pull/1825\"\u003e#1825\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix workspace-relative added file paths (\u003ca href=\"https://redirect.github.com/j178/prek/pull/1852\"\u003e#1852\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRelax alias-anchor ratio check for check-yaml (\u003ca href=\"https://redirect.github.com/j178/prek/pull/1839\"\u003e#1839\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/j178\"\u003e\u003ccode\u003e@​j178\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shaanmajid\"\u003e\u003ccode\u003e@​shaanmajid\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\u003cli\u003e\u003ca href=\"https://github.com/feliblo\"\u003e\u003ccode\u003e@​feliblo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tiryoh\"\u003e\u003ccode\u003e@​Tiryoh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall prek 0.3.8\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.3.8/prek-installer.sh | sh\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eInstall prebuilt binaries via powershell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003epowershell -ExecutionPolicy Bypass -c \u0026quot;irm https://github.com/j178/prek/releases/download/v0.3.8/prek-installer.ps1 | iex\u0026quot;\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eInstall prebuilt binaries via Homebrew\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ebrew install prek\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/j178/prek/blob/master/CHANGELOG.md\"\u003eprek's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.3.8\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-03-23.\u003c/p\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd experimental \u003ccode\u003elanguage: deno\u003c/code\u003e support (\u003ca href=\"https://redirect.github.com/j178/prek/pull/1516\"\u003e#1516\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003epretty-format-json\u003c/code\u003e as builtin hook (\u003ca href=\"https://redirect.github.com/j178/prek/pull/915\"\u003e#915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003echeck-vcs-permalinks\u003c/code\u003e as builtin hook (\u003ca href=\"https://redirect.github.com/j178/prek/pull/1842\"\u003e#1842\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003echeck-illegal-windows-names\u003c/code\u003e as builtin hook (\u003ca href=\"https://redirect.github.com/j178/prek/pull/1841\"\u003e#1841\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003echeck-shebang-scripts-are-executable\u003c/code\u003e builtin hook (\u003ca href=\"https://redirect.github.com/j178/prek/pull/1847\"\u003e#1847\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003edestroyed-symlinks\u003c/code\u003e builtin hook (\u003ca href=\"https://redirect.github.com/j178/prek/pull/1851\"\u003e#1851\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003efile-contents-sorter\u003c/code\u003e as builtin hook (\u003ca href=\"https://redirect.github.com/j178/prek/pull/1846\"\u003e#1846\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e--all\u003c/code\u003e flag to \u003ccode\u003eprek uninstall\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/j178/prek/pull/1817\"\u003e#1817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove file pattern parse errors (\u003ca href=\"https://redirect.github.com/j178/prek/pull/1829\"\u003e#1829\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eValidate \u003ccode\u003euv\u003c/code\u003e binary after download (\u003ca href=\"https://redirect.github.com/j178/prek/pull/1825\"\u003e#1825\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix workspace-relative added file paths (\u003ca href=\"https://redirect.github.com/j178/prek/pull/1852\"\u003e#1852\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRelax alias-anchor ratio check for check-yaml (\u003ca href=\"https://redirect.github.com/j178/prek/pull/1839\"\u003e#1839\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/j178\"\u003e\u003ccode\u003e@​j178\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shaanmajid\"\u003e\u003ccode\u003e@​shaanmajid\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\u003cli\u003e\u003ca href=\"https://github.com/feliblo\"\u003e\u003ccode\u003e@​feliblo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tiryoh\"\u003e\u003ccode\u003e@​Tiryoh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.3.7\u003c/h2\u003e\n\u003cp\u003eDue to a release process failure, this version was republished as 0.3.8.\u003c/p\u003e\n\u003ch2\u003e0.3.6\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-03-16.\u003c/p\u003e\n\u003ch3\u003eEnhancements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow selectors for hook ids containing colons (\u003ca href=\"https://redirect.github.com/j178/prek/pull/1782\"\u003e#1782\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003eprek install-hooks\u003c/code\u003e to \u003ccode\u003eprek prepare-hooks\u003c/code\u003e and \u003ccode\u003eprek install --install-hooks\u003c/code\u003e to \u003ccode\u003eprek install --prepare-hooks\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/j178/prek/pull/1766\"\u003e#1766\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRetry auth-failed repo clones with terminal prompts enabled (\u003ca href=\"https://redirect.github.com/j178/prek/pull/1761\"\u003e#1761\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize \u003ccode\u003edetect_private_key\u003c/code\u003e by chunked reading and using aho-corasick (\u003ca href=\"https://redirect.github.com/j178/prek/pull/1791\"\u003e#1791\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003efix_byte_order_marker\u003c/code\u003e by shifting file contents in place (\u003ca href=\"https://redirect.github.com/j178/prek/pull/1790\"\u003e#1790\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\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/j178/prek/commit/bb412c08089c21c2a6aeec2e8d0cac64b56adf7c\"\u003e\u003ccode\u003ebb412c0\u003c/code\u003e\u003c/a\u003e Bump version to 0.3.8 (\u003ca href=\"https://redirect.github.com/j178/prek/issues/1858\"\u003e#1858\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/21de0b9ff9df17d753500cf4612ba004cb878c53\"\u003e\u003ccode\u003e21de0b9\u003c/code\u003e\u003c/a\u003e Fix permission for publish-npm\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/00e7be732e2b6a2ba9bed0bd3a220e565d0482a1\"\u003e\u003ccode\u003e00e7be7\u003c/code\u003e\u003c/a\u003e Clarify why check-illegal-windows-names stays builtin-only (\u003ca href=\"https://redirect.github.com/j178/prek/issues/1857\"\u003e#1857\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/1dbec0c329628ffdc2c8802105e2ed865e1820f1\"\u003e\u003ccode\u003e1dbec0c\u003c/code\u003e\u003c/a\u003e Bump version to 0.3.7 (\u003ca href=\"https://redirect.github.com/j178/prek/issues/1856\"\u003e#1856\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/ba62c0407849f740f84e57c1062b6243d8025093\"\u003e\u003ccode\u003eba62c04\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003epretty_format_json\u003c/code\u003e as builtin hook (\u003ca href=\"https://redirect.github.com/j178/prek/issues/915\"\u003e#915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/dbca90453a294d4fc305bb7e943dd7a0903a5218\"\u003e\u003ccode\u003edbca904\u003c/code\u003e\u003c/a\u003e Fix workspace-relative added file paths (\u003ca href=\"https://redirect.github.com/j178/prek/issues/1852\"\u003e#1852\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/24f2d627bf34800ad48448cfe3749cb6b59248dc\"\u003e\u003ccode\u003e24f2d62\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003edestroyed-symlinks\u003c/code\u003e builtin hook (\u003ca href=\"https://redirect.github.com/j178/prek/issues/1851\"\u003e#1851\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/fc529df13275f8b02ce348610e88991dc7363c2c\"\u003e\u003ccode\u003efc529df\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003echeck-shebang-scripts-are-executable\u003c/code\u003e builtin hook (\u003ca href=\"https://redirect.github.com/j178/prek/issues/1847\"\u003e#1847\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/addddb89894828315f1e8d453e956548141827bd\"\u003e\u003ccode\u003eaddddb8\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003efile-contents-sorter\u003c/code\u003e as builtin hook (\u003ca href=\"https://redirect.github.com/j178/prek/issues/1846\"\u003e#1846\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j178/prek/commit/cb3f71c3221034877d8731ce27db23b209690dde\"\u003e\u003ccode\u003ecb3f71c\u003c/code\u003e\u003c/a\u003e Add  \u003ccode\u003echeck-vcs-permalinks\u003c/code\u003e as builtin hook (\u003ca href=\"https://redirect.github.com/j178/prek/issues/1842\"\u003e#1842\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/j178/prek/compare/v0.2.28...v0.3.8\"\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.11 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.14.11...0.15.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.19.1 to 1.20.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eMypy Release Notes\u003c/h1\u003e\n\u003ch2\u003eNext Release\u003c/h2\u003e\n\u003ch2\u003eMypy 1.20\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.20.0 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\nimprovements and bug fixes. You can install it as follows:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython3 -m pip install -U mypy\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eYou can read the full documentation for this release on \u003ca href=\"http://mypy.readthedocs.io\"\u003eRead the Docs\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003ePlanned Changes to Defaults and Flags in Mypy 2.0\u003c/h3\u003e\n\u003cp\u003eAs a reminder, we are planning to enable \u003ccode\u003e--local-partial-types\u003c/code\u003e by default in mypy 2.0, which\nwill likely be the next feature release. This will often require at least minor code changes. This\noption is implicitly enabled by mypy daemon, so this makes the behavior of daemon and non-daemon\nmodes consistent.\u003c/p\u003e\n\u003cp\u003eNote that this release improves the compatibility of \u003ccode\u003e--local-partial-types\u003c/code\u003e significantly to\nmake the switch easier (see below for more).\u003c/p\u003e\n\u003cp\u003eThis can also be configured in a mypy configuration file (use \u003ccode\u003eFalse\u003c/code\u003e to disable):\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003elocal_partial_types = True\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eFor more information, refer to the\n\u003ca href=\"https://mypy.readthedocs.io/en/stable/command_line.html#cmdoption-mypy-local-partial-types\"\u003edocumentation\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eWe will also enable \u003ccode\u003e--strict-bytes\u003c/code\u003e by default in mypy 2.0. This usually requires at most\nminor code changes to adopt. For more information, refer to the\n\u003ca href=\"https://mypy.readthedocs.io/en/stable/command_line.html#cmdoption-mypy-strict-bytes\"\u003edocumentation\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eFinally, \u003ccode\u003e--allow-redefinition-new\u003c/code\u003e will be renamed to \u003ccode\u003e--allow-redefinition\u003c/code\u003e. If you want\nto continue using the older \u003ccode\u003e--allow-redefinition\u003c/code\u003e semantics which are less flexible (e.g.\nlimited support for conditional redefinitions), you can switch to \u003ccode\u003e--allow-redefinition-old\u003c/code\u003e,\nwhich is currently supported as an alias to the legacy \u003ccode\u003e--allow-redefinition\u003c/code\u003e behavior.\nTo use \u003ccode\u003e--allow-redefinition\u003c/code\u003e in the upcoming mypy 2.0, you can't use \u003ccode\u003e--no-local-partial-types\u003c/code\u003e.\nFor more information, refer to the\n\u003ca href=\"https://mypy.readthedocs.io/en/stable/command_line.html#cmdoption-mypy-allow-redefinition-new\"\u003edocumentation\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eBetter Type Narrowing\u003c/h3\u003e\n\u003cp\u003eMypy's implementation of narrowing has been substantially reworked. Mypy will now narrow more\naggressively, more consistently, and more correctly. In particular, you are likely to notice new\nnarrowing behavior in equality expressions (\u003ccode\u003e==\u003c/code\u003e), containment expressions (\u003ccode\u003ein\u003c/code\u003e),\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/770d3ca4997032dc3a1c4f0b468e9f58e8f38505\"\u003e\u003ccode\u003e770d3ca\u003c/code\u003e\u003c/a\u003e Remove +dev from version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/4738ffafc56a0d175cba06e893ffa62e756fc7e0\"\u003e\u003ccode\u003e4738ffa\u003c/code\u003e\u003c/a\u003e Changelog updates for 1.20 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21109\"\u003e#21109\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/b4f07a717c3a239a9c77808c5550fff5f2638c96\"\u003e\u003ccode\u003eb4f07a7\u003c/code\u003e\u003c/a\u003e Use 'native-parser' instead of 'native-parse' for optional dependency (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21115\"\u003e#21115\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/7bec7b7f791790b1c925cdcc573ced564fbbf065\"\u003e\u003ccode\u003e7bec7b7\u003c/code\u003e\u003c/a\u003e [mypyc] Document librt and librt.base64 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21114\"\u003e#21114\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c4825969450385cf3eb91a4fc02f273b369bc301\"\u003e\u003ccode\u003ec482596\u003c/code\u003e\u003c/a\u003e --allow-redefinition-new is no longer experimental (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21110\"\u003e#21110\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c916ca3fa79d9324dcbe130b18e24e2b5e2d1eb5\"\u003e\u003ccode\u003ec916ca3\u003c/code\u003e\u003c/a\u003e sdist: include \u003ccode\u003emisc/{diff-cache,apply-cache-diff}.py\u003c/code\u003e for `mypy/test/test_di...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/b137e4ed41d6178f6dbd0e609db56b8c1ad5384a\"\u003e\u003ccode\u003eb137e4e\u003c/code\u003e\u003c/a\u003e [mypyc] Speed up native-to-native imports within the same group (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21101\"\u003e#21101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/978b711c21adadf5dae4db80127ddf270d79af5f\"\u003e\u003ccode\u003e978b711\u003c/code\u003e\u003c/a\u003e [mypyc] Fix range loop variable off-by-one after loop exit (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21098\"\u003e#21098\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/67ada30918d1a32e1935e9ac468113e0aa002b79\"\u003e\u003ccode\u003e67ada30\u003c/code\u003e\u003c/a\u003e [stubtest] Check runtime availability of private types not marked `@type_chec...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/bdef6ef8734af07cab1bf0acadc1d8ab9add93c3\"\u003e\u003ccode\u003ebdef6ef\u003c/code\u003e\u003c/a\u003e librt cache tests: build respecting MYPY_TEST_PREFIX (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21097\"\u003e#21097\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.19.1...v1.20.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ty` from 0.0.12 to 0.0.27\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.27\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-03-31.\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix panic on debug builds when attempting to provide autocomplete suggestions for \u003ccode\u003elist[int]\u0026lt;CURSOR\u0026gt;()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24167\"\u003e#24167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix instance-attribute lookup in methods of protocol classes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24213\"\u003e#24213\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix nested global and nonlocal lookups through forwarding scopes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24279\"\u003e#24279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix panic on \u003ccode\u003elist[Annotated[()]]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24303\"\u003e#24303\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix stack overflow on \u003ccode\u003etype A = TypeIs[Callable[[], A]]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24245\"\u003e#24245\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003e_cls\u003c/code\u003e as the name of the first argument for synthesized \u003ccode\u003ecollections.namedtuple\u003c/code\u003e constructor methods (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24333\"\u003e#24333\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLSP server\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix semantic token classification for properties accessed on instances (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24065\"\u003e#24065\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGrey out unused bindings in the editor (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23305\"\u003e#23305\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCore type checking\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd bidirectional type context for TypedDict \u003ccode\u003eget()\u003c/code\u003e defaults (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24231\"\u003e#24231\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd bidirectional type context for TypedDict \u003ccode\u003epop()\u003c/code\u003e defaults (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24229\"\u003e#24229\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for functional TypedDict (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24174\"\u003e#24174\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24331\"\u003e#24331\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24295\"\u003e#24295\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBan type qualifiers in PEP-695 type aliases (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24242\"\u003e#24242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnforce \u003ccode\u003eFinal\u003c/code\u003e attribute assignment rules for annotated and augmented writes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23880\"\u003e#23880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove support for \u003ccode\u003eCallable\u003c/code\u003e type context (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23888\"\u003e#23888\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInfer lambda expressions with \u003ccode\u003eCallable\u003c/code\u003e type context (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22633\"\u003e#22633\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't incorrectly infer the type of a method as being a singleton type when it's accessed off an instance (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24039\"\u003e#24039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePropagate type context through \u003ccode\u003eawait\u003c/code\u003e expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24256\"\u003e#24256\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eResolve union-likes in emitting union attribute errors (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24263\"\u003e#24263\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eShow the user where the variable was declared as \u003ccode\u003eFinal\u003c/code\u003e when emitting a diagnostic about a \u003ccode\u003eFinal\u003c/code\u003e variable being reassigned (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24194\"\u003e#24194\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/carljm\"\u003e\u003ccode\u003e@​carljm\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\u003cli\u003e\u003ca href=\"https://github.com/oconnor663\"\u003e\u003ccode\u003e@​oconnor663\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/zanieb\"\u003e\u003ccode\u003e@​zanieb\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/Glyphack\"\u003e\u003ccode\u003e@​Glyphack\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/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ty 0.0.27\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003e\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/ty/blob/main/CHANGELOG.md\"\u003ety's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.27\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-03-31.\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix panic on debug builds when attempting to provide autocomplete suggestions for \u003ccode\u003elist[int]\u0026lt;CURSOR\u0026gt;()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24167\"\u003e#24167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix instance-attribute lookup in methods of protocol classes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24213\"\u003e#24213\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix nested global and nonlocal lookups through forwarding scopes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24279\"\u003e#24279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix panic on \u003ccode\u003elist[Annotated[()]]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24303\"\u003e#24303\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix stack overflow on \u003ccode\u003etype A = TypeIs[Callable[[], A]]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24245\"\u003e#24245\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003e_cls\u003c/code\u003e as the name of the first argument for synthesized \u003ccode\u003ecollections.namedtuple\u003c/code\u003e constructor methods (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24333\"\u003e#24333\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLSP server\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix semantic token classification for properties accessed on instances (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24065\"\u003e#24065\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGrey out unused bindings in the editor (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23305\"\u003e#23305\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCore type checking\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd bidirectional type context for TypedDict \u003ccode\u003eget()\u003c/code\u003e defaults (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24231\"\u003e#24231\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd bidirectional type context for TypedDict \u003ccode\u003epop()\u003c/code\u003e defaults (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24229\"\u003e#24229\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for functional TypedDict (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24174\"\u003e#24174\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24331\"\u003e#24331\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24295\"\u003e#24295\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBan type qualifiers in PEP-695 type aliases (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24242\"\u003e#24242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnforce \u003ccode\u003eFinal\u003c/code\u003e attribute assignment rules for annotated and augmented writes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23880\"\u003e#23880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove support for \u003ccode\u003eCallable\u003c/code\u003e type context (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23888\"\u003e#23888\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInfer lambda expressions with \u003ccode\u003eCallable\u003c/code\u003e type context (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22633\"\u003e#22633\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't incorrectly infer the type of a method as being a singleton type when it's accessed off an instance (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24039\"\u003e#24039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePropagate type context through \u003ccode\u003eawait\u003c/code\u003e expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24256\"\u003e#24256\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eResolve union-likes in emitting union attribute errors (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24263\"\u003e#24263\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eShow the user where the variable was declared as \u003ccode\u003eFinal\u003c/code\u003e when emitting a diagnostic about a \u003ccode\u003eFinal\u003c/code\u003e variable being reassigned (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24194\"\u003e#24194\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/carljm\"\u003e\u003ccode\u003e@​carljm\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\u003cli\u003e\u003ca href=\"https://github.com/oconnor663\"\u003e\u003ccode\u003e@​oconnor663\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/zanieb\"\u003e\u003ccode\u003e@​zanieb\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/Glyphack\"\u003e\u003ccode\u003e@​Glyphack\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/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.26\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-03-26.\u003c/p\u003e\n\u003ch3\u003eBug fixes\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/astral-sh/ty/commit/5c9e342c2ea67a0ac8749d32296dd3071974927a\"\u003e\u003ccode\u003e5c9e342\u003c/code\u003e\u003c/a\u003e Bump version to 0.0.27 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3185\"\u003e#3185\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/e6a57315251f37ab3516cb614f891ece91595393\"\u003e\u003ccode\u003ee6a5731\u003c/code\u003e\u003c/a\u003e Update actions/cache action to v5.0.4 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3172\"\u003e#3172\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/c47b982b86bb599d016af1d235174391f618ff16\"\u003e\u003ccode\u003ec47b982\u003c/code\u003e\u003c/a\u003e Update prek dependencies (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3173\"\u003e#3173\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/657abcfc82221440481f9c9b76c6b6a3b89d5d00\"\u003e\u003ccode\u003e657abcf\u003c/code\u003e\u003c/a\u003e Update astral-sh/setup-uv action to v8 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3174\"\u003e#3174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/9e582cb48e9c2306073091d554c04853091d612b\"\u003e\u003ccode\u003e9e582cb\u003c/code\u003e\u003c/a\u003e Fetch the cargo-dist binary directly instead of using the installer (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3160\"\u003e#3160\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/d5c51ea65be68cffcfa1afe204e5f6003fc06b02\"\u003e\u003ccode\u003ed5c51ea\u003c/code\u003e\u003c/a\u003e docs: use content tabs (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3146\"\u003e#3146\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/9893776cbd744bec84a43463728ab3813b00968f\"\u003e\u003ccode\u003e9893776\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/ty/issues/3147\"\u003e#3147\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/94030512727f4320e8184f120c4330ed8f42ec6f\"\u003e\u003ccode\u003e9403051\u003c/code\u003e\u003c/a\u003e Bump version to 0.0.26 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3145\"\u003e#3145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/d60899a14f6fe368e477c17f4205483aebdf84a8\"\u003e\u003ccode\u003ed60899a\u003c/code\u003e\u003c/a\u003e Bump version to 0.0.25 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3125\"\u003e#3125\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/db65b3e118a705be2694032fd2df613ea11565f1\"\u003e\u003ccode\u003edb65b3e\u003c/code\u003e\u003c/a\u003e Update documentation to reflect \u003ccode\u003etype:ignore\u003c/code\u003e changes (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3121\"\u003e#3121\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ty/compare/0.0.12...0.0.27\"\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.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\u003ch2\u003eVersion 7.13.4 — 2026-02-09\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the third-party code fix in 7.13.3 required examining the parent\ndirectories where coverage was run. In the unusual situation that one of the\nparent directories is unreadable, a PermissionError would occur, as\ndescribed in \u003ccode\u003eissue 2129\u003c/code\u003e_. This is now fixed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: in test suites that change sys.path, coverage.py could fail with\n\u0026quot;RuntimeError: Set changed size during iteration\u0026quot; as described and fixed in\n\u003ccode\u003epull 2130\u003c/code\u003e_. Thanks, Noah Fatsi.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWe now publish ppc64le wheels, thanks to \u003ccode\u003ePankhudi Jain \u0026lt;pull 2121_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _pull 2121: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2121\"\u003ecoveragepy/coveragepy#2121\u003c/a\u003e\n.. _issue 2129: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2129\"\u003ecoveragepy/coveragepy#2129\u003c/a\u003e\n.. _pull 2130: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2130\"\u003ecoveragepy/coveragepy#2130\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-3:\u003c/p\u003e\n\u003ch2\u003eVersion 7.13.3 — 2026-02-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: in some situations, third-party code was measured when it shouldn't have\nbeen, slowing down test execution. This happened with layered virtual\nenvironments such as uv sometimes makes. The problem is fixed, closing \u003ccode\u003eissue 2082\u003c/code\u003e_. Now any directory on sys.path that is inside a virtualenv is\nconsidered third-party code.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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.1...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-codspeed` from 4.2.0 to 4.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/releases\"\u003epytest-codspeed's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eThis release brings support for the \u003ca href=\"https://codspeed.io/docs/instruments/memory\"\u003e\u003cstrong\u003ememory instrument\u003c/strong\u003e\u003c/a\u003e, which enables you to track memory usage, heap allocations, and memory leaks in your benchmarks.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBump uv in CI from 0.5.20 to 0.9.5 by \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/95\"\u003eCodSpeedHQ/pytest-codspeed#95\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat/improve local walltime by \u003ca href=\"https://github.com/adriencaccia\"\u003e\u003ccode\u003e@​adriencaccia\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/97\"\u003eCodSpeedHQ/pytest-codspeed#97\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: rename instrumentation to simulation by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/98\"\u003eCodSpeedHQ/pytest-codspeed#98\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePin python in ci integration tests to prevent intermitent codspeed segfaults in walltime by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/105\"\u003eCodSpeedHQ/pytest-codspeed#105\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add memory profiling support by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/103\"\u003eCodSpeedHQ/pytest-codspeed#103\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add .gitignore to .codspeed folder on creation by \u003ca href=\"https://github.com/art049\"\u003e\u003ccode\u003e@​art049\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/107\"\u003eCodSpeedHQ/pytest-codspeed#107\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/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/98\"\u003eCodSpeedHQ/pytest-codspeed#98\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v4.2.0...v4.3.0\"\u003ehttps://github.com/CodSpeedHQ/pytest-codspeed/compare/v4.2.0...v4.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/CodSpeedHQ/pytest-codspeed/blob/master/CHANGELOG.md\"\u003epytest-codspeed's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[4.3.0] - 2026-02-09\u003c/h2\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd .gitignore to .codspeed folder on creation (\u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/issues/107\"\u003e#107\u003c/a\u003e) by \u003ca href=\"https://github.com/art049\"\u003e\u003ccode\u003e@​art049\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/107\"\u003e#107\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport memory profiling by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRename instrumentation to simulation by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/98\"\u003e#98\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove time unit display in local walltime by \u003ca href=\"https://github.com/adriencaccia\"\u003e\u003ccode\u003e@​adriencaccia\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch to OIDC token by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003c!-- raw HTML omitted --\u003e⚙️ Internals\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse github runner instead of buildjet by \u003ca href=\"https://github.com/art049\"\u003e\u003ccode\u003e@​art049\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnable memory profiling by \u003ca href=\"https://github.com/not-matthias\"\u003e\u003ccode\u003e@​not-matthias\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/103\"\u003e#103\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePin python to 3.14.2 in CI to prevent walltime crashes by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/105\"\u003e#105\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd comment about uv pinning by \u003ca href=\"https://github.com/GuillaumeLagrange\"\u003e\u003ccode\u003e@​GuillaumeLagrange\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd comment to explain results storing in .codspeed folder by \u003ca href=\"https://github.com/adriencaccia\"\u003e\u003ccode\u003e@​adriencaccia\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/pull/97\"\u003e#97\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd 3.14 to the list of supported python versions by \u003ca href=\"https://github.com/adriencaccia\"\u003e\u003ccode\u003e@​adriencaccia\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/a24abfe8f2e4c789d961daa90b47c082ad6e6f96\"\u003e\u003ccode\u003ea24abfe\u003c/code\u003e\u003c/a\u003e Release v4.3.0 🚀\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/748f2ddc0af84e53bb992f6588d8acbe688a95d2\"\u003e\u003ccode\u003e748f2dd\u003c/code\u003e\u003c/a\u003e ci: use github runner instead of buildjet\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/66e54c83bf4cc0fefc21c369f2cfac00530cfda8\"\u003e\u003ccode\u003e66e54c8\u003c/code\u003e\u003c/a\u003e feat: add .gitignore to .codspeed folder on creation (\u003ca href=\"https://redirect.github.com/CodSpeedHQ/pytest-codspeed/issues/107\"\u003e#107\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/36f59306ed2341d8eb9647cf3ab471478b43c1fb\"\u003e\u003ccode\u003e36f5930\u003c/code\u003e\u003c/a\u003e chore(ci): enable memory profiling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/8ce65af09d12dd9ccf8adce82b759e541268a672\"\u003e\u003ccode\u003e8ce65af\u003c/code\u003e\u003c/a\u003e feat: support memory profiling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/4df4f8c3b56b48e8952ccab6c54fe96f970a7659\"\u003e\u003ccode\u003e4df4f8c\u003c/code\u003e\u003c/a\u003e fix(ci): switch to OIDC token\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/c3a194a79a148f02fb5fdd1628b9b934fd39f859\"\u003e\u003ccode\u003ec3a194a\u003c/code\u003e\u003c/a\u003e chore: pin python to 3.14.2 in CI to prevent walltime crashes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/adee8a12aa89dd2173a1e7b588cfd9147ee1769b\"\u003e\u003ccode\u003eadee8a1\u003c/code\u003e\u003c/a\u003e feat: rename instrumentation to simulation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/08e0519e579b3bf8d56c1fa368ccaf6cbda1aa0d\"\u003e\u003ccode\u003e08e0519\u003c/code\u003e\u003c/a\u003e chore: add comment about uv pinning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/commit/bb84077c947d27c53e0336cfedcf1dc90a305d41\"\u003e\u003ccode\u003ebb84077\u003c/code\u003e\u003c/a\u003e chore: add comment to explain results storing in .codspeed folder\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/CodSpeedHQ/pytest-codspeed/compare/v4.2.0...v4.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-autoapi` from 3.6.1 to 3.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/releases\"\u003esphinx-autoapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.8.0\u003c/h2\u003e\n\u003ch1\u003eFeatures\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAutodoc-style directives can access members excluded by autoapi_options\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eMisc\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/readthedocs/sphinx-autoapi/issues/553\"\u003e#553\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev3.7.0\u003c/h2\u003e\n\u003ch1\u003eFeatures\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded autoapi.import warning for when AutoAPI directives are given non-existent objects\u003c/li\u003e\n\u003cli\u003eAdding autoapi_follow_symlinks, which allows api to traverse into symlinked directories when generating the API documentation.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9 and officially support Python 3.14\u003c/li\u003e\n\u003cli\u003eSupport rendering PEP-695 type parameters\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eBugfixes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRender typing_extensions.TypeAlias like other type aliases (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx-autoapi/issues/520\"\u003e#520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix PythonFunction.overloads typing when source code overload(s) do not provide a return type (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx-autoapi/issues/523\"\u003e#523\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eMisc\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix deprecation warnings raised by astroid and sphinx\u003c/li\u003e\n\u003cli\u003eHandling case where match returns None to fix mypy unit test.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/blob/main/CHANGELOG.rst\"\u003esphinx-autoapi's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.8.0 (2026-03-07)\u003c/h2\u003e\n\u003cp\u003eFeatures\n^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAutodoc-style directives can access members excluded by autoapi_options\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eMisc\n^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/readthedocs/sphinx-autoapi/issues/553\"\u003e#553\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev3.7.0 (2026-02-10)\u003c/h2\u003e\n\u003cp\u003eFeatures\n^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded autoapi.import warning for when AutoAPI directives are given non-existent objects\u003c/li\u003e\n\u003cli\u003eAdding \u003ccode\u003eautoapi_follow_symlinks\u003c/code\u003e, which allows api to traverse into symlinked directories when generating the API documentation.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9 and officially support Python 3.14\u003c/li\u003e\n\u003cli\u003eSupport rendering PEP-695 type parameters\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes\n^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRender typing_extensions.TypeAlias like other type aliases (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx-autoapi/issues/520\"\u003e#520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ePythonFunction.overloads\u003c/code\u003e typing when source code overload(s) do not provide a return type (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx-autoapi/issues/523\"\u003e#523\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eMisc\n^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix deprecation warnings raised by astroid and sphinx\u003c/li\u003e\n\u003cli\u003eHandling case where match returns None to fix mypy unit test.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/75cbffdea08771a0c574814053359b28dc7dfe85\"\u003e\u003ccode\u003e75cbffd\u003c/code\u003e\u003c/a\u003e Version 3.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/7838cf6937000a84ca8cb13a7d76e03b0084a7f3\"\u003e\u003ccode\u003e7838cf6\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/readthedocs/sphinx-autoapi/commit/f1cdd302336455bee67a6dbc9ea2742fad17a756\"\u003e\u003ccode\u003ef1cdd30\u003c/code\u003e\u003c/a\u003e Attempt to fix macos-latest build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/34bb24ccc9de3be61c63a9c8b38458d06ea11eb3\"\u003e\u003ccode\u003e34bb24c\u003c/code\u003e\u003c/a\u003e Autodoc-style directives can access members excluded by autoapi_options\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/ccb2e898cb8b3becf04eba76f5449e29d336215e\"\u003e\u003ccode\u003eccb2e89\u003c/code\u003e\u003c/a\u003e astroid requirement is consistent across all versions of Python\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/0917ed2d4a42fa4ddd3668247d10ca6d902d7ada\"\u003e\u003ccode\u003e0917ed2\u003c/code\u003e\u003c/a\u003e Version 3.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/394beb453256c9c15a30cb5851682fed2a844fc4\"\u003e\u003ccode\u003e394beb4\u003c/code\u003e\u003c/a\u003e Add warning for missing import\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/96cd74d1a015a05bf4409a73b173dcdf8421902a\"\u003e\u003ccode\u003e96cd74d\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/c248b85d66c233a4673c64944bdeeb394be5116a\"\u003e\u003ccode\u003ec248b85\u003c/code\u003e\u003c/a\u003e Render typing_extensions.TypeAlias like other type aliases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/a2f49c9689ba76d5518c33fb509c57b5141342df\"\u003e\u003ccode\u003ea2f49c9\u003c/code\u003e\u003c/a\u003e Fix deprecation warnings raised by astroid and sphinx\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/compare/v3.6.1...v3.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot 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/letsbuilda/imsosorry/pull/146","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/letsbuilda%2Fimsosorry/issues/146","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/146/packages"}},{"old_version":"2025.11.12","new_version":"2026.2.9","update_type":"major","path":"/.github/workflows","pr_created_at":"2026-03-16T04:19:40.000Z","version_change":"2025.11.12 → 2026.2.9","issue":{"uuid":"4080126273","node_id":"PR_kwDOMCX0T87KzWCV","number":99,"state":"closed","title":"Bump nox from 2025.11.12 to 2026.2.9 in /.github/workflows","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-03-16T11:49:35.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-16T04:19:40.000Z","updated_at":"2026-03-16T11:49:36.000Z","time_to_close":26995,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"nox","old_version":"2025.11.12","new_version":"2026.2.9","repository_url":"https://github.com/wntrblm/nox"}],"path":"/.github/workflows","ecosystem":"pip"},"body":"Bumps [nox](https://github.com/wntrblm/nox) from 2025.11.12 to 2026.2.9.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/wntrblm/nox/releases\"\u003enox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2026.02.09 ❤️‍🩹\u003c/h2\u003e\n\u003cp\u003eThis small release supports uv 0.10's new requirement that \u003ccode\u003e--clear\u003c/code\u003e be passed to clear an environment. Python 3.8 support was temporarily re-added since uv 0.10 still supports 3.8, so nox on 3.8 was affected.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport uv 0.10.0 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1055\"\u003ewntrblm/nox#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow tags by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1058\"\u003ewntrblm/nox#1058\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter support for multiple session decorators by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1048\"\u003ewntrblm/nox#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize extra \u003ccode\u003etox-to-nox\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/wntrblm/nox/pull/1059\"\u003ewntrblm/nox#1059\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter typing for \u003ccode\u003e.run\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/wntrblm/nox/pull/1037\"\u003ewntrblm/nox#1037\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix conda CI job by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1035\"\u003ewntrblm/nox#1035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1004\"\u003ewntrblm/nox#1004\u003c/a\u003e and revert in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1060\"\u003ewntrblm/nox#1060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix action test by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1036\"\u003ewntrblm/nox#1036\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump packaging dep to remove pyparsing by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1047\"\u003ewntrblm/nox#1047\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid newest docutils until sphinx-tabs updates by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1052\"\u003ewntrblm/nox#1052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize the naming of constants to enhance readability by \u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1041\"\u003ewntrblm/nox#1041\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDuplicated session name in cookbook by \u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1050\"\u003ewntrblm/nox#1050\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/wntrblm/nox/blob/main/CHANGELOG.md\"\u003enox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003e2026.02.09\u003c/h2\u003e\n\u003cp\u003eThis small release supports uv 0.10's new requirement that \u003ccode\u003e--clear\u003c/code\u003e be passed\nto clear an environment. Python 3.8 support was temporarily re-added since uv\n0.10 still supports 3.8, so nox on 3.8 was affected.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport uv 0.10.0 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1055\"\u003ewntrblm/nox#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow tags by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1058\"\u003ewntrblm/nox#1058\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter support for multiple session decorators by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1048\"\u003ewntrblm/nox#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize extra \u003ccode\u003etox-to-nox\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/wntrblm/nox/pull/1059\"\u003ewntrblm/nox#1059\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter typing for \u003ccode\u003e.run\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/wntrblm/nox/pull/1037\"\u003ewntrblm/nox#1037\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix conda CI job by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1035\"\u003ewntrblm/nox#1035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1004\"\u003ewntrblm/nox#1004\u003c/a\u003e and revert in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1060\"\u003ewntrblm/nox#1060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix action test by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1036\"\u003ewntrblm/nox#1036\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump packaging dep to remove pyparsing by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1047\"\u003ewntrblm/nox#1047\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid newest docutils until sphinx-tabs updates by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1052\"\u003ewntrblm/nox#1052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize the naming of constants to enhance readability by \u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1041\"\u003ewntrblm/nox#1041\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDuplicated session name in cookbook by \u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1050\"\u003ewntrblm/nox#1050\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/wntrblm/nox/commit/5a277b752f6094150e25237d47c34168e2b7526e\"\u003e\u003ccode\u003e5a277b7\u003c/code\u003e\u003c/a\u003e docs: prepare for release (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1061\"\u003e#1061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/90a8aef54122e188dbea80680552507517523ced\"\u003e\u003ccode\u003e90a8aef\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;feat: drop Python 3.8 (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1004\"\u003e#1004\u003c/a\u003e)\u0026quot; (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1060\"\u003e#1060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/264f4577846b30c3f84bb313c8d3f5c497ab7cce\"\u003e\u003ccode\u003e264f457\u003c/code\u003e\u003c/a\u003e chore: normalize extra (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1059\"\u003e#1059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/516d9bc3e134d7fe0f6a370c64a9c52b74a18a85\"\u003e\u003ccode\u003e516d9bc\u003c/code\u003e\u003c/a\u003e fix: show tags (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1058\"\u003e#1058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/7207b3fbde52febfa72a29141440179219b9f272\"\u003e\u003ccode\u003e7207b3f\u003c/code\u003e\u003c/a\u003e fix: support uv 0.10.0 (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/11eee27ceb73fb77a8b4351718ef5e14821155ee\"\u003e\u003ccode\u003e11eee27\u003c/code\u003e\u003c/a\u003e fix: better support for multiple session decorators (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1048\"\u003e#1048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/c72769b1ee7bc729c08c93f518e536364cecee8e\"\u003e\u003ccode\u003ec72769b\u003c/code\u003e\u003c/a\u003e docs: duplicated session name in cookbook (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1050\"\u003e#1050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/a0660b17967de97c10f56b12f67cc5667e79bb08\"\u003e\u003ccode\u003ea0660b1\u003c/code\u003e\u003c/a\u003e docs: avoid newest docutils until sphinx-tabs updates (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1052\"\u003e#1052\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/f8edf5fec2c819ec502566d2005a8346c9363334\"\u003e\u003ccode\u003ef8edf5f\u003c/code\u003e\u003c/a\u003e fix(types): Better typing for .run (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1037\"\u003e#1037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/5dbd95e82f43d05dfd1c60bd296d203f34108ee3\"\u003e\u003ccode\u003e5dbd95e\u003c/code\u003e\u003c/a\u003e chore: optimize the naming of constants to enhance readability (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1041\"\u003e#1041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/wntrblm/nox/compare/2025.11.12...2026.02.09\"\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=nox\u0026package-manager=pip\u0026previous-version=2025.11.12\u0026new-version=2026.2.9)](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/jantman/machine-access-control/pull/99","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/jantman%2Fmachine-access-control/issues/99","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/99/packages"}},{"old_version":"^2025.0.0","new_version":"^2026.2.9","update_type":"minor","path":null,"pr_created_at":"2026-03-01T21:39:23.000Z","version_change":"^2025.0.0 → ^2026.2.9","issue":{"uuid":"4008335423","node_id":"PR_kwDON1o1Q87HLyXD","number":95,"state":"open","title":"chore(deps-dev): update nox requirement from ^2025.0.0 to ^2026.2.9","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-03-01T21:39:23.000Z","updated_at":"2026-03-01T21:48:34.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps-dev): update","packages":[{"name":"nox","old_version":"^2025.0.0","new_version":"^2026.2.9","repository_url":"https://github.com/wntrblm/nox"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [nox](https://github.com/wntrblm/nox) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/wntrblm/nox/blob/main/CHANGELOG.md\"\u003enox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003e2026.02.09\u003c/h2\u003e\n\u003cp\u003eThis small release supports uv 0.10's new requirement that \u003ccode\u003e--clear\u003c/code\u003e be passed\nto clear an environment. Python 3.8 support was temporarily re-added since uv\n0.10 still supports 3.8, so nox on 3.8 was affected.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport uv 0.10.0 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1055\"\u003ewntrblm/nox#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow tags by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1058\"\u003ewntrblm/nox#1058\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter support for multiple session decorators by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1048\"\u003ewntrblm/nox#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize extra \u003ccode\u003etox-to-nox\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/wntrblm/nox/pull/1059\"\u003ewntrblm/nox#1059\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter typing for \u003ccode\u003e.run\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/wntrblm/nox/pull/1037\"\u003ewntrblm/nox#1037\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix conda CI job by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1035\"\u003ewntrblm/nox#1035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1004\"\u003ewntrblm/nox#1004\u003c/a\u003e and revert in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1060\"\u003ewntrblm/nox#1060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix action test by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1036\"\u003ewntrblm/nox#1036\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump packaging dep to remove pyparsing by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1047\"\u003ewntrblm/nox#1047\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid newest docutils until sphinx-tabs updates by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1052\"\u003ewntrblm/nox#1052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize the naming of constants to enhance readability by \u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1041\"\u003ewntrblm/nox#1041\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDuplicated session name in cookbook by \u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1050\"\u003ewntrblm/nox#1050\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2025.11.12\u003c/h2\u003e\n\u003cp\u003eThis is a small release to fix a warning when running in script mode before we\ndrop Python 3.8.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid warnings when running in script mode by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1025\"\u003ewntrblm/nox#1025\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/wntrblm/nox/commit/5a277b752f6094150e25237d47c34168e2b7526e\"\u003e\u003ccode\u003e5a277b7\u003c/code\u003e\u003c/a\u003e docs: prepare for release (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1061\"\u003e#1061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/90a8aef54122e188dbea80680552507517523ced\"\u003e\u003ccode\u003e90a8aef\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;feat: drop Python 3.8 (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1004\"\u003e#1004\u003c/a\u003e)\u0026quot; (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1060\"\u003e#1060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/264f4577846b30c3f84bb313c8d3f5c497ab7cce\"\u003e\u003ccode\u003e264f457\u003c/code\u003e\u003c/a\u003e chore: normalize extra (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1059\"\u003e#1059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/516d9bc3e134d7fe0f6a370c64a9c52b74a18a85\"\u003e\u003ccode\u003e516d9bc\u003c/code\u003e\u003c/a\u003e fix: show tags (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1058\"\u003e#1058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/7207b3fbde52febfa72a29141440179219b9f272\"\u003e\u003ccode\u003e7207b3f\u003c/code\u003e\u003c/a\u003e fix: support uv 0.10.0 (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/11eee27ceb73fb77a8b4351718ef5e14821155ee\"\u003e\u003ccode\u003e11eee27\u003c/code\u003e\u003c/a\u003e fix: better support for multiple session decorators (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1048\"\u003e#1048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/c72769b1ee7bc729c08c93f518e536364cecee8e\"\u003e\u003ccode\u003ec72769b\u003c/code\u003e\u003c/a\u003e docs: duplicated session name in cookbook (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1050\"\u003e#1050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/a0660b17967de97c10f56b12f67cc5667e79bb08\"\u003e\u003ccode\u003ea0660b1\u003c/code\u003e\u003c/a\u003e docs: avoid newest docutils until sphinx-tabs updates (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1052\"\u003e#1052\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/f8edf5fec2c819ec502566d2005a8346c9363334\"\u003e\u003ccode\u003ef8edf5f\u003c/code\u003e\u003c/a\u003e fix(types): Better typing for .run (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1037\"\u003e#1037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/5dbd95e82f43d05dfd1c60bd296d203f34108ee3\"\u003e\u003ccode\u003e5dbd95e\u003c/code\u003e\u003c/a\u003e chore: optimize the naming of constants to enhance readability (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1041\"\u003e#1041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/wntrblm/nox/compare/2025.02.09...2026.02.09\"\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/LSST-AGN-Variability/EzTaoX/pull/95","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/LSST-AGN-Variability%2FEzTaoX/issues/95","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/95/packages"}},{"old_version":"~=2025.05","new_version":"\u003e=2025.5,\u003c2027.0","update_type":null,"path":null,"pr_created_at":"2026-03-01T16:02:57.000Z","version_change":"~=2025.05 → \u003e=2025.5,\u003c2027.0","issue":{"uuid":"4007579442","node_id":"PR_kwDOFf9KHM7HJWRk","number":218,"state":"closed","title":"Update nox requirement from ~=2025.05 to \u003e=2025.5,\u003c2027.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-03-02T00:53:37.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-01T16:02:57.000Z","updated_at":"2026-03-02T00:53:45.000Z","time_to_close":31840,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Update","packages":[{"name":"nox","old_version":"~=2025.05","new_version":"\u003e=2025.5,\u003c2027.0","repository_url":"https://github.com/wntrblm/nox"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [nox](https://github.com/wntrblm/nox) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/wntrblm/nox/blob/main/CHANGELOG.md\"\u003enox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003e2026.02.09\u003c/h2\u003e\n\u003cp\u003eThis small release supports uv 0.10's new requirement that \u003ccode\u003e--clear\u003c/code\u003e be passed\nto clear an environment. Python 3.8 support was temporarily re-added since uv\n0.10 still supports 3.8, so nox on 3.8 was affected.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport uv 0.10.0 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1055\"\u003ewntrblm/nox#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow tags by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1058\"\u003ewntrblm/nox#1058\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter support for multiple session decorators by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1048\"\u003ewntrblm/nox#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize extra \u003ccode\u003etox-to-nox\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/wntrblm/nox/pull/1059\"\u003ewntrblm/nox#1059\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter typing for \u003ccode\u003e.run\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/wntrblm/nox/pull/1037\"\u003ewntrblm/nox#1037\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix conda CI job by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1035\"\u003ewntrblm/nox#1035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1004\"\u003ewntrblm/nox#1004\u003c/a\u003e and revert in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1060\"\u003ewntrblm/nox#1060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix action test by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1036\"\u003ewntrblm/nox#1036\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump packaging dep to remove pyparsing by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1047\"\u003ewntrblm/nox#1047\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid newest docutils until sphinx-tabs updates by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1052\"\u003ewntrblm/nox#1052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize the naming of constants to enhance readability by \u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1041\"\u003ewntrblm/nox#1041\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDuplicated session name in cookbook by \u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1050\"\u003ewntrblm/nox#1050\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2025.11.12\u003c/h2\u003e\n\u003cp\u003eThis is a small release to fix a warning when running in script mode before we\ndrop Python 3.8.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid warnings when running in script mode by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1025\"\u003ewntrblm/nox#1025\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/wntrblm/nox/commit/5a277b752f6094150e25237d47c34168e2b7526e\"\u003e\u003ccode\u003e5a277b7\u003c/code\u003e\u003c/a\u003e docs: prepare for release (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1061\"\u003e#1061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/90a8aef54122e188dbea80680552507517523ced\"\u003e\u003ccode\u003e90a8aef\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;feat: drop Python 3.8 (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1004\"\u003e#1004\u003c/a\u003e)\u0026quot; (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1060\"\u003e#1060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/264f4577846b30c3f84bb313c8d3f5c497ab7cce\"\u003e\u003ccode\u003e264f457\u003c/code\u003e\u003c/a\u003e chore: normalize extra (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1059\"\u003e#1059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/516d9bc3e134d7fe0f6a370c64a9c52b74a18a85\"\u003e\u003ccode\u003e516d9bc\u003c/code\u003e\u003c/a\u003e fix: show tags (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1058\"\u003e#1058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/7207b3fbde52febfa72a29141440179219b9f272\"\u003e\u003ccode\u003e7207b3f\u003c/code\u003e\u003c/a\u003e fix: support uv 0.10.0 (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/11eee27ceb73fb77a8b4351718ef5e14821155ee\"\u003e\u003ccode\u003e11eee27\u003c/code\u003e\u003c/a\u003e fix: better support for multiple session decorators (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1048\"\u003e#1048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/c72769b1ee7bc729c08c93f518e536364cecee8e\"\u003e\u003ccode\u003ec72769b\u003c/code\u003e\u003c/a\u003e docs: duplicated session name in cookbook (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1050\"\u003e#1050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/a0660b17967de97c10f56b12f67cc5667e79bb08\"\u003e\u003ccode\u003ea0660b1\u003c/code\u003e\u003c/a\u003e docs: avoid newest docutils until sphinx-tabs updates (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1052\"\u003e#1052\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/f8edf5fec2c819ec502566d2005a8346c9363334\"\u003e\u003ccode\u003ef8edf5f\u003c/code\u003e\u003c/a\u003e fix(types): Better typing for .run (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1037\"\u003e#1037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/5dbd95e82f43d05dfd1c60bd296d203f34108ee3\"\u003e\u003ccode\u003e5dbd95e\u003c/code\u003e\u003c/a\u003e chore: optimize the naming of constants to enhance readability (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1041\"\u003e#1041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/wntrblm/nox/compare/2025.05.01...2026.02.09\"\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/pyinat/pyinaturalist-convert/pull/218","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyinat%2Fpyinaturalist-convert/issues/218","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/218/packages"}},{"old_version":"2025.11.12","new_version":"2026.2.9","update_type":"major","path":null,"pr_created_at":"2026-03-01T11:11:02.000Z","version_change":"2025.11.12 → 2026.2.9","issue":{"uuid":"4006941513","node_id":"PR_kwDOQm-Fac7HHRmH","number":27,"state":"closed","title":"build(deps-dev): Bump nox from 2025.11.12 to 2026.2.9","user":"dependabot[bot]","labels":["part:tooling","tool:auto-merged"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-03-01T11:11:14.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-01T11:11:02.000Z","updated_at":"2026-03-01T11:11:22.000Z","time_to_close":12,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps-dev): Bump","packages":[{"name":"nox","old_version":"2025.11.12","new_version":"2026.2.9","repository_url":"https://github.com/wntrblm/nox"}],"path":null,"ecosystem":"pip"},"body":"Bumps [nox](https://github.com/wntrblm/nox) from 2025.11.12 to 2026.2.9.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/wntrblm/nox/releases\"\u003enox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2026.02.09 ❤️‍🩹\u003c/h2\u003e\n\u003cp\u003eThis small release supports uv 0.10's new requirement that \u003ccode\u003e--clear\u003c/code\u003e be passed to clear an environment. Python 3.8 support was temporarily re-added since uv 0.10 still supports 3.8, so nox on 3.8 was affected.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport uv 0.10.0 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1055\"\u003ewntrblm/nox#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow tags by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1058\"\u003ewntrblm/nox#1058\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter support for multiple session decorators by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1048\"\u003ewntrblm/nox#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize extra \u003ccode\u003etox-to-nox\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/wntrblm/nox/pull/1059\"\u003ewntrblm/nox#1059\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter typing for \u003ccode\u003e.run\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/wntrblm/nox/pull/1037\"\u003ewntrblm/nox#1037\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix conda CI job by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1035\"\u003ewntrblm/nox#1035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1004\"\u003ewntrblm/nox#1004\u003c/a\u003e and revert in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1060\"\u003ewntrblm/nox#1060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix action test by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1036\"\u003ewntrblm/nox#1036\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump packaging dep to remove pyparsing by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1047\"\u003ewntrblm/nox#1047\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid newest docutils until sphinx-tabs updates by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1052\"\u003ewntrblm/nox#1052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize the naming of constants to enhance readability by \u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1041\"\u003ewntrblm/nox#1041\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDuplicated session name in cookbook by \u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1050\"\u003ewntrblm/nox#1050\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/wntrblm/nox/blob/main/CHANGELOG.md\"\u003enox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003e2026.02.09\u003c/h2\u003e\n\u003cp\u003eThis small release supports uv 0.10's new requirement that \u003ccode\u003e--clear\u003c/code\u003e be passed\nto clear an environment. Python 3.8 support was temporarily re-added since uv\n0.10 still supports 3.8, so nox on 3.8 was affected.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport uv 0.10.0 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1055\"\u003ewntrblm/nox#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow tags by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1058\"\u003ewntrblm/nox#1058\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter support for multiple session decorators by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1048\"\u003ewntrblm/nox#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize extra \u003ccode\u003etox-to-nox\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/wntrblm/nox/pull/1059\"\u003ewntrblm/nox#1059\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter typing for \u003ccode\u003e.run\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/wntrblm/nox/pull/1037\"\u003ewntrblm/nox#1037\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix conda CI job by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1035\"\u003ewntrblm/nox#1035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1004\"\u003ewntrblm/nox#1004\u003c/a\u003e and revert in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1060\"\u003ewntrblm/nox#1060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix action test by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1036\"\u003ewntrblm/nox#1036\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump packaging dep to remove pyparsing by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1047\"\u003ewntrblm/nox#1047\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid newest docutils until sphinx-tabs updates by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1052\"\u003ewntrblm/nox#1052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize the naming of constants to enhance readability by \u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1041\"\u003ewntrblm/nox#1041\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDuplicated session name in cookbook by \u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1050\"\u003ewntrblm/nox#1050\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/wntrblm/nox/commit/5a277b752f6094150e25237d47c34168e2b7526e\"\u003e\u003ccode\u003e5a277b7\u003c/code\u003e\u003c/a\u003e docs: prepare for release (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1061\"\u003e#1061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/90a8aef54122e188dbea80680552507517523ced\"\u003e\u003ccode\u003e90a8aef\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;feat: drop Python 3.8 (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1004\"\u003e#1004\u003c/a\u003e)\u0026quot; (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1060\"\u003e#1060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/264f4577846b30c3f84bb313c8d3f5c497ab7cce\"\u003e\u003ccode\u003e264f457\u003c/code\u003e\u003c/a\u003e chore: normalize extra (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1059\"\u003e#1059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/516d9bc3e134d7fe0f6a370c64a9c52b74a18a85\"\u003e\u003ccode\u003e516d9bc\u003c/code\u003e\u003c/a\u003e fix: show tags (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1058\"\u003e#1058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/7207b3fbde52febfa72a29141440179219b9f272\"\u003e\u003ccode\u003e7207b3f\u003c/code\u003e\u003c/a\u003e fix: support uv 0.10.0 (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/11eee27ceb73fb77a8b4351718ef5e14821155ee\"\u003e\u003ccode\u003e11eee27\u003c/code\u003e\u003c/a\u003e fix: better support for multiple session decorators (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1048\"\u003e#1048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/c72769b1ee7bc729c08c93f518e536364cecee8e\"\u003e\u003ccode\u003ec72769b\u003c/code\u003e\u003c/a\u003e docs: duplicated session name in cookbook (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1050\"\u003e#1050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/a0660b17967de97c10f56b12f67cc5667e79bb08\"\u003e\u003ccode\u003ea0660b1\u003c/code\u003e\u003c/a\u003e docs: avoid newest docutils until sphinx-tabs updates (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1052\"\u003e#1052\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/f8edf5fec2c819ec502566d2005a8346c9363334\"\u003e\u003ccode\u003ef8edf5f\u003c/code\u003e\u003c/a\u003e fix(types): Better typing for .run (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1037\"\u003e#1037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/5dbd95e82f43d05dfd1c60bd296d203f34108ee3\"\u003e\u003ccode\u003e5dbd95e\u003c/code\u003e\u003c/a\u003e chore: optimize the naming of constants to enhance readability (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1041\"\u003e#1041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/wntrblm/nox/compare/2025.11.12...2026.02.09\"\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=nox\u0026package-manager=pip\u0026previous-version=2025.11.12\u0026new-version=2026.2.9)](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/Marenz/frequenz-client-marketmetering-python-standalone-backup/pull/27","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Marenz%2Ffrequenz-client-marketmetering-python-standalone-backup/issues/27","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/27/packages"}},{"old_version":"2025.11.12","new_version":"2026.2.9","update_type":"major","path":null,"pr_created_at":"2026-03-01T10:38:20.000Z","version_change":"2025.11.12 → 2026.2.9","issue":{"uuid":"4006884747","node_id":"PR_kwDOOllBds7HHGRo","number":43,"state":"open","title":"Bump the python-dependencies group with 4 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-03-01T10:38:20.000Z","updated_at":"2026-03-01T10:42:48.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-dependencies","update_count":4,"packages":[{"name":"nox","old_version":"2025.11.12","new_version":"2026.2.9","repository_url":"https://github.com/wntrblm/nox"},{"name":"ruff","old_version":"0.14.14","new_version":"0.15.2","repository_url":"https://github.com/astral-sh/ruff"},{"name":"sphinx-autoapi","old_version":"3.6.1","new_version":"3.7.0","repository_url":"https://github.com/readthedocs/sphinx-autoapi"},{"name":"coverage","old_version":"7.13.3","new_version":"7.13.4","repository_url":"https://github.com/coveragepy/coveragepy"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-dependencies group with 4 updates: [nox](https://github.com/wntrblm/nox), [ruff](https://github.com/astral-sh/ruff), [sphinx-autoapi](https://github.com/readthedocs/sphinx-autoapi) and [coverage](https://github.com/coveragepy/coveragepy).\n\nUpdates `nox` from 2025.11.12 to 2026.2.9\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/wntrblm/nox/releases\"\u003enox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2026.02.09 ❤️‍🩹\u003c/h2\u003e\n\u003cp\u003eThis small release supports uv 0.10's new requirement that \u003ccode\u003e--clear\u003c/code\u003e be passed to clear an environment. Python 3.8 support was temporarily re-added since uv 0.10 still supports 3.8, so nox on 3.8 was affected.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport uv 0.10.0 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1055\"\u003ewntrblm/nox#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow tags by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1058\"\u003ewntrblm/nox#1058\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter support for multiple session decorators by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1048\"\u003ewntrblm/nox#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize extra \u003ccode\u003etox-to-nox\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/wntrblm/nox/pull/1059\"\u003ewntrblm/nox#1059\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter typing for \u003ccode\u003e.run\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/wntrblm/nox/pull/1037\"\u003ewntrblm/nox#1037\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix conda CI job by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1035\"\u003ewntrblm/nox#1035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1004\"\u003ewntrblm/nox#1004\u003c/a\u003e and revert in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1060\"\u003ewntrblm/nox#1060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix action test by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1036\"\u003ewntrblm/nox#1036\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump packaging dep to remove pyparsing by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1047\"\u003ewntrblm/nox#1047\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid newest docutils until sphinx-tabs updates by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1052\"\u003ewntrblm/nox#1052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize the naming of constants to enhance readability by \u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1041\"\u003ewntrblm/nox#1041\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDuplicated session name in cookbook by \u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1050\"\u003ewntrblm/nox#1050\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/wntrblm/nox/blob/main/CHANGELOG.md\"\u003enox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003e2026.02.09\u003c/h2\u003e\n\u003cp\u003eThis small release supports uv 0.10's new requirement that \u003ccode\u003e--clear\u003c/code\u003e be passed\nto clear an environment. Python 3.8 support was temporarily re-added since uv\n0.10 still supports 3.8, so nox on 3.8 was affected.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport uv 0.10.0 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1055\"\u003ewntrblm/nox#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow tags by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1058\"\u003ewntrblm/nox#1058\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter support for multiple session decorators by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1048\"\u003ewntrblm/nox#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize extra \u003ccode\u003etox-to-nox\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/wntrblm/nox/pull/1059\"\u003ewntrblm/nox#1059\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter typing for \u003ccode\u003e.run\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/wntrblm/nox/pull/1037\"\u003ewntrblm/nox#1037\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix conda CI job by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1035\"\u003ewntrblm/nox#1035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1004\"\u003ewntrblm/nox#1004\u003c/a\u003e and revert in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1060\"\u003ewntrblm/nox#1060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix action test by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1036\"\u003ewntrblm/nox#1036\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump packaging dep to remove pyparsing by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1047\"\u003ewntrblm/nox#1047\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid newest docutils until sphinx-tabs updates by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1052\"\u003ewntrblm/nox#1052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize the naming of constants to enhance readability by \u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1041\"\u003ewntrblm/nox#1041\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDuplicated session name in cookbook by \u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1050\"\u003ewntrblm/nox#1050\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/wntrblm/nox/commit/5a277b752f6094150e25237d47c34168e2b7526e\"\u003e\u003ccode\u003e5a277b7\u003c/code\u003e\u003c/a\u003e docs: prepare for release (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1061\"\u003e#1061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/90a8aef54122e188dbea80680552507517523ced\"\u003e\u003ccode\u003e90a8aef\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;feat: drop Python 3.8 (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1004\"\u003e#1004\u003c/a\u003e)\u0026quot; (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1060\"\u003e#1060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/264f4577846b30c3f84bb313c8d3f5c497ab7cce\"\u003e\u003ccode\u003e264f457\u003c/code\u003e\u003c/a\u003e chore: normalize extra (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1059\"\u003e#1059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/516d9bc3e134d7fe0f6a370c64a9c52b74a18a85\"\u003e\u003ccode\u003e516d9bc\u003c/code\u003e\u003c/a\u003e fix: show tags (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1058\"\u003e#1058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/7207b3fbde52febfa72a29141440179219b9f272\"\u003e\u003ccode\u003e7207b3f\u003c/code\u003e\u003c/a\u003e fix: support uv 0.10.0 (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/11eee27ceb73fb77a8b4351718ef5e14821155ee\"\u003e\u003ccode\u003e11eee27\u003c/code\u003e\u003c/a\u003e fix: better support for multiple session decorators (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1048\"\u003e#1048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/c72769b1ee7bc729c08c93f518e536364cecee8e\"\u003e\u003ccode\u003ec72769b\u003c/code\u003e\u003c/a\u003e docs: duplicated session name in cookbook (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1050\"\u003e#1050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/a0660b17967de97c10f56b12f67cc5667e79bb08\"\u003e\u003ccode\u003ea0660b1\u003c/code\u003e\u003c/a\u003e docs: avoid newest docutils until sphinx-tabs updates (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1052\"\u003e#1052\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/f8edf5fec2c819ec502566d2005a8346c9363334\"\u003e\u003ccode\u003ef8edf5f\u003c/code\u003e\u003c/a\u003e fix(types): Better typing for .run (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1037\"\u003e#1037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/5dbd95e82f43d05dfd1c60bd296d203f34108ee3\"\u003e\u003ccode\u003e5dbd95e\u003c/code\u003e\u003c/a\u003e chore: optimize the naming of constants to enhance readability (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1041\"\u003e#1041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/wntrblm/nox/compare/2025.11.12...2026.02.09\"\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.14 to 0.15.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.2\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-02-19.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eExpand the default rule set (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23385\"\u003e#23385\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eIn preview, Ruff now enables a significantly expanded default rule set of 412 rules, up from the stable default set of 59 rules. The new rules are mostly a superset of the stable defaults, with the exception of these rules, which are removed from the preview defaults:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/multiple-imports-on-one-line\"\u003e\u003ccode\u003emultiple-imports-on-one-line\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE401\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/module-import-not-at-top-of-file\"\u003e\u003ccode\u003emodule-import-not-at-top-of-file\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE402\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/module-import-not-at-top-of-file\"\u003e\u003ccode\u003emodule-import-not-at-top-of-file\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE701\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/multiple-statements-on-one-line-semicolon\"\u003e\u003ccode\u003emultiple-statements-on-one-line-semicolon\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE702\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/useless-semicolon\"\u003e\u003ccode\u003euseless-semicolon\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE703\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/none-comparison\"\u003e\u003ccode\u003enone-comparison\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE711\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/true-false-comparison\"\u003e\u003ccode\u003etrue-false-comparison\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE712\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/not-in-test\"\u003e\u003ccode\u003enot-in-test\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE713\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/not-is-test\"\u003e\u003ccode\u003enot-is-test\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE714\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/type-comparison\"\u003e\u003ccode\u003etype-comparison\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE721\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/lambda-assignment\"\u003e\u003ccode\u003elambda-assignment\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE731\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/ambiguous-variable-name\"\u003e\u003ccode\u003eambiguous-variable-name\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE741\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/ambiguous-class-name\"\u003e\u003ccode\u003eambiguous-class-name\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE742\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/ambiguous-function-name\"\u003e\u003ccode\u003eambiguous-function-name\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE743\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/undefined-local-with-import-star\"\u003e\u003ccode\u003eundefined-local-with-import-star\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF403\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/undefined-local-with-import-star-usage\"\u003e\u003ccode\u003eundefined-local-with-import-star-usage\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF405\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/undefined-local-with-nested-import-star-usage\"\u003e\u003ccode\u003eundefined-local-with-nested-import-star-usage\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF406\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/forward-annotation-syntax-error\"\u003e\u003ccode\u003eforward-annotation-syntax-error\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF722\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you use preview and prefer the old defaults, you can restore them with configuration like:\u003c/p\u003e\n\u003cpre lang=\"toml\"\u003e\u003ccode\u003e\r\n# ruff.toml\r\n\u003cp\u003e[lint]\nselect = [\u0026quot;E4\u0026quot;, \u0026quot;E7\u0026quot;, \u0026quot;E9\u0026quot;, \u0026quot;F\u0026quot;]\u003c/p\u003e\n\u003ch1\u003epyproject.toml\u003c/h1\u003e\n\u003cp\u003e[tool.ruff.lint]\nselect = [\u0026quot;E4\u0026quot;, \u0026quot;E7\u0026quot;, \u0026quot;E9\u0026quot;, \u0026quot;F\u0026quot;]\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eIf you do give them a try, feel free to share your feedback in the \u003ca href=\"https://github.com/astral-sh/ruff/discussions/23203\"\u003eGitHub discussion\u003c/a\u003e!\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Also check string annotations (\u003ccode\u003ePYI041\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19023\"\u003e#19023\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\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.2\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-02-19.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eExpand the default rule set (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23385\"\u003e#23385\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eIn preview, Ruff now enables a significantly expanded default rule set of 412\nrules, up from the stable default set of 59 rules. The new rules are mostly a\nsuperset of the stable defaults, with the exception of these rules, which are\nremoved from the preview defaults:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/multiple-imports-on-one-line\"\u003e\u003ccode\u003emultiple-imports-on-one-line\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE401\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/module-import-not-at-top-of-file\"\u003e\u003ccode\u003emodule-import-not-at-top-of-file\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE402\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/module-import-not-at-top-of-file\"\u003e\u003ccode\u003emodule-import-not-at-top-of-file\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE701\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/multiple-statements-on-one-line-semicolon\"\u003e\u003ccode\u003emultiple-statements-on-one-line-semicolon\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE702\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/useless-semicolon\"\u003e\u003ccode\u003euseless-semicolon\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE703\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/none-comparison\"\u003e\u003ccode\u003enone-comparison\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE711\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/true-false-comparison\"\u003e\u003ccode\u003etrue-false-comparison\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE712\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/not-in-test\"\u003e\u003ccode\u003enot-in-test\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE713\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/not-is-test\"\u003e\u003ccode\u003enot-is-test\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE714\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/type-comparison\"\u003e\u003ccode\u003etype-comparison\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE721\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/lambda-assignment\"\u003e\u003ccode\u003elambda-assignment\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE731\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/ambiguous-variable-name\"\u003e\u003ccode\u003eambiguous-variable-name\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE741\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/ambiguous-class-name\"\u003e\u003ccode\u003eambiguous-class-name\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE742\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/ambiguous-function-name\"\u003e\u003ccode\u003eambiguous-function-name\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE743\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/undefined-local-with-import-star\"\u003e\u003ccode\u003eundefined-local-with-import-star\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF403\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/undefined-local-with-import-star-usage\"\u003e\u003ccode\u003eundefined-local-with-import-star-usage\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF405\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/undefined-local-with-nested-import-star-usage\"\u003e\u003ccode\u003eundefined-local-with-nested-import-star-usage\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF406\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/forward-annotation-syntax-error\"\u003e\u003ccode\u003eforward-annotation-syntax-error\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF722\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you use preview and prefer the old defaults, you can restore them with\nconfiguration like:\u003c/p\u003e\n\u003cpre lang=\"toml\"\u003e\u003ccode\u003e\n# ruff.toml\n\u003cp\u003e[lint]\nselect = [\u0026quot;E4\u0026quot;, \u0026quot;E7\u0026quot;, \u0026quot;E9\u0026quot;, \u0026quot;F\u0026quot;]\u003c/p\u003e\n\u003ch1\u003epyproject.toml\u003c/h1\u003e\n\u003cp\u003e[tool.ruff.lint]\nselect = [\u0026quot;E4\u0026quot;, \u0026quot;E7\u0026quot;, \u0026quot;E9\u0026quot;, \u0026quot;F\u0026quot;]\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eIf you do give them a try, feel free to share your feedback in the \u003ca href=\"https://github.com/astral-sh/ruff/discussions/23203\"\u003eGitHub\ndiscussion\u003c/a\u003e!\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9d18ee9115f9cbb4c21478baa7c1fa2b46e0759c\"\u003e\u003ccode\u003e9d18ee9\u003c/code\u003e\u003c/a\u003e Hard code workflow name and \u003ccode\u003ecancel-in-progress\u003c/code\u003e only for PRs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23431\"\u003e#23431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7cc15f024b931fe56365f40de3fab01219c092c4\"\u003e\u003ccode\u003e7cc15f0\u003c/code\u003e\u003c/a\u003e Bump 0.15.2 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23430\"\u003e#23430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/d1b544393ae9cddd8e48ebee8dbfd54bda89f375\"\u003e\u003ccode\u003ed1b5443\u003c/code\u003e\u003c/a\u003e Add extension mapping to configuration file options (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23384\"\u003e#23384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/222574af90c5c0ca8f84c8385cf30c7c10ac2496\"\u003e\u003ccode\u003e222574a\u003c/code\u003e\u003c/a\u003e Expand the default rule set (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23385\"\u003e#23385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/1465b5de3829549b45397e9587b83ab7ac6d26d0\"\u003e\u003ccode\u003e1465b5d\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-async\u003c/code\u003e] Fix \u003ccode\u003ein_async_context\u003c/code\u003e logic (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23426\"\u003e#23426\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/410902fa401afda969cc000f13be341896e6868e\"\u003e\u003ccode\u003e410902f\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003epyupgrade\u003c/code\u003e] Fix handling of \u003ccode\u003etyping.{io,re}\u003c/code\u003e (\u003ccode\u003eUP035\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23131\"\u003e#23131\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/729610acd9e19f57526e8ca40f355626154826bb\"\u003e\u003ccode\u003e729610a\u003c/code\u003e\u003c/a\u003e [ty] Fall back to ambiguous for large control flow graphs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23399\"\u003e#23399\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/1425c185b0a47be87112762f65b5bf7e323fb950\"\u003e\u003ccode\u003e1425c18\u003c/code\u003e\u003c/a\u003e [ty] Add code folding support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/97acaaea5f993f33d3f5bb27c5db760a2f3d1e8a\"\u003e\u003ccode\u003e97acaae\u003c/code\u003e\u003c/a\u003e [ty] Fix stack overflow for self-referential \u003ccode\u003eTypeOf\u003c/code\u003e in annotations (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23407\"\u003e#23407\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/1f380c82584a6dab7e8715bc7dd5ae187da1e69a\"\u003e\u003ccode\u003e1f380c8\u003c/code\u003e\u003c/a\u003e [ty] Update tests \u003ccode\u003ereveal_type\u003c/code\u003e and \u003ccode\u003eNever\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23418\"\u003e#23418\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.14.14...0.15.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-autoapi` from 3.6.1 to 3.7.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/releases\"\u003esphinx-autoapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.7.0\u003c/h2\u003e\n\u003ch1\u003eFeatures\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded autoapi.import warning for when AutoAPI directives are given non-existent objects\u003c/li\u003e\n\u003cli\u003eAdding autoapi_follow_symlinks, which allows api to traverse into symlinked directories when generating the API documentation.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9 and officially support Python 3.14\u003c/li\u003e\n\u003cli\u003eSupport rendering PEP-695 type parameters\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eBugfixes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRender typing_extensions.TypeAlias like other type aliases (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx-autoapi/issues/520\"\u003e#520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix PythonFunction.overloads typing when source code overload(s) do not provide a return type (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx-autoapi/issues/523\"\u003e#523\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eMisc\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix deprecation warnings raised by astroid and sphinx\u003c/li\u003e\n\u003cli\u003eHandling case where match returns None to fix mypy unit test.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/blob/main/CHANGELOG.rst\"\u003esphinx-autoapi's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.7.0 (2026-02-10)\u003c/h2\u003e\n\u003cp\u003eFeatures\n^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded autoapi.import warning for when AutoAPI directives are given non-existent objects\u003c/li\u003e\n\u003cli\u003eAdding \u003ccode\u003eautoapi_follow_symlinks\u003c/code\u003e, which allows api to traverse into symlinked directories when generating the API documentation.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9 and officially support Python 3.14\u003c/li\u003e\n\u003cli\u003eSupport rendering PEP-695 type parameters\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes\n^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRender typing_extensions.TypeAlias like other type aliases (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx-autoapi/issues/520\"\u003e#520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ePythonFunction.overloads\u003c/code\u003e typing when source code overload(s) do not provide a return type (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx-autoapi/issues/523\"\u003e#523\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eMisc\n^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix deprecation warnings raised by astroid and sphinx\u003c/li\u003e\n\u003cli\u003eHandling case where match returns None to fix mypy unit test.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/0917ed2d4a42fa4ddd3668247d10ca6d902d7ada\"\u003e\u003ccode\u003e0917ed2\u003c/code\u003e\u003c/a\u003e Version 3.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/394beb453256c9c15a30cb5851682fed2a844fc4\"\u003e\u003ccode\u003e394beb4\u003c/code\u003e\u003c/a\u003e Add warning for missing import\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/96cd74d1a015a05bf4409a73b173dcdf8421902a\"\u003e\u003ccode\u003e96cd74d\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/c248b85d66c233a4673c64944bdeeb394be5116a\"\u003e\u003ccode\u003ec248b85\u003c/code\u003e\u003c/a\u003e Render typing_extensions.TypeAlias like other type aliases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/a2f49c9689ba76d5518c33fb509c57b5141342df\"\u003e\u003ccode\u003ea2f49c9\u003c/code\u003e\u003c/a\u003e Fix deprecation warnings raised by astroid and sphinx\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/5ed0cd5c5172befdbea5b28ea30a4d7a79583e03\"\u003e\u003ccode\u003e5ed0cd5\u003c/code\u003e\u003c/a\u003e Update supported Python versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/0f7b1ab7b6e6b016b649bc0fb1e5ccffebaa140d\"\u003e\u003ccode\u003e0f7b1ab\u003c/code\u003e\u003c/a\u003e Render type params by default\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/42b315cf9168c6ab5375b84a984e4c73df43d5d8\"\u003e\u003ccode\u003e42b315c\u003c/code\u003e\u003c/a\u003e fix: add missing release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/026acde58cc3967b8a3597eda6481bf48f1918a0\"\u003e\u003ccode\u003e026acde\u003c/code\u003e\u003c/a\u003e fix: User may not have provided return annotation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/cd62d872d1f77dec8ba4fb94b3bd7591fc57428d\"\u003e\u003ccode\u003ecd62d87\u003c/code\u003e\u003c/a\u003e [refactor]: match statement to ifs\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/compare/v3.6.1...v3.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.13.3 to 7.13.4\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.4 — 2026-02-09\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the third-party code fix in 7.13.3 required examining the parent\ndirectories where coverage was run. In the unusual situation that one of the\nparent directories is unreadable, a PermissionError would occur, as\ndescribed in \u003ccode\u003eissue 2129\u003c/code\u003e_. This is now fixed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: in test suites that change sys.path, coverage.py could fail with\n\u0026quot;RuntimeError: Set changed size during iteration\u0026quot; as described and fixed in\n\u003ccode\u003epull 2130\u003c/code\u003e_. Thanks, Noah Fatsi.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWe now publish ppc64le wheels, thanks to \u003ccode\u003ePankhudi Jain \u0026lt;pull 2121_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _pull 2121: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2121\"\u003ecoveragepy/coveragepy#2121\u003c/a\u003e\n.. _issue 2129: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2129\"\u003ecoveragepy/coveragepy#2129\u003c/a\u003e\n.. _pull 2130: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2130\"\u003ecoveragepy/coveragepy#2130\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-3:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/4f78d57f83ff8a4976043e8a8fcea24b91891840\"\u003e\u003ccode\u003e4f78d57\u003c/code\u003e\u003c/a\u003e build: no need to publish status.json\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/f8616ff5e6386648aa40300e36c6cecda79a1faa\"\u003e\u003ccode\u003ef8616ff\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.13.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/fcf8c68db986970e6000bf75ec3c3115ede867df\"\u003e\u003ccode\u003efcf8c68\u003c/code\u003e\u003c/a\u003e docs: prep for 7.13.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/189ecfd000867e5c74e7d74ee3bd75742d5d584d\"\u003e\u003ccode\u003e189ecfd\u003c/code\u003e\u003c/a\u003e docs: thanks Pankhudi Jain for ppc64le wheels \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2121\"\u003e#2121\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/58aade0eb92d9d1e3755c65a5cf7a951e7bd6c6a\"\u003e\u003ccode\u003e58aade0\u003c/code\u003e\u003c/a\u003e build: add support for ppc64le architecture (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2121\"\u003e#2121\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/8ea42c874fbfc96535156300225bda22bc93ac68\"\u003e\u003ccode\u003e8ea42c8\u003c/code\u003e\u003c/a\u003e chore: bump actions/attest-build-provenance (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2131\"\u003e#2131\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/c09595f70758b78156efbd7c8f034799d09322aa\"\u003e\u003ccode\u003ec09595f\u003c/code\u003e\u003c/a\u003e docs: Janine put a lot of effort into debugging issue \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2128\"\u003e#2128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/8ee1760f40b8822aa2b11ff95ab63481be68a8a0\"\u003e\u003ccode\u003e8ee1760\u003c/code\u003e\u003c/a\u003e docs: Greg wrote a great issue: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2129\"\u003e#2129\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/76ba0437611fc2787cb0450dc94b02bc2848fdee\"\u003e\u003ccode\u003e76ba043\u003c/code\u003e\u003c/a\u003e docs: thanks, Noah Fatsi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/371fcc5727e9d8fba816061756af94646b4bcfbb\"\u003e\u003ccode\u003e371fcc5\u003c/code\u003e\u003c/a\u003e fix: set fixed paths_list in TreeMatcher init (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2130\"\u003e#2130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.13.3...7.13.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot 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/impressdesigns/shipstation-sdk/pull/43","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/impressdesigns%2Fshipstation-sdk/issues/43","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/43/packages"}},{"old_version":"2025.11.12","new_version":"2026.2.9","update_type":"major","path":"/.github/workflows","pr_created_at":"2026-03-01T01:43:50.000Z","version_change":"2025.11.12 → 2026.2.9","issue":{"uuid":"4005941401","node_id":"PR_kwDOKe6bh87HEDyP","number":198,"state":"open","title":"Bump the workflows-dependencies group in /.github/workflows with 2 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-03-01T01:43:50.000Z","updated_at":"2026-03-13T11:59:44.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"workflows-dependencies","update_count":2,"packages":[{"name":"nox","old_version":"2025.11.12","new_version":"2026.2.9","repository_url":"https://github.com/wntrblm/nox"},{"name":"pip","old_version":"26.0","new_version":"26.0.1","repository_url":"https://github.com/pypa/pip"}],"path":"/.github/workflows","ecosystem":"pip"},"body":"Bumps the workflows-dependencies group in /.github/workflows with 2 updates: [nox](https://github.com/wntrblm/nox) and [pip](https://github.com/pypa/pip).\n\nUpdates `nox` from 2025.11.12 to 2026.2.9\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/wntrblm/nox/releases\"\u003enox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2026.02.09 ❤️‍🩹\u003c/h2\u003e\n\u003cp\u003eThis small release supports uv 0.10's new requirement that \u003ccode\u003e--clear\u003c/code\u003e be passed to clear an environment. Python 3.8 support was temporarily re-added since uv 0.10 still supports 3.8, so nox on 3.8 was affected.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport uv 0.10.0 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1055\"\u003ewntrblm/nox#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow tags by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1058\"\u003ewntrblm/nox#1058\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter support for multiple session decorators by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1048\"\u003ewntrblm/nox#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize extra \u003ccode\u003etox-to-nox\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/wntrblm/nox/pull/1059\"\u003ewntrblm/nox#1059\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter typing for \u003ccode\u003e.run\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/wntrblm/nox/pull/1037\"\u003ewntrblm/nox#1037\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix conda CI job by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1035\"\u003ewntrblm/nox#1035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1004\"\u003ewntrblm/nox#1004\u003c/a\u003e and revert in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1060\"\u003ewntrblm/nox#1060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix action test by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1036\"\u003ewntrblm/nox#1036\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump packaging dep to remove pyparsing by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1047\"\u003ewntrblm/nox#1047\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid newest docutils until sphinx-tabs updates by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1052\"\u003ewntrblm/nox#1052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize the naming of constants to enhance readability by \u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1041\"\u003ewntrblm/nox#1041\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDuplicated session name in cookbook by \u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1050\"\u003ewntrblm/nox#1050\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/wntrblm/nox/blob/main/CHANGELOG.md\"\u003enox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003e2026.02.09\u003c/h2\u003e\n\u003cp\u003eThis small release supports uv 0.10's new requirement that \u003ccode\u003e--clear\u003c/code\u003e be passed\nto clear an environment. Python 3.8 support was temporarily re-added since uv\n0.10 still supports 3.8, so nox on 3.8 was affected.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport uv 0.10.0 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1055\"\u003ewntrblm/nox#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow tags by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1058\"\u003ewntrblm/nox#1058\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter support for multiple session decorators by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1048\"\u003ewntrblm/nox#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize extra \u003ccode\u003etox-to-nox\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/wntrblm/nox/pull/1059\"\u003ewntrblm/nox#1059\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter typing for \u003ccode\u003e.run\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/wntrblm/nox/pull/1037\"\u003ewntrblm/nox#1037\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix conda CI job by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1035\"\u003ewntrblm/nox#1035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1004\"\u003ewntrblm/nox#1004\u003c/a\u003e and revert in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1060\"\u003ewntrblm/nox#1060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix action test by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1036\"\u003ewntrblm/nox#1036\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump packaging dep to remove pyparsing by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1047\"\u003ewntrblm/nox#1047\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid newest docutils until sphinx-tabs updates by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1052\"\u003ewntrblm/nox#1052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize the naming of constants to enhance readability by \u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1041\"\u003ewntrblm/nox#1041\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDuplicated session name in cookbook by \u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1050\"\u003ewntrblm/nox#1050\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/wntrblm/nox/commit/5a277b752f6094150e25237d47c34168e2b7526e\"\u003e\u003ccode\u003e5a277b7\u003c/code\u003e\u003c/a\u003e docs: prepare for release (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1061\"\u003e#1061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/90a8aef54122e188dbea80680552507517523ced\"\u003e\u003ccode\u003e90a8aef\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;feat: drop Python 3.8 (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1004\"\u003e#1004\u003c/a\u003e)\u0026quot; (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1060\"\u003e#1060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/264f4577846b30c3f84bb313c8d3f5c497ab7cce\"\u003e\u003ccode\u003e264f457\u003c/code\u003e\u003c/a\u003e chore: normalize extra (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1059\"\u003e#1059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/516d9bc3e134d7fe0f6a370c64a9c52b74a18a85\"\u003e\u003ccode\u003e516d9bc\u003c/code\u003e\u003c/a\u003e fix: show tags (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1058\"\u003e#1058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/7207b3fbde52febfa72a29141440179219b9f272\"\u003e\u003ccode\u003e7207b3f\u003c/code\u003e\u003c/a\u003e fix: support uv 0.10.0 (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/11eee27ceb73fb77a8b4351718ef5e14821155ee\"\u003e\u003ccode\u003e11eee27\u003c/code\u003e\u003c/a\u003e fix: better support for multiple session decorators (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1048\"\u003e#1048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/c72769b1ee7bc729c08c93f518e536364cecee8e\"\u003e\u003ccode\u003ec72769b\u003c/code\u003e\u003c/a\u003e docs: duplicated session name in cookbook (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1050\"\u003e#1050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/a0660b17967de97c10f56b12f67cc5667e79bb08\"\u003e\u003ccode\u003ea0660b1\u003c/code\u003e\u003c/a\u003e docs: avoid newest docutils until sphinx-tabs updates (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1052\"\u003e#1052\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/f8edf5fec2c819ec502566d2005a8346c9363334\"\u003e\u003ccode\u003ef8edf5f\u003c/code\u003e\u003c/a\u003e fix(types): Better typing for .run (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1037\"\u003e#1037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/5dbd95e82f43d05dfd1c60bd296d203f34108ee3\"\u003e\u003ccode\u003e5dbd95e\u003c/code\u003e\u003c/a\u003e chore: optimize the naming of constants to enhance readability (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1041\"\u003e#1041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/wntrblm/nox/compare/2025.11.12...2026.02.09\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pip` from 26.0 to 26.0.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/pip/blob/main/NEWS.rst\"\u003epip's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e26.0.1 (2026-02-04)\u003c/h1\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e--pre\u003c/code\u003e not being respected from the command line when a requirement file\nincludes an option e.g. \u003ccode\u003e-extra-index-url\u003c/code\u003e. (\u003ccode\u003e[#13788](https://github.com/pypa/pip/issues/13788) \u0026lt;https://github.com/pypa/pip/issues/13788\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/pip/commit/5fe4ea4f24cd9756316a4b5ef05daa15d84f7d0c\"\u003e\u003ccode\u003e5fe4ea4\u003c/code\u003e\u003c/a\u003e Bump for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/pip/commit/bea3cbe3b4d637be6d5007e9a5a2327e500b00d8\"\u003e\u003ccode\u003ebea3cbe\u003c/code\u003e\u003c/a\u003e windows fix tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/pip/commit/ed22252bd19a71ce351b84405fa23230ca45ceea\"\u003e\u003ccode\u003eed22252\u003c/code\u003e\u003c/a\u003e News Entry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/pip/commit/af1327407f048bd2310b8b633f8e8a4e41c38d2c\"\u003e\u003ccode\u003eaf13274\u003c/code\u003e\u003c/a\u003e Match release control behavior to the same as format control behavior\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pypa/pip/compare/26.0...26.0.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/statisticsnorway/ssb-timeseries/pull/198","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/statisticsnorway%2Fssb-timeseries/issues/198","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/198/packages"}},{"old_version":"2025.11.12","new_version":"2026.2.9","update_type":"major","path":null,"pr_created_at":"2026-02-20T08:45:44.000Z","version_change":"2025.11.12 → 2026.2.9","issue":{"uuid":"3967343360","node_id":"PR_kwDOGTHrrc7FGmSp","number":30,"state":"closed","title":"chore(deps): bump nox from 2025.11.12 to 2026.2.9","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-02-24T01:37:45.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-20T08:45:44.000Z","updated_at":"2026-02-24T01:37:46.000Z","time_to_close":319921,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"nox","old_version":"2025.11.12","new_version":"2026.2.9","repository_url":"https://github.com/wntrblm/nox"}],"path":null,"ecosystem":"pip"},"body":"Bumps [nox](https://github.com/wntrblm/nox) from 2025.11.12 to 2026.2.9.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/wntrblm/nox/releases\"\u003enox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2026.02.09 ❤️‍🩹\u003c/h2\u003e\n\u003cp\u003eThis small release supports uv 0.10's new requirement that \u003ccode\u003e--clear\u003c/code\u003e be passed to clear an environment. Python 3.8 support was temporarily re-added since uv 0.10 still supports 3.8, so nox on 3.8 was affected.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport uv 0.10.0 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1055\"\u003ewntrblm/nox#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow tags by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1058\"\u003ewntrblm/nox#1058\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter support for multiple session decorators by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1048\"\u003ewntrblm/nox#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize extra \u003ccode\u003etox-to-nox\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/wntrblm/nox/pull/1059\"\u003ewntrblm/nox#1059\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter typing for \u003ccode\u003e.run\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/wntrblm/nox/pull/1037\"\u003ewntrblm/nox#1037\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix conda CI job by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1035\"\u003ewntrblm/nox#1035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1004\"\u003ewntrblm/nox#1004\u003c/a\u003e and revert in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1060\"\u003ewntrblm/nox#1060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix action test by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1036\"\u003ewntrblm/nox#1036\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump packaging dep to remove pyparsing by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1047\"\u003ewntrblm/nox#1047\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid newest docutils until sphinx-tabs updates by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1052\"\u003ewntrblm/nox#1052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize the naming of constants to enhance readability by \u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1041\"\u003ewntrblm/nox#1041\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDuplicated session name in cookbook by \u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1050\"\u003ewntrblm/nox#1050\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/wntrblm/nox/blob/main/CHANGELOG.md\"\u003enox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003e2026.02.09\u003c/h2\u003e\n\u003cp\u003eThis small release supports uv 0.10's new requirement that \u003ccode\u003e--clear\u003c/code\u003e be passed\nto clear an environment. Python 3.8 support was temporarily re-added since uv\n0.10 still supports 3.8, so nox on 3.8 was affected.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport uv 0.10.0 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1055\"\u003ewntrblm/nox#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow tags by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1058\"\u003ewntrblm/nox#1058\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter support for multiple session decorators by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1048\"\u003ewntrblm/nox#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize extra \u003ccode\u003etox-to-nox\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/wntrblm/nox/pull/1059\"\u003ewntrblm/nox#1059\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter typing for \u003ccode\u003e.run\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/wntrblm/nox/pull/1037\"\u003ewntrblm/nox#1037\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix conda CI job by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1035\"\u003ewntrblm/nox#1035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1004\"\u003ewntrblm/nox#1004\u003c/a\u003e and revert in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1060\"\u003ewntrblm/nox#1060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix action test by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1036\"\u003ewntrblm/nox#1036\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump packaging dep to remove pyparsing by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1047\"\u003ewntrblm/nox#1047\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid newest docutils until sphinx-tabs updates by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1052\"\u003ewntrblm/nox#1052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize the naming of constants to enhance readability by \u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1041\"\u003ewntrblm/nox#1041\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDuplicated session name in cookbook by \u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1050\"\u003ewntrblm/nox#1050\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/wntrblm/nox/commit/5a277b752f6094150e25237d47c34168e2b7526e\"\u003e\u003ccode\u003e5a277b7\u003c/code\u003e\u003c/a\u003e docs: prepare for release (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1061\"\u003e#1061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/90a8aef54122e188dbea80680552507517523ced\"\u003e\u003ccode\u003e90a8aef\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;feat: drop Python 3.8 (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1004\"\u003e#1004\u003c/a\u003e)\u0026quot; (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1060\"\u003e#1060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/264f4577846b30c3f84bb313c8d3f5c497ab7cce\"\u003e\u003ccode\u003e264f457\u003c/code\u003e\u003c/a\u003e chore: normalize extra (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1059\"\u003e#1059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/516d9bc3e134d7fe0f6a370c64a9c52b74a18a85\"\u003e\u003ccode\u003e516d9bc\u003c/code\u003e\u003c/a\u003e fix: show tags (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1058\"\u003e#1058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/7207b3fbde52febfa72a29141440179219b9f272\"\u003e\u003ccode\u003e7207b3f\u003c/code\u003e\u003c/a\u003e fix: support uv 0.10.0 (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/11eee27ceb73fb77a8b4351718ef5e14821155ee\"\u003e\u003ccode\u003e11eee27\u003c/code\u003e\u003c/a\u003e fix: better support for multiple session decorators (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1048\"\u003e#1048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/c72769b1ee7bc729c08c93f518e536364cecee8e\"\u003e\u003ccode\u003ec72769b\u003c/code\u003e\u003c/a\u003e docs: duplicated session name in cookbook (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1050\"\u003e#1050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/a0660b17967de97c10f56b12f67cc5667e79bb08\"\u003e\u003ccode\u003ea0660b1\u003c/code\u003e\u003c/a\u003e docs: avoid newest docutils until sphinx-tabs updates (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1052\"\u003e#1052\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/f8edf5fec2c819ec502566d2005a8346c9363334\"\u003e\u003ccode\u003ef8edf5f\u003c/code\u003e\u003c/a\u003e fix(types): Better typing for .run (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1037\"\u003e#1037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/5dbd95e82f43d05dfd1c60bd296d203f34108ee3\"\u003e\u003ccode\u003e5dbd95e\u003c/code\u003e\u003c/a\u003e chore: optimize the naming of constants to enhance readability (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1041\"\u003e#1041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/wntrblm/nox/compare/2025.11.12...2026.02.09\"\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=nox\u0026package-manager=uv\u0026previous-version=2025.11.12\u0026new-version=2026.2.9)](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/usnistgov/cmomy/pull/30","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/usnistgov%2Fcmomy/issues/30","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/30/packages"}},{"old_version":"\u003c2025.12.0,\u003e=2025.5.1","new_version":"\u003e=2025.5.1,\u003c2026.3.0","update_type":"patch","path":null,"pr_created_at":"2026-02-16T12:44:56.000Z","version_change":"\u003c2025.12.0,\u003e=2025.5.1 → \u003e=2025.5.1,\u003c2026.3.0","issue":{"uuid":"3947602808","node_id":"PR_kwDOLNMMKs7EFyqh","number":45,"state":"open","title":"Update nox requirement from \u003c2025.12.0,\u003e=2025.5.1 to \u003e=2025.5.1,\u003c2026.3.0","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-02-16T12:44:56.000Z","updated_at":"2026-02-16T12:44:57.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Update","packages":[{"name":"nox","old_version":"\u003c2025.12.0,\u003e=2025.5.1","new_version":"\u003e=2025.5.1,\u003c2026.3.0","repository_url":"https://github.com/wntrblm/nox"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [nox](https://github.com/wntrblm/nox) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/wntrblm/nox/blob/main/CHANGELOG.md\"\u003enox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003e2026.02.09\u003c/h2\u003e\n\u003cp\u003eThis small release supports uv 0.10's new requirement that \u003ccode\u003e--clear\u003c/code\u003e be passed\nto clear an environment. Python 3.8 support was temporarily re-added since uv\n0.10 still supports 3.8, so nox on 3.8 was affected.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport uv 0.10.0 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1055\"\u003ewntrblm/nox#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow tags by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1058\"\u003ewntrblm/nox#1058\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter support for multiple session decorators by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1048\"\u003ewntrblm/nox#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize extra \u003ccode\u003etox-to-nox\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/wntrblm/nox/pull/1059\"\u003ewntrblm/nox#1059\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter typing for \u003ccode\u003e.run\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/wntrblm/nox/pull/1037\"\u003ewntrblm/nox#1037\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix conda CI job by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1035\"\u003ewntrblm/nox#1035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1004\"\u003ewntrblm/nox#1004\u003c/a\u003e and revert in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1060\"\u003ewntrblm/nox#1060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix action test by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1036\"\u003ewntrblm/nox#1036\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump packaging dep to remove pyparsing by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1047\"\u003ewntrblm/nox#1047\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid newest docutils until sphinx-tabs updates by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1052\"\u003ewntrblm/nox#1052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize the naming of constants to enhance readability by \u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1041\"\u003ewntrblm/nox#1041\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDuplicated session name in cookbook by \u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1050\"\u003ewntrblm/nox#1050\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2025.11.12\u003c/h2\u003e\n\u003cp\u003eThis is a small release to fix a warning when running in script mode before we\ndrop Python 3.8.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid warnings when running in script mode by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1025\"\u003ewntrblm/nox#1025\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/wntrblm/nox/commit/5a277b752f6094150e25237d47c34168e2b7526e\"\u003e\u003ccode\u003e5a277b7\u003c/code\u003e\u003c/a\u003e docs: prepare for release (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1061\"\u003e#1061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/90a8aef54122e188dbea80680552507517523ced\"\u003e\u003ccode\u003e90a8aef\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;feat: drop Python 3.8 (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1004\"\u003e#1004\u003c/a\u003e)\u0026quot; (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1060\"\u003e#1060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/264f4577846b30c3f84bb313c8d3f5c497ab7cce\"\u003e\u003ccode\u003e264f457\u003c/code\u003e\u003c/a\u003e chore: normalize extra (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1059\"\u003e#1059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/516d9bc3e134d7fe0f6a370c64a9c52b74a18a85\"\u003e\u003ccode\u003e516d9bc\u003c/code\u003e\u003c/a\u003e fix: show tags (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1058\"\u003e#1058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/7207b3fbde52febfa72a29141440179219b9f272\"\u003e\u003ccode\u003e7207b3f\u003c/code\u003e\u003c/a\u003e fix: support uv 0.10.0 (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/11eee27ceb73fb77a8b4351718ef5e14821155ee\"\u003e\u003ccode\u003e11eee27\u003c/code\u003e\u003c/a\u003e fix: better support for multiple session decorators (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1048\"\u003e#1048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/c72769b1ee7bc729c08c93f518e536364cecee8e\"\u003e\u003ccode\u003ec72769b\u003c/code\u003e\u003c/a\u003e docs: duplicated session name in cookbook (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1050\"\u003e#1050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/a0660b17967de97c10f56b12f67cc5667e79bb08\"\u003e\u003ccode\u003ea0660b1\u003c/code\u003e\u003c/a\u003e docs: avoid newest docutils until sphinx-tabs updates (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1052\"\u003e#1052\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/f8edf5fec2c819ec502566d2005a8346c9363334\"\u003e\u003ccode\u003ef8edf5f\u003c/code\u003e\u003c/a\u003e fix(types): Better typing for .run (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1037\"\u003e#1037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/5dbd95e82f43d05dfd1c60bd296d203f34108ee3\"\u003e\u003ccode\u003e5dbd95e\u003c/code\u003e\u003c/a\u003e chore: optimize the naming of constants to enhance readability (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1041\"\u003e#1041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/wntrblm/nox/compare/2025.05.01...2026.02.09\"\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/Cray-HPE/vtds-cluster-mock/pull/45","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cray-HPE%2Fvtds-cluster-mock/issues/45","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/45/packages"}},{"old_version":"2025.11.12","new_version":"2026.2.9","update_type":"major","path":"/.github/workflows","pr_created_at":"2026-02-16T05:40:06.000Z","version_change":"2025.11.12 → 2026.2.9","issue":{"uuid":"3945988765","node_id":"PR_kwDONK2-pc7EAdu_","number":100,"state":"closed","title":"Bump nox from 2025.11.12 to 2026.2.9 in /.github/workflows","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-13T05:37:36.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-16T05:40:06.000Z","updated_at":"2026-04-13T05:37:38.000Z","time_to_close":4838250,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"nox","old_version":"2025.11.12","new_version":"2026.2.9","repository_url":"https://github.com/wntrblm/nox"}],"path":"/.github/workflows","ecosystem":"pip"},"body":"Bumps [nox](https://github.com/wntrblm/nox) from 2025.11.12 to 2026.2.9.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/wntrblm/nox/releases\"\u003enox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2026.02.09 ❤️‍🩹\u003c/h2\u003e\n\u003cp\u003eThis small release supports uv 0.10's new requirement that \u003ccode\u003e--clear\u003c/code\u003e be passed to clear an environment. Python 3.8 support was temporarily re-added since uv 0.10 still supports 3.8, so nox on 3.8 was affected.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport uv 0.10.0 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1055\"\u003ewntrblm/nox#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow tags by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1058\"\u003ewntrblm/nox#1058\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter support for multiple session decorators by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1048\"\u003ewntrblm/nox#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize extra \u003ccode\u003etox-to-nox\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/wntrblm/nox/pull/1059\"\u003ewntrblm/nox#1059\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter typing for \u003ccode\u003e.run\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/wntrblm/nox/pull/1037\"\u003ewntrblm/nox#1037\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix conda CI job by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1035\"\u003ewntrblm/nox#1035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1004\"\u003ewntrblm/nox#1004\u003c/a\u003e and revert in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1060\"\u003ewntrblm/nox#1060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix action test by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1036\"\u003ewntrblm/nox#1036\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump packaging dep to remove pyparsing by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1047\"\u003ewntrblm/nox#1047\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid newest docutils until sphinx-tabs updates by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1052\"\u003ewntrblm/nox#1052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize the naming of constants to enhance readability by \u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1041\"\u003ewntrblm/nox#1041\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDuplicated session name in cookbook by \u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1050\"\u003ewntrblm/nox#1050\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/wntrblm/nox/blob/main/CHANGELOG.md\"\u003enox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003e2026.02.09\u003c/h2\u003e\n\u003cp\u003eThis small release supports uv 0.10's new requirement that \u003ccode\u003e--clear\u003c/code\u003e be passed\nto clear an environment. Python 3.8 support was temporarily re-added since uv\n0.10 still supports 3.8, so nox on 3.8 was affected.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport uv 0.10.0 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1055\"\u003ewntrblm/nox#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow tags by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1058\"\u003ewntrblm/nox#1058\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter support for multiple session decorators by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1048\"\u003ewntrblm/nox#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize extra \u003ccode\u003etox-to-nox\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/wntrblm/nox/pull/1059\"\u003ewntrblm/nox#1059\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter typing for \u003ccode\u003e.run\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/wntrblm/nox/pull/1037\"\u003ewntrblm/nox#1037\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix conda CI job by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1035\"\u003ewntrblm/nox#1035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1004\"\u003ewntrblm/nox#1004\u003c/a\u003e and revert in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1060\"\u003ewntrblm/nox#1060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix action test by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1036\"\u003ewntrblm/nox#1036\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump packaging dep to remove pyparsing by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1047\"\u003ewntrblm/nox#1047\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid newest docutils until sphinx-tabs updates by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1052\"\u003ewntrblm/nox#1052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize the naming of constants to enhance readability by \u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1041\"\u003ewntrblm/nox#1041\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDuplicated session name in cookbook by \u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1050\"\u003ewntrblm/nox#1050\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/wntrblm/nox/commit/5a277b752f6094150e25237d47c34168e2b7526e\"\u003e\u003ccode\u003e5a277b7\u003c/code\u003e\u003c/a\u003e docs: prepare for release (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1061\"\u003e#1061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/90a8aef54122e188dbea80680552507517523ced\"\u003e\u003ccode\u003e90a8aef\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;feat: drop Python 3.8 (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1004\"\u003e#1004\u003c/a\u003e)\u0026quot; (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1060\"\u003e#1060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/264f4577846b30c3f84bb313c8d3f5c497ab7cce\"\u003e\u003ccode\u003e264f457\u003c/code\u003e\u003c/a\u003e chore: normalize extra (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1059\"\u003e#1059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/516d9bc3e134d7fe0f6a370c64a9c52b74a18a85\"\u003e\u003ccode\u003e516d9bc\u003c/code\u003e\u003c/a\u003e fix: show tags (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1058\"\u003e#1058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/7207b3fbde52febfa72a29141440179219b9f272\"\u003e\u003ccode\u003e7207b3f\u003c/code\u003e\u003c/a\u003e fix: support uv 0.10.0 (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/11eee27ceb73fb77a8b4351718ef5e14821155ee\"\u003e\u003ccode\u003e11eee27\u003c/code\u003e\u003c/a\u003e fix: better support for multiple session decorators (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1048\"\u003e#1048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/c72769b1ee7bc729c08c93f518e536364cecee8e\"\u003e\u003ccode\u003ec72769b\u003c/code\u003e\u003c/a\u003e docs: duplicated session name in cookbook (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1050\"\u003e#1050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/a0660b17967de97c10f56b12f67cc5667e79bb08\"\u003e\u003ccode\u003ea0660b1\u003c/code\u003e\u003c/a\u003e docs: avoid newest docutils until sphinx-tabs updates (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1052\"\u003e#1052\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/f8edf5fec2c819ec502566d2005a8346c9363334\"\u003e\u003ccode\u003ef8edf5f\u003c/code\u003e\u003c/a\u003e fix(types): Better typing for .run (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1037\"\u003e#1037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/5dbd95e82f43d05dfd1c60bd296d203f34108ee3\"\u003e\u003ccode\u003e5dbd95e\u003c/code\u003e\u003c/a\u003e chore: optimize the naming of constants to enhance readability (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1041\"\u003e#1041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/wntrblm/nox/compare/2025.11.12...2026.02.09\"\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=nox\u0026package-manager=pip\u0026previous-version=2025.11.12\u0026new-version=2026.2.9)](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/ucl-exoplanets/taurex3/pull/100","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ucl-exoplanets%2Ftaurex3/issues/100","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/100/packages"}},{"old_version":"2025.11.12","new_version":"2026.2.9","update_type":"major","path":null,"pr_created_at":"2026-02-16T04:33:25.000Z","version_change":"2025.11.12 → 2026.2.9","issue":{"uuid":"3945825155","node_id":"PR_kwDOIi5n2c7D_8Y4","number":438,"state":"open","title":"Bump the python-packages group with 3 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-02-16T04:33:25.000Z","updated_at":"2026-02-17T10:37:54.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-packages","update_count":3,"packages":[{"name":"ruff","old_version":"0.15.0","new_version":"0.15.1","repository_url":"https://github.com/astral-sh/ruff"},{"name":"types-networkx","old_version":"3.6.1.20251220","new_version":"3.6.1.20260210","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"nox","old_version":"2025.11.12","new_version":"2026.2.9","repository_url":"https://github.com/wntrblm/nox"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-packages group with 3 updates: [ruff](https://github.com/astral-sh/ruff), [types-networkx](https://github.com/typeshed-internal/stub_uploader) and [nox](https://github.com/wntrblm/nox).\n\nUpdates `ruff` from 0.15.0 to 0.15.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.1\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-02-12.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Add ruff rules to catch deprecated Airflow imports for Airflow 3.1 (\u003ccode\u003eAIR321\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22376\"\u003e#22376\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Third positional parameter not named \u003ccode\u003eti_key\u003c/code\u003e should be flagged for \u003ccode\u003eBaseOperatorLink.get_link\u003c/code\u003e (\u003ccode\u003eAIR303\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22828\"\u003e#22828\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-gettext\u003c/code\u003e] Fix false negatives for plural argument of \u003ccode\u003engettext\u003c/code\u003e (\u003ccode\u003eINT001\u003c/code\u003e, \u003ccode\u003eINT002\u003c/code\u003e, \u003ccode\u003eINT003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21078\"\u003e#21078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Fix infinite loop in preview fix for \u003ccode\u003eunused-import\u003c/code\u003e (\u003ccode\u003eF401\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23038\"\u003e#23038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epygrep-hooks\u003c/code\u003e] Detect non-existent mock methods in standalone expressions (\u003ccode\u003ePGH005\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22830\"\u003e#22830\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Allow dunder submodules and improve diagnostic range (\u003ccode\u003ePLC2701\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22804\"\u003e#22804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Improve diagnostic range for tuples (\u003ccode\u003eUP024\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23013\"\u003e#23013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Check subscripts in tuple do not use lambda parameters in \u003ccode\u003ereimplemented-operator\u003c/code\u003e (\u003ccode\u003eFURB118\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23079\"\u003e#23079\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Detect mutable defaults in \u003ccode\u003efield\u003c/code\u003e calls (\u003ccode\u003eRUF008\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23046\"\u003e#23046\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Ignore std \u003ccode\u003ecmath.inf\u003c/code\u003e (\u003ccode\u003eRUF069\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23120\"\u003e#23120\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] New rule \u003ccode\u003efloat-equality-comparison\u003c/code\u003e (\u003ccode\u003eRUF069\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20585\"\u003e#20585\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't format unlabeled Markdown code blocks (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23106\"\u003e#23106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMarkdown formatting support in LSP (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23063\"\u003e#23063\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport Quarto Markdown language markers (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22947\"\u003e#22947\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport formatting \u003ccode\u003epycon\u003c/code\u003e Markdown code blocks (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23112\"\u003e#23112\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse extension mapping to select Markdown code block language (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22934\"\u003e#22934\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid false positive for undefined variables in \u003ccode\u003eFAST001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23224\"\u003e#23224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid introducing syntax errors for \u003ccode\u003eFAST003\u003c/code\u003e autofix (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23227\"\u003e#23227\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid suggesting \u003ccode\u003eInitVar\u003c/code\u003e for \u003ccode\u003e__post_init__\u003c/code\u003e that references PEP 695 type parameters (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23226\"\u003e#23226\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeduplicate type variables in generic functions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23225\"\u003e#23225\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix exception handler parenthesis removal for Python 3.14+ (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23126\"\u003e#23126\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix f-string middle panic when parsing t-strings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23232\"\u003e#23232\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWrap \u003ccode\u003eRUF020\u003c/code\u003e target for multiline fixes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23210\"\u003e#23210\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWrap \u003ccode\u003eUP007\u003c/code\u003e target for multiline fixes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23208\"\u003e#23208\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix missing diagnostics for last range suppression in file (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23242\"\u003e#23242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix syntax error on string with newline escape and comment (\u003ccode\u003eUP037\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22968\"\u003e#22968\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003eruff\u003c/code\u003e instead of \u003ccode\u003eRuff\u003c/code\u003e as the program name in GitHub output format (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23240\"\u003e#23240\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003ePT006\u003c/code\u003e] Fix syntax error when unpacking nested tuples in \u003ccode\u003eparametrize\u003c/code\u003e fixes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22441\"\u003e#22441\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22464\"\u003e#22464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Catch deprecated attribute access from context key for Airflow 3.0 (\u003ccode\u003eAIR301\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22850\"\u003e#22850\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Capture deprecated arguments and a decorator (\u003ccode\u003eAIR301\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23170\"\u003e#23170\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-boolean-trap\u003c/code\u003e] Add \u003ccode\u003emultiprocessing.Value\u003c/code\u003e to excluded functions for \u003ccode\u003eFBT003\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23010\"\u003e#23010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Add a secondary annotation showing the previous occurrence (\u003ccode\u003eB033\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22634\"\u003e#22634\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-type-checking\u003c/code\u003e] Add sub-diagnostic showing the runtime use of an annotation (\u003ccode\u003eTC004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23091\"\u003e#23091\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eisort\u003c/code\u003e] Support configurable import section heading comments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23151\"\u003e#23151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Improve the diagnostic for \u003ccode\u003eRUF012\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23202\"\u003e#23202\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFormatter\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.1\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-02-12.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Add ruff rules to catch deprecated Airflow imports for Airflow 3.1 (\u003ccode\u003eAIR321\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22376\"\u003e#22376\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Third positional parameter not named \u003ccode\u003eti_key\u003c/code\u003e should be flagged for \u003ccode\u003eBaseOperatorLink.get_link\u003c/code\u003e (\u003ccode\u003eAIR303\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22828\"\u003e#22828\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-gettext\u003c/code\u003e] Fix false negatives for plural argument of \u003ccode\u003engettext\u003c/code\u003e (\u003ccode\u003eINT001\u003c/code\u003e, \u003ccode\u003eINT002\u003c/code\u003e, \u003ccode\u003eINT003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21078\"\u003e#21078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Fix infinite loop in preview fix for \u003ccode\u003eunused-import\u003c/code\u003e (\u003ccode\u003eF401\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23038\"\u003e#23038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epygrep-hooks\u003c/code\u003e] Detect non-existent mock methods in standalone expressions (\u003ccode\u003ePGH005\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22830\"\u003e#22830\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Allow dunder submodules and improve diagnostic range (\u003ccode\u003ePLC2701\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22804\"\u003e#22804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Improve diagnostic range for tuples (\u003ccode\u003eUP024\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23013\"\u003e#23013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Check subscripts in tuple do not use lambda parameters in \u003ccode\u003ereimplemented-operator\u003c/code\u003e (\u003ccode\u003eFURB118\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23079\"\u003e#23079\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Detect mutable defaults in \u003ccode\u003efield\u003c/code\u003e calls (\u003ccode\u003eRUF008\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23046\"\u003e#23046\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Ignore std \u003ccode\u003ecmath.inf\u003c/code\u003e (\u003ccode\u003eRUF069\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23120\"\u003e#23120\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] New rule \u003ccode\u003efloat-equality-comparison\u003c/code\u003e (\u003ccode\u003eRUF069\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20585\"\u003e#20585\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't format unlabeled Markdown code blocks (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23106\"\u003e#23106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMarkdown formatting support in LSP (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23063\"\u003e#23063\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport Quarto Markdown language markers (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22947\"\u003e#22947\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport formatting \u003ccode\u003epycon\u003c/code\u003e Markdown code blocks (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23112\"\u003e#23112\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse extension mapping to select Markdown code block language (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22934\"\u003e#22934\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid false positive for undefined variables in \u003ccode\u003eFAST001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23224\"\u003e#23224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid introducing syntax errors for \u003ccode\u003eFAST003\u003c/code\u003e autofix (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23227\"\u003e#23227\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid suggesting \u003ccode\u003eInitVar\u003c/code\u003e for \u003ccode\u003e__post_init__\u003c/code\u003e that references PEP 695 type parameters (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23226\"\u003e#23226\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeduplicate type variables in generic functions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23225\"\u003e#23225\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix exception handler parenthesis removal for Python 3.14+ (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23126\"\u003e#23126\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix f-string middle panic when parsing t-strings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23232\"\u003e#23232\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWrap \u003ccode\u003eRUF020\u003c/code\u003e target for multiline fixes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23210\"\u003e#23210\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWrap \u003ccode\u003eUP007\u003c/code\u003e target for multiline fixes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23208\"\u003e#23208\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix missing diagnostics for last range suppression in file (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23242\"\u003e#23242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix syntax error on string with newline escape and comment (\u003ccode\u003eUP037\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22968\"\u003e#22968\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003eruff\u003c/code\u003e instead of \u003ccode\u003eRuff\u003c/code\u003e as the program name in GitHub output format (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23240\"\u003e#23240\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003ePT006\u003c/code\u003e] Fix syntax error when unpacking nested tuples in \u003ccode\u003eparametrize\u003c/code\u003e fixes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22441\"\u003e#22441\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22464\"\u003e#22464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Catch deprecated attribute access from context key for Airflow 3.0 (\u003ccode\u003eAIR301\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22850\"\u003e#22850\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Capture deprecated arguments and a decorator (\u003ccode\u003eAIR301\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23170\"\u003e#23170\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-boolean-trap\u003c/code\u003e] Add \u003ccode\u003emultiprocessing.Value\u003c/code\u003e to excluded functions for \u003ccode\u003eFBT003\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23010\"\u003e#23010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Add a secondary annotation showing the previous occurrence (\u003ccode\u003eB033\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22634\"\u003e#22634\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-type-checking\u003c/code\u003e] Add sub-diagnostic showing the runtime use of an annotation (\u003ccode\u003eTC004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23091\"\u003e#23091\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eisort\u003c/code\u003e] Support configurable import section heading comments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23151\"\u003e#23151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Improve the diagnostic for \u003ccode\u003eRUF012\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23202\"\u003e#23202\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFormatter\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/astral-sh/ruff/commit/a2f11d239f91cf8daedb0764ec15fcfe29c5ae6d\"\u003e\u003ccode\u003ea2f11d2\u003c/code\u003e\u003c/a\u003e Prepare for 0.15.1 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23253\"\u003e#23253\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/d29628e9665baa17272aad489398eb72b70e60ff\"\u003e\u003ccode\u003ed29628e\u003c/code\u003e\u003c/a\u003e Remove docker-run-action (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23254\"\u003e#23254\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/8a042667651d7b1cdfc1742478d2b29b04d91be0\"\u003e\u003ccode\u003e8a04266\u003c/code\u003e\u003c/a\u003e [ty] Allow discovering dependencies in system Python environments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22994\"\u003e#22994\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/55d06c8879761c5500e9558502abc84cefcb7163\"\u003e\u003ccode\u003e55d06c8\u003c/code\u003e\u003c/a\u003e Ensure pending suppression diagnostics are reported (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23242\"\u003e#23242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/d056a9fa6dfb842f2c0d439bf7b1a8099e5734ea\"\u003e\u003ccode\u003ed056a9f\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eisort\u003c/code\u003e] support for configurable import section heading comments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23151\"\u003e#23151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e22fa4f14d8fae550249e452d11bc53756df5c7a\"\u003e\u003ccode\u003ee22fa4f\u003c/code\u003e\u003c/a\u003e [ty] Fix method calls on subclasses of \u003ccode\u003eAny\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23248\"\u003e#23248\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/fa56c1550d723e458b91dc2405d5537d40401d5c\"\u003e\u003ccode\u003efa56c15\u003c/code\u003e\u003c/a\u003e [ty] Fix bound method access on \u003ccode\u003eNone\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23246\"\u003e#23246\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/4fd07d0e1cbbb4e4c3f5b4c1f04f2d8b3f4a2bf2\"\u003e\u003ccode\u003e4fd07d0\u003c/code\u003e\u003c/a\u003e Make range suppression test snapshot actually useful (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23251\"\u003e#23251\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/8c63bced13b21d1952a56e6a096d9c2ec4af442f\"\u003e\u003ccode\u003e8c63bce\u003c/code\u003e\u003c/a\u003e [ty] Include conditional symbols (like \u003ccode\u003edatetime.UTC\u003c/code\u003e) in auto-import in more...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/46be94361b3b4c54be911eb88bfbd9666eb06a6d\"\u003e\u003ccode\u003e46be943\u003c/code\u003e\u003c/a\u003e Exclude WASM artifacts from GitHub releases (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23221\"\u003e#23221\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.15.0...0.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `types-networkx` from 3.6.1.20251220 to 3.6.1.20260210\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 `nox` from 2025.11.12 to 2026.2.9\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/wntrblm/nox/releases\"\u003enox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2026.02.09 ❤️‍🩹\u003c/h2\u003e\n\u003cp\u003eThis small release supports uv 0.10's new requirement that \u003ccode\u003e--clear\u003c/code\u003e be passed to clear an environment. Python 3.8 support was temporarily re-added since uv 0.10 still supports 3.8, so nox on 3.8 was affected.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport uv 0.10.0 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1055\"\u003ewntrblm/nox#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow tags by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1058\"\u003ewntrblm/nox#1058\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter support for multiple session decorators by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1048\"\u003ewntrblm/nox#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize extra \u003ccode\u003etox-to-nox\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/wntrblm/nox/pull/1059\"\u003ewntrblm/nox#1059\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter typing for \u003ccode\u003e.run\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/wntrblm/nox/pull/1037\"\u003ewntrblm/nox#1037\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix conda CI job by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1035\"\u003ewntrblm/nox#1035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1004\"\u003ewntrblm/nox#1004\u003c/a\u003e and revert in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1060\"\u003ewntrblm/nox#1060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix action test by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1036\"\u003ewntrblm/nox#1036\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump packaging dep to remove pyparsing by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1047\"\u003ewntrblm/nox#1047\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid newest docutils until sphinx-tabs updates by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1052\"\u003ewntrblm/nox#1052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize the naming of constants to enhance readability by \u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1041\"\u003ewntrblm/nox#1041\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDuplicated session name in cookbook by \u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1050\"\u003ewntrblm/nox#1050\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/wntrblm/nox/blob/main/CHANGELOG.md\"\u003enox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003e2026.02.09\u003c/h2\u003e\n\u003cp\u003eThis small release supports uv 0.10's new requirement that \u003ccode\u003e--clear\u003c/code\u003e be passed\nto clear an environment. Python 3.8 support was temporarily re-added since uv\n0.10 still supports 3.8, so nox on 3.8 was affected.\u003c/p\u003e\n\u003cp\u003eWe'd like to thank the following folks who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e (first contribution)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport uv 0.10.0 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1055\"\u003ewntrblm/nox#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShow tags by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1058\"\u003ewntrblm/nox#1058\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter support for multiple session decorators by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1048\"\u003ewntrblm/nox#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize extra \u003ccode\u003etox-to-nox\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/wntrblm/nox/pull/1059\"\u003ewntrblm/nox#1059\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter typing for \u003ccode\u003e.run\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/wntrblm/nox/pull/1037\"\u003ewntrblm/nox#1037\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix conda CI job by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1035\"\u003ewntrblm/nox#1035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1004\"\u003ewntrblm/nox#1004\u003c/a\u003e and revert in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1060\"\u003ewntrblm/nox#1060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix action test by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1036\"\u003ewntrblm/nox#1036\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump packaging dep to remove pyparsing by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1047\"\u003ewntrblm/nox#1047\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid newest docutils until sphinx-tabs updates by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1052\"\u003ewntrblm/nox#1052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize the naming of constants to enhance readability by \u003ca href=\"https://github.com/wu-zhao-min\"\u003e\u003ccode\u003e@​wu-zhao-min\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1041\"\u003ewntrblm/nox#1041\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDuplicated session name in cookbook by \u003ca href=\"https://github.com/kai687\"\u003e\u003ccode\u003e@​kai687\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/wntrblm/nox/pull/1050\"\u003ewntrblm/nox#1050\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/wntrblm/nox/commit/5a277b752f6094150e25237d47c34168e2b7526e\"\u003e\u003ccode\u003e5a277b7\u003c/code\u003e\u003c/a\u003e docs: prepare for release (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1061\"\u003e#1061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/90a8aef54122e188dbea80680552507517523ced\"\u003e\u003ccode\u003e90a8aef\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;feat: drop Python 3.8 (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1004\"\u003e#1004\u003c/a\u003e)\u0026quot; (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1060\"\u003e#1060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/264f4577846b30c3f84bb313c8d3f5c497ab7cce\"\u003e\u003ccode\u003e264f457\u003c/code\u003e\u003c/a\u003e chore: normalize extra (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1059\"\u003e#1059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/516d9bc3e134d7fe0f6a370c64a9c52b74a18a85\"\u003e\u003ccode\u003e516d9bc\u003c/code\u003e\u003c/a\u003e fix: show tags (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1058\"\u003e#1058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/7207b3fbde52febfa72a29141440179219b9f272\"\u003e\u003ccode\u003e7207b3f\u003c/code\u003e\u003c/a\u003e fix: support uv 0.10.0 (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/11eee27ceb73fb77a8b4351718ef5e14821155ee\"\u003e\u003ccode\u003e11eee27\u003c/code\u003e\u003c/a\u003e fix: better support for multiple session decorators (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1048\"\u003e#1048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/c72769b1ee7bc729c08c93f518e536364cecee8e\"\u003e\u003ccode\u003ec72769b\u003c/code\u003e\u003c/a\u003e docs: duplicated session name in cookbook (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1050\"\u003e#1050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/a0660b17967de97c10f56b12f67cc5667e79bb08\"\u003e\u003ccode\u003ea0660b1\u003c/code\u003e\u003c/a\u003e docs: avoid newest docutils until sphinx-tabs updates (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1052\"\u003e#1052\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/f8edf5fec2c819ec502566d2005a8346c9363334\"\u003e\u003ccode\u003ef8edf5f\u003c/code\u003e\u003c/a\u003e fix(types): Better typing for .run (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1037\"\u003e#1037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wntrblm/nox/commit/5dbd95e82f43d05dfd1c60bd296d203f34108ee3\"\u003e\u003ccode\u003e5dbd95e\u003c/code\u003e\u003c/a\u003e chore: optimize the naming of constants to enhance readability (\u003ca href=\"https://redirect.github.com/wntrblm/nox/issues/1041\"\u003e#1041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/wntrblm/nox/compare/2025.11.12...2026.02.09\"\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/TeamGraphix/graphix/pull/438","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/TeamGraphix%2Fgraphix/issues/438","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/438/packages"}}]}