{"id":44734,"name":"pytest","ecosystem":"conda","repository_url":"https://github.com/pytest-dev/pytest","issues_count":27,"created_at":"2025-06-22T19:04:19.462Z","updated_at":"2025-06-22T19:04:19.462Z","purl":"pkg:conda/pytest","metadata":{"id":5284746,"name":"pytest","ecosystem":"conda","description":"The pytest framework makes it easy to write small tests, yet scales to support complex functional testing for applications and libraries.","homepage":"https://docs.pytest.org","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/pytest-dev/pytest","keywords_array":[],"namespace":null,"versions_count":73,"first_release_published_at":"2017-09-21T00:17:40.000Z","latest_release_published_at":"2025-02-07T14:36:04.000Z","latest_release_number":"8.3.4","last_synced_at":"2025-06-07T16:48:39.833Z","created_at":"2022-10-03T15:41:13.866Z","updated_at":"2025-06-07T16:48:39.834Z","registry_url":"https://anaconda.org/anaconda/pytest","install_command":"conda install -c anaconda pytest","documentation_url":null,"metadata":{},"repo_metadata":{"id":33797025,"uuid":"37489525","full_name":"pytest-dev/pytest","owner":"pytest-dev","description":"The pytest framework makes it easy to write small tests, yet scales to support complex functional testing","archived":false,"fork":false,"pushed_at":"2024-10-29T09:39:35.000Z","size":34973,"stargazers_count":12049,"open_issues_count":891,"forks_count":2673,"subscribers_count":192,"default_branch":"main","last_synced_at":"2024-10-29T11:43:52.103Z","etag":null,"topics":["hacktoberfest","python","test","testing","unit-testing"],"latest_commit_sha":null,"homepage":"https://pytest.org","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pytest-dev.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGELOG.rst","contributing":"CONTRIBUTING.rst","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":"CITATION","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null},"funding":{"tidelift":"pypi/pytest","open_collective":"pytest"}},"created_at":"2015-06-15T20:28:27.000Z","updated_at":"2024-10-29T09:29:02.000Z","dependencies_parsed_at":"2023-12-21T17:16:01.139Z","dependency_job_id":"8ed19d1e-1d25-4381-8ecf-5d865a957dba","html_url":"https://github.com/pytest-dev/pytest","commit_stats":{"total_commits":11989,"total_committers":1023,"mean_commits":"11.719452590420332","dds":0.8371006756193177,"last_synced_commit":"3ce9be96a11aad3f148c6ab11709cfa940cadea2"},"previous_names":[],"tags_count":210,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pytest-dev","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237503801,"owners_count":19320700,"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":"pytest-dev","name":"pytest-dev","uuid":"8897583","kind":"organization","description":"","email":"pytest-dev@python.org","website":"https://pytest.org","location":"Everywhere","twitter":"pytestdotorg","company":null,"icon_url":"https://avatars.githubusercontent.com/u/8897583?v=4","repositories_count":71,"last_synced_at":"2024-04-16T03:10:10.569Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/pytest-dev","funding_links":[],"total_stars":30631,"followers":399,"following":0,"created_at":"2022-11-02T16:22:53.846Z","updated_at":"2024-04-16T03:10:29.747Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pytest-dev","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pytest-dev/repositories"},"tags":[{"name":"8.3.3","sha":"d0f136fe64f9374f18a04562305b178fb380d1ec","kind":"tag","published_at":"2024-09-10T10:52:16.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/8.3.3","html_url":"https://github.com/pytest-dev/pytest/releases/tag/8.3.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/8.3.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/8.3.3/manifests"},{"name":"8.3.2","sha":"bbcec9c46509c417ef58e4849847b4aa43f4591e","kind":"tag","published_at":"2024-07-25T10:40:02.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/8.3.2","html_url":"https://github.com/pytest-dev/pytest/releases/tag/8.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/8.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/8.3.2/manifests"},{"name":"8.4.0.dev0","sha":"04bac8deaf1abd49e198cfd5cb66d8001b1de1ea","kind":"commit","published_at":"2024-07-20T16:27:14.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/8.4.0.dev0","html_url":"https://github.com/pytest-dev/pytest/releases/tag/8.4.0.dev0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/8.4.0.dev0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/8.4.0.dev0/manifests"},{"name":"8.3.1","sha":"de98446075cc07c768387cf64ba497dd75c205de","kind":"tag","published_at":"2024-07-20T16:25:05.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/8.3.1","html_url":"https://github.com/pytest-dev/pytest/releases/tag/8.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/8.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/8.3.1/manifests"},{"name":"8.3.0","sha":"a7d5a8eba9addd119432fa71880b51052a89812f","kind":"tag","published_at":"2024-07-20T15:32:31.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/8.3.0","html_url":"https://github.com/pytest-dev/pytest/releases/tag/8.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/8.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/8.3.0/manifests"},{"name":"8.2.2","sha":"329d3712146e69c471be3e30883d54bdde2f76cb","kind":"tag","published_at":"2024-06-04T13:38:11.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/8.2.2","html_url":"https://github.com/pytest-dev/pytest/releases/tag/8.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/8.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/8.2.2/manifests"},{"name":"8.2.1","sha":"66ff8dffdf9eee9b3dd6686de34542c49ff80dcd","kind":"tag","published_at":"2024-05-19T19:08:06.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/8.2.1","html_url":"https://github.com/pytest-dev/pytest/releases/tag/8.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/8.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/8.2.1/manifests"},{"name":"8.3.0.dev0","sha":"9eecdc7dae706439b0a4eb0470b99c56bf2ca28f","kind":"commit","published_at":"2024-04-27T23:41:36.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/8.3.0.dev0","html_url":"https://github.com/pytest-dev/pytest/releases/tag/8.3.0.dev0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/8.3.0.dev0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/8.3.0.dev0/manifests"},{"name":"8.2.0","sha":"6bd3f313447290380cbc2db30fb9ee5cca7eb941","kind":"tag","published_at":"2024-04-27T23:34:57.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/8.2.0","html_url":"https://github.com/pytest-dev/pytest/releases/tag/8.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/8.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/8.2.0/manifests"},{"name":"8.1.2","sha":"cf84163ac3549e657eed5ef2a4f4c7a5d1ffbe8c","kind":"tag","published_at":"2024-04-26T18:05:19.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/8.1.2","html_url":"https://github.com/pytest-dev/pytest/releases/tag/8.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/8.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/8.1.2/manifests"},{"name":"8.1.1","sha":"81653ee385f4c62ee7e64502a7b7530096553115","kind":"tag","published_at":"2024-03-09T11:51:10.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/8.1.1","html_url":"https://github.com/pytest-dev/pytest/releases/tag/8.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/8.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/8.1.1/manifests"},{"name":"8.2.0.dev0","sha":"71849cc05c4fffe2267a6844393be3adb8248820","kind":"commit","published_at":"2024-03-03T21:29:47.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/8.2.0.dev0","html_url":"https://github.com/pytest-dev/pytest/releases/tag/8.2.0.dev0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/8.2.0.dev0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/8.2.0.dev0/manifests"},{"name":"8.1.0","sha":"b9a167f9bbbd6eda4f0360c5bf5b7f5af50f2bc4","kind":"tag","published_at":"2024-03-03T21:23:45.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/8.1.0","html_url":"https://github.com/pytest-dev/pytest/releases/tag/8.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/8.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/8.1.0/manifests"},{"name":"8.0.2","sha":"31afeeb0df0e8bdab1325b5992a2cc733e981e82","kind":"tag","published_at":"2024-02-24T22:21:33.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/8.0.2","html_url":"https://github.com/pytest-dev/pytest/releases/tag/8.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/8.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/8.0.2/manifests"},{"name":"8.0.1","sha":"d7d320a15a1f8dae909e0aa71f20ab5daeaa42d3","kind":"tag","published_at":"2024-02-16T22:08:31.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/8.0.1","html_url":"https://github.com/pytest-dev/pytest/releases/tag/8.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/8.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/8.0.1/manifests"},{"name":"8.0.0","sha":"478f8233bca8147445f0c5129f04ada892cc6c91","kind":"tag","published_at":"2024-01-27T21:47:59.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/8.0.0","html_url":"https://github.com/pytest-dev/pytest/releases/tag/8.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/8.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/8.0.0/manifests"},{"name":"8.0.0rc2","sha":"6be0a3cbf7e014834610139421a0d9804d4a3eae","kind":"tag","published_at":"2024-01-17T21:40:45.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/8.0.0rc2","html_url":"https://github.com/pytest-dev/pytest/releases/tag/8.0.0rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/8.0.0rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/8.0.0rc2/manifests"},{"name":"8.1.0.dev0","sha":"a53984a55b35235a21b4142822a9dd10d7e995f1","kind":"commit","published_at":"2024-01-02T09:20:03.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/8.1.0.dev0","html_url":"https://github.com/pytest-dev/pytest/releases/tag/8.1.0.dev0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/8.1.0.dev0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/8.1.0.dev0/manifests"},{"name":"8.0.0rc1","sha":"e17d5ec871998246a87ecd3a99bbfe4e67331847","kind":"tag","published_at":"2024-01-02T08:46:26.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/8.0.0rc1","html_url":"https://github.com/pytest-dev/pytest/releases/tag/8.0.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/8.0.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/8.0.0rc1/manifests"},{"name":"7.4.4","sha":"33f694f4b30c5c502f21f81cb8ab907b12ad2f65","kind":"tag","published_at":"2023-12-31T12:00:21.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/7.4.4","html_url":"https://github.com/pytest-dev/pytest/releases/tag/7.4.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/7.4.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/7.4.4/manifests"},{"name":"7.4.3","sha":"23906106968eb95afbd61adfbc7bbb795fc9aaa9","kind":"tag","published_at":"2023-10-24T20:45:43.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/7.4.3","html_url":"https://github.com/pytest-dev/pytest/releases/tag/7.4.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/7.4.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/7.4.3/manifests"},{"name":"v7.4.3","sha":"23906106968eb95afbd61adfbc7bbb795fc9aaa9","kind":"tag","published_at":"2023-10-24T19:23:18.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/v7.4.3","html_url":"https://github.com/pytest-dev/pytest/releases/tag/v7.4.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/v7.4.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/v7.4.3/manifests"},{"name":"7.4.2","sha":"45f34dfb8d813b00c7d8060a3ea75f7b4bc5cd7d","kind":"commit","published_at":"2023-09-07T17:21:49.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/7.4.2","html_url":"https://github.com/pytest-dev/pytest/releases/tag/7.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/7.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/7.4.2/manifests"},{"name":"7.4.1","sha":"7855a72d2c5c810a025460f135ffdd77160bb091","kind":"commit","published_at":"2023-09-02T11:46:22.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/7.4.1","html_url":"https://github.com/pytest-dev/pytest/releases/tag/7.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/7.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/7.4.1/manifests"},{"name":"8.0.0.dev0","sha":"57d352460cd3c0ea38b1fc85764678fc35a264a8","kind":"commit","published_at":"2023-06-23T11:48:46.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/8.0.0.dev0","html_url":"https://github.com/pytest-dev/pytest/releases/tag/8.0.0.dev0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/8.0.0.dev0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/8.0.0.dev0/manifests"},{"name":"7.4.0","sha":"d9bf9dbec104af1e3a2c02b04f4e1d501d5d86a2","kind":"commit","published_at":"2023-06-23T11:03:58.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/7.4.0","html_url":"https://github.com/pytest-dev/pytest/releases/tag/7.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/7.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/7.4.0/manifests"},{"name":"7.3.2","sha":"9d47a39bdd85e6bef40a5674e5f0eded54e54d7e","kind":"commit","published_at":"2023-06-10T18:52:19.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/7.3.2","html_url":"https://github.com/pytest-dev/pytest/releases/tag/7.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/7.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/7.3.2/manifests"},{"name":"7.3.1","sha":"dab199281c8f969ef870d842a660e40872785bd4","kind":"commit","published_at":"2023-04-14T17:14:35.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/7.3.1","html_url":"https://github.com/pytest-dev/pytest/releases/tag/7.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/7.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/7.3.1/manifests"},{"name":"7.4.0.dev0","sha":"ec8e23951dc72ddb4a2bc273a0f5b6406f555a14","kind":"commit","published_at":"2023-04-08T21:53:52.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/7.4.0.dev0","html_url":"https://github.com/pytest-dev/pytest/releases/tag/7.4.0.dev0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/7.4.0.dev0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/7.4.0.dev0/manifests"},{"name":"7.3.0","sha":"ef982aaf2bce28d6b27e24756a4d29377a593a1d","kind":"commit","published_at":"2023-04-08T21:19:52.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/7.3.0","html_url":"https://github.com/pytest-dev/pytest/releases/tag/7.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/7.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/7.3.0/manifests"},{"name":"7.2.2","sha":"4191e0259805acbc499d326441c98e2b950637f1","kind":"commit","published_at":"2023-03-03T17:05:52.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/7.2.2","html_url":"https://github.com/pytest-dev/pytest/releases/tag/7.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/7.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/7.2.2/manifests"},{"name":"7.2.1","sha":"1ae778f13ec8350e224ae6a365f21cc0d83af018","kind":"commit","published_at":"2023-01-13T11:01:33.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/7.2.1","html_url":"https://github.com/pytest-dev/pytest/releases/tag/7.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/7.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/7.2.1/manifests"},{"name":"7.2.0","sha":"3af3f569d5394bb1a18426b0d57a04a094800974","kind":"tag","published_at":"2022-10-25T07:54:35.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/7.2.0","html_url":"https://github.com/pytest-dev/pytest/releases/tag/7.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/7.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/7.2.0/manifests"},{"name":"7.1.3","sha":"4645bcd44915c2fd6043b101626e5bf1a983ac07","kind":"commit","published_at":"2022-08-31T17:53:40.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/7.1.3","html_url":"https://github.com/pytest-dev/pytest/releases/tag/7.1.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/7.1.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/7.1.3/manifests"},{"name":"7.1.2","sha":"2f2f1a601e33aa1a77de42f164ba4b642252f1c0","kind":"commit","published_at":"2022-04-23T11:33:44.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/7.1.2","html_url":"https://github.com/pytest-dev/pytest/releases/tag/7.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/7.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/7.1.2/manifests"},{"name":"7.1.1","sha":"0ffe9e07422dfec72479a6d056154ec8b9b0dbae","kind":"commit","published_at":"2022-03-17T20:21:30.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/7.1.1","html_url":"https://github.com/pytest-dev/pytest/releases/tag/7.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/7.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/7.1.1/manifests"},{"name":"7.2.0.dev0","sha":"f0bf4c968195d2b17b002e866e2d0766184e02a4","kind":"commit","published_at":"2022-03-13T15:20:13.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/7.2.0.dev0","html_url":"https://github.com/pytest-dev/pytest/releases/tag/7.2.0.dev0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/7.2.0.dev0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/7.2.0.dev0/manifests"},{"name":"7.1.0","sha":"1dbffcc0b4d822b87ad9f90595ffab6d9beee769","kind":"commit","published_at":"2022-03-13T13:44:48.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/7.1.0","html_url":"https://github.com/pytest-dev/pytest/releases/tag/7.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/7.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/7.1.0/manifests"},{"name":"7.0.1","sha":"3f12087fe0d86a319216653b08b66a96d400bee2","kind":"commit","published_at":"2022-02-11T15:56:37.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/7.0.1","html_url":"https://github.com/pytest-dev/pytest/releases/tag/7.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/7.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/7.0.1/manifests"},{"name":"7.0.0.post1","sha":"e37fbe5685d330cbe7819c5a08d0a524df7299bf","kind":"commit","published_at":"2022-02-04T10:23:39.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/7.0.0.post1","html_url":"https://github.com/pytest-dev/pytest/releases/tag/7.0.0.post1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/7.0.0.post1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/7.0.0.post1/manifests"},{"name":"7.0.0","sha":"3554b833c24f541af5c7272e47cfa52b89d8138d","kind":"commit","published_at":"2022-02-03T16:39:39.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/7.0.0","html_url":"https://github.com/pytest-dev/pytest/releases/tag/7.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/7.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/7.0.0/manifests"},{"name":"7.1.0.dev0","sha":"0ad452bcbadffa2bb890c543c8b409d2df61c67d","kind":"tag","published_at":"2021-12-07T15:17:01.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/7.1.0.dev0","html_url":"https://github.com/pytest-dev/pytest/releases/tag/7.1.0.dev0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/7.1.0.dev0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/7.1.0.dev0/manifests"},{"name":"7.0.0rc1","sha":"6e091b900876b40fbec0800633565e9bf34e479a","kind":"commit","published_at":"2021-12-06T22:21:27.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/7.0.0rc1","html_url":"https://github.com/pytest-dev/pytest/releases/tag/7.0.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/7.0.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/7.0.0rc1/manifests"},{"name":"7.0.0.dev0","sha":"109312ba86a7142dfff30f3309d6f7a596f02db1","kind":"tag","published_at":"2021-10-25T17:46:30.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/7.0.0.dev0","html_url":"https://github.com/pytest-dev/pytest/releases/tag/7.0.0.dev0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/7.0.0.dev0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/7.0.0.dev0/manifests"},{"name":"6.2.5","sha":"1569fac603d9a50022e1474b494eebf970a2a3af","kind":"commit","published_at":"2021-08-29T14:09:45.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/6.2.5","html_url":"https://github.com/pytest-dev/pytest/releases/tag/6.2.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/6.2.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/6.2.5/manifests"},{"name":"6.2.4","sha":"017dd1ccd60055bc6a7a41af11b74425da87a696","kind":"commit","published_at":"2021-05-04T15:33:43.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/6.2.4","html_url":"https://github.com/pytest-dev/pytest/releases/tag/6.2.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/6.2.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/6.2.4/manifests"},{"name":"6.2.3","sha":"3a2fd9630547e224bea6e024a4f6852761235c61","kind":"commit","published_at":"2021-04-03T21:41:18.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/6.2.3","html_url":"https://github.com/pytest-dev/pytest/releases/tag/6.2.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/6.2.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/6.2.3/manifests"},{"name":"6.2.2","sha":"b9c98762f597f624be58d791ea7bdee6cd517967","kind":"commit","published_at":"2021-01-25T12:30:53.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/6.2.2","html_url":"https://github.com/pytest-dev/pytest/releases/tag/6.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/6.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/6.2.2/manifests"},{"name":"6.2.1","sha":"d3971c30f4d0f1890a372af3b98de41ee555dcb3","kind":"commit","published_at":"2020-12-15T13:06:34.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/6.2.1","html_url":"https://github.com/pytest-dev/pytest/releases/tag/6.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/6.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/6.2.1/manifests"},{"name":"6.3.0.dev0","sha":"09582048be6ec935de0114a40fb0f5e103edd793","kind":"commit","published_at":"2020-12-12T21:28:31.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/6.3.0.dev0","html_url":"https://github.com/pytest-dev/pytest/releases/tag/6.3.0.dev0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/6.3.0.dev0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/6.3.0.dev0/manifests"},{"name":"6.2.0","sha":"e7073afe6e2373175130511135020af8b4e3a670","kind":"commit","published_at":"2020-12-12T20:45:09.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/6.2.0","html_url":"https://github.com/pytest-dev/pytest/releases/tag/6.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/6.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/6.2.0/manifests"},{"name":"6.1.2","sha":"4e8b50ba01f0d8a6a2abb98440d3421a037eddb7","kind":"commit","published_at":"2020-10-28T11:37:31.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/6.1.2","html_url":"https://github.com/pytest-dev/pytest/releases/tag/6.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/6.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/6.1.2/manifests"},{"name":"6.1.1","sha":"0ad20b533ffc52ced7bb1a03fba664615e90c093","kind":"commit","published_at":"2020-10-03T19:05:02.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/6.1.1","html_url":"https://github.com/pytest-dev/pytest/releases/tag/6.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/6.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/6.1.1/manifests"},{"name":"6.2.0.dev0","sha":"e0ea00a70d888d81fe57059a6ca8e54fe2dbda3a","kind":"commit","published_at":"2020-09-26T18:24:11.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/6.2.0.dev0","html_url":"https://github.com/pytest-dev/pytest/releases/tag/6.2.0.dev0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/6.2.0.dev0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/6.2.0.dev0/manifests"},{"name":"6.1.0","sha":"868bc003ecb0af65548c14de997205cc0e37c3c6","kind":"commit","published_at":"2020-09-26T17:32:18.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/6.1.0","html_url":"https://github.com/pytest-dev/pytest/releases/tag/6.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/6.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/6.1.0/manifests"},{"name":"6.0.2","sha":"09b1d7cc997200dca5adb3e62e593c312d6864d3","kind":"tag","published_at":"2020-09-11T22:42:24.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/6.0.2","html_url":"https://github.com/pytest-dev/pytest/releases/tag/6.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/6.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/6.0.2/manifests"},{"name":"6.0.1","sha":"92af2e22d276d6f9b6aca4435ec19af81ffaea49","kind":"commit","published_at":"2020-07-30T11:50:12.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/6.0.1","html_url":"https://github.com/pytest-dev/pytest/releases/tag/6.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/6.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/6.0.1/manifests"},{"name":"6.0.0","sha":"41a453959441d9b03cba3e47730efca27fa2f252","kind":"commit","published_at":"2020-07-28T17:15:45.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/6.0.0","html_url":"https://github.com/pytest-dev/pytest/releases/tag/6.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/6.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/6.0.0/manifests"},{"name":"6.0.0rc1","sha":"b22d4663450acd96dfaddd187f6f8c454bcc9fed","kind":"commit","published_at":"2020-07-08T21:51:57.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/6.0.0rc1","html_url":"https://github.com/pytest-dev/pytest/releases/tag/6.0.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/6.0.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/6.0.0rc1/manifests"},{"name":"4.6.11","sha":"2262734edfce27bed7839c93a9f7c42ace056a70","kind":"commit","published_at":"2020-06-04T17:49:08.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/4.6.11","html_url":"https://github.com/pytest-dev/pytest/releases/tag/4.6.11","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/4.6.11","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/4.6.11/manifests"},{"name":"5.4.3","sha":"b322004047774f4b0992bfc8b9b1123069a6d0f1","kind":"commit","published_at":"2020-06-02T15:22:35.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/5.4.3","html_url":"https://github.com/pytest-dev/pytest/releases/tag/5.4.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/5.4.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/5.4.3/manifests"},{"name":"4.6.10","sha":"180f93158e380fd570340b39ae5aafc066e07ff8","kind":"commit","published_at":"2020-05-08T15:59:26.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/4.6.10","html_url":"https://github.com/pytest-dev/pytest/releases/tag/4.6.10","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/4.6.10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/4.6.10/manifests"},{"name":"5.4.2","sha":"f838c7b7eb0088a5cf6c247f158d455b15d0ccd6","kind":"commit","published_at":"2020-05-08T11:14:08.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/5.4.2","html_url":"https://github.com/pytest-dev/pytest/releases/tag/5.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/5.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/5.4.2/manifests"},{"name":"5.4.1","sha":"3d0f3baa2bb89257dfff25ae6ebabd565287240e","kind":"commit","published_at":"2020-03-13T13:34:24.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/5.4.1","html_url":"https://github.com/pytest-dev/pytest/releases/tag/5.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/5.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/5.4.1/manifests"},{"name":"5.4.0","sha":"c9fd1bdbd6d25917d33b27511d8ebc2a65538899","kind":"commit","published_at":"2020-03-12T14:14:35.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/5.4.0","html_url":"https://github.com/pytest-dev/pytest/releases/tag/5.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/5.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/5.4.0/manifests"},{"name":"5.3.5","sha":"fd1a51a23fa687cf344f3506dff6cde0166faf2c","kind":"commit","published_at":"2020-01-29T02:03:56.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/5.3.5","html_url":"https://github.com/pytest-dev/pytest/releases/tag/5.3.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/5.3.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/5.3.5/manifests"},{"name":"5.3.4","sha":"6a26ac41255a304eb3eec2da565101caf2112394","kind":"commit","published_at":"2020-01-20T16:53:31.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/5.3.4","html_url":"https://github.com/pytest-dev/pytest/releases/tag/5.3.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/5.3.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/5.3.4/manifests"},{"name":"5.3.3","sha":"544b4a14d5f6dbe141c34878d1a360cc6b15c87f","kind":"commit","published_at":"2020-01-17T10:18:57.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/5.3.3","html_url":"https://github.com/pytest-dev/pytest/releases/tag/5.3.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/5.3.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/5.3.3/manifests"},{"name":"4.6.9","sha":"f6a5578d5cc780887d98a18beb5a922ccd9c27d3","kind":"commit","published_at":"2020-01-04T12:40:51.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/4.6.9","html_url":"https://github.com/pytest-dev/pytest/releases/tag/4.6.9","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/4.6.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/4.6.9/manifests"},{"name":"4.6.8","sha":"2d398d870604b4d2f95b4a0157b97553008e762a","kind":"commit","published_at":"2019-12-19T22:42:09.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/4.6.8","html_url":"https://github.com/pytest-dev/pytest/releases/tag/4.6.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/4.6.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/4.6.8/manifests"},{"name":"5.3.2","sha":"7f24cc2feb87af41e95d2c0aee59fc81a44dbea8","kind":"commit","published_at":"2019-12-14T13:06:59.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/5.3.2","html_url":"https://github.com/pytest-dev/pytest/releases/tag/5.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/5.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/5.3.2/manifests"},{"name":"4.6.7","sha":"6f43eee106937b49bfa8e1f28a5a1aac091aa837","kind":"commit","published_at":"2019-12-05T20:29:25.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/4.6.7","html_url":"https://github.com/pytest-dev/pytest/releases/tag/4.6.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/4.6.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/4.6.7/manifests"},{"name":"5.3.1","sha":"05008f6b557ad35b71efd9e9ebca96c07402d793","kind":"commit","published_at":"2019-11-25T17:32:37.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/5.3.1","html_url":"https://github.com/pytest-dev/pytest/releases/tag/5.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/5.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/5.3.1/manifests"},{"name":"5.3.0","sha":"be59827216612fd416818702be7e2b8448f4089d","kind":"commit","published_at":"2019-11-19T16:56:22.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/5.3.0","html_url":"https://github.com/pytest-dev/pytest/releases/tag/5.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/5.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/5.3.0/manifests"},{"name":"5.2.4","sha":"c9a96cdee8ee7c1a9ead49b355fab9aef73196fe","kind":"commit","published_at":"2019-11-15T21:26:56.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/5.2.4","html_url":"https://github.com/pytest-dev/pytest/releases/tag/5.2.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/5.2.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/5.2.4/manifests"},{"name":"5.2.3","sha":"dd9a27cf543c39f91039ecd7aa6aa595b3e79330","kind":"commit","published_at":"2019-11-14T20:51:38.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/5.2.3","html_url":"https://github.com/pytest-dev/pytest/releases/tag/5.2.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/5.2.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/5.2.3/manifests"},{"name":"5.2.2","sha":"b27ba977219260528f4e47c9614c129d680dee90","kind":"commit","published_at":"2019-10-24T23:24:04.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/5.2.2","html_url":"https://github.com/pytest-dev/pytest/releases/tag/5.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/5.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/5.2.2/manifests"},{"name":"4.6.6","sha":"5b499bafb24ee0347b1dc25f3f670602818e18a7","kind":"commit","published_at":"2019-10-11T21:02:08.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/4.6.6","html_url":"https://github.com/pytest-dev/pytest/releases/tag/4.6.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/4.6.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/4.6.6/manifests"},{"name":"5.2.1","sha":"12cc729f6b50abbd3708dfc64e76ff454852b805","kind":"commit","published_at":"2019-10-06T12:00:49.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/5.2.1","html_url":"https://github.com/pytest-dev/pytest/releases/tag/5.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/5.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/5.2.1/manifests"},{"name":"5.2.0","sha":"068ef90b92a9e9205af31cb3d82e7d2a433ff969","kind":"commit","published_at":"2019-09-29T01:18:37.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/5.2.0","html_url":"https://github.com/pytest-dev/pytest/releases/tag/5.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/5.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/5.2.0/manifests"},{"name":"5.1.3","sha":"1a9f4a51cb2a3c3b1d8e3bd5189552a24a85f5f4","kind":"commit","published_at":"2019-09-18T13:11:59.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/5.1.3","html_url":"https://github.com/pytest-dev/pytest/releases/tag/5.1.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/5.1.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/5.1.3/manifests"},{"name":"5.1.2","sha":"e56544cb587e8f288bea12aff01355b31aec92f7","kind":"commit","published_at":"2019-08-30T15:43:47.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/5.1.2","html_url":"https://github.com/pytest-dev/pytest/releases/tag/5.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/5.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/5.1.2/manifests"},{"name":"5.1.1","sha":"b135f5af8d9b3a2a3904a55ec51b55db737c97d1","kind":"commit","published_at":"2019-08-20T18:30:36.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/5.1.1","html_url":"https://github.com/pytest-dev/pytest/releases/tag/5.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/5.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/5.1.1/manifests"},{"name":"5.1.0","sha":"eaf7ce9a992cea7506553b7d77fdf9622900ae36","kind":"commit","published_at":"2019-08-16T00:00:09.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/5.1.0","html_url":"https://github.com/pytest-dev/pytest/releases/tag/5.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/5.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/5.1.0/manifests"},{"name":"4.6.5","sha":"7807c263bcbb98ba91b50cb2b0dcdf55c49f80e6","kind":"commit","published_at":"2019-08-05T16:37:25.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/4.6.5","html_url":"https://github.com/pytest-dev/pytest/releases/tag/4.6.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/4.6.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/4.6.5/manifests"},{"name":"5.0.1","sha":"bb29f31d2278fc93efba7ef3e123616c13ce8022","kind":"commit","published_at":"2019-07-05T00:01:16.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/5.0.1","html_url":"https://github.com/pytest-dev/pytest/releases/tag/5.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/5.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/5.0.1/manifests"},{"name":"4.6.4","sha":"d3549df5b94137453b832345a9b8074f518731b0","kind":"commit","published_at":"2019-06-29T01:23:53.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/4.6.4","html_url":"https://github.com/pytest-dev/pytest/releases/tag/4.6.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/4.6.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/4.6.4/manifests"},{"name":"5.0.0","sha":"58bfc7736fc4f88eca669157822e00715c67a9bf","kind":"commit","published_at":"2019-06-28T21:44:49.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/5.0.0","html_url":"https://github.com/pytest-dev/pytest/releases/tag/5.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/5.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/5.0.0/manifests"},{"name":"4.6.3","sha":"b8e65d03bf563d5de3a285af187fd00a2f202e5e","kind":"commit","published_at":"2019-06-11T15:48:11.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/4.6.3","html_url":"https://github.com/pytest-dev/pytest/releases/tag/4.6.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/4.6.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/4.6.3/manifests"},{"name":"4.6.2","sha":"70f0b77c729d689d79498bcb525a8ec6d5464dd0","kind":"commit","published_at":"2019-06-03T17:43:09.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/4.6.2","html_url":"https://github.com/pytest-dev/pytest/releases/tag/4.6.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/4.6.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/4.6.2/manifests"},{"name":"4.6.1","sha":"abb853f482e5fa37b2f18f22662d33e52117e696","kind":"commit","published_at":"2019-06-02T17:09:51.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/4.6.1","html_url":"https://github.com/pytest-dev/pytest/releases/tag/4.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/4.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/4.6.1/manifests"},{"name":"4.6.0","sha":"e7cd00ac920f3db2855becd75193d2241b84e56d","kind":"commit","published_at":"2019-06-01T06:12:57.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/4.6.0","html_url":"https://github.com/pytest-dev/pytest/releases/tag/4.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/4.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/4.6.0/manifests"},{"name":"4.5.0","sha":"63fe547d9f97a78c63a91e139d3a17c15afe7e84","kind":"commit","published_at":"2019-05-11T16:35:32.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/4.5.0","html_url":"https://github.com/pytest-dev/pytest/releases/tag/4.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/4.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/4.5.0/manifests"},{"name":"4.4.2","sha":"3ac43314eeb3285b3680c8e481a5067b3115c46a","kind":"commit","published_at":"2019-05-08T15:46:14.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/4.4.2","html_url":"https://github.com/pytest-dev/pytest/releases/tag/4.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/4.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/4.4.2/manifests"},{"name":"4.4.1","sha":"006dc30476b7ed5924f8f7e8bb97de06a9b573e6","kind":"commit","published_at":"2019-04-15T14:24:17.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/4.4.1","html_url":"https://github.com/pytest-dev/pytest/releases/tag/4.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/4.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/4.4.1/manifests"},{"name":"4.4.0","sha":"4621638f0703620ccab416a9b1724746da402463","kind":"commit","published_at":"2019-03-29T23:29:40.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/4.4.0","html_url":"https://github.com/pytest-dev/pytest/releases/tag/4.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/4.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/4.4.0/manifests"},{"name":"4.3.1","sha":"492cc4219ca00fff2ba9823dc704a2f4aa9d4a1e","kind":"commit","published_at":"2019-03-11T15:59:54.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/4.3.1","html_url":"https://github.com/pytest-dev/pytest/releases/tag/4.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/4.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/4.3.1/manifests"},{"name":"4.3.0","sha":"ff015f630851927a39899b35b175a39945dd6c74","kind":"commit","published_at":"2019-02-18T17:46:03.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/4.3.0","html_url":"https://github.com/pytest-dev/pytest/releases/tag/4.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/4.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/4.3.0/manifests"},{"name":"4.2.1","sha":"82cc3d8cc209b05edecbab8ffc8bf7565e862ce7","kind":"commit","published_at":"2019-02-12T20:17:06.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/4.2.1","html_url":"https://github.com/pytest-dev/pytest/releases/tag/4.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/4.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/4.2.1/manifests"},{"name":"4.2.0","sha":"fa979a4290cdd6ba089091bf898ea65ff1bc2a65","kind":"commit","published_at":"2019-01-30T16:25:38.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/4.2.0","html_url":"https://github.com/pytest-dev/pytest/releases/tag/4.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/4.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/4.2.0/manifests"},{"name":"4.1.1","sha":"34eeda1c09074ade61944bb5b8af326c18157a0b","kind":"commit","published_at":"2019-01-12T00:55:12.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/4.1.1","html_url":"https://github.com/pytest-dev/pytest/releases/tag/4.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/4.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/4.1.1/manifests"},{"name":"4.1.0","sha":"e24031fb3627ae6c187ea476c99a5f6d90e876f6","kind":"commit","published_at":"2019-01-05T20:42:44.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/4.1.0","html_url":"https://github.com/pytest-dev/pytest/releases/tag/4.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/4.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/4.1.0/manifests"},{"name":"4.0.2","sha":"6c5a1150d46f0392e84d6c9f28ace48d5199ca22","kind":"commit","published_at":"2018-12-13T23:37:51.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/4.0.2","html_url":"https://github.com/pytest-dev/pytest/releases/tag/4.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/4.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/4.0.2/manifests"},{"name":"4.0.1","sha":"be3b8fc9c1417243b9567bd31992c0c42f0bf898","kind":"commit","published_at":"2018-11-23T21:47:58.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/4.0.1","html_url":"https://github.com/pytest-dev/pytest/releases/tag/4.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/4.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/4.0.1/manifests"},{"name":"4.0.0","sha":"c2d6b3524cc0039e152da52fe21eb375e63704cf","kind":"commit","published_at":"2018-11-13T21:01:51.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/4.0.0","html_url":"https://github.com/pytest-dev/pytest/releases/tag/4.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/4.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/4.0.0/manifests"},{"name":"3.10.1","sha":"2626bd9afa714c9ae1f50b99f7d0d18e7cf29d27","kind":"commit","published_at":"2018-11-11T13:43:04.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/3.10.1","html_url":"https://github.com/pytest-dev/pytest/releases/tag/3.10.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.10.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.10.1/manifests"},{"name":"3.10.0","sha":"3d88d1827b42b7f7b0e774d19ac58f02e5c67d0a","kind":"commit","published_at":"2018-11-03T22:50:19.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/3.10.0","html_url":"https://github.com/pytest-dev/pytest/releases/tag/3.10.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.10.0/manifests"},{"name":"3.9.3","sha":"96784c2052ba5d36a8c3deaf039c9ab406b12cca","kind":"commit","published_at":"2018-10-27T13:07:54.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/3.9.3","html_url":"https://github.com/pytest-dev/pytest/releases/tag/3.9.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.9.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.9.3/manifests"},{"name":"3.9.2","sha":"771e860011c24f5582d31ebf0631d38bee60c770","kind":"commit","published_at":"2018-10-22T21:47:42.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/3.9.2","html_url":"https://github.com/pytest-dev/pytest/releases/tag/3.9.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.9.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.9.2/manifests"},{"name":"3.9.1","sha":"c5bbf8ac73a78fd15016296e808d13f2a2a983f1","kind":"commit","published_at":"2018-10-16T20:21:15.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/3.9.1","html_url":"https://github.com/pytest-dev/pytest/releases/tag/3.9.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.9.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.9.1/manifests"},{"name":"3.9.0","sha":"2868c314953e3a2cf2c753ebb87710d65c906cfa","kind":"commit","published_at":"2018-10-15T20:23:30.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/3.9.0","html_url":"https://github.com/pytest-dev/pytest/releases/tag/3.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.9.0/manifests"},{"name":"3.8.2","sha":"d3673c7429f00ac7dfa91180194d43fe9dd99b5c","kind":"commit","published_at":"2018-10-02T14:46:02.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/3.8.2","html_url":"https://github.com/pytest-dev/pytest/releases/tag/3.8.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.8.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.8.2/manifests"},{"name":"3.8.1","sha":"3f6a46c2a47bc29993d07d47139ef101f7aa630f","kind":"commit","published_at":"2018-09-22T16:34:06.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/3.8.1","html_url":"https://github.com/pytest-dev/pytest/releases/tag/3.8.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.8.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.8.1/manifests"},{"name":"3.8.0","sha":"1f2062661826efb5ac4322c17e24db202bf0a147","kind":"commit","published_at":"2018-09-05T21:06:32.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/3.8.0","html_url":"https://github.com/pytest-dev/pytest/releases/tag/3.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.8.0/manifests"},{"name":"3.7.4","sha":"aea962dc21c4a1c4b3236500af69d7e78c60f8d5","kind":"commit","published_at":"2018-08-29T15:57:54.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/3.7.4","html_url":"https://github.com/pytest-dev/pytest/releases/tag/3.7.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.7.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.7.4/manifests"},{"name":"3.7.3","sha":"70bdacf01aa0917d4499c1aff4f9f2061968a655","kind":"commit","published_at":"2018-08-26T12:58:47.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/3.7.3","html_url":"https://github.com/pytest-dev/pytest/releases/tag/3.7.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.7.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.7.3/manifests"},{"name":"3.7.2","sha":"e0b088b52ea2c9ad9748acbed62dccfd20eccf42","kind":"commit","published_at":"2018-08-16T22:32:41.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/3.7.2","html_url":"https://github.com/pytest-dev/pytest/releases/tag/3.7.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.7.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.7.2/manifests"},{"name":"3.7.1","sha":"f7a3f45a182ed8b4dabb130d2b46d717b006edeb","kind":"commit","published_at":"2018-08-02T12:04:39.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/3.7.1","html_url":"https://github.com/pytest-dev/pytest/releases/tag/3.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.7.1/manifests"},{"name":"3.7.0","sha":"997ef593068a36c283cbb83d938272b9770caa36","kind":"commit","published_at":"2018-07-30T21:31:35.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/3.7.0","html_url":"https://github.com/pytest-dev/pytest/releases/tag/3.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.7.0/manifests"},{"name":"3.6.4","sha":"317cd41215cc4e6e829f86afdacf0dc15bb43e36","kind":"commit","published_at":"2018-07-28T12:59:04.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/3.6.4","html_url":"https://github.com/pytest-dev/pytest/releases/tag/3.6.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.6.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.6.4/manifests"},{"name":"3.6.3","sha":"73d787df3a13af635d18464a6560984e78c0b4da","kind":"commit","published_at":"2018-07-04T01:15:23.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/3.6.3","html_url":"https://github.com/pytest-dev/pytest/releases/tag/3.6.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.6.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.6.3/manifests"},{"name":"3.6.2","sha":"46aa18dfa7c46e70ae5c204667f3590181abe25f","kind":"commit","published_at":"2018-06-20T00:34:03.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/3.6.2","html_url":"https://github.com/pytest-dev/pytest/releases/tag/3.6.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.6.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.6.2/manifests"},{"name":"3.6.1","sha":"2a79f58ba39a42d0484d688c7c1541513758e61f","kind":"commit","published_at":"2018-06-05T01:14:04.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/3.6.1","html_url":"https://github.com/pytest-dev/pytest/releases/tag/3.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.6.1/manifests"},{"name":"3.6.0","sha":"45e77031336b11a64756d745b1aba46301b32f27","kind":"commit","published_at":"2018-05-23T00:12:51.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/3.6.0","html_url":"https://github.com/pytest-dev/pytest/releases/tag/3.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.6.0/manifests"},{"name":"3.5.1","sha":"4a92011e6e0cf57ed219897afca33b4cb541dac7","kind":"commit","published_at":"2018-04-24T10:06:52.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/3.5.1","html_url":"https://github.com/pytest-dev/pytest/releases/tag/3.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.5.1/manifests"},{"name":"3.5.0","sha":"beacecf29ba0b99511a4e5ae9b96ff2b0c42c775","kind":"commit","published_at":"2018-03-21T20:46:07.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/3.5.0","html_url":"https://github.com/pytest-dev/pytest/releases/tag/3.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.5.0/manifests"},{"name":"3.4.2","sha":"e8368e6c2ea101a79b877509622878ab7b12d1bd","kind":"commit","published_at":"2018-03-05T10:26:38.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/3.4.2","html_url":"https://github.com/pytest-dev/pytest/releases/tag/3.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.4.2/manifests"},{"name":"3.4.1","sha":"b3193755927d38816e25777d9ac6776637d82bbf","kind":"commit","published_at":"2018-02-20T01:43:59.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/3.4.1","html_url":"https://github.com/pytest-dev/pytest/releases/tag/3.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.4.1/manifests"},{"name":"3.4.0","sha":"527845ef298d94b1e101684bb52e5eac3ce53485","kind":"commit","published_at":"2018-01-30T19:49:08.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/3.4.0","html_url":"https://github.com/pytest-dev/pytest/releases/tag/3.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.4.0/manifests"},{"name":"3.3.2","sha":"bd2d0d2c3c9bf92711e5a858e93e46d390dd4229","kind":"commit","published_at":"2017-12-25T20:38:27.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/3.3.2","html_url":"https://github.com/pytest-dev/pytest/releases/tag/3.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.3.2/manifests"},{"name":"3.3.1","sha":"2a111ff700f295d9b27fb1a43219e08df62fc0bd","kind":"commit","published_at":"2017-12-05T20:41:57.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/3.3.1","html_url":"https://github.com/pytest-dev/pytest/releases/tag/3.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.3.1/manifests"},{"name":"3.3.0","sha":"6cdd85122705393cfcfe08570bae581bf9f2d157","kind":"commit","published_at":"2017-11-27T12:19:34.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/3.3.0","html_url":"https://github.com/pytest-dev/pytest/releases/tag/3.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.3.0/manifests"},{"name":"3.2.5","sha":"a220a40350a8a81c0f0e1986aa184e4c33da29d6","kind":"commit","published_at":"2017-11-15T00:12:42.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/3.2.5","html_url":"https://github.com/pytest-dev/pytest/releases/tag/3.2.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.2.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.2.5/manifests"},{"name":"3.2.4","sha":"a0ad9e31da70606916dd22ff4fd9bd64269f5eec","kind":"commit","published_at":"2017-11-13T20:01:17.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/3.2.4","html_url":"https://github.com/pytest-dev/pytest/releases/tag/3.2.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.2.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.2.4/manifests"},{"name":"3.2.3","sha":"6b91bc88de36e3c75da5ab1b7480cbe067eed57b","kind":"commit","published_at":"2017-10-03T21:42:34.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/3.2.3","html_url":"https://github.com/pytest-dev/pytest/releases/tag/3.2.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.2.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.2.3/manifests"},{"name":"3.2.2","sha":"c52f87ede304f42cb9e8c79e461ccde8a55ea5f8","kind":"commit","published_at":"2017-09-06T21:37:57.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/3.2.2","html_url":"https://github.com/pytest-dev/pytest/releases/tag/3.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.2.2/manifests"},{"name":"3.2.1","sha":"45d2962e97eae33ea71adee74911952c730bc039","kind":"commit","published_at":"2017-08-08T21:11:11.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/3.2.1","html_url":"https://github.com/pytest-dev/pytest/releases/tag/3.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.2.1/manifests"},{"name":"3.2.0","sha":"d2bca93109a7c85f316e493c5c31ee2322578980","kind":"commit","published_at":"2017-08-01T21:01:22.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/3.2.0","html_url":"https://github.com/pytest-dev/pytest/releases/tag/3.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.2.0/manifests"},{"name":"3.1.3","sha":"b63f6770a17a122850ddc7902e16ce0c2f6af1ea","kind":"commit","published_at":"2017-07-03T23:29:13.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/3.1.3","html_url":"https://github.com/pytest-dev/pytest/releases/tag/3.1.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.1.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.1.3/manifests"},{"name":"3.1.2","sha":"7cbf265bb5b279d8c39ba6dd85d4ef96aacd0163","kind":"commit","published_at":"2017-06-08T21:37:42.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/3.1.2","html_url":"https://github.com/pytest-dev/pytest/releases/tag/3.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.1.2/manifests"},{"name":"3.1.1","sha":"2fd7626046f55e4c1c8d64990c47fe92a00729fb","kind":"commit","published_at":"2017-05-30T21:19:34.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/3.1.1","html_url":"https://github.com/pytest-dev/pytest/releases/tag/3.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.1.1/manifests"},{"name":"3.1.0","sha":"9b48613baa9ee1ab4e1e233bfe956de03e89b23e","kind":"commit","published_at":"2017-05-19T22:12:59.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/3.1.0","html_url":"https://github.com/pytest-dev/pytest/releases/tag/3.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.1.0/manifests"},{"name":"3.0.7","sha":"90c934e25ed378bd517da9039dfed65c1ea570ba","kind":"commit","published_at":"2017-03-13T22:59:15.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/3.0.7","html_url":"https://github.com/pytest-dev/pytest/releases/tag/3.0.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.0.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.0.7/manifests"},{"name":"3.0.6","sha":"0e64cd045c8477cc81014490ed5e38e5b690a1ea","kind":"commit","published_at":"2017-01-22T21:14:54.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/3.0.6","html_url":"https://github.com/pytest-dev/pytest/releases/tag/3.0.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.0.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.0.6/manifests"},{"name":"3.0.5","sha":"f592c7746a53999f52df46db764b31d9fbb987f9","kind":"commit","published_at":"2016-12-05T12:22:06.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/3.0.5","html_url":"https://github.com/pytest-dev/pytest/releases/tag/3.0.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.0.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.0.5/manifests"},{"name":"3.0.4","sha":"ab274299fee959e64a4a749806e1124eb5d2f29b","kind":"commit","published_at":"2016-11-09T21:44:58.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/3.0.4","html_url":"https://github.com/pytest-dev/pytest/releases/tag/3.0.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.0.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.0.4/manifests"},{"name":"3.0.3","sha":"ba6ecc14c80b6b8a045143bada89598f1f3f8c9c","kind":"commit","published_at":"2016-09-28T21:16:57.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/3.0.3","html_url":"https://github.com/pytest-dev/pytest/releases/tag/3.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.0.3/manifests"},{"name":"3.0.2","sha":"4e58c9a7d010be4b9f67f89495d1e7c2ae9062d0","kind":"commit","published_at":"2016-09-01T11:19:11.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/3.0.2","html_url":"https://github.com/pytest-dev/pytest/releases/tag/3.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.0.2/manifests"},{"name":"3.0.1","sha":"49fc4e5e4c74c2b9914bd81856b2d62cb1473d28","kind":"commit","published_at":"2016-08-23T22:15:43.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/3.0.1","html_url":"https://github.com/pytest-dev/pytest/releases/tag/3.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.0.1/manifests"},{"name":"3.0.0","sha":"c74ce371ab923edb990f40cf21f4309e1b4871ad","kind":"commit","published_at":"2016-08-18T16:02:01.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/3.0.0","html_url":"https://github.com/pytest-dev/pytest/releases/tag/3.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/3.0.0/manifests"},{"name":"2.9.2","sha":"978bb190a14d04634dffa1018dce2a5ead404efa","kind":"commit","published_at":"2016-05-31T17:06:29.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/2.9.2","html_url":"https://github.com/pytest-dev/pytest/releases/tag/2.9.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.9.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.9.2/manifests"},{"name":"2.9.1","sha":"168daaa71f4cc5f846064ebebab41b9cf625a89a","kind":"commit","published_at":"2016-03-17T21:13:41.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/2.9.1","html_url":"https://github.com/pytest-dev/pytest/releases/tag/2.9.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.9.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.9.1/manifests"},{"name":"2.9.0","sha":"19d05814d2e6d662b36bf07fc10ad5dbd7de6052","kind":"commit","published_at":"2016-02-29T22:09:31.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/2.9.0","html_url":"https://github.com/pytest-dev/pytest/releases/tag/2.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.9.0/manifests"},{"name":"2.8.7","sha":"3315b3a12fdd9ef8e05d4efb6d6bea52aa750668","kind":"commit","published_at":"2016-01-24T22:23:15.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/2.8.7","html_url":"https://github.com/pytest-dev/pytest/releases/tag/2.8.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.8.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.8.7/manifests"},{"name":"2.8.6","sha":"82d00efa8dd4ef903f0eca2bd02fa1aab9ddbb96","kind":"commit","published_at":"2016-01-21T21:17:53.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/2.8.6","html_url":"https://github.com/pytest-dev/pytest/releases/tag/2.8.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.8.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.8.6/manifests"},{"name":"2.8.5","sha":"855b115daba16bfe9c9da29198c567921c405b93","kind":"commit","published_at":"2015-12-12T00:35:44.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/2.8.5","html_url":"https://github.com/pytest-dev/pytest/releases/tag/2.8.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.8.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.8.5/manifests"},{"name":"2.8.4","sha":"8c17c7cd121fc4a435beb6b42d07b4a6fd855913","kind":"commit","published_at":"2015-12-06T16:44:08.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/2.8.4","html_url":"https://github.com/pytest-dev/pytest/releases/tag/2.8.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.8.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.8.4/manifests"},{"name":"2.8.3","sha":"e4a000bb001d859a1224837e9938036f76917fe4","kind":"commit","published_at":"2015-11-18T16:57:41.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/2.8.3","html_url":"https://github.com/pytest-dev/pytest/releases/tag/2.8.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.8.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.8.3/manifests"},{"name":"2.8.2","sha":"7c529e0afe7e8d4f5b3c7d9bfcecf5be0c56f2d5","kind":"commit","published_at":"2015-10-07T15:51:34.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/2.8.2","html_url":"https://github.com/pytest-dev/pytest/releases/tag/2.8.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.8.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.8.2/manifests"},{"name":"2.8.1","sha":"afdbb6b17aa6811f30bf2c99d4083e69bf582b3c","kind":"commit","published_at":"2015-09-29T13:19:07.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/2.8.1","html_url":"https://github.com/pytest-dev/pytest/releases/tag/2.8.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.8.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.8.1/manifests"},{"name":"2.8.0","sha":"1aca998f3f75a533888db079bb05dd646957e149","kind":"commit","published_at":"2015-09-18T14:01:22.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/2.8.0","html_url":"https://github.com/pytest-dev/pytest/releases/tag/2.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.8.0/manifests"},{"name":"2.7.3","sha":"b4c47c0ac0699da6c604231f07369e527f1d33cd","kind":"tag","published_at":"2015-09-15T11:55:05.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/2.7.3","html_url":"https://github.com/pytest-dev/pytest/releases/tag/2.7.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.7.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.7.3/manifests"},{"name":"2.7.2","sha":"e84c00efae4fc8841cf5974c0fa68fc043e50a22","kind":"commit","published_at":"2015-06-23T14:31:24.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/2.7.2","html_url":"https://github.com/pytest-dev/pytest/releases/tag/2.7.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.7.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.7.2/manifests"},{"name":"2.7.1","sha":"738c8762df3f2e754c252bb73175989f1e0b1443","kind":"commit","published_at":"2015-05-19T00:54:24.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/2.7.1","html_url":"https://github.com/pytest-dev/pytest/releases/tag/2.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.7.1/manifests"},{"name":"2.7.0","sha":"d2a8866bced48411be883fb0fce4f2f7cabe71ec","kind":"commit","published_at":"2015-03-26T08:34:10.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/2.7.0","html_url":"https://github.com/pytest-dev/pytest/releases/tag/2.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.7.0/manifests"},{"name":"2.6.4","sha":"60cdb875ed17f1e6ca0b189a4bc2cb12de5835f4","kind":"commit","published_at":"2014-10-24T13:24:44.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/2.6.4","html_url":"https://github.com/pytest-dev/pytest/releases/tag/2.6.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.6.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.6.4/manifests"},{"name":"2.6.3","sha":"b57545bd21ff6bf30651de1146b8a355a1486c54","kind":"commit","published_at":"2014-09-24T12:59:55.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/2.6.3","html_url":"https://github.com/pytest-dev/pytest/releases/tag/2.6.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.6.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.6.3/manifests"},{"name":"2.6.2","sha":"7dad3cb1577faa1e3f85d7acedf2261ea02aeaf4","kind":"commit","published_at":"2014-09-05T11:13:23.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/2.6.2","html_url":"https://github.com/pytest-dev/pytest/releases/tag/2.6.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.6.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.6.2/manifests"},{"name":"2.6.1","sha":"e5eaf02e19116192693f563b41878cf89ad218ed","kind":"commit","published_at":"2014-08-07T19:41:51.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/2.6.1","html_url":"https://github.com/pytest-dev/pytest/releases/tag/2.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.6.1/manifests"},{"name":"2.6.0","sha":"52011e84d37921679fd8c9d7dfc468ad81dd6f72","kind":"commit","published_at":"2014-07-20T11:15:21.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/2.6.0","html_url":"https://github.com/pytest-dev/pytest/releases/tag/2.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.6.0/manifests"},{"name":"2.5.2","sha":"1830de2c136fb4cb6b07d53bec7fefa065bd8c2f","kind":"commit","published_at":"2014-01-29T12:56:24.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/2.5.2","html_url":"https://github.com/pytest-dev/pytest/releases/tag/2.5.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.5.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.5.2/manifests"},{"name":"2.5.1","sha":"cc9b3ec296567a25721040549ef69352cc4b8e33","kind":"commit","published_at":"2013-12-17T07:59:50.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/2.5.1","html_url":"https://github.com/pytest-dev/pytest/releases/tag/2.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.5.1/manifests"},{"name":"2.5.0","sha":"a056b41070b453da78a8eebeed83f7de18249e19","kind":"commit","published_at":"2013-12-12T12:01:57.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/2.5.0","html_url":"https://github.com/pytest-dev/pytest/releases/tag/2.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.5.0/manifests"},{"name":"2.4.2","sha":"4b395d56cc9e706fe9f9e9478626e6f38a02d8ce","kind":"commit","published_at":"2013-10-04T11:59:44.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/2.4.2","html_url":"https://github.com/pytest-dev/pytest/releases/tag/2.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.4.2/manifests"},{"name":"2.4.1","sha":"2b8f4214c30e20c6cddcf81069ef928b1e975e1a","kind":"commit","published_at":"2013-10-02T07:16:51.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/2.4.1","html_url":"https://github.com/pytest-dev/pytest/releases/tag/2.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.4.1/manifests"},{"name":"2.4.0","sha":"f9927e457b2f3f4a010287dcdecc180d66753c9b","kind":"commit","published_at":"2013-10-01T08:43:36.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/2.4.0","html_url":"https://github.com/pytest-dev/pytest/releases/tag/2.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.4.0/manifests"},{"name":"2.3.5","sha":"8c7ae7f7a5beb922443a73c9946f459ebd1cda52","kind":"commit","published_at":"2013-04-30T10:26:30.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/2.3.5","html_url":"https://github.com/pytest-dev/pytest/releases/tag/2.3.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.3.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.3.5/manifests"},{"name":"2.3.4","sha":"b5955c59793b924a14e3ab185f38d690cef32fb3","kind":"commit","published_at":"2012-11-20T13:01:31.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/2.3.4","html_url":"https://github.com/pytest-dev/pytest/releases/tag/2.3.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.3.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.3.4/manifests"},{"name":"2.3.3","sha":"d6f10d502cab1e488d212ae2f0eed98e6f447741","kind":"commit","published_at":"2012-11-06T14:36:11.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/2.3.3","html_url":"https://github.com/pytest-dev/pytest/releases/tag/2.3.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.3.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.3.3/manifests"},{"name":"2.3.2","sha":"6ad16936bbdcdf18a933f7a44d8438176d39ab6f","kind":"commit","published_at":"2012-10-25T11:48:31.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/2.3.2","html_url":"https://github.com/pytest-dev/pytest/releases/tag/2.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.3.2/manifests"},{"name":"2.3.1","sha":"d4d213f83dca2d99fe29722ae32c94fd46f4fdaa","kind":"commit","published_at":"2012-10-20T12:10:12.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/2.3.1","html_url":"https://github.com/pytest-dev/pytest/releases/tag/2.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.3.1/manifests"},{"name":"2.3.0","sha":"a5ce481022ed55c13edf043c4d7f65713cd1c607","kind":"commit","published_at":"2012-10-19T09:12:13.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/2.3.0","html_url":"https://github.com/pytest-dev/pytest/releases/tag/2.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.3.0/manifests"},{"name":"2.2.4","sha":"69fc6987adae78966a983eeecb8b7661d908cb48","kind":"commit","published_at":"2012-05-22T15:24:43.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/2.2.4","html_url":"https://github.com/pytest-dev/pytest/releases/tag/2.2.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.2.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.2.4/manifests"},{"name":"2.2.3","sha":"4d21274a29f89c925922c5535166046e40c5a5b7","kind":"commit","published_at":"2012-02-06T04:38:31.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/2.2.3","html_url":"https://github.com/pytest-dev/pytest/releases/tag/2.2.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.2.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.2.3/manifests"},{"name":"2.2.2","sha":"87b4cb283ffa559cab6bcd1d86d6a9f61fb5ac0b","kind":"commit","published_at":"2012-02-05T23:33:04.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/2.2.2","html_url":"https://github.com/pytest-dev/pytest/releases/tag/2.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.2.2/manifests"},{"name":"2.2.1","sha":"b83a3bcc80c85513b875866416306228a6a0e057","kind":"commit","published_at":"2011-12-16T11:43:05.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/2.2.1","html_url":"https://github.com/pytest-dev/pytest/releases/tag/2.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.2.1/manifests"},{"name":"2.2.0","sha":"48e6823c7a552e5f1c53771b0ae826ac14b26683","kind":"commit","published_at":"2011-11-18T18:45:15.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/2.2.0","html_url":"https://github.com/pytest-dev/pytest/releases/tag/2.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.2.0/manifests"},{"name":"2.1.3","sha":"448f1c0d9ccabfe5b63af81117cdb1b8a11bd750","kind":"commit","published_at":"2011-10-18T18:58:19.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/2.1.3","html_url":"https://github.com/pytest-dev/pytest/releases/tag/2.1.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.1.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.1.3/manifests"},{"name":"2.1.2","sha":"172d46abd07e422bf3eb812c6b7048f150be1438","kind":"commit","published_at":"2011-09-24T06:06:39.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/2.1.2","html_url":"https://github.com/pytest-dev/pytest/releases/tag/2.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.1.2/manifests"},{"name":"2.1.0","sha":"50c8218501f84ed3863d805a77b027e4c9351dc2","kind":"commit","published_at":"2011-07-09T10:02:22.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/2.1.0","html_url":"https://github.com/pytest-dev/pytest/releases/tag/2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.1.0/manifests"},{"name":"2.0.3","sha":"07e870dc1494b923b6f6588330598164c391612e","kind":"commit","published_at":"2011-05-11T09:54:30.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/2.0.3","html_url":"https://github.com/pytest-dev/pytest/releases/tag/2.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.0.3/manifests"},{"name":"2.0.2","sha":"527bc472a8b1a68705bc6f38efd2914a16ea2ab3","kind":"commit","published_at":"2011-03-09T12:59:00.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/2.0.2","html_url":"https://github.com/pytest-dev/pytest/releases/tag/2.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.0.2/manifests"},{"name":"2.0.1","sha":"98cd8edb7197309ab54d24d6d4e1ac4079071a63","kind":"commit","published_at":"2011-02-07T10:45:37.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/2.0.1","html_url":"https://github.com/pytest-dev/pytest/releases/tag/2.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.0.1/manifests"},{"name":"2.0.0","sha":"f741d6a01ee5441e957b577abf6b7b712fdb1250","kind":"commit","published_at":"2010-11-25T20:02:09.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/2.0.0","html_url":"https://github.com/pytest-dev/pytest/releases/tag/2.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/2.0.0/manifests"},{"name":"1.3.4","sha":"bb6e9848b3a8770b199a085d3341d498bd7b50d1","kind":"commit","published_at":"2010-09-14T15:35:01.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/1.3.4","html_url":"https://github.com/pytest-dev/pytest/releases/tag/1.3.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/1.3.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/1.3.4/manifests"},{"name":"1.3.3","sha":"365459295967b317b1c3765b2692ed29c3d10d95","kind":"commit","published_at":"2010-07-30T13:06:50.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/1.3.3","html_url":"https://github.com/pytest-dev/pytest/releases/tag/1.3.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/1.3.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/1.3.3/manifests"},{"name":"1.3.2","sha":"caf5bdbf8935f108fa0078aabedd7bed46a76ee5","kind":"commit","published_at":"2010-07-08T15:20:52.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/1.3.2","html_url":"https://github.com/pytest-dev/pytest/releases/tag/1.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/1.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/1.3.2/manifests"},{"name":"1.3.1","sha":"2e36e2619fbe564b37a6657d4370b01e6805c8cd","kind":"commit","published_at":"2010-05-25T19:01:43.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/1.3.1","html_url":"https://github.com/pytest-dev/pytest/releases/tag/1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/1.3.1/manifests"},{"name":"1.3.0","sha":"a127767da68a8f4fbee251fa9cbff657cfb5744e","kind":"commit","published_at":"2010-05-05T19:03:43.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/1.3.0","html_url":"https://github.com/pytest-dev/pytest/releases/tag/1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/1.3.0/manifests"},{"name":"1.2.1","sha":"222a08ec03e1ea3879d4f96c6fe02a8fdec2f3b9","kind":"commit","published_at":"2010-02-08T15:39:29.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/1.2.1","html_url":"https://github.com/pytest-dev/pytest/releases/tag/1.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/1.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/1.2.1/manifests"},{"name":"1.2.0","sha":"6756416d694ed4aa25cd7298419feaffce584eef","kind":"commit","published_at":"2010-01-18T16:00:22.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/1.2.0","html_url":"https://github.com/pytest-dev/pytest/releases/tag/1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/1.2.0/manifests"},{"name":"1.1.1","sha":"9d5b313aad3f5610356385aa6b7f007362abc3c0","kind":"commit","published_at":"2009-11-24T14:16:58.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/1.1.1","html_url":"https://github.com/pytest-dev/pytest/releases/tag/1.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/1.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/1.1.1/manifests"},{"name":"1.1.0","sha":"e0bca8fe519e143ab320c4567fe5de9dad8cf6e8","kind":"commit","published_at":"2009-11-05T16:46:14.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/1.1.0","html_url":"https://github.com/pytest-dev/pytest/releases/tag/1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/1.1.0/manifests"},{"name":"1.0.2","sha":"f522838c77470b0f7d8bcdc7ed6b4e3f0407e422","kind":"commit","published_at":"2009-08-27T09:43:46.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/1.0.2","html_url":"https://github.com/pytest-dev/pytest/releases/tag/1.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/1.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/1.0.2/manifests"},{"name":"1.0.1","sha":"4f50ae13364037f581c417d9acbb56b1a30f69b4","kind":"commit","published_at":"2009-08-19T16:25:11.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/1.0.1","html_url":"https://github.com/pytest-dev/pytest/releases/tag/1.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/1.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/1.0.1/manifests"},{"name":"1.0.0","sha":"a94afc6b5efa730fbd647d75f1e00d7debe656b7","kind":"commit","published_at":"2009-08-04T10:02:38.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/1.0.0","html_url":"https://github.com/pytest-dev/pytest/releases/tag/1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/1.0.0/manifests"},{"name":"1.0.0b9","sha":"e80714d7017e74c41c0a6195518a3d0c760e5cd4","kind":"commit","published_at":"2009-07-31T13:35:22.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/1.0.0b9","html_url":"https://github.com/pytest-dev/pytest/releases/tag/1.0.0b9","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/1.0.0b9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/1.0.0b9/manifests"},{"name":"1.0.0b8","sha":"7fabb3df69fa06f57b2b0c4eb2ec5ef7325b396c","kind":"commit","published_at":"2009-07-22T14:09:49.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/1.0.0b8","html_url":"https://github.com/pytest-dev/pytest/releases/tag/1.0.0b8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/1.0.0b8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/1.0.0b8/manifests"},{"name":"1.0.0b6","sha":"7cb096373bc2a3312ed4c1ebdfde1a0d35a7dbb8","kind":"commit","published_at":"2009-06-29T06:32:33.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/1.0.0b6","html_url":"https://github.com/pytest-dev/pytest/releases/tag/1.0.0b6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/1.0.0b6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/1.0.0b6/manifests"},{"name":"1.0.0b3","sha":"53dc59511391a8a7d4cf2f9a3ce0b0fb8adc31df","kind":"commit","published_at":"2009-06-19T11:05:44.000Z","download_url":"https://codeload.github.com/pytest-dev/pytest/tar.gz/1.0.0b3","html_url":"https://github.com/pytest-dev/pytest/releases/tag/1.0.0b3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/1.0.0b3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pytest-dev%2Fpytest/tags/1.0.0b3/manifests"}]},"repo_metadata_updated_at":"2025-02-07T15:52:38.616Z","dependent_packages_count":36,"downloads":null,"downloads_period":null,"dependent_repos_count":3283,"rankings":{"downloads":null,"dependent_repos_count":0.694654183026276,"dependent_packages_count":0.9966777408637874,"stargazers_count":7.762005436424041,"forks_count":6.674720628209001,"docker_downloads_count":null,"average":4.032014497130777},"purl":"pkg:conda/pytest","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/conda/pytest","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/conda/pytest","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/conda/pytest/dependencies","status":null,"funding_links":["https://tidelift.com/funding/github/pypi/pytest","https://opencollective.com/pytest"],"critical":false,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/anaconda.org/packages/pytest/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/anaconda.org/packages/pytest/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/anaconda.org/packages/pytest/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/anaconda.org/packages/pytest/related_packages","maintainers":[],"registry":{"name":"anaconda.org","url":"https://anaconda.org","ecosystem":"conda","default":true,"packages_count":4156,"maintainers_count":0,"namespaces_count":0,"keywords_count":2739,"github":"Anaconda","metadata":{"kind":"anaconda","key":"Main","api":"https://repo.ananconda.com","funded_packages_count":472},"icon_url":"https://github.com/Anaconda.png","created_at":"2022-10-03T15:37:08.736Z","updated_at":"2025-06-22T05:51:27.147Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/anaconda.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/anaconda.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/anaconda.org/namespaces"}},"unique_repositories_count":19,"unique_repositories_count_past_30_days":1,"recent_issues":[{"uuid":"4437947118","node_id":"PR_kwDOOFC0s87bHlb4","number":1,"state":"open","title":"Bump the uv group across 3 directories with 10 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-13T12:43:09.000Z","updated_at":"2026-05-13T12:43:36.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"uv","update_count":10,"packages":[{"name":"starlette","old_version":"0.47.3","new_version":"0.49.1","repository_url":"https://github.com/Kludex/starlette"},{"name":"python-multipart","old_version":"0.0.20","new_version":"0.0.27","repository_url":"https://github.com/Kludex/python-multipart"},{"name":"python-dotenv","old_version":"1.1.1","new_version":"1.2.2","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"black","old_version":"25.1.0","new_version":"26.3.1","repository_url":"https://github.com/psf/black"},{"name":"pillow","old_version":"11.3.0","new_version":"12.2.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"requests","old_version":"2.32.5","new_version":"2.33.0","repository_url":"https://github.com/psf/requests"},{"name":"urllib3","old_version":"2.5.0","new_version":"2.7.0","repository_url":"https://github.com/urllib3/urllib3"}],"path":null,"ecosystem":"conda"},"body":"Bumps the uv group with 8 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [starlette](https://github.com/Kludex/starlette) | `0.47.3` | `0.49.1` |\n| [python-multipart](https://github.com/Kludex/python-multipart) | `0.0.20` | `0.0.27` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.1.1` | `1.2.2` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.2` | `9.0.3` |\n| [black](https://github.com/psf/black) | `25.1.0` | `26.3.1` |\n| [pillow](https://github.com/python-pillow/Pillow) | `11.3.0` | `12.2.0` |\n| [requests](https://github.com/psf/requests) | `2.32.5` | `2.33.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.5.0` | `2.7.0` |\n\nBumps the uv group with 7 updates in the /examples/clients/simple-chatbot directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [starlette](https://github.com/Kludex/starlette) | `0.45.2` | `0.49.1` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.0.1` | `1.2.2` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.4` | `9.0.3` |\n| [mcp](https://github.com/modelcontextprotocol/python-sdk) | `1.2.0` | `1.23.0` |\n| [h11](https://github.com/python-hyper/h11) | `0.14.0` | `0.16.0` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.33.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.3.0` | `2.7.0` |\n\nBumps the uv group with 4 updates in the /examples/clients/simple-auth-client directory: [starlette](https://github.com/Kludex/starlette), [python-multipart](https://github.com/Kludex/python-multipart), [python-dotenv](https://github.com/theskumar/python-dotenv) and [pytest](https://github.com/pytest-dev/pytest).\n\nUpdates `starlette` from 0.47.3 to 0.49.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/releases\"\u003estarlette's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.49.1\u003c/h2\u003e\n\u003cp\u003eThis release fixes a security vulnerability in the parsing logic of the \u003ccode\u003eRange\u003c/code\u003e header in \u003ccode\u003eFileResponse\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eYou can view the full security advisory: \u003ca href=\"https://github.com/Kludex/starlette/security/advisories/GHSA-7f5h-v6xp-fcq8\"\u003eGHSA-7f5h-v6xp-fcq8\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize the HTTP ranges parsing logic \u003ca href=\"https://github.com/Kludex/starlette/commit/4ea6e22b489ec388d6004cfbca52dd5b147127c5\"\u003e4ea6e22b489ec388d6004cfbca52dd5b147127c5\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.49.0...0.49.1\"\u003ehttps://github.com/Kludex/starlette/compare/0.49.0...0.49.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.49.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eencoding\u003c/code\u003e parameter to \u003ccode\u003eConfig\u003c/code\u003e class \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2996\"\u003e#2996\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSupport multiple cookie headers in \u003ccode\u003eRequest.cookies\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3029\"\u003e#3029\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eLiteral\u003c/code\u003e type for \u003ccode\u003eWebSocketEndpoint\u003c/code\u003e encoding values \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3027\"\u003e#3027\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDo not pollute exception context in \u003ccode\u003eMiddleware\u003c/code\u003e when using \u003ccode\u003eBaseHTTPMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2976\"\u003e#2976\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TheWesDias\"\u003e\u003ccode\u003e@​TheWesDias\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3017\"\u003eKludex/starlette#3017\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gmos2104\"\u003e\u003ccode\u003e@​gmos2104\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3027\"\u003eKludex/starlette#3027\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/secrett2633\"\u003e\u003ccode\u003e@​secrett2633\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2996\"\u003eKludex/starlette#2996\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adam-sikora\"\u003e\u003ccode\u003e@​adam-sikora\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2976\"\u003eKludex/starlette#2976\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.48.0...0.49.0\"\u003ehttps://github.com/Kludex/starlette/compare/0.48.0...0.49.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.48.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd official Python 3.14 support \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3013\"\u003e#3013\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImplement \u003ca href=\"https://www.rfc-editor.org/rfc/rfc9110\"\u003eRFC9110\u003c/a\u003e http status names \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2939\"\u003e#2939\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yakimka\"\u003e\u003ccode\u003e@​yakimka\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2943\"\u003eKludex/starlette#2943\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mbeijen\"\u003e\u003ccode\u003e@​mbeijen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2939\"\u003eKludex/starlette#2939\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.47.3...0.48.0\"\u003ehttps://github.com/Kludex/starlette/compare/0.47.3...0.48.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/Kludex/starlette/blob/main/docs/release-notes.md\"\u003estarlette's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.49.1 (October 28, 2025)\u003c/h2\u003e\n\u003cp\u003eThis release fixes a security vulnerability in the parsing logic of the \u003ccode\u003eRange\u003c/code\u003e header in \u003ccode\u003eFileResponse\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eYou can view the full security advisory: \u003ca href=\"https://github.com/Kludex/starlette/security/advisories/GHSA-7f5h-v6xp-fcq8\"\u003eGHSA-7f5h-v6xp-fcq8\u003c/a\u003e\u003c/p\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize the HTTP ranges parsing logic \u003ca href=\"https://github.com/Kludex/starlette/commit/4ea6e22b489ec388d6004cfbca52dd5b147127c5\"\u003e4ea6e22b489ec388d6004cfbca52dd5b147127c5\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.49.0 (October 28, 2025)\u003c/h2\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eencoding\u003c/code\u003e parameter to \u003ccode\u003eConfig\u003c/code\u003e class \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2996\"\u003e#2996\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSupport multiple cookie headers in \u003ccode\u003eRequest.cookies\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3029\"\u003e#3029\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eLiteral\u003c/code\u003e type for \u003ccode\u003eWebSocketEndpoint\u003c/code\u003e encoding values \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3027\"\u003e#3027\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanged\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eDo not pollute exception context in \u003ccode\u003eMiddleware\u003c/code\u003e when using \u003ccode\u003eBaseHTTPMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2976\"\u003e#2976\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.48.0 (September 13, 2025)\u003c/h2\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd official Python 3.14 support \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3013\"\u003e#3013\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanged\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eImplement \u003ca href=\"https://www.rfc-editor.org/rfc/rfc9110\"\u003eRFC9110\u003c/a\u003e http status names \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2939\"\u003e#2939\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/7e4b7428f273dbdc875dcd036d20804bcfc7b2ee\"\u003e\u003ccode\u003e7e4b742\u003c/code\u003e\u003c/a\u003e Version 0.49.1 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3047\"\u003e#3047\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/4ea6e22b489ec388d6004cfbca52dd5b147127c5\"\u003e\u003ccode\u003e4ea6e22\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/7d88ea6f8ec8aa99cdb5fc7a10b88db5aadfdfee\"\u003e\u003ccode\u003e7d88ea6\u003c/code\u003e\u003c/a\u003e Version 0.49.0 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3046\"\u003e#3046\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/26d66bbfb05c7bbecbbb57106c65f33682f8174e\"\u003e\u003ccode\u003e26d66bb\u003c/code\u003e\u003c/a\u003e Do not pollute exception context in Middleware (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/2976\"\u003e#2976\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/a59397db889e3a96c4f34b1406957a3b92e1e8b5\"\u003e\u003ccode\u003ea59397d\u003c/code\u003e\u003c/a\u003e Set encodings when reading config files (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/2996\"\u003e#2996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/3b7f0cbf598be305528a498a35089ce723060372\"\u003e\u003ccode\u003e3b7f0cb\u003c/code\u003e\u003c/a\u003e test: add test for unknown status (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3035\"\u003e#3035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/b09ce1a99d352ee6f5b896597f03a1a57507afcd\"\u003e\u003ccode\u003eb09ce1a\u003c/code\u003e\u003c/a\u003e docs: fix legibility issues on sponsorship page (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3039\"\u003e#3039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/0f0edcf8007412d9536bf8714c5815ce8f5dba4b\"\u003e\u003ccode\u003e0f0edcf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Add Marcelo Trylesinski to the license (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3025\"\u003e#3025\u003c/a\u003e)\u0026quot; (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3044\"\u003e#3044\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/3912d6313730cc6004dfb4436e37dbc1a81db7c8\"\u003e\u003ccode\u003e3912d63\u003c/code\u003e\u003c/a\u003e docs: add social icons (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3038\"\u003e#3038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/4915a9309fcad58ac08b9fa550563d3287b531ad\"\u003e\u003ccode\u003e4915a93\u003c/code\u003e\u003c/a\u003e Add discord to README/docs (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3034\"\u003e#3034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/starlette/compare/0.47.3...0.49.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-multipart` from 0.0.20 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/Kludex/python-multipart/releases\"\u003epython-multipart's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.0.27\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePass parse offsets via constructors by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/268\"\u003eKludex/python-multipart#268\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd multipart header limits by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/267\"\u003eKludex/python-multipart#267\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.26...0.0.27\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.26...0.0.27\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.26\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSkip preamble before first multipart boundary by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/262\"\u003eKludex/python-multipart#262\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSilently discard epilogue data after the closing boundary by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/259\"\u003eKludex/python-multipart#259\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.25...0.0.26\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.25...0.0.26\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.25\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eApply Apache-2.0 properly by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/247\"\u003eKludex/python-multipart#247\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle multipart headers case-insensitively by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/252\"\u003eKludex/python-multipart#252\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEmit \u003ccode\u003efield_end\u003c/code\u003e for trailing bare field names on finalize by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/230\"\u003eKludex/python-multipart#230\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eUPLOAD_DELETE_TMP\u003c/code\u003e to \u003ccode\u003eFormParser\u003c/code\u003e config by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/254\"\u003eKludex/python-multipart#254\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove custom FormParser classes by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/257\"\u003eKludex/python-multipart#257\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle CTE values case-insensitively by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/258\"\u003eKludex/python-multipart#258\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd MIME content type info to File by \u003ca href=\"https://github.com/jhnstrk\"\u003e\u003ccode\u003e@​jhnstrk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/143\"\u003eKludex/python-multipart#143\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.24...0.0.25\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.24...0.0.25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.24\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate \u003ccode\u003echunk_size\u003c/code\u003e in \u003ccode\u003eparse_form()\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/244\"\u003eKludex/python-multipart#244\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.23...0.0.24\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.23...0.0.24\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.23\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove unused \u003ccode\u003etrust_x_headers\u003c/code\u003e parameter and \u003ccode\u003eX-File-Name\u003c/code\u003e fallback by \u003ca href=\"https://github.com/jhnstrk\"\u003e\u003ccode\u003e@​jhnstrk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/196\"\u003eKludex/python-multipart#196\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReturn processed length from \u003ccode\u003eQuerystringParser._internal_write\u003c/code\u003e by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/229\"\u003eKludex/python-multipart#229\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCleanup metadata dunders from \u003ccode\u003e__init__.py\u003c/code\u003e by \u003ca href=\"https://github.com/Chesars\"\u003e\u003ccode\u003e@​Chesars\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003eKludex/python-multipart#227\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/Chesars\"\u003e\u003ccode\u003e@​Chesars\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003eKludex/python-multipart#227\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/Kludex/python-multipart/pull/229\"\u003eKludex/python-multipart#229\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.22...0.0.23\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.22...0.0.23\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.22\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/python-multipart/blob/main/CHANGELOG.md\"\u003epython-multipart's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.27 (2026-04-27)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd multipart header limits \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/267\"\u003e#267\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003ePass parse offsets via constructors \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/268\"\u003e#268\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.26 (2026-04-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSkip preamble before the first multipart boundary more efficiently \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/262\"\u003e#262\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSilently discard epilogue data after the closing multipart boundary \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/259\"\u003e#259\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.25 (2026-04-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd MIME content type info to \u003ccode\u003eFile\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/143\"\u003e#143\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eHandle CTE values case-insensitively \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/258\"\u003e#258\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRemove custom \u003ccode\u003eFormParser\u003c/code\u003e classes \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/257\"\u003e#257\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eUPLOAD_DELETE_TMP\u003c/code\u003e to \u003ccode\u003eFormParser\u003c/code\u003e config \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/254\"\u003e#254\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEmit \u003ccode\u003efield_end\u003c/code\u003e for trailing bare field names on finalize \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/230\"\u003e#230\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eHandle multipart headers case-insensitively \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/252\"\u003e#252\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eApply Apache-2.0 properly \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/247\"\u003e#247\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.24 (2026-04-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate \u003ccode\u003echunk_size\u003c/code\u003e in \u003ccode\u003eparse_form()\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/244\"\u003e#244\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.23 (2026-04-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove unused \u003ccode\u003etrust_x_headers\u003c/code\u003e parameter and \u003ccode\u003eX-File-Name\u003c/code\u003e fallback \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/196\"\u003e#196\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eReturn processed length from \u003ccode\u003eQuerystringParser._internal_write\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/229\"\u003e#229\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCleanup metadata dunders from \u003ccode\u003e__init__.py\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003e#227\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.22 (2026-01-25)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop directory path from filename in \u003ccode\u003eFile\u003c/code\u003e \u003ca href=\"https://github.com/Kludex/python-multipart/commit/9433f4bbc9652bdde82bbe380984e32f8cfc89c4\"\u003e9433f4b\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.21 (2025-12-17)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14 and drop EOL 3.8 and 3.9 \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/216\"\u003e#216\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/6d1d6892a6b01b25da6f3e7b097e8e06c57fb250\"\u003e\u003ccode\u003e6d1d689\u003c/code\u003e\u003c/a\u003e Version 0.0.27 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/272\"\u003e#272\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/0b10220b1555af068a2bc8b198022b1ae238200f\"\u003e\u003ccode\u003e0b10220\u003c/code\u003e\u003c/a\u003e Run CI on main branch pull requests (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/271\"\u003e#271\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/3e64f5f8caba0e5d391b0c1ad0f1c2edf9e8f911\"\u003e\u003ccode\u003e3e64f5f\u003c/code\u003e\u003c/a\u003e Add multipart header limits (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/eb109cc4eb8174f2a7efc1ba894b1bf6425c0b14\"\u003e\u003ccode\u003eeb109cc\u003c/code\u003e\u003c/a\u003e Pass parse offsets via constructors (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/268\"\u003e#268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/78e29abb9a339598975beee093a770ec3033f76d\"\u003e\u003ccode\u003e78e29ab\u003c/code\u003e\u003c/a\u003e Bump pytest from 9.0.2 to 9.0.3 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/266\"\u003e#266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/b2ddd0982bdf0fe852e4f3baa12122d2827af46c\"\u003e\u003ccode\u003eb2ddd09\u003c/code\u003e\u003c/a\u003e fuzz: Enhance fuzzing capabilities with new chunked and boundary tests (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/28f47859b4a40c2e11e02dc514b2e9743ceedd2e\"\u003e\u003ccode\u003e28f4785\u003c/code\u003e\u003c/a\u003e Version 0.0.26 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/263\"\u003e#263\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/d4452a78bbde94995dd3c0d1b4aff3610a5c472f\"\u003e\u003ccode\u003ed4452a7\u003c/code\u003e\u003c/a\u003e Silently discard epilogue data after the closing boundary (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/259\"\u003e#259\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/6a7b76dd2653d99d8e5981d7ff09a4a047750b37\"\u003e\u003ccode\u003e6a7b76d\u003c/code\u003e\u003c/a\u003e Skip preamble before first multipart boundary (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/262\"\u003e#262\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/4addb60350fc843f77a1502f14247db91930b3bf\"\u003e\u003ccode\u003e4addb60\u003c/code\u003e\u003c/a\u003e Version 0.0.25 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.20...0.0.27\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-dotenv` from 1.1.1 to 1.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/releases\"\u003epython-dotenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.2\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14, including the free-threaded (3.14t) build. (#)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edotenv run\u003c/code\u003e command now forwards flags directly to the specified command by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/607\"\u003etheskumar/python-dotenv#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved documentation clarity regarding override behavior and the reference page.\u003c/li\u003e\n\u003cli\u003eUpdated PyPy support to version 3.11.\u003c/li\u003e\n\u003cli\u003eDocumentation for FIFO file support.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved \u003ccode\u003eset_key\u003c/code\u003e and \u003ccode\u003eunset_key\u003c/code\u003e behavior when interacting with symlinks by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/theskumar/python-dotenv/commit/790c5c02991100aa1bf41ee5330aca75edc51311\"\u003e#790c5\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrected the license specifier and added missing Python 3.14 classifiers in package metadata by \u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/590\"\u003etheskumar/python-dotenv#590\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e and \u003ccode\u003edotenv.unset_key\u003c/code\u003e used to follow symlinks in some\nsituations. This is no longer the case. For that behavior to be restored in\nall cases, \u003ccode\u003efollow_symlinks=True\u003c/code\u003e should be used.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn the CLI, \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e used to follow symlinks in some situations. This\nis no longer the case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e, \u003ccode\u003edotenv.unset_key\u003c/code\u003e and the CLI commands \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e\nused to reset the file mode of the modified .env file to \u003ccode\u003e0o600\u003c/code\u003e in some\nsituations. This is no longer the case: The original mode of the file is now\npreserved. Is the file needed to be created or wasn't a regular file, mode\n\u003ccode\u003e0o600\u003c/code\u003e is used.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eskip 000 permission tests for root user by \u003ca href=\"https://github.com/burnout-projects\"\u003e\u003ccode\u003e@​burnout-projects\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/561\"\u003etheskumar/python-dotenv#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 5 to 6 in the github-actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/593\"\u003etheskumar/python-dotenv#593\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Windows testing to CI by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/604\"\u003etheskumar/python-dotenv#604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove workflow efficiency with best practices by \u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/609\"\u003etheskumar/python-dotenv#609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove the use of \u003ccode\u003esh\u003c/code\u003e in tests by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/612\"\u003etheskumar/python-dotenv#612\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/590\"\u003etheskumar/python-dotenv#590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/burnout-projects\"\u003e\u003ccode\u003e@​burnout-projects\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/561\"\u003etheskumar/python-dotenv#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cpackham-atlnz\"\u003e\u003ccode\u003e@​cpackham-atlnz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/597\"\u003etheskumar/python-dotenv#597\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.2.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md\"\u003epython-dotenv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.2] - 2026-03-01\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14, including the free-threaded (3.14t) build. (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edotenv run\u003c/code\u003e command now forwards flags directly to the specified command by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/607\"\u003e#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved documentation clarity regarding override behavior and the reference page.\u003c/li\u003e\n\u003cli\u003eUpdated PyPy support to version 3.11.\u003c/li\u003e\n\u003cli\u003eDocumentation for FIFO file support.\u003c/li\u003e\n\u003cli\u003eDropped Support for Python 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved \u003ccode\u003eset_key\u003c/code\u003e and \u003ccode\u003eunset_key\u003c/code\u003e behavior when interacting with symlinks by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in [790c5c0]\u003c/li\u003e\n\u003cli\u003eCorrected the license specifier and added missing Python 3.14 classifiers in package metadata by [\u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/590\"\u003e#590\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e and \u003ccode\u003edotenv.unset_key\u003c/code\u003e used to follow symlinks in some\nsituations. This is no longer the case. For that behavior to be restored in\nall cases, \u003ccode\u003efollow_symlinks=True\u003c/code\u003e should be used.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn the CLI, \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e used to follow symlinks in some situations. This\nis no longer the case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e, \u003ccode\u003edotenv.unset_key\u003c/code\u003e and the CLI commands \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e\nused to reset the file mode of the modified .env file to \u003ccode\u003e0o600\u003c/code\u003e in some\nsituations. This is no longer the case: The original mode of the file is now\npreserved. Is the file needed to be created or wasn't a regular file, mode\n\u003ccode\u003e0o600\u003c/code\u003e is used.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.2.1] - 2025-10-26\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMove more config to \u003ccode\u003epyproject.toml\u003c/code\u003e, removed \u003ccode\u003esetup.cfg\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for reading \u003ccode\u003e.env\u003c/code\u003e from FIFOs (Unix) by [\u003ca href=\"https://github.com/sidharth-sudhir\"\u003e\u003ccode\u003e@​sidharth-sudhir\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/586\"\u003e#586\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.2.0] - 2025-10-26\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade build system to use PEP 517 \u0026amp; PEP 518 to use \u003ccode\u003ebuild\u003c/code\u003e and \u003ccode\u003epyproject.toml\u003c/code\u003e by [\u003ca href=\"https://github.com/EpicWink\"\u003e\u003ccode\u003e@​EpicWink\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/583\"\u003e#583\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14 by [\u003ca href=\"https://github.com/23f3001135\"\u003e\u003ccode\u003e@​23f3001135\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/579\"\u003e#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for disabling of \u003ccode\u003eload_dotenv()\u003c/code\u003e using \u003ccode\u003ePYTHON_DOTENV_DISABLED\u003c/code\u003e env var. by [\u003ca href=\"https://github.com/matthewfranglen\"\u003e\u003ccode\u003e@​matthewfranglen\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/569\"\u003e#569\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/36004e0e34be7665ff2b11a8a4005144f76f176d\"\u003e\u003ccode\u003e36004e0\u003c/code\u003e\u003c/a\u003e Bump version: 1.2.1 → 1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/eb202520e5933c9daf42501e1e42fdb0144002c8\"\u003e\u003ccode\u003eeb20252\u003c/code\u003e\u003c/a\u003e docs: update changelog for v1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/790c5c02991100aa1bf41ee5330aca75edc51311\"\u003e\u003ccode\u003e790c5c0\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/43340da220fb4ca4f95357bbe21a3c7f8f1278b1\"\u003e\u003ccode\u003e43340da\u003c/code\u003e\u003c/a\u003e Remove the use of \u003ccode\u003esh\u003c/code\u003e in tests (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/612\"\u003e#612\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/09d7cee32459e7abdcb5c9d8122a552589c06a9c\"\u003e\u003ccode\u003e09d7cee\u003c/code\u003e\u003c/a\u003e docs: clarify override behavior and document FIFO support (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/610\"\u003e#610\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/c8de2887c00198c22842c5ae5e92d1747467363c\"\u003e\u003ccode\u003ec8de288\u003c/code\u003e\u003c/a\u003e ci: improve workflow efficiency with best practices (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/609\"\u003e#609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/7bd9e3dbfedc0983ad7d56d5570013035242bdf4\"\u003e\u003ccode\u003e7bd9e3d\u003c/code\u003e\u003c/a\u003e Add Windows testing to CI (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/604\"\u003e#604\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/1baaf04f336072e0ee324d5df9563ec767f14f81\"\u003e\u003ccode\u003e1baaf04\u003c/code\u003e\u003c/a\u003e Drop Python 3.9 support and update to PyPy 3.11 (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/608\"\u003e#608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/4a22cf8993804aeede0c20b75bb1a29d3a99e9dc\"\u003e\u003ccode\u003e4a22cf8\u003c/code\u003e\u003c/a\u003e ci: enable testing on Python 3.14t (free-threaded) (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/e2e8e776b42e382ae38b44d3982dd649e7507dd4\"\u003e\u003ccode\u003ee2e8e77\u003c/code\u003e\u003c/a\u003e Fix license specifier (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/597\"\u003e#597\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.1.1...v1.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.4.2 to 9.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\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/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.4.2...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `black` from 25.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/25.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 `pillow` from 11.3.0 to 12.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003epillow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e12.2.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate 12.2.0 release notes \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd loader plugins: AMOS abk, Atari Degas, 40+ more obscure formats via Netpbm \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9482\"\u003e#9482\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Python versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9515\"\u003e#9515\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eJeffrey A. Clark -\u0026gt; Jeffrey 'Alex' Clark \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9513\"\u003e#9513\u003c/a\u003e [\u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9394\"\u003e#9394\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9419\"\u003e#9419\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9456\"\u003e#9456\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9467\"\u003e#9467\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd Amiga Workbench .info loader to 3rd party plugins list \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9459\"\u003e#9459\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMerge PFM documentation into PPM \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9434\"\u003e#9434\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix CVE number \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9430\"\u003e#9430\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate xz to 5.8.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9523\"\u003e#9523\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libjpeg-turbo to 3.1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9507\"\u003e#9507\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libpng to 1.6.56 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9499\"\u003e#9499\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9485\"\u003e#9485\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libavif to 1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9479\"\u003e#9479\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated harfbuzz to 13.2.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9461\"\u003e#9461\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate harfbuzz to 13.0.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9453\"\u003e#9453\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libavif to 1.4.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9460\"\u003e#9460\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9449\"\u003e#9449\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate actions/download-artifact action to v8 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9451\"\u003e#9451\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.55 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9425\"\u003e#9425\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTesting\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCleanup .spider extension in the same test where it is added \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9517\"\u003e#9517\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eRun tests in parallel via tox for 3.5x speedup \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9516\"\u003e#9516\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eEnable colour in CI logs \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9486\"\u003e#9486\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSimplify TGA test code \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9477\"\u003e#9477\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate tests to check for ValueError when encoding an empty image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9464\"\u003e#9464\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpgrade CI from \u003ccode\u003emacos-15-intel\u003c/code\u003e to \u003ccode\u003emacos-26-intel\u003c/code\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9454\"\u003e#9454\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd check-case-conflict hook \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9446\"\u003e#9446\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSpecify platform when pulling docker image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9440\"\u003e#9440\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eGHA: Cache libavif and webp builds for Ubuntu \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9437\"\u003e#9437\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCheck calloc return value \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9527\"\u003e#9527\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eCheck all allocs in the Arrow tree \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9488\"\u003e#9488\u003c/a\u003e [\u003ca href=\"https://github.com/wiredfool\"\u003e\u003ccode\u003e@​wiredfool\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eReject non-numeric elements inside list coords \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9526\"\u003e#9526\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMove variable declaration inside define \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9525\"\u003e#9525\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\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/python-pillow/Pillow/commit/3c41c095064200a02672d89cc5ff629eaf4b0d4f\"\u003e\u003ccode\u003e3c41c09\u003c/code\u003e\u003c/a\u003e 12.2.0 version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cdaa29eb520291c4f1fb50fb71ae46502d41e460\"\u003e\u003ccode\u003ecdaa29e\u003c/code\u003e\u003c/a\u003e Check calloc return value (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9527\"\u003e#9527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/585b2f5a780722c8a5bfffb3a40f7f42e8a205be\"\u003e\u003ccode\u003e585b2f5\u003c/code\u003e\u003c/a\u003e Check calloc return value\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/ecf011ea15991d4cebacd946e58270cc30b0f2c1\"\u003e\u003ccode\u003eecf011e\u003c/code\u003e\u003c/a\u003e Check all allocs in the Arrow tree (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9488\"\u003e#9488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cf6de8ca9b23e714aa5310e1c791eda66fc0b670\"\u003e\u003ccode\u003ecf6de8c\u003c/code\u003e\u003c/a\u003e Reject non-numeric elements inside list coords (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9526\"\u003e#9526\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/ffdcede6516b28d9667c92929854023d17048b64\"\u003e\u003ccode\u003effdcede\u003c/code\u003e\u003c/a\u003e Update 12.2.0 release notes (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/7929d7760fe5a307ba5ae6eabdf70ae4486b147c\"\u003e\u003ccode\u003e7929d77\u003c/code\u003e\u003c/a\u003e Added security release notes (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/149\"\u003e#149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/c4f7aa5dfb4dbd1242978ac235e01b9934ec6d3c\"\u003e\u003ccode\u003ec4f7aa5\u003c/code\u003e\u003c/a\u003e Added security release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/22cdb5f2e4b15250c06563b1124ac1667342712f\"\u003e\u003ccode\u003e22cdb5f\u003c/code\u003e\u003c/a\u003e Move variable declaration inside define (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9525\"\u003e#9525\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/fc15b3b01899408ec989d7804c5283e13802d057\"\u003e\u003ccode\u003efc15b3b\u003c/code\u003e\u003c/a\u003e Resize tall images vertically first (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9524\"\u003e#9524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-pillow/Pillow/compare/11.3.0...12.2.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.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/753fd08c5eacce0aa0df73fe47e49525c67e0a29\"\u003e\u003ccode\u003e753fd08\u003c/code\u003e\u003c/a\u003e docs: fix FAQ grammar in httplib2 example\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/774a0b837a194ee885d4fdd9ca947900cc3daf71\"\u003e\u003ccode\u003e774a0b8\u003c/code\u003e\u003c/a\u003e docs(socks): same block as other sections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/9c72a41bec8597f948c9d8caa5dc3f12273b3303\"\u003e\u003ccode\u003e9c72a41\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.33.0 to 4.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/ebf71906798ec82f34e07d3168f8b8aecaf8a3be\"\u003e\u003ccode\u003eebf7190\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.32.0 to 4.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0e4ae38f0c93d4f92a96c774bd52c069d12a4798\"\u003e\u003ccode\u003e0e4ae38\u003c/code\u003e\u003c/a\u003e docs: exclude Response.is_permanent_redirect from API docs (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7244\"\u003e#7244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d568f47278492e630cc990a259047c67991d007a\"\u003e\u003ccode\u003ed568f47\u003c/code\u003e\u003c/a\u003e docs: clarify Quickstart POST example (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6960\"\u003e#6960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.5...v2.33.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `urllib3` from 2.5.0 to 2.7.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/urllib3/urllib3/releases\"\u003eurllib3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.7.0\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cp\u003eAddressed high-severity security issues. Impact was limited to specific use cases detailed in the accompanying advisories; overall user exposure was estimated to be ma...\n\n_Description has been truncated_","html_url":"https://github.com/HarleyCoops/python-sdk/pull/1","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/HarleyCoops%2Fpython-sdk/issues/1","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1/packages"},{"uuid":"4248106987","node_id":"PR_kwDORO5-Q87RxdLv","number":23,"state":"closed","title":"chore(deps): bump the minor-and-patch group across 1 directory with 21 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-04-19T13:03:59.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-12T13:05:15.000Z","updated_at":"2026-04-19T13:04:01.000Z","time_to_close":604724,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"minor-and-patch","update_count":21,"packages":[{"name":"yfinance","old_version":"1.1.0","new_version":"1.2.1","repository_url":"https://github.com/ranaroussi/yfinance"},{"name":"requests","old_version":"2.32.5","new_version":"2.33.1","repository_url":"https://github.com/psf/requests"},{"name":"python-dotenv","old_version":"1.2.1","new_version":"1.2.2","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"pandas","old_version":"3.0.1","new_version":"3.0.2","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"numpy","old_version":"2.4.2","new_version":"2.4.4","repository_url":"https://github.com/numpy/numpy"},{"name":"jaraco-context","old_version":"6.1.0","new_version":"6.1.2","repository_url":"https://github.com/jaraco/jaraco.context"},{"name":"pytest","old_version":"9.0.2","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-cov","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"coverage","old_version":"7.13.4","new_version":"7.13.5","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"lxml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/lxml/lxml"},{"name":"certifi","old_version":"2026.1.4","new_version":"2026.2.25","repository_url":"https://github.com/certifi/python-certifi"},{"name":"curl-cffi","old_version":"0.13.0","new_version":"0.15.0","repository_url":"https://github.com/lexiforest/curl_cffi"},{"name":"charset-normalizer","old_version":"3.4.4","new_version":"3.4.7","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"platformdirs","old_version":"4.9.2","new_version":"4.9.6","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pygments","old_version":"2.19.2","new_version":"2.20.0","repository_url":"https://github.com/pygments/pygments"},{"name":"fastapi","old_version":"0.128.0","new_version":"0.135.3","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.40.0","new_version":"0.44.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"tenacity","old_version":"9.1.2","new_version":"9.1.4","repository_url":"https://github.com/jd/tenacity"},{"name":"google-cloud-storage","old_version":"3.8.0","new_version":"3.10.1","repository_url":"https://github.com/googleapis/python-storage"},{"name":"google-cloud-secret-manager","old_version":"2.26.0","new_version":"2.27.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pytest-httpx","old_version":"0.36.0","new_version":"0.36.2","repository_url":"https://github.com/Colin-b/pytest_httpx"}],"path":null,"ecosystem":"conda"},"body":"Bumps the minor-and-patch group with 21 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [yfinance](https://github.com/ranaroussi/yfinance) | `1.1.0` | `1.2.1` |\n| [requests](https://github.com/psf/requests) | `2.32.5` | `2.33.1` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.2.1` | `1.2.2` |\n| [pandas](https://github.com/pandas-dev/pandas) | `3.0.1` | `3.0.2` |\n| [numpy](https://github.com/numpy/numpy) | `2.4.2` | `2.4.4` |\n| [jaraco-context](https://github.com/jaraco/jaraco.context) | `6.1.0` | `6.1.2` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.2` | `9.0.3` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `7.0.0` | `7.1.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.13.4` | `7.13.5` |\n| [lxml](https://github.com/lxml/lxml) | `6.0.2` | `6.0.3` |\n| [certifi](https://github.com/certifi/python-certifi) | `2026.1.4` | `2026.2.25` |\n| [curl-cffi](https://github.com/lexiforest/curl_cffi) | `0.13.0` | `0.15.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.4` | `3.4.7` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.9.2` | `4.9.6` |\n| [pygments](https://github.com/pygments/pygments) | `2.19.2` | `2.20.0` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.128.0` | `0.135.3` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.40.0` | `0.44.0` |\n| [tenacity](https://github.com/jd/tenacity) | `9.1.2` | `9.1.4` |\n| [google-cloud-storage](https://github.com/googleapis/python-storage) | `3.8.0` | `3.10.1` |\n| [google-cloud-secret-manager](https://github.com/googleapis/google-cloud-python) | `2.26.0` | `2.27.0` |\n| [pytest-httpx](https://github.com/Colin-b/pytest_httpx) | `0.36.0` | `0.36.2` |\n\n\nUpdates `yfinance` from 1.1.0 to 1.2.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ranaroussi/yfinance/releases\"\u003eyfinance's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.2.1\u003c/h2\u003e\n\u003ch3\u003ePatch updates:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eForce curl_cffi\u0026gt;=0.15 because CVE \u003ca href=\"https://redirect.github.com/ranaroussi/yfinance/issues/2743\"\u003e#2743\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreserve currency in dividends \u003ca href=\"https://redirect.github.com/ranaroussi/yfinance/issues/2695\"\u003e#2695\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove \u003ccode\u003edownload()\u003c/code\u003e thread-safety \u003ca href=\"https://redirect.github.com/ranaroussi/yfinance/issues/2718\"\u003e#2718\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks \u003ca href=\"https://github.com/david-belbeze\"\u003e\u003ccode\u003e@​david-belbeze\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/wavebyrd\"\u003e\u003ccode\u003e@​wavebyrd\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.2.0\u003c/h2\u003e\n\u003ch3\u003eMinor changes\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003eyf.history()\u003c/code\u003e dataframe is now \u003ca href=\"https://pandas.pydata.org/pandas-docs/version/0.19/generated/pandas.DataFrame.consolidate.html\"\u003econsolidated\u003c/a\u003e, might trigger read-only errors in your code.\u003c/p\u003e\n\u003ch3\u003ePatches\u003c/h3\u003e\n\u003cp\u003eScreener: lots more fund countries, some more equity exchanges\u003c/p\u003e\n\u003cp\u003ePrice repair: fix \u003ccode\u003eValueError: output array is read-only\u003c/code\u003e with Pandas 3\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003eChangelog \u003ca href=\"https://redirect.github.com/ranaroussi/yfinance/issues/2698\"\u003e#2698\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThanks \u003ca href=\"https://github.com/kbluck\"\u003e\u003ccode\u003e@​kbluck\u003c/code\u003e\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/ranaroussi/yfinance/blob/main/CHANGELOG.rst\"\u003eyfinance's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.2.1\u003c/h2\u003e\n\u003cp\u003eForce curl_cffi\u0026gt;=0.15, because CVE \u003ca href=\"https://redirect.github.com/ranaroussi/yfinance/issues/2743\"\u003e#2743\u003c/a\u003e\nPreserve currency in dividends \u003ca href=\"https://redirect.github.com/ranaroussi/yfinance/issues/2695\"\u003e#2695\u003c/a\u003e\nImprove download() thread-safety \u003ca href=\"https://redirect.github.com/ranaroussi/yfinance/issues/2718\"\u003e#2718\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.2.0\u003c/h2\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eupdate exchange maps for equities and mutual funds. \u003ca href=\"https://redirect.github.com/ranaroussi/yfinance/issues/2685\"\u003e#2685\u003c/a\u003e\nFixes:\u003c/li\u003e\n\u003cli\u003ehandle Pandas to_numpy() returning read-only \u003ca href=\"https://redirect.github.com/ranaroussi/yfinance/issues/2697\"\u003e#2697\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/ranaroussi/yfinance/commit/88072cf8356becefa6fb5d253ff3338467f4d7f9\"\u003e\u003ccode\u003e88072cf\u003c/code\u003e\u003c/a\u003e Version 1.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ranaroussi/yfinance/commit/8ba755a11f87e805919181e7fe5df3f0f27c671a\"\u003e\u003ccode\u003e8ba755a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ranaroussi/yfinance/issues/2743\"\u003e#2743\u003c/a\u003e from ranaroussi/fix/curl_cffi_cve\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ranaroussi/yfinance/commit/3b45e37f3e2ea674c9c0e2855dc97fdc1c85b78e\"\u003e\u003ccode\u003e3b45e37\u003c/code\u003e\u003c/a\u003e Force curl_cffi\u0026gt;=0.15, because CVE\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ranaroussi/yfinance/commit/621cc07a8690c9d3560e8d91faeafb541712ad42\"\u003e\u003ccode\u003e621cc07\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ranaroussi/yfinance/issues/2735\"\u003e#2735\u003c/a\u003e from ranaroussi/supply-chain-hardening\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ranaroussi/yfinance/commit/164efd59338806d5bee906e6cf5eeaba9e5b2f96\"\u003e\u003ccode\u003e164efd5\u003c/code\u003e\u003c/a\u003e Github actions: supply-chain hardening\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ranaroussi/yfinance/commit/4013a4fd745f6f3f324565eae685e7765b2a2714\"\u003e\u003ccode\u003e4013a4f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ranaroussi/yfinance/issues/2722\"\u003e#2722\u003c/a\u003e from tsinglua/main\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ranaroussi/yfinance/commit/7c41c76915bf03eb2450f531163acca82068a879\"\u003e\u003ccode\u003e7c41c76\u003c/code\u003e\u003c/a\u003e chore: remove repetitive word in multi_level_columns.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ranaroussi/yfinance/commit/81631009a20bf682dc3d6799e954fb49af770580\"\u003e\u003ccode\u003e8163100\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ranaroussi/yfinance/issues/2687\"\u003e#2687\u003c/a\u003e from KarthickKrishnasaisha/docs-logging-clarify\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ranaroussi/yfinance/commit/255b448a64a065650ca1cfc1fdbf26dd688ae1d6\"\u003e\u003ccode\u003e255b448\u003c/code\u003e\u003c/a\u003e Docs: clarify debug logging config and deprecate enable_debug_mode\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ranaroussi/yfinance/commit/f7e3a9287b6b63bd998dcd87a2557707e8f4b70f\"\u003e\u003ccode\u003ef7e3a92\u003c/code\u003e\u003c/a\u003e Version 1.2.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ranaroussi/yfinance/compare/1.1.0...1.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.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 `python-dotenv` from 1.2.1 to 1.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/releases\"\u003epython-dotenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.2\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14, including the free-threaded (3.14t) build. (#)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edotenv run\u003c/code\u003e command now forwards flags directly to the specified command by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/607\"\u003etheskumar/python-dotenv#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved documentation clarity regarding override behavior and the reference page.\u003c/li\u003e\n\u003cli\u003eUpdated PyPy support to version 3.11.\u003c/li\u003e\n\u003cli\u003eDocumentation for FIFO file support.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved \u003ccode\u003eset_key\u003c/code\u003e and \u003ccode\u003eunset_key\u003c/code\u003e behavior when interacting with symlinks by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/theskumar/python-dotenv/commit/790c5c02991100aa1bf41ee5330aca75edc51311\"\u003e#790c5\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrected the license specifier and added missing Python 3.14 classifiers in package metadata by \u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/590\"\u003etheskumar/python-dotenv#590\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e and \u003ccode\u003edotenv.unset_key\u003c/code\u003e used to follow symlinks in some\nsituations. This is no longer the case. For that behavior to be restored in\nall cases, \u003ccode\u003efollow_symlinks=True\u003c/code\u003e should be used.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn the CLI, \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e used to follow symlinks in some situations. This\nis no longer the case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e, \u003ccode\u003edotenv.unset_key\u003c/code\u003e and the CLI commands \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e\nused to reset the file mode of the modified .env file to \u003ccode\u003e0o600\u003c/code\u003e in some\nsituations. This is no longer the case: The original mode of the file is now\npreserved. Is the file needed to be created or wasn't a regular file, mode\n\u003ccode\u003e0o600\u003c/code\u003e is used.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eskip 000 permission tests for root user by \u003ca href=\"https://github.com/burnout-projects\"\u003e\u003ccode\u003e@​burnout-projects\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/561\"\u003etheskumar/python-dotenv#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 5 to 6 in the github-actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/593\"\u003etheskumar/python-dotenv#593\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Windows testing to CI by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/604\"\u003etheskumar/python-dotenv#604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove workflow efficiency with best practices by \u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/609\"\u003etheskumar/python-dotenv#609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove the use of \u003ccode\u003esh\u003c/code\u003e in tests by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/612\"\u003etheskumar/python-dotenv#612\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/590\"\u003etheskumar/python-dotenv#590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/burnout-projects\"\u003e\u003ccode\u003e@​burnout-projects\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/561\"\u003etheskumar/python-dotenv#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cpackham-atlnz\"\u003e\u003ccode\u003e@​cpackham-atlnz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/597\"\u003etheskumar/python-dotenv#597\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md\"\u003epython-dotenv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.2] - 2026-03-01\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14, including the free-threaded (3.14t) build. (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edotenv run\u003c/code\u003e command now forwards flags directly to the specified command by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/607\"\u003e#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved documentation clarity regarding override behavior and the reference page.\u003c/li\u003e\n\u003cli\u003eUpdated PyPy support to version 3.11.\u003c/li\u003e\n\u003cli\u003eDocumentation for FIFO file support.\u003c/li\u003e\n\u003cli\u003eDropped Support for Python 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved \u003ccode\u003eset_key\u003c/code\u003e and \u003ccode\u003eunset_key\u003c/code\u003e behavior when interacting with symlinks by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in [790c5c0]\u003c/li\u003e\n\u003cli\u003eCorrected the license specifier and added missing Python 3.14 classifiers in package metadata by [\u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/590\"\u003e#590\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e and \u003ccode\u003edotenv.unset_key\u003c/code\u003e used to follow symlinks in some\nsituations. This is no longer the case. For that behavior to be restored in\nall cases, \u003ccode\u003efollow_symlinks=True\u003c/code\u003e should be used.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn the CLI, \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e used to follow symlinks in some situations. This\nis no longer the case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e, \u003ccode\u003edotenv.unset_key\u003c/code\u003e and the CLI commands \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e\nused to reset the file mode of the modified .env file to \u003ccode\u003e0o600\u003c/code\u003e in some\nsituations. This is no longer the case: The original mode of the file is now\npreserved. Is the file needed to be created or wasn't a regular file, mode\n\u003ccode\u003e0o600\u003c/code\u003e is used.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/36004e0e34be7665ff2b11a8a4005144f76f176d\"\u003e\u003ccode\u003e36004e0\u003c/code\u003e\u003c/a\u003e Bump version: 1.2.1 → 1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/eb202520e5933c9daf42501e1e42fdb0144002c8\"\u003e\u003ccode\u003eeb20252\u003c/code\u003e\u003c/a\u003e docs: update changelog for v1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/790c5c02991100aa1bf41ee5330aca75edc51311\"\u003e\u003ccode\u003e790c5c0\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/43340da220fb4ca4f95357bbe21a3c7f8f1278b1\"\u003e\u003ccode\u003e43340da\u003c/code\u003e\u003c/a\u003e Remove the use of \u003ccode\u003esh\u003c/code\u003e in tests (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/612\"\u003e#612\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/09d7cee32459e7abdcb5c9d8122a552589c06a9c\"\u003e\u003ccode\u003e09d7cee\u003c/code\u003e\u003c/a\u003e docs: clarify override behavior and document FIFO support (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/610\"\u003e#610\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/c8de2887c00198c22842c5ae5e92d1747467363c\"\u003e\u003ccode\u003ec8de288\u003c/code\u003e\u003c/a\u003e ci: improve workflow efficiency with best practices (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/609\"\u003e#609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/7bd9e3dbfedc0983ad7d56d5570013035242bdf4\"\u003e\u003ccode\u003e7bd9e3d\u003c/code\u003e\u003c/a\u003e Add Windows testing to CI (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/604\"\u003e#604\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/1baaf04f336072e0ee324d5df9563ec767f14f81\"\u003e\u003ccode\u003e1baaf04\u003c/code\u003e\u003c/a\u003e Drop Python 3.9 support and update to PyPy 3.11 (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/608\"\u003e#608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/4a22cf8993804aeede0c20b75bb1a29d3a99e9dc\"\u003e\u003ccode\u003e4a22cf8\u003c/code\u003e\u003c/a\u003e ci: enable testing on Python 3.14t (free-threaded) (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/e2e8e776b42e382ae38b44d3982dd649e7507dd4\"\u003e\u003ccode\u003ee2e8e77\u003c/code\u003e\u003c/a\u003e Fix license specifier (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/597\"\u003e#597\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pandas` from 3.0.1 to 3.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pandas-dev/pandas/releases\"\u003epandas's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epandas 3.0.2\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.2.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/dev/whatsnew/v3.0.2.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge pandas=3.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\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/pandas-dev/pandas/commit/ab90747e3dae0e69b1bdbf083820b8075689b34b\"\u003e\u003ccode\u003eab90747\u003c/code\u003e\u003c/a\u003e RLS: 3.0.2 (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/64934\"\u003e#64934\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/6f270137a27f8de4bd1afd7d71220e0760429750\"\u003e\u003ccode\u003e6f27013\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/64931\"\u003e#64931\u003c/a\u003e on branch 3.0.x (DOC/BLD: temporary disable upload of docs...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/48ddc60d6efe8d942dbe1495dea725a9d7db15ef\"\u003e\u003ccode\u003e48ddc60\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/64664\"\u003e#64664\u003c/a\u003e on branch 3.0.x (BUG: DataFrame.sum() crashes on empty Dat...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/8774488df19d0859ddc05a24210783b66da27ef7\"\u003e\u003ccode\u003e8774488\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] PERF: fix slow python loop in validation for ArrowStringArra...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/33af6cc04ed6331c23a49655c4c7bb8f90351da3\"\u003e\u003ccode\u003e33af6cc\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/64133\"\u003e#64133\u003c/a\u003e on branch 3.0.x (BUG: str.find returns byte offset instead...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/4ef49d815aae99b6ba5627ab0a54ba0819336652\"\u003e\u003ccode\u003e4ef49d8\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: fix convert_dtypes dropping values from sliced mixed-dt...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/0668f3451120e5552cdc8cf5d85f6d1238ce4e12\"\u003e\u003ccode\u003e0668f34\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: Fix HDFStore.put with StringDtype columns and compressi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/23f2f442ea1af6deddfefef2a4a1e4cb44328c3d\"\u003e\u003ccode\u003e23f2f44\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: Suppress unnecessary RuntimeWarning in to_datetime with...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/83ba804de35ec98798d31474d044cff7666bebd6\"\u003e\u003ccode\u003e83ba804\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/64886\"\u003e#64886\u003c/a\u003e: BUG: Compute Variance of Complex Numbers Correctly (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/64892\"\u003e#64892\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bb5ca1a7a96130fa0e8e2a3987c051e4473f7792\"\u003e\u003ccode\u003ebb5ca1a\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/64386\"\u003e#64386\u003c/a\u003e on branch 3.0.x (BUG: fix sort_index AssertionError with R...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pandas-dev/pandas/compare/v3.0.1...v3.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `numpy` from 2.4.2 to 2.4.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/numpy/numpy/releases\"\u003enumpy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.4 (Mar 29, 2026)\u003c/h2\u003e\n\u003ch1\u003eNumPy 2.4.4 Release Notes\u003c/h1\u003e\n\u003cp\u003eThe NumPy 2.4.4 is a patch release that fixes bugs discovered after the 2.4.3\nrelease. It should finally close issue \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30816\"\u003e#30816\u003c/a\u003e, the OpenBLAS threading problem\non ARM.\u003c/p\u003e\n\u003cp\u003eThis release supports Python versions 3.11-3.14\u003c/p\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eA total of 8 people contributed to this release. People with a \u0026quot;+\u0026quot; by their\nnames contributed a patch for the first time.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCharles Harris\u003c/li\u003e\n\u003cli\u003eDaniel Haag +\u003c/li\u003e\n\u003cli\u003eDenis Prokopenko +\u003c/li\u003e\n\u003cli\u003eHarshith J +\u003c/li\u003e\n\u003cli\u003eKoki Watanabe\u003c/li\u003e\n\u003cli\u003eMarten van Kerkwijk\u003c/li\u003e\n\u003cli\u003eMatti Picus\u003c/li\u003e\n\u003cli\u003eNathan Goldbaum\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePull requests merged\u003c/h2\u003e\n\u003cp\u003eA total of 7 pull requests were merged for this release.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30978\"\u003e#30978\u003c/a\u003e: MAINT: Prepare 2.4.x for further development\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31049\"\u003e#31049\u003c/a\u003e: BUG: Add test to reproduce problem described in \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30816\"\u003e#30816\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30818\"\u003e#30818\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31052\"\u003e#31052\u003c/a\u003e: BUG: fix FNV-1a 64-bit selection by using NPY_SIZEOF_UINTP (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31035\"\u003e#31035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31053\"\u003e#31053\u003c/a\u003e: BUG: avoid warning on ufunc with where=True and no output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31058\"\u003e#31058\u003c/a\u003e: DOC: document caveats of ndarray.resize on 3.14 and newer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31079\"\u003e#31079\u003c/a\u003e: TST: fix POWER VSX feature mapping (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30801\"\u003e#30801\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31084\"\u003e#31084\u003c/a\u003e: MAINT: numpy.i: Replace deprecated \u003ccode\u003esprintf\u003c/code\u003e with \u003ccode\u003esnprintf\u003c/code\u003e...\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.4.3 (Mar 9, 2026)\u003c/h2\u003e\n\u003ch1\u003eNumPy 2.4.3 Release Notes\u003c/h1\u003e\n\u003cp\u003eThe NumPy 2.4.3 is a patch release that fixes bugs discovered after the\n2.4.2 release. The most user visible fix may be a threading fix for\nOpenBLAS on ARM, closing issue \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30816\"\u003e#30816\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis release supports Python versions 3.11-3.14\u003c/p\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eA total of 11 people contributed to this release. People with a \u0026quot;+\u0026quot; by their\nnames contributed a patch for the first time.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAntareep Sarkar +\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/be93fe2960dbf49b4647f5783c66d967fb2c65b5\"\u003e\u003ccode\u003ebe93fe2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31090\"\u003e#31090\u003c/a\u003e from charris/prepare-2.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/f5245dc7ea5c6279c59cb0d5de81113229841290\"\u003e\u003ccode\u003ef5245dc\u003c/code\u003e\u003c/a\u003e REL: Prepare for the NumPy 2.4.4 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/02e838ba270a5ca3dd8afc5a31c090cd34a56615\"\u003e\u003ccode\u003e02e838b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31084\"\u003e#31084\u003c/a\u003e from charris/backport-31056\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/fa74b2d05f8f7604bf6635d5280c3216c8ec667f\"\u003e\u003ccode\u003efa74b2d\u003c/code\u003e\u003c/a\u003e MAINT: numpy.i: Replace deprecated \u003ccode\u003esprintf\u003c/code\u003e with \u003ccode\u003esnprintf\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31056\"\u003e#31056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/533a6db96dfa2556a61102a58c35fd64eaf3fa2b\"\u003e\u003ccode\u003e533a6db\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31079\"\u003e#31079\u003c/a\u003e from charris/backport-20801\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/9e496cbd0a281195bd779ae1833f2a8f4a1d46a7\"\u003e\u003ccode\u003e9e496cb\u003c/code\u003e\u003c/a\u003e TST: fix POWER VSX feature mapping (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30801\"\u003e#30801\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/8052c4b69ef18e582709af946f93f9e58b848f39\"\u003e\u003ccode\u003e8052c4b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31058\"\u003e#31058\u003c/a\u003e from charris/backport-31021\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/7f13b5ad2b69fd6ea6aa3af7036b2dcf98e96486\"\u003e\u003ccode\u003e7f13b5a\u003c/code\u003e\u003c/a\u003e MAINT: Skip test on PyPy.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/4c5fdd66c8f379a1e2b3f40fa62bd0b87769d1c7\"\u003e\u003ccode\u003e4c5fdd6\u003c/code\u003e\u003c/a\u003e MAINT: Remove unused import of tracemalloc.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/a3ca5ed354b26e0fd6e35bf29765a24271ed7c3a\"\u003e\u003ccode\u003ea3ca5ed\u003c/code\u003e\u003c/a\u003e Update numpy/_core/src/multiarray/shape.c\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/numpy/numpy/compare/v2.4.2...v2.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jaraco-context` from 6.1.0 to 6.1.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jaraco/jaraco.context/blob/main/NEWS.rst\"\u003ejaraco-context's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev6.1.2\u003c/h1\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch1\u003ev6.1.1\u003c/h1\u003e\n\u003cp\u003eNo significant changes.\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/jaraco/jaraco.context/commit/098f39c911d4504b2c718f2ff483ae24f1c4d378\"\u003e\u003ccode\u003e098f39c\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/jaraco.context/commit/926a20e42307a2b5d87b058f2df42345fba61ad4\"\u003e\u003ccode\u003e926a20e\u003c/code\u003e\u003c/a\u003e Fix condition for skipping safety test on Python 3.12 (\u003ca href=\"https://redirect.github.com/jaraco/jaraco.context/issues/20\"\u003e#20\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/jaraco.context/commit/19f1cbbcf4811fec84c2fee47e51c1a823b7d368\"\u003e\u003ccode\u003e19f1cbb\u003c/code\u003e\u003c/a\u003e Strict type checking and re-enable mypy (\u003ca href=\"https://redirect.github.com/jaraco/jaraco.context/issues/16\"\u003e#16\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/jaraco.context/commit/256995fa4d2bcaf5513d7d14204045de94b4957d\"\u003e\u003ccode\u003e256995f\u003c/code\u003e\u003c/a\u003e Suppress coverage errors.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/jaraco.context/commit/0190667b24bd7b7f5f199ec36dc6e974fa31aab2\"\u003e\u003ccode\u003e0190667\u003c/code\u003e\u003c/a\u003e Suppress type errors in test_safety.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/jaraco.context/commit/bc0dc8a641a0ef9539bd7b193c961f8de05344e0\"\u003e\u003ccode\u003ebc0dc8a\u003c/code\u003e\u003c/a\u003e Suppress type errors with new property.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/jaraco.context/commit/8eee4d0bbf99ee75163865b150e638378e5a0b46\"\u003e\u003ccode\u003e8eee4d0\u003c/code\u003e\u003c/a\u003e Modernize with ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/jaraco.context/commit/825171649ef9d312b6f9740d235d206c0e927c3e\"\u003e\u003ccode\u003e8251716\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into Strict-type-checking-and-re-enable-mypy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/jaraco.context/commit/7df1443e0d81d0f7a781231ab05e00fc4173672e\"\u003e\u003ccode\u003e7df1443\u003c/code\u003e\u003c/a\u003e Restore expression algebra.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/jaraco.context/commit/616e2d6153eea558d0acf971adefc4d2c9dd6fc9\"\u003e\u003ccode\u003e616e2d6\u003c/code\u003e\u003c/a\u003e Merge \u003ca href=\"https://github.com/jaraco/skeleton\"\u003ehttps://github.com/jaraco/skeleton\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jaraco/jaraco.context/compare/v6.1.0...v6.1.2\"\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.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\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/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/9.0.2...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-cov` from 7.0.0 to 7.1.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst\"\u003epytest-cov's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.1.0 (2026-03-21)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed total coverage computation to always be consistent, regardless of reporting settings.\nPreviously some reports could produce different total counts, and consequently can make --cov-fail-under behave different depending on\nreporting options.\nSee \u003ccode\u003e[#641](https://github.com/pytest-dev/pytest-cov/issues/641) \u0026lt;https://github.com/pytest-dev/pytest-cov/issues/641\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove handling of ResourceWarning from sqlite3.\u003c/p\u003e\n\u003cp\u003eThe plugin adds warning filter for sqlite3 \u003ccode\u003eResourceWarning\u003c/code\u003e unclosed database (since 6.2.0).\nIt checks if there is already existing plugin for this message by comparing filter regular expression.\nWhen filter is specified on command line the message is escaped and does not match an expected message.\nA check for an escaped regular expression is added to handle this case.\u003c/p\u003e\n\u003cp\u003eWith this fix one can suppress \u003ccode\u003eResourceWarning\u003c/code\u003e from sqlite3 from command line::\u003c/p\u003e\n\u003cp\u003epytest -W \u0026quot;ignore:unclosed database in \u0026lt;sqlite3.Connection object at:ResourceWarning\u0026quot; ...\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eVarious improvements to documentation.\nContributed by Art Pelling in \u003ccode\u003e[#718](https://github.com/pytest-dev/pytest-cov/issues/718) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/718\u0026gt;\u003c/code\u003e_ and\n\u0026quot;vivodi\u0026quot; in \u003ccode\u003e[#738](https://github.com/pytest-dev/pytest-cov/issues/738) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/738\u0026gt;\u003c/code\u003e\u003cem\u003e.\nAlso closed \u003ccode\u003e[#736](https://github.com/pytest-dev/pytest-cov/issues/736) \u0026lt;https://github.com/pytest-dev/pytest-cov/issues/736\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed some assertions in tests.\nContributed by in Markéta Machová in \u003ccode\u003e[#722](https://github.com/pytest-dev/pytest-cov/issues/722) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/722\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved unnecessary coverage configuration copying (meant as a backup because reporting commands had configuration side-effects before coverage 5.0).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/66c8a526b1246b5eb8fb1bc218878131bc628622\"\u003e\u003ccode\u003e66c8a52\u003c/code\u003e\u003c/a\u003e Bump version: 7.0.0 → 7.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/f7076624784332594aa4cb3585d4757d295db15e\"\u003e\u003ccode\u003ef707662\u003c/code\u003e\u003c/a\u003e Make the examples use pypy 3.11.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/6049a7847872e3139e6c82e93787123df5dc8672\"\u003e\u003ccode\u003e6049a78\u003c/code\u003e\u003c/a\u003e Make context test use the old ctracer (seems the new sysmon tracer behaves di...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/8ebf20bbbc73478b3f8fd36d30237d9ea083f06b\"\u003e\u003ccode\u003e8ebf20b\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/861d30e60d571f97259c6b718b71c819d5dbc3b9\"\u003e\u003ccode\u003e861d30e\u003c/code\u003e\u003c/a\u003e Remove the backup context manager  - shouldn't be needed since coverage 5.0, ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/fd4c956014035527f0c3c8d7faef3f8cfdadac7f\"\u003e\u003ccode\u003efd4c956\u003c/code\u003e\u003c/a\u003e Pass the precision on the nulled total (seems that there's some caching goion...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/78c9c4ecb005faf4962fd86ff7bf9c9cce9554d6\"\u003e\u003ccode\u003e78c9c4e\u003c/code\u003e\u003c/a\u003e Only run the 3.9 on older deps.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/4849a922e8be725c662a3d9175da571ace6545dc\"\u003e\u003ccode\u003e4849a92\u003c/code\u003e\u003c/a\u003e Punctuation.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/197c35e2f37031fd1927715307ab6eed7cb3d2b7\"\u003e\u003ccode\u003e197c35e\u003c/code\u003e\u003c/a\u003e Update changelog and hopefully I don't forget to publish release again :))\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/14dc1c92d44108384e39803888635fdbfc578b7f\"\u003e\u003ccode\u003e14dc1c9\u003c/code\u003e\u003c/a\u003e Update examples to use 3.11 and make the adhoc layout example look a bit more...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-cov/compare/v7.0.0...v7.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.13.4 to 7.13.5\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.13.5 — 2026-03-17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003eissue 2138\u003c/code\u003e_ describes a memory leak that happened when repeatedly\nusing the Coverage API with in-memory data. This is now fixed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the markdown-formatted coverage report didn't fully escape special\ncharacters in file paths (\u003ccode\u003eissue 2141\u003c/code\u003e\u003cem\u003e). This would be very unlikely to\ncause a problem, but now it's done properly, thanks to \u003ccode\u003eEllie Ayla \u0026lt;pull 2142_\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the C extension wouldn't build on VS2019, but now it does (\u003ccode\u003eissue 2145\u003c/code\u003e_).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 2138: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2138\"\u003ecoveragepy/coveragepy#2138\u003c/a\u003e\n.. _issue 2141: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2141\"\u003ecoveragepy/coveragepy#2141\u003c/a\u003e\n.. _pull 2142: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2142\"\u003ecoveragepy/coveragepy#2142\u003c/a\u003e\n.. _issue 2145: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2145\"\u003ecoveragepy/coveragepy#2145\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-4:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/c88da144eef8cf78424331e5cbbde3e002eef43f\"\u003e\u003ccode\u003ec88da14\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.13.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/e2ac3e1ef644370101ff365acad3431d16076512\"\u003e\u003ccode\u003ee2ac3e1\u003c/code\u003e\u003c/a\u003e build: sample HTML shouldn't include the status.json file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/910f8f336541c2dcb4e9ec468144c7eb4a7779ac\"\u003e\u003ccode\u003e910f8f3\u003c/code\u003e\u003c/a\u003e docs: prep for 7.13.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/3a4819c24d3d20cb2670b99141517812ffa3fab0\"\u003e\u003ccode\u003e3a4819c\u003c/code\u003e\u003c/a\u003e style: make workflows more uniform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/2a53705f5fe588158b8a8d37ff3beee86388b9e4\"\u003e\u003ccode\u003e2a53705\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group across 1 directory with 4 updates (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/e7c878d201db819416b978150944d9a842d22b18\"\u003e\u003ccode\u003ee7c878d\u003c/code\u003e\u003c/a\u003e chore: make upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/ab4db406a9c35acf977cf3ddb94a78d696b77bc5\"\u003e\u003ccode\u003eab4db40\u003c/code\u003e\u003c/a\u003e build: use --generate-hashes when pinning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a438753eef870441044cef588e29ce4b9a28adf1\"\u003e\u003ccode\u003ea438753\u003c/code\u003e\u003c/a\u003e chore: make upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/7b33457d2c6367dfd5a563239998b3980444e090\"\u003e\u003ccode\u003e7b33457\u003c/code\u003e\u003c/a\u003e refactor: some leftover pyupgrade 3.10 bits\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/2ff968db91a7cdafe6f6569ac7659a3a93a2da07\"\u003e\u003ccode\u003e2ff968d\u003c/code\u003e\u003c/a\u003e refactor: this type wasn't used anywhere\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.13.4...7.13.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lxml` from 6.0.2 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lxml/lxml/blob/master/CHANGES.txt\"\u003elxml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e6.0.3 (2026-04-09)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eSeveral out of memory error cases now raise \u003ccode\u003eMemoryError\u003c/code\u003e that were not handled before.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSlicing with large step values (outside of \u003ccode\u003e+/- sys.maxsize\u003c/code\u003e) could trigger undefined C behaviour.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLP#2125399: Some failing tests were fixed or disabled in PyPy.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLP#2138421: Memory leak in error cases when setting the \u003ccode\u003epublic_id\u003c/code\u003e or \u003ccode\u003esystem_url\u003c/code\u003e of a document.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMemory leak in case of a memory allocation failure when copying document subtrees.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen mapping an XPath result to Python failed, the result memory could leak.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen preparing an XSLT transform failed, the XSLT parameter memory could leak.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBuilt using Cython 3.2.4.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBinary wheels use zlib 1.3.2.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/973d059449a66799f468b46f4b12c95e32cff5e9\"\u003e\u003ccode\u003e973d059\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/9044a52ce26a3ccf48b6cad8031234a0ddf7612b\"\u003e\u003ccode\u003e9044a52\u003c/code\u003e\u003c/a\u003e Build: Downgrade libiconv to 1.18 since 1.19 does not build reliably.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/a34dfdd593368fc444f6b66d03fd60d76966c9d2\"\u003e\u003ccode\u003ea34dfdd\u003c/code\u003e\u003c/a\u003e Build: Upgrade libiconv to 1.19.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/4cbf1df82c7ee89c1869786cd897f5938e0a5d4e\"\u003e\u003ccode\u003e4cbf1df\u003c/code\u003e\u003c/a\u003e Build: Validate hash digest of downloaded library archives.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/ab0e7751f5dd1d6a92a50a883012d7467f2a4bcf\"\u003e\u003ccode\u003eab0e775\u003c/code\u003e\u003c/a\u003e Prepare release of 6.0.3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/96844d203e86b12ef61e967cd508fc2b6d4ce4f6\"\u003e\u003ccode\u003e96844d2\u003c/code\u003e\u003c/a\u003e Fix typos and grammar errors across documentation (\u003ca href=\"https://redirect.github.com/lxml/lxml/issues/489\"\u003eGH-489\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/6a90cc65444946ffb29f46d99e1a0722e452c2d2\"\u003e\u003ccode\u003e6a90cc6\u003c/code\u003e\u003c/a\u003e More accurate instruction for pip install. (\u003ca href=\"https://redirect.github.com/lxml/lxml/issues/493\"\u003eGH-493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/b8b833789e0c192f3587e1813c4c2370c01846ae\"\u003e\u003ccode\u003eb8b8337\u003c/code\u003e\u003c/a\u003e Build: Upgrade Cython to 3.2.4.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/053a7f27df69f3ac8a0b85a69c34127bb5e798c3\"\u003e\u003ccode\u003e053a7f2\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/2fbda6d898a6b5d4a8a20e7a33db57a48cac25ac\"\u003e\u003ccode\u003e2fbda6d\u003c/code\u003e\u003c/a\u003e Build: Upgrade zlib from 1.3.1 to security fixed 1.3.2.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lxml/lxml/compare/lxml-6.0.2...lxml-6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2026.1.4 to 2026.2.25\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/8571a4ba5205675107f9026d0008ad2d7a2778bf\"\u003e\u003ccode\u003e8571a4b\u003c/code\u003e\u003c/a\u003e 2026.02.25 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/395\"\u003e#395\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/6f7de00579d292af565bbb8a947643219794eb6d\"\u003e\u003ccode\u003e6f7de00\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 8.0.0 to 8.1.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/390\"\u003e#390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/a1de59b15105cad768afed4f066b36171134f04a\"\u003e\u003ccode\u003ea1de59b\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 6.0.1 to 6.0.2 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/7f5ade5d8da615fd366e8de6a668271251c45d34\"\u003e\u003ccode\u003e7f5ade5\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 6.1.0 to 6.2.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/392\"\u003e#392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2026.01.04...2026.02.25\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `curl-cffi` from 0.13.0 to 0.15.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lexiforest/curl_cffi/releases\"\u003ecurl-cffi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.15.0\u003c/h2\u003e\n\u003cp\u003e🎉 Another release with significant changes!\u003c/p\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ehttp/3 fingerprints, added for Chrome 145, 146 and Firefox 147. To verify http3 fingerprints, visit \u003ca href=\"https://fp.impersonate.pro\"\u003ehttps://fp.impersonate.pro\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ehttp/3 proxy support with socks5 udp proxy server.\u003c/li\u003e\n\u003cli\u003eNew CLI tool, just called \u003ccode\u003ecurl-cffi\u003c/code\u003e, easier http debugging for both humans and agents. See \u003ca href=\"https://curl-cffi.readthedocs.io/en/latest/cli/_index.html\"\u003edocs\u003c/a\u003e. We also added a \u003ca href=\"https://github.com/lexiforest/curl_cffi/blob/main/skills/imp-fetch/SKILL.md\"\u003eskill\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCompatibility optimization, curl_cffi is now fully static. Especially for macOS, no dependencies needed and compatible with macOS since 11.0.\u003c/li\u003e\n\u003cli\u003e⚠️ Security improvement. If you are accepting urls from others and returning the response to them, you are vulnerable to redirection-based SSRF. Disable \u003ccode\u003eallow_redirects\u003c/code\u003e or at lease set \u003ccode\u003eallow_redirects=\u0026quot;safe\u0026quot;\u003c/code\u003e, see the \u003ca href=\"https://github.com/lexiforest/curl_cffi/security/advisories/GHSA-qw2m-4pqf-rmpp\"\u003eadvisory\u003c/a\u003e and the \u003ca href=\"https://curl-cffi.readthedocs.io/en/latest/security.html#ssrf-protection\"\u003edocs\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003ePerformance optimization: WebSocket improvement and free-threading support.\u003c/li\u003e\n\u003cli\u003eAndroid is officially supported, closing a 3-years-old issue.\u003c/li\u003e\n\u003cli\u003eNew impersonation behaviors, the cookie header behavior and POST boundary are now made exactly the same as browsers. These are not part of tls or http binary fingerprints, but are exploited by WAFs, too.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThe list of proxy vendors with udp sock5 support is very limited, so I set up 2 servers for testing. You can simply run:\u003c/p\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl-cffi get https://fp.impersonate.pro/api/http3 --proxy socks5://imp:curl-cffi@206.189.95.199:1080 --http3-only\r\ncurl-cffi get https://fp.impersonate.pro/api/http3 --proxy socks5://imp:curl-cffi@24.144.88.46:1080 --http3-only\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eIf you need more udp socks5 servers from us, click the 👀 emoji to vote.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix some of the extension values being overwritten caused by applying… by \u003ca href=\"https://github.com/enter-a-new-username3\"\u003e\u003ccode\u003e@​enter-a-new-username3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/680\"\u003elexiforest/curl_cffi#680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTypehint session return values and internal functions by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/664\"\u003elexiforest/curl_cffi#664\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd free threaded builds by \u003ca href=\"https://github.com/lexiforest\"\u003e\u003ccode\u003e@​lexiforest\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/697\"\u003elexiforest/curl_cffi#697\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAsync WebSocket: Docs, Safety \u0026amp; Performance Improvements by \u003ca href=\"https://github.com/Sh3llcod3\"\u003e\u003ccode\u003e@​Sh3llcod3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/692\"\u003elexiforest/curl_cffi#692\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Android by \u003ca href=\"https://github.com/lexiforest\"\u003e\u003ccode\u003e@​lexiforest\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/699\"\u003elexiforest/curl_cffi#699\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd type hint for request responses by \u003ca href=\"https://github.com/MFTabriz\"\u003e\u003ccode\u003e@​MFTabriz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/690\"\u003elexiforest/curl_cffi#690\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eResponse hint fix for \u0026lt; 3.13 by \u003ca href=\"https://github.com/novitae\"\u003e\u003ccode\u003e@​novitae\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/546\"\u003elexiforest/curl_cffi#546\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix BufferError Crash by \u003ca href=\"https://github.com/Sh3llcod3\"\u003e\u003ccode\u003e@​Sh3llcod3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/700\"\u003elexiforest/curl_cffi#700\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWS: Small Optimizations by \u003ca href=\"https://github.com/Sh3llcod3\"\u003e\u003ccode\u003e@​Sh3llcod3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/702\"\u003elexiforest/curl_cffi#702\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for retrying by \u003ca href=\"https://github.com/lexiforest\"\u003e\u003ccode\u003e@​lexiforest\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/689\"\u003elexiforest/curl_cffi#689\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWS: Update Docs by \u003ca href=\"https://github.com/Sh3llcod3\"\u003e\u003ccode\u003e@​Sh3llcod3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/705\"\u003elexiforest/curl_cffi#705\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnable http3 fingerprints by \u003ca href=\"https://github.com/lexiforest\"\u003e\u003ccode\u003e@​lexiforest\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/712\"\u003elexiforest/curl_cffi#712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for loongarch64 by \u003ca href=\"https://github.com/wxpppp\"\u003e\u003ccode\u003e@​wxpppp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/716\"\u003elexiforest/curl_cffi#716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake the CLI more useful by \u003ca href=\"https://github.com/lexiforest\"\u003e\u003ccode\u003e@​lexiforest\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/726\"\u003elexiforest/curl_cffi#726\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd option to mitigate SSRF by \u003ca href=\"https://github.com/lexiforest\"\u003e\u003ccode\u003e@​lexiforest\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/727\"\u003elexiforest/curl_cffi#727\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpose http3 fingerprints customization by \u003ca href=\"https://github.com/lexiforest\"\u003e\u003ccode\u003e@​lexiforest\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/728\"\u003elexiforest/curl_cffi#728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd body to response.request by \u003ca href=\"https://github.com/lexiforest\"\u003e\u003ccode\u003e@​lexiforest\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/710\"\u003elexiforest/curl_cffi#710\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix Makefile issue by \u003ca href=\"https://github.com/p9s\"\u003e\u003ccode\u003e@​p9s\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/655\"\u003elexiforest/curl_cffi#655\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for READFUNCTION by \u003ca href=\"https://github.com/lexiforest\"\u003e\u003ccode\u003e@​lexiforest\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/698\"\u003elexiforest/curl_cffi#698\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/enter-a-new-username3\"\u003e\u003ccode\u003e@​enter-a-new-username3\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/680\"\u003elexiforest/curl_cffi#680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MFTabriz\"\u003e\u003ccode\u003e@​MFTabriz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/690\"\u003elexiforest/curl_cffi#690\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wxpppp\"\u003e\u003ccode\u003e@​wxpppp\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/716\"\u003elexiforest/curl_cffi#716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/p9s\"\u003e\u003ccode\u003e@​p9s\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/655\"\u003elexiforest/curl_cffi#655\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lexiforest/curl_cffi/compare/v0.14.0...v0.15.0\"\u003ehttps://github.com/lexiforest/curl_cffi/compare/v0.14.0...v0.15.0\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lexiforest/curl_cffi/commit/0e219c43701f955436ef4a20486a7237a417dbc6\"\u003e\u003ccode\u003e0e219c4\u003c/code\u003e\u003c/a\u003e cli: add --http3-only\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lexiforest/curl_cffi/commit/21ca4f0e0fdc16401949dbd939c9e1c0973d6e85\"\u003e\u003ccode\u003e21ca4f0\u003c/code\u003e\u003c/a\u003e Optimize CLI output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lexiforest/curl_cffi/commit/884fffd752c1ac1890f74eb87ef682b7a17f486a\"\u003e\u003ccode\u003e884fffd\u003c/code\u003e\u003c/a\u003e Bump version to 0.15.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lexiforest/curl_cffi/commit/754b43d76ce07db943d656524ee8c2432e99b74e\"\u003e\u003ccode\u003e754b43d\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lexiforest/curl_cffi/commit/6e61a25d13edfe062554310913c1fd1c19b9e5af\"\u003e\u003ccode\u003e6e61a25\u003c/code\u003e\u003c/a\u003e Add support for READFUNCTION (\u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/issues/698\"\u003e#698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lexiforest/curl_cffi/commit/5eb13bc91f2a6f5014d163ea9c0b89a3b70c8cab\"\u003e\u003ccode\u003e5eb13bc\u003c/code\u003e\u003c/a\u003e fix Makefile issue (\u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/issues/655\"\u003e#655\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lexiforest/curl_cffi/commit/39c046c548a490c2f2fed8c9c82ed6a5ab39ad05\"\u003e\u003ccode\u003e39c046c\u003c/code\u003e\u003c/a\u003e Store request body (\u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/issues/710\"\u003e#710\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lexiforest/curl_cffi/commit/06237c9172815071678c920afb75dfd1ab6db32a\"\u003e\u003ccode\u003e06237c9\u003c/code\u003e\u003c/a\u003e Expose http3 fingerprints customization (\u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/issues/728\"\u003e#728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lexiforest/curl_cffi/commit/5686baf38d6d5128b80b83573158ee1241dff4da\"\u003e\u003ccode\u003e5686baf\u003c/code\u003e\u003c/a\u003e Add option to mitigate SSRF (\u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/issues/727\"\u003e#727\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lexiforest/curl_cffi/commit/73b2b1694324a426ba8ddc61a602867d1d764552\"\u003e\u003ccode\u003e73b2b16\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lexiforest/curl_cffi/compare/v0.13.0...v0.15.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.4.4 to 3.4.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...\n\n_Description has been truncated_","html_url":"https://github.com/pmak99/trading-desk-public/pull/23","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/pmak99%2Ftrading-desk-public/issues/23","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/23/packages"},{"uuid":"4231366727","node_id":"PR_kwDOR99fb87RF3d8","number":10,"state":"open","title":"chore(deps): Bump the all-dependencies group in /python/agents/RAG with 3 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-09T10:15:45.000Z","updated_at":"2026-04-09T10:15:46.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): Bump","group_name":"all-dependencies","update_count":3,"packages":[{"name":"types-pyyaml","old_version":"6.0.12.20250915","new_version":"6.0.12.20260408","repository_url":"https://github.com/python/typeshed"},{"name":"types-requests","old_version":"2.33.0.20260402","new_version":"2.33.0.20260408","repository_url":"https://github.com/python/typeshed"},{"name":"pytest","old_version":"9.0.2","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"}],"path":"/python/agents/RAG","ecosystem":"conda"},"body":"Bumps the all-dependencies group in /python/agents/RAG with 3 updates: [types-pyyaml](https://github.com/python/typeshed), [types-requests](https://github.com/python/typeshed) and [pytest](https://github.com/pytest-dev/pytest).\n\nUpdates `types-pyyaml` from 6.0.12.20250915 to 6.0.12.20260408\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/python/typeshed/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `types-requests` from 2.33.0.20260402 to 2.33.0.20260408\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/python/typeshed/commits\"\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.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\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/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/9.0.2...9.0.3\"\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/giuliosalierno/adk-samples-sync-genmedia-20260407-165915/pull/10","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/giuliosalierno%2Fadk-samples-sync-genmedia-20260407-165915/issues/10","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/10/packages"},{"uuid":"3989174822","node_id":"PR_kwDOCmWyEM7GNury","number":30,"state":"closed","title":"Bump the all-dependencies group with 15 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-03-03T15:23:57.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-25T12:25:38.000Z","updated_at":"2026-03-03T15:23:59.000Z","time_to_close":529099,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"all-dependencies","update_count":15,"packages":[{"name":"docutils","old_version":"0.22.3","new_version":"0.22.4","repository_url":"https://github.com/rtfd/recommonmark"},{"name":"babel","old_version":"2.17.0","new_version":"2.18.0","repository_url":"https://github.com/python-babel/babel"},{"name":"roman-numerals","old_version":"3.1.0","new_version":"4.1.0","repository_url":"https://github.com/AA-Turner/roman-numerals"},{"name":"packaging","old_version":"25.0","new_version":"26.0","repository_url":"https://github.com/pypa/packaging"},{"name":"ruff","old_version":"0.14.9","new_version":"0.15.2","repository_url":"https://github.com/astral-sh/ruff"},{"name":"build","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/pypa/build"},{"name":"pypi-attestations","old_version":"0.0.28","new_version":"0.0.29","repository_url":"https://github.com/pypi/pypi-attestations"},{"name":"pytest","old_version":"9.0.1","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"cython","old_version":"3.2.2","new_version":"3.2.4","repository_url":"https://github.com/cython/cython"},{"name":"setuptools","old_version":"80.9.0","new_version":"82.0.0","repository_url":"https://github.com/pypa/setuptools"},{"name":"pyrefly","old_version":"0.44.0","new_version":"0.54.0","repository_url":"https://github.com/facebook/pyrefly"},{"name":"pyright","old_version":"1.1.407","new_version":"1.1.408","repository_url":"https://github.com/RobertCraigie/pyright-python"},{"name":"ty","old_version":"0.0.1a30","new_version":"0.0.18","repository_url":"https://github.com/astral-sh/ty"},{"name":"types-docutils","old_version":"0.22.3.20251115","new_version":"0.22.3.20260223","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"types-requests","old_version":"2.32.4.20250913","new_version":"2.32.4.20260107","repository_url":"https://github.com/typeshed-internal/stub_uploader"}],"path":null,"ecosystem":"conda"},"body":"Bumps the all-dependencies group with 15 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [docutils](https://github.com/rtfd/recommonmark) | `0.22.3` | `0.22.4` |\n| [babel](https://github.com/python-babel/babel) | `2.17.0` | `2.18.0` |\n| [roman-numerals](https://github.com/AA-Turner/roman-numerals) | `3.1.0` | `4.1.0` |\n| [packaging](https://github.com/pypa/packaging) | `25.0` | `26.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.9` | `0.15.2` |\n| [build](https://github.com/pypa/build) | `1.3.0` | `1.4.0` |\n| [pypi-attestations](https://github.com/pypi/pypi-attestations) | `0.0.28` | `0.0.29` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.1` | `9.0.2` |\n| [cython](https://github.com/cython/cython) | `3.2.2` | `3.2.4` |\n| [setuptools](https://github.com/pypa/setuptools) | `80.9.0` | `82.0.0` |\n| [pyrefly](https://github.com/facebook/pyrefly) | `0.44.0` | `0.54.0` |\n| [pyright](https://github.com/RobertCraigie/pyright-python) | `1.1.407` | `1.1.408` |\n| [ty](https://github.com/astral-sh/ty) | `0.0.1a30` | `0.0.18` |\n| [types-docutils](https://github.com/typeshed-internal/stub_uploader) | `0.22.3.20251115` | `0.22.3.20260223` |\n| [types-requests](https://github.com/typeshed-internal/stub_uploader) | `2.32.4.20250913` | `2.32.4.20260107` |\n\nUpdates `docutils` from 0.22.3 to 0.22.4\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rtfd/recommonmark/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `babel` from 2.17.0 to 2.18.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-babel/babel/releases\"\u003ebabel's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.18.0\u003c/h2\u003e\n\u003cp\u003eHappy 2026! Like last year's release (ahem...), this one too is being made from FOSDEM 2026, in Brussels, Belgium. 🇧🇪\nWe'll aspire for a less glacial release cycle for 2.19. 😁\u003c/p\u003e\n\u003cp\u003ePlease see \u003ca href=\"https://github.com/python-babel/babel/blob/56c63caf50b18b152541b5dcafd51f645d867074/CHANGES.rst\"\u003eCHANGELOG.rst\u003c/a\u003e for the detailed change log.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/python-babel/babel/compare/v2.17.0...v2.18.0\"\u003ehttps://github.com/python-babel/babel/compare/v2.17.0...v2.18.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/python-babel/babel/blob/master/CHANGES.rst\"\u003ebabel's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 2.18.0\u003c/h2\u003e\n\u003cp\u003eHappy 2026! This release is, coincidentally, also being made from FOSDEM.\u003c/p\u003e\n\u003cp\u003eWe will aspire for a slightly less glacial release cadence in this year;\nthere are interesting features in the pipeline.\u003c/p\u003e\n\u003cp\u003eFeatures\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Core: Add `babel.core.get_cldr_version()` by @akx in :gh:`1242`\n* Core: Use CLDR 47 by @tomasr8 in :gh:`1210`\n* Core: Use canonical IANA zone names in zone_territories by @akx in :gh:`1220`\n* Messages: Improve extract performance via ignoring directories early during os.walk by @akx in :gh:`968`\n* Messages: Merge in per-format keywords and auto_comments by @akx in :gh:`1243`\n* Messages: Update keywords for extraction of dpgettext and dnpgettext by @mardiros in :gh:`1235`\n* Messages: Validate all plurals in Python format checker by @tomasr8 in :gh:`1188`\n* Time: Use standard library `timezone` instead of `FixedOffsetTimezone` by @akx in :gh:`1203`\n\u003cp\u003eBugfixes\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCore: Fix formatting for \u0026quot;Empty locale identifier\u0026quot; exception added in \u003ca href=\"https://redirect.github.com/python-babel/babel/issues/1164\"\u003e#1164\u003c/a\u003e by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in :gh:\u003ccode\u003e1184\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eCore: Improve handling of no-inheritance-marker in timezone data by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in :gh:\u003ccode\u003e1194\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eCore: Make the number pattern regular expression more efficient by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in :gh:\u003ccode\u003e1213\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eMessages: Keep translator comments next to the translation function call by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in :gh:\u003ccode\u003e1196\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eNumbers: Fix KeyError that occurred when formatting compact currencies of exactly one thousand in several locales  by \u003ca href=\"https://github.com/bartbroere\"\u003e\u003ccode\u003e@​bartbroere\u003c/code\u003e\u003c/a\u003e in :gh:\u003ccode\u003e1246\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOther improvements\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Core: Avoid unnecessary uses of `map()` by @akx in :gh:`1180`\n* Messages: Have init-catalog create directories too by @akx in :gh:`1244`\n* Messages: Optimizations for read_po by @akx in :gh:`1200`\n* Messages: Use pathlib.Path() in catalog frontend; improve test coverage by @akx in :gh:`1204`\n\u003cp\u003eInfrastructure and documentation\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCI: Renovate CI \u0026amp; lint tools by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in :gh:\u003ccode\u003e1228\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eCI: Tighten up CI with Zizmor by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in :gh:\u003ccode\u003e1230\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eCI: make job permissions explicit by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in :gh:\u003ccode\u003e1227\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Add SECURITY.md by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in :gh:\u003ccode\u003e1229\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Remove u string prefix from docs by \u003ca href=\"https://github.com/verhovsky\"\u003e\u003ccode\u003e@​verhovsky\u003c/code\u003e\u003c/a\u003e in :gh:\u003ccode\u003e1174\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Update dates.rst with current unicode.org tr35 link by \u003ca href=\"https://github.com/clach04\"\u003e\u003ccode\u003e@​clach04\u003c/code\u003e\u003c/a\u003e in :gh:\u003ccode\u003e1189\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGeneral: Add some PyPI classifiers by \u003ca href=\"https://github.com/tomasr8\"\u003e\u003ccode\u003e@​tomasr8\u003c/code\u003e\u003c/a\u003e in :gh:\u003ccode\u003e1186\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGeneral: Apply reformatting by hand and with Ruff by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in :gh:\u003ccode\u003e1202\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGeneral: Test on and declare support for Python 3.14 by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in :gh:\u003ccode\u003e1233\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/python-babel/babel/commit/56c63caf50b18b152541b5dcafd51f645d867074\"\u003e\u003ccode\u003e56c63ca\u003c/code\u003e\u003c/a\u003e Prepare for 2.18.0 (\u003ca href=\"https://redirect.github.com/python-babel/babel/issues/1248\"\u003e#1248\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/babel/commit/73015a1217b90398fe76dcdc3b6e110ce26eb6d3\"\u003e\u003ccode\u003e73015a1\u003c/code\u003e\u003c/a\u003e Add user-agent to CLDR downloader (\u003ca href=\"https://redirect.github.com/python-babel/babel/issues/1247\"\u003e#1247\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/babel/commit/29bd3624463f9b8694d09a308f67f353373c76af\"\u003e\u003ccode\u003e29bd362\u003c/code\u003e\u003c/a\u003e Fix formatting compact currencies of exactly one thousand in several locales ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/babel/commit/851db43b2b175c6bdf69ae6977cd6ad642506046\"\u003e\u003ccode\u003e851db43\u003c/code\u003e\u003c/a\u003e Reuse InitCatalog's guts in UpdateCatalog (\u003ca href=\"https://redirect.github.com/python-babel/babel/issues/1244\"\u003e#1244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/babel/commit/fd00e60adf7e0c74821a77ff2a8b564e9985fd8e\"\u003e\u003ccode\u003efd00e60\u003c/code\u003e\u003c/a\u003e Extract: Merge in per-format keywords and auto_comments (\u003ca href=\"https://redirect.github.com/python-babel/babel/issues/1243\"\u003e#1243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/babel/commit/12a14b6b3f09b6f5c8c745791dd4928f1d58fda0\"\u003e\u003ccode\u003e12a14b6\u003c/code\u003e\u003c/a\u003e Add dpgettext and dnpgettext support (\u003ca href=\"https://redirect.github.com/python-babel/babel/issues/1235\"\u003e#1235\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/babel/commit/7110e6206fd5ddc66db9613935fea8b8c668b7d5\"\u003e\u003ccode\u003e7110e62\u003c/code\u003e\u003c/a\u003e Use canonical IANA zone names in zone_territories (\u003ca href=\"https://redirect.github.com/python-babel/babel/issues/1220\"\u003e#1220\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/babel/commit/e91c3467b0f3bdc4433eab6820819fe69784c2bf\"\u003e\u003ccode\u003ee91c346\u003c/code\u003e\u003c/a\u003e Improve extract performance via ignoring directories early during os.walk (\u003ca href=\"https://redirect.github.com/python-babel/babel/issues/968\"\u003e#968\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/babel/commit/0c4f37838c3cb34cf527dd9890c1b69e98db1354\"\u003e\u003ccode\u003e0c4f378\u003c/code\u003e\u003c/a\u003e Convert Unittest testcases with setup/teardown to fixtures (\u003ca href=\"https://redirect.github.com/python-babel/babel/issues/1240\"\u003e#1240\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/babel/commit/218c96ee305aad95bccb6402af4b4be60ad17ab1\"\u003e\u003ccode\u003e218c96e\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003ebabel.core.get_cldr_version()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-babel/babel/issues/1242\"\u003e#1242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-babel/babel/compare/v2.17.0...v2.18.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `roman-numerals` from 3.1.0 to 4.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/AA-Turner/roman-numerals/releases\"\u003eroman-numerals's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.1.0\u003c/h2\u003e\n\u003cp\u003eroman-numerals 4.1.0\u003c/p\u003e\n\u003ch2\u003ev4.0.0\u003c/h2\u003e\n\u003cp\u003eroman-numerals 4.0.0\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/AA-Turner/roman-numerals/blob/master/CHANGES.rst\"\u003eroman-numerals's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease 4.1.0 (released 17 Dec 2025)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRestore LICENCE.rst in the roman-numerals-py meta-package\u003c/li\u003e\n\u003cli\u003eAdd some debug assertions for unsafe blocks\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eRelease 4.0.0 (released 16 Dec 2025)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRename Python package to \u003ccode\u003eroman-numerals\u003c/code\u003e on PyPI.\u003c/li\u003e\n\u003cli\u003ePublish \u003ccode\u003eroman-numerals-py\u003c/code\u003e as a meta-package that depends\non \u003ccode\u003eroman-numerals\u003c/code\u003e and installs no modules.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9.\u003c/li\u003e\n\u003cli\u003eDeclare support for Python 3.15.\u003c/li\u003e\n\u003cli\u003eIncrease the minimum supported Rust version (MSRV) to 1.81.0.\u003c/li\u003e\n\u003cli\u003eImplement the \u003ccode\u003ecore::error::Error\u003c/code\u003e trait for all error types.\u003c/li\u003e\n\u003cli\u003eImplement the \u003ccode\u003ecore::fmt\u003c/code\u003e traits in \u003ccode\u003eno-std\u003c/code\u003e mode.\u003c/li\u003e\n\u003cli\u003eImplement \u003ccode\u003eFrom\u0026lt;RomanNumeral\u0026gt;\u003c/code\u003e for most integer types.\u003c/li\u003e\n\u003cli\u003ePublish the \u003ccode\u003eroman-numerals-rs\u003c/code\u003e crate using \u003ccode\u003eTrusted Publishing \u0026lt;https://crates.io/docs/trusted-publishing\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/53c9c4eac63b91728fba3c26329163ee57654d21\"\u003e\u003ccode\u003e53c9c4e\u003c/code\u003e\u003c/a\u003e Release v4.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/a3793b83fab7064107ac56a482a6fa93bc9c5048\"\u003e\u003ccode\u003ea3793b8\u003c/code\u003e\u003c/a\u003e Add more SAFETY notes and debug assertions to unsafe blocks (\u003ca href=\"https://redirect.github.com/AA-Turner/roman-numerals/issues/106\"\u003e#106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/46d346e2d08b634856c79783e404616b65626ba7\"\u003e\u003ccode\u003e46d346e\u003c/code\u003e\u003c/a\u003e Adjust annotations in light of PEP 649\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/b8fae405d948415f7397ae4f64569c53cb623105\"\u003e\u003ccode\u003eb8fae40\u003c/code\u003e\u003c/a\u003e Adjust an example in the README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/a88464130711ad5e8d56e6ff747d17068ae17534\"\u003e\u003ccode\u003ea884641\u003c/code\u003e\u003c/a\u003e Restore LICENCE.rst in the roman-numerals-py meta-package\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/c3e1b6b4e6e02e5e19c26dc6f72bbb7b1060cca5\"\u003e\u003ccode\u003ec3e1b6b\u003c/code\u003e\u003c/a\u003e Release v4.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/c335cb63ed97e684a4e9453639bfc7e9f487bb41\"\u003e\u003ccode\u003ec335cb6\u003c/code\u003e\u003c/a\u003e Add publishing step for the \u003ccode\u003eroman-numerals-py\u003c/code\u003e meta-package (\u003ca href=\"https://redirect.github.com/AA-Turner/roman-numerals/issues/105\"\u003e#105\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/649f6e62e7bd24123d7dd489609ae47168aaeb1b\"\u003e\u003ccode\u003e649f6e6\u003c/code\u003e\u003c/a\u003e Add Trusted Publishing workflow for crates.io (\u003ca href=\"https://redirect.github.com/AA-Turner/roman-numerals/issues/104\"\u003e#104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/ffa4dd1b33eae62f1bd1d44549e10a528b8f1f58\"\u003e\u003ccode\u003effa4dd1\u003c/code\u003e\u003c/a\u003e rust: Refactor tests (\u003ca href=\"https://redirect.github.com/AA-Turner/roman-numerals/issues/103\"\u003e#103\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/26b41561c1d9813104548777b5ed9622d7125b38\"\u003e\u003ccode\u003e26b4156\u003c/code\u003e\u003c/a\u003e Simplify ASCII detection closures (\u003ca href=\"https://redirect.github.com/AA-Turner/roman-numerals/issues/102\"\u003e#102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/AA-Turner/roman-numerals/compare/v3.1.0...v4.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `packaging` from 25.0 to 26.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/releases\"\u003epackaging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.0\u003c/h2\u003e\n\u003cp\u003eRead about the performance improvements here: \u003ca href=\"https://iscinumpy.dev/post/packaging-faster\"\u003ehttps://iscinumpy.dev/post/packaging-faster\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePEP 751: support pylock by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/900\"\u003epypa/packaging#900\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePEP 794: import name metadata by \u003ca href=\"https://github.com/brettcannon\"\u003e\u003ccode\u003e@​brettcannon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/948\"\u003epypa/packaging#948\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport writing metadata by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/846\"\u003epypa/packaging#846\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e__replace__\u003c/code\u003e for \u003ccode\u003eVersion\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1003\"\u003epypa/packaging#1003\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport positional pattern matching for \u003ccode\u003eVersion\u003c/code\u003e and \u003ccode\u003eSpecifier\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1004\"\u003epypa/packaging#1004\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePEP 440 handling of prereleases for \u003ccode\u003eSpecifier.contains\u003c/code\u003e, \u003ccode\u003eSpecifierSet.contains\u003c/code\u003e, and \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/897\"\u003epypa/packaging#897\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle PEP 440 edge case in \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/942\"\u003epypa/packaging#942\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdjust arbitrary equality intersection preservation in \u003ccode\u003eSpecifierSet\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/951\"\u003epypa/packaging#951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReturn \u003ccode\u003eFalse\u003c/code\u003e instead of raising for \u003ccode\u003e.contains\u003c/code\u003e with invalid version by \u003ca href=\"https://github.com/Liam-DeVoe\"\u003e\u003ccode\u003e@​Liam-DeVoe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/932\"\u003epypa/packaging#932\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport arbitrary equality on arbitrary strings for \u003ccode\u003eSpecifier\u003c/code\u003e and \u003ccode\u003eSpecifierSet\u003c/code\u003e's \u003ccode\u003efilter\u003c/code\u003e and \u003ccode\u003econtains\u003c/code\u003e method. by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/954\"\u003epypa/packaging#954\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly try to parse as \u003ccode\u003eVersion\u003c/code\u003e on certain marker keys, return \u003ccode\u003eFalse\u003c/code\u003e on unequal ordered comparsions by \u003ca href=\"https://github.com/JP-Ellis\"\u003e\u003ccode\u003e@​JP-Ellis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/939\"\u003epypa/packaging#939\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003e_hash\u003c/code\u003e when unpickling \u003ccode\u003eTag()\u003c/code\u003e by \u003ca href=\"https://github.com/dholth\"\u003e\u003ccode\u003e@​dholth\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/860\"\u003epypa/packaging#860\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrect comment and simplify implicit prerelease handling in \u003ccode\u003eSpecifier.prereleases\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/896\"\u003epypa/packaging#896\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse explicit \u003ccode\u003e_GLibCVersion\u003c/code\u003e \u003ccode\u003eNamedTuple\u003c/code\u003e in \u003ccode\u003e_manylinux\u003c/code\u003e by \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/868\"\u003epypa/packaging#868\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDetect invalid license expressions containing \u003ccode\u003e()\u003c/code\u003e by \u003ca href=\"https://github.com/bwoodsend\"\u003e\u003ccode\u003e@​bwoodsend\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/879\"\u003epypa/packaging#879\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrect regex for metadata \u003ccode\u003e'name'\u003c/code\u003e format by \u003ca href=\"https://github.com/di\"\u003e\u003ccode\u003e@​di\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/925\"\u003epypa/packaging#925\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove the message around expecting a semicolon by \u003ca href=\"https://github.com/pradyunsg\"\u003e\u003ccode\u003e@​pradyunsg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/833\"\u003epypa/packaging#833\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport nested parens in license expressions by \u003ca href=\"https://github.com/Liam-DeVoe\"\u003e\u003ccode\u003e@​Liam-DeVoe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/931\"\u003epypa/packaging#931\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd space before at symbol in \u003ccode\u003eRequirements\u003c/code\u003e string by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/953\"\u003epypa/packaging#953\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eA root logger use found by ruff LOG, use \u003ccode\u003epackaging\u003c/code\u003e logger instead by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/965\"\u003epypa/packaging#965\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter support for subclassing \u003ccode\u003eMarker\u003c/code\u003e and \u003ccode\u003eRequirement\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1022\"\u003epypa/packaging#1022\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize all extras, not just if it comes first by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1024\"\u003epypa/packaging#1024\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't produce a broken repr if \u003ccode\u003eMarker\u003c/code\u003e fails to construct by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1033\"\u003epypa/packaging#1033\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePerformance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid recompiling regexes in the tokenizer for a 3x speedup by \u003ca href=\"https://github.com/hauntsaninja\"\u003e\u003ccode\u003e@​hauntsaninja\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1019\"\u003epypa/packaging#1019\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove performance in \u003ccode\u003e_manylinux.py\u003c/code\u003e by \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/869\"\u003epypa/packaging#869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMinor cleanups to \u003ccode\u003eVersion\u003c/code\u003e by \u003ca href=\"https://github.com/bearomorphism\"\u003e\u003ccode\u003e@​bearomorphism\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/913\"\u003epypa/packaging#913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip redundant creation of \u003ccode\u003eVersion\u003c/code\u003es in specifier comparison by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/986\"\u003epypa/packaging#986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCache \u003ccode\u003eSpecifier\u003c/code\u003e's Version by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/985\"\u003epypa/packaging#985\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eVersion\u003c/code\u003e a little faster by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/987\"\u003epypa/packaging#987\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMinor \u003ccode\u003eVersion\u003c/code\u003e regex cleanup by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/990\"\u003epypa/packaging#990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFaster regex on Python 3.11.5+ by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/988\"\u003epypa/packaging#988\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1055\"\u003epypa/packaging#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLazily calculate \u003ccode\u003e_key\u003c/code\u003e in \u003ccode\u003eVersion\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/989\"\u003epypa/packaging#989\u003c/a\u003e and regression for \u003ccode\u003epackaging_legacy\u003c/code\u003e fixed by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1048\"\u003epypa/packaging#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFaster \u003ccode\u003ecanonicalize_version\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/993\"\u003epypa/packaging#993\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003efullmatch\u003c/code\u003e in a couple more places by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/992\"\u003epypa/packaging#992\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/blob/main/CHANGELOG.rst\"\u003epackaging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e26.0 - 2026-01-20\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nFeatures:\n\u003cul\u003e\n\u003cli\u003ePEP 751: support pylock (:pull:\u003ccode\u003e900\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePEP 794: import name metadata (:pull:\u003ccode\u003e948\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport for writing metadata to a file (:pull:\u003ccode\u003e846\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e__replace__\u003c/code\u003e on Version (:pull:\u003ccode\u003e1003\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport positional pattern matching for \u003ccode\u003eVersion\u003c/code\u003e and \u003ccode\u003eSpecifierSet\u003c/code\u003e (:pull:\u003ccode\u003e1004\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePEP 440 handling of prereleases for \u003ccode\u003eSpecifier.contains\u003c/code\u003e, \u003ccode\u003eSpecifierSet.contains\u003c/code\u003e, and \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e (:pull:\u003ccode\u003e897\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eHandle PEP 440 edge case in \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e (:pull:\u003ccode\u003e942\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdjust arbitrary equality intersection preservation in \u003ccode\u003eSpecifierSet\u003c/code\u003e (:pull:\u003ccode\u003e951\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eReturn \u003ccode\u003eFalse\u003c/code\u003e instead of raising for \u003ccode\u003e.contains\u003c/code\u003e with invalid version (:pull:\u003ccode\u003e932\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport arbitrary equality on arbitrary strings for \u003ccode\u003eSpecifier\u003c/code\u003e and \u003ccode\u003eSpecifierSet\u003c/code\u003e's \u003ccode\u003efilter\u003c/code\u003e and \u003ccode\u003econtains\u003c/code\u003e method. (:pull:\u003ccode\u003e954\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eOnly try to parse as \u003ccode\u003eVersion\u003c/code\u003e on certain marker keys, return \u003ccode\u003eFalse\u003c/code\u003e on unequal ordered comparisons (:pull:\u003ccode\u003e939\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003e_hash\u003c/code\u003e when unpickling \u003ccode\u003eTag()\u003c/code\u003e (:pull:\u003ccode\u003e860\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect comment and simplify implicit prerelease handling in \u003ccode\u003eSpecifier.prereleases\u003c/code\u003e (:pull:\u003ccode\u003e896\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse explicit \u003ccode\u003e_GLibCVersion\u003c/code\u003e \u003ccode\u003eNamedTuple\u003c/code\u003e in \u003ccode\u003e_manylinux\u003c/code\u003e (:pull:\u003ccode\u003e868\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDetect invalid license expressions containing \u003ccode\u003e()\u003c/code\u003e (:pull:\u003ccode\u003e879\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect regex for metadata \u003ccode\u003e'name'\u003c/code\u003e format (:pull:\u003ccode\u003e925\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eImprove the message around expecting a semicolon (:pull:\u003ccode\u003e833\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport nested parens in license expressions (:pull:\u003ccode\u003e931\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd space before at symbol in \u003ccode\u003eRequirements\u003c/code\u003e string (:pull:\u003ccode\u003e953\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eA root logger use found, use a \u003ccode\u003epackaging\u003c/code\u003e logger instead (:pull:\u003ccode\u003e965\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eBetter support for subclassing \u003ccode\u003eMarker\u003c/code\u003e and \u003ccode\u003eRequirement\u003c/code\u003e (:pull:\u003ccode\u003e1022\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eNormalize all extras, not just if it comes first (:pull:\u003ccode\u003e1024\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDon't produce a broken repr if \u003ccode\u003eMarker\u003c/code\u003e fails to construct (:pull:\u003ccode\u003e1033\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePerformance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid recompiling regexes in the tokenizer for a 3x speedup (:pull:\u003ccode\u003e1019\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eImprove performance in \u003ccode\u003e_manylinux.py\u003c/code\u003e (:pull:\u003ccode\u003e869\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMinor cleanups to \u003ccode\u003eVersion\u003c/code\u003e (:pull:\u003ccode\u003e913\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSkip redundant creation of \u003ccode\u003eVersion\u003c/code\u003e's in specifier comparison (:pull:\u003ccode\u003e986\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCache the \u003ccode\u003eSpecifier\u003c/code\u003e's \u003ccode\u003eVersion\u003c/code\u003e (:pull:\u003ccode\u003e985\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eVersion\u003c/code\u003e a little faster (:pull:\u003ccode\u003e987\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMinor \u003ccode\u003eVersion\u003c/code\u003e regex cleanup (:pull:\u003ccode\u003e990\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFaster regex on Python 3.11.5+ for \u003ccode\u003eVersion\u003c/code\u003e (:pull:\u003ccode\u003e988\u003c/code\u003e, :pull:\u003ccode\u003e1055\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eLazily calculate \u003ccode\u003e_key\u003c/code\u003e in \u003ccode\u003eVersion\u003c/code\u003e (:pull:\u003ccode\u003e989\u003c/code\u003e, :pull:\u003ccode\u003e1048\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFaster \u003ccode\u003ecanonicalize_version\u003c/code\u003e (:pull:\u003ccode\u003e993\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003ere.fullmatch\u003c/code\u003e in a couple more places (:pull:\u003ccode\u003e992\u003c/code\u003e, :pull:\u003ccode\u003e1029\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003emap\u003c/code\u003e instead of generator (:pull:\u003ccode\u003e996\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDeprecate \u003ccode\u003e._version\u003c/code\u003e (\u003ccode\u003e_Version\u003c/code\u003e, a \u003ccode\u003eNamedTuple\u003c/code\u003e) (:pull:\u003ccode\u003e995\u003c/code\u003e, :pull:\u003ccode\u003e1062\u003c/code\u003e)\u003cbr /\u003e\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/3b77a26f5a27473ad3b08194d773f325d018a2d0\"\u003e\u003ccode\u003e3b77a26\u003c/code\u003e\u003c/a\u003e Bump for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/31371cce593d2bde0dd8c436ecfb7d53cb91cfb6\"\u003e\u003ccode\u003e31371cc\u003c/code\u003e\u003c/a\u003e docs: prepare for 26.0 final (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1063\"\u003e#1063\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/9627a8821f09e4c55cd6e9daadb617b67c4741c2\"\u003e\u003ccode\u003e9627a88\u003c/code\u003e\u003c/a\u003e perf: dual replace (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1064\"\u003e#1064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/d5398b8bc19f3fad7b035ceb83023caf06d6e2da\"\u003e\u003ccode\u003ed5398b8\u003c/code\u003e\u003c/a\u003e fix: restore ._version as a compat shim (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1062\"\u003e#1062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/3a7b600a126d237b2ad3cd7e25d2cb5c176276af\"\u003e\u003ccode\u003e3a7b600\u003c/code\u003e\u003c/a\u003e Bump for development\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/d4eefdccf992e963c48011875301d93df6a7f2cc\"\u003e\u003ccode\u003ed4eefdc\u003c/code\u003e\u003c/a\u003e Bump for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/46189124fb43d8989d370902c80ab156eb83a45d\"\u003e\u003ccode\u003e4618912\u003c/code\u003e\u003c/a\u003e docs: prepare for 26.0rc3 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1060\"\u003e#1060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/0cf1b41b4b321ae08cad7d3e49cfaff5578fe813\"\u003e\u003ccode\u003e0cf1b41\u003c/code\u003e\u003c/a\u003e ci: test on first public release of CPythons (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1056\"\u003e#1056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/716beb1c0a5d7a398bf57fbd80bc2501811e616b\"\u003e\u003ccode\u003e716beb1\u003c/code\u003e\u003c/a\u003e perf:  10% faster stripping zeros (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1058\"\u003e#1058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/350a2306700b738f487f251efa278f532b263dee\"\u003e\u003ccode\u003e350a230\u003c/code\u003e\u003c/a\u003e fix: support CPython 3.11.0-3.11.4 and older PyPy3.11 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/packaging/compare/25.0...26.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.14.9 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.9...0.15.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `build` from 1.3.0 to 1.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/build/releases\"\u003ebuild's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--quiet\u003c/code\u003e flag (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/947\"\u003e#947\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd option to dump PEP 517 metadata with \u003ccode\u003e--metadata\u003c/code\u003e (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/940\"\u003e#940\u003c/a\u003e, PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/943\"\u003e#943\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003eUV\u003c/code\u003e environment variable (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/971\"\u003e#971\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove a workaround for 3.14b1 (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/960\"\u003e#960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIn 3.14 final release, \u003ccode\u003ecolor\u003c/code\u003e defaults to \u003ccode\u003eTrue\u003c/code\u003e already (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/962\"\u003e#962\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePass sp-repo-review (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/942\"\u003e#942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIn pytest configuration, \u003ccode\u003elog_level\u003c/code\u003e is better than \u003ccode\u003elog_cli_level\u003c/code\u003e (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/950\"\u003e#950\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSplit up typing and mypy (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/944\"\u003e#944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003etypes-colorama\u003c/code\u003e (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/945\"\u003e#945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIn docs, first argument for \u003ccode\u003e_has_dependency\u003c/code\u003e is a name (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/970\"\u003e#970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix test failure when \u003ccode\u003eflit-core\u003c/code\u003e is installed (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/921\"\u003e#921\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/build/blob/main/CHANGELOG.rst\"\u003ebuild's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.4.0 (2026-01-08)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--quiet\u003c/code\u003e flag\n(:pr:\u003ccode\u003e947\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd option to dump PEP 517 metadata with \u003ccode\u003e--metadata\u003c/code\u003e\n(:pr:\u003ccode\u003e940\u003c/code\u003e, :pr:\u003ccode\u003e943\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003eUV\u003c/code\u003e environment variable\n(:pr:\u003ccode\u003e971\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eRemove a workaround for 3.14b1\n(:pr:\u003ccode\u003e960\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eIn 3.14 final release, \u003ccode\u003ecolor\u003c/code\u003e defaults to \u003ccode\u003eTrue\u003c/code\u003e already\n(:pr:\u003ccode\u003e962\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePass sp-repo-review\n(:pr:\u003ccode\u003e942\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eIn pytest configuration, \u003ccode\u003elog_level\u003c/code\u003e is better than \u003ccode\u003elog_cli_level\u003c/code\u003e\n(:pr:\u003ccode\u003e950\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSplit up typing and mypy\n(:pr:\u003ccode\u003e944\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003etypes-colorama\u003c/code\u003e\n(:pr:\u003ccode\u003e945\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eIn docs, first argument for \u003ccode\u003e_has_dependency\u003c/code\u003e is a name\n(PR :pr:\u003ccode\u003e970\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix test failure when \u003ccode\u003eflit-core\u003c/code\u003e is installed\n(PR :pr:\u003ccode\u003e921\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/build/commit/54f238d1664124e06a68c6c22fd5b1418fa5feb2\"\u003e\u003ccode\u003e54f238d\u003c/code\u003e\u003c/a\u003e chore: prepare for 1.4.0 (\u003ca href=\"https://redirect.github.com/pypa/build/issues/972\"\u003e#972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/f219276a6e2c6c8222780ba518ce52444a91deaa\"\u003e\u003ccode\u003ef219276\u003c/code\u003e\u003c/a\u003e docs: first argument for _has_dependency is a name (\u003ca href=\"https://redirect.github.com/pypa/build/issues/970\"\u003e#970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/7adb29e69d2744acc5391d3c58d234388a9ac0ed\"\u003e\u003ccode\u003e7adb29e\u003c/code\u003e\u003c/a\u003e fix: support UV environment variable (\u003ca href=\"https://redirect.github.com/pypa/build/issues/971\"\u003e#971\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/a40623b20de5d29c80b569283191d65e630f4fc0\"\u003e\u003ccode\u003ea40623b\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/attest-build-provenance in the actions group (\u003ca href=\"https://redirect.github.com/pypa/build/issues/968\"\u003e#968\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/c8fae3459dbe4456d82d705c6a3f1869b0b26e5c\"\u003e\u003ccode\u003ec8fae34\u003c/code\u003e\u003c/a\u003e pre-commit: bump repositories (\u003ca href=\"https://redirect.github.com/pypa/build/issues/965\"\u003e#965\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/ed9c379f51abca7c0c0ae20bee66aa548d597dc3\"\u003e\u003ccode\u003eed9c379\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/download-artifact in the actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/0e44fd22f35c7b3c14d6410bbd8912dafba0e4a9\"\u003e\u003ccode\u003e0e44fd2\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003equiet\u003c/code\u003e flag (\u003ca href=\"https://redirect.github.com/pypa/build/issues/947\"\u003e#947\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/60e15ed4cb31209f0e07de750c831cdb3911c62c\"\u003e\u003ccode\u003e60e15ed\u003c/code\u003e\u003c/a\u003e chore: color defaults to True in 3.14 (\u003ca href=\"https://redirect.github.com/pypa/build/issues/962\"\u003e#962\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/0486d9df2e6caf7c04a3991824093eb6a16e7f29\"\u003e\u003ccode\u003e0486d9d\u003c/code\u003e\u003c/a\u003e pre-commit: bump repositories (\u003ca href=\"https://redirect.github.com/pypa/build/issues/961\"\u003e#961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/393b775480523247c1ad07b8da9bb8c23c5cd0fa\"\u003e\u003ccode\u003e393b775\u003c/code\u003e\u003c/a\u003e MNT: remove workaround for 3.14b1 (\u003ca href=\"https://redirect.github.com/pypa/build/issues/960\"\u003e#960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/build/compare/1.3.0...1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pypi-attestations` from 0.0.28 to 0.0.29\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypi/pypi-attestations/releases\"\u003epypi-attestations's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.0.29\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix lint and remove support for Python 3.9 by \u003ca href=\"https://github.com/facutuesca\"\u003e\u003ccode\u003e@​facutuesca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypi/pypi-attestations/pull/151\"\u003epypi/pypi-attestations#151\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd GCP support to CLI by \u003ca href=\"https://github.com/di\"\u003e\u003ccode\u003e@​di\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypi/pypi-attestations/pull/157\"\u003epypi/pypi-attestations#157\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pypi/pypi-attestations/compare/v0.0.28...v0.0.29\"\u003ehttps://github.com/pypi/pypi-attestations/compare/v0.0.28...v0.0.29\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/pypi/pypi-attestations/blob/main/CHANGELOG.md\"\u003epypi-attestations's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.0.29]\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for verifying Google Cloud attestations has been added to the CLI.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe minimum Python version required is now \u003ccode\u003e3.10\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/pypi/pypi-attestations/commit/fb35ffdce810566fdf7aa22f1b517f60be0c727f\"\u003e\u003ccode\u003efb35ffd\u003c/code\u003e\u003c/a\u003e chore: prep for release v0.0.29 (\u003ca href=\"https://redirect.github.com/pypi/pypi-attestations/issues/158\"\u003e#158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypi/pypi-attestations/commit/5afe2a125af6b2f8962dcf8326d2149f8dddc6f0\"\u003e\u003ccode\u003e5afe2a1\u003c/code\u003e\u003c/a\u003e Add GCP support to CLI (\u003ca href=\"https://redirect.github.com/pypi/pypi-attestations/issues/157\"\u003e#157\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypi/pypi-attestations/commit/0716b105c1c7b28a5bae1d8beca15a7f7e3c1a25\"\u003e\u003ccode\u003e0716b10\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python in the actions group (\u003ca href=\"https://redirect.github.com/pypi/pypi-attestations/issues/155\"\u003e#155\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypi/pypi-attestations/commit/34db665fba7f61aad1e4133cfff8b1a5b332cd60\"\u003e\u003ccode\u003e34db665\u003c/code\u003e\u003c/a\u003e build(deps): bump zizmorcore/zizmor-action in the actions group (\u003ca href=\"https://redirect.github.com/pypi/pypi-attestations/issues/154\"\u003e#154\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypi/pypi-attestations/commit/2a74c1e7f9882803692bea8924c9359ec8369933\"\u003e\u003ccode\u003e2a74c1e\u003c/code\u003e\u003c/a\u003e Remove unneeded permissions from zizmor workflow (\u003ca href=\"https://redirect.github.com/pypi/pypi-attestations/issues/153\"\u003e#153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypi/pypi-attestations/commit/d8d4ab106a76f107cd97b4ee041f1adfe1ff0cf6\"\u003e\u003ccode\u003ed8d4ab1\u003c/code\u003e\u003c/a\u003e Add zizmor to CI workflows\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypi/pypi-attestations/commit/26e8913b136b8166eac40ad9f9313a8affd656cf\"\u003e\u003ccode\u003e26e8913\u003c/code\u003e\u003c/a\u003e Update CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypi/pypi-attestations/commit/446816b7a16dc989da33b9f8dab989e640f8881a\"\u003e\u003ccode\u003e446816b\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout in the actions group (\u003ca href=\"https://redirect.github.com/pypi/pypi-attestations/issues/149\"\u003e#149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypi/pypi-attestations/commit/b8c452d338a6411e6d688f2498adbabf501680b3\"\u003e\u003ccode\u003eb8c452d\u003c/code\u003e\u003c/a\u003e Add cooldown to dependabot updates (\u003ca href=\"https://redirect.github.com/pypi/pypi-attestations/issues/150\"\u003e#150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypi/pypi-attestations/commit/2c8d48e78417f12869b89fcbad619f52f5656a4f\"\u003e\u003ccode\u003e2c8d48e\u003c/code\u003e\u003c/a\u003e Fix lint and remove support for Python 3.9 (\u003ca href=\"https://redirect.github.com/pypi/pypi-attestations/issues/151\"\u003e#151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypi/pypi-attestations/compare/v0.0.28...v0.0.29\"\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.1 to 9.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13965\"\u003e#13965\u003c/a\u003e: Fixed quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/4492\"\u003e#4492\u003c/a\u003e: The API Reference now contains cross-reference-able documentation of \u003ccode\u003epytest's command-line flags \u0026lt;command-line-flags\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/3d10b5148e03eb82b3ee29181dbdc73cf82699e2\"\u003e\u003ccode\u003e3d10b51\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/188750b725add8c3400eee6fbb6b80559c296d69\"\u003e\u003ccode\u003e188750b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14030\"\u003e#14030\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/1e4b01d1f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7d7bef90cb9a6db8ac1d3dd5b9ae0eb9abd6c58\"\u003e\u003ccode\u003eb7d7bef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14014\"\u003e#14014\u003c/a\u003e from bluetech/compat-note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bd08e85ac76614ff5ca9ae338aee8d8b06c8fae0\"\u003e\u003ccode\u003ebd08e85\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14013\"\u003e#14013\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/922b60377...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bc783862991241c442c9f9c068e51737ec15ea10\"\u003e\u003ccode\u003ebc78386\u003c/code\u003e\u003c/a\u003e Add CLI options reference documentation (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13930\"\u003e#13930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/5a4e398ce89bc23d2cf3fd98c042fdffb6fa8afa\"\u003e\u003ccode\u003e5a4e398\u003c/code\u003e\u003c/a\u003e Fix docs typo (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14005\"\u003e#14005\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14008\"\u003e#14008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/d7ae6df394398168bf9d926f803c26849c8f07ee\"\u003e\u003ccode\u003ed7ae6df\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14006\"\u003e#14006\u003c/a\u003e from pytest-dev/maintenance/update-plugin-list-tmpl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/556f6a22e12d13d1ffeceaf64424eb95d5e0fb87\"\u003e\u003ccode\u003e556f6a2\u003c/code\u003e\u003c/a\u003e pre-commit: fix rst-lint after new release (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13999\"\u003e#13999\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14001\"\u003e#14001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c60fbe63a26f64a42738e3f3527a8f79024fdf50\"\u003e\u003ccode\u003ec60fbe6\u003c/code\u003e\u003c/a\u003e Fix quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10 ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/73d9b011183d9a1c4a7007c1119d97a6e627788e\"\u003e\u003ccode\u003e73d9b01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13995\"\u003e#13995\u003c/a\u003e from nicoddemus/patchback/backports/9.0.x/1b5200c0f...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/9.0.1...9.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cython` from 3.2.2 to 3.2.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/cython/cython/blob/master/CHANGES.rst\"\u003ecython's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.2.4 (2026-01-04)\u003c/h1\u003e\n\u003ch2\u003eFeatures added\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eIn preparation of Cython 3.3, a new decorator \u003ccode\u003e@collection_type(tname)\u003c/code\u003e can be used\nto advertise an extension type as being a \u003ccode\u003e'sequence'\u003c/code\u003e or \u003ccode\u003e'mapping'\u003c/code\u003e.  This currently\nonly has the effect of setting the \u003ccode\u003ePy_TPFLAGS_SEQUENCE\u003c/code\u003e flag on the type or not, but\nis provided for convenience to allow using the new decorator already in Cython 3.2 code.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSeveral C++ exception declarations were added to \u003ccode\u003elibcpp.exceptions\u003c/code\u003e.\n(Github issue :issue:\u003ccode\u003e7389\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003ePseudo-literal default values of function arguments like \u003ccode\u003earg=str()\u003c/code\u003e could generate\ninvalid C code when internally converted into a real literal.\n(Github issue :issue:\u003ccode\u003e6192\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe pickle serialisation of extension types using the \u003ccode\u003eauto_pickle\u003c/code\u003e feature was\nlarger than necessary since 3.2.0 for types without Python object attributes.\nIt is now back to the state before 3.2.0 again.\n(Github issue :issue:\u003ccode\u003e7443\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eConstants are now only made immortal on freethreading Python if they are not shared.\n(Github issue :issue:\u003ccode\u003e7439\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003ePyDict_SetDefaultRef()\u003c/code\u003e is now used when available to avoid temporary borrowed references.\n(Github issue :issue:\u003ccode\u003e7347\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIncludes all fixes as of Cython 3.1.8.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e3.2.3 (2025-12-14)\u003c/h1\u003e\n\u003ch2\u003eFeatures added\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe C-API declarations were updated to include the new \u003ccode\u003ePyList_*()\u003c/code\u003e functions.\n(Github issue :issue:\u003ccode\u003e7291\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe \u003ccode\u003ePy_mod_gil\u003c/code\u003e module setting can now be changed with a C macro, overriding\nthe \u003ccode\u003efreethreading_compatible\u003c/code\u003e directive setting.\n(Github issue :issue:\u003ccode\u003e7404\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/21bda420d583bcf464fb9efb932b09c5f3db1efd\"\u003e\u003ccode\u003e21bda42\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/ea5e926e930fb50bd0b2be69717cb906f67ef18b\"\u003e\u003ccode\u003eea5e926\u003c/code\u003e\u003c/a\u003e Define missing C++ exception classes (\u003ca href=\"https://redirect.github.com/cython/cython/issues/7389\"\u003e#7389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/c533d67f2a9109111c4057b598d8d04698cfee3f\"\u003e\u003ccode\u003ec533d67\u003c/code\u003e\u003c/a\u003e Add sequence return type annotations in Parsing.py (\u003ca href=\"https://redirect.github.com/cython/cython/issues/7416\"\u003eGH-7416\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/d056a1808298ff6a569f950937b7ab3385b2f785\"\u003e\u003ccode\u003ed056a18\u003c/code\u003e\u003c/a\u003e Allow 'mapping' as \u003ca href=\"https://github.com/collection\"\u003e\u003ccode\u003e@​collection\u003c/code\u003e\u003c/a\u003e_type() in preparation of 3.3, but without actu...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/d347c82898f4e90139b63510d984860762c01f1c\"\u003e\u003ccode\u003ed347c82\u003c/code\u003e\u003c/a\u003e Remove exclusion of collection_type in test (\u003ca href=\"https://redirect.github.com/cython/cython/issues/7442\"\u003e#7442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/fd6e8253df013645fb028ea956175957dcff8e8b\"\u003e\u003ccode\u003efd6e825\u003c/code\u003e\u003c/a\u003e Merge branch '3.1.x' into 3.2.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/ce5c6cb05bdb5560937648558508241c681369ca\"\u003e\u003ccode\u003ece5c6cb\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/74b97f92075d2721abce7dfb246f426b0ab401ae\"\u003e\u003ccode\u003e74b97f9\u003c/code\u003e\u003c/a\u003e Fix arg=str() default argument (\u003ca href=\"https://redirect.github.com/cython/cython/issues/6193\"\u003eGH-6193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/9c9e5c7d31525672ad5b8ee703c719a33d98a118\"\u003e\u003ccode\u003e9c9e5c7\u003c/code\u003e\u003c/a\u003e Avoid immortalizing anything shared on freethreading (\u003ca href=\"https://redirect.github.com/cython/cython/issues/7439\"\u003eGH-7439\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/9d5507bf1cf713c314a9e37447463ad72ee9f8cd\"\u003e\u003ccode\u003e9d5507b\u003c/code\u003e\u003c/a\u003e Fix accidental inefficiency in auto-pickling that always stored the object st...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/cython/cython/compare/3.2.2...3.2.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `setuptools` from 80.9.0 to 82.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/setuptools/blob/main/NEWS.rst\"\u003esetuptools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev82.0.0\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epkg_resources\u003c/code\u003e has been removed from Setuptools. Most common uses of \u003ccode\u003epkg_resources\u003c/code\u003e have been superseded by the \u003ccode\u003eimportlib.resources \u0026lt;https://docs.python.org/3/library/importlib.resources.html\u0026gt;\u003c/code\u003e_ and \u003ccode\u003eimportlib.metadata \u0026lt;https://docs.python.org/3/library/importlib.metadata.html\u0026gt;\u003c/code\u003e_ projects. Projects and environments relying on \u003ccode\u003epkg_resources\u003c/code\u003e for namespace packages or other behavior should depend on older versions of \u003ccode\u003esetuptools\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/3085\"\u003e#3085\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev81.0.0\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved support for the --dry-run parameter to setup.py. This one feature by its nature threads through lots of core and ancillary functionality, adding complexity and friction. Removal of this parameter will help decouple the compiler functionality from distutils and thus the eventual full integration of distutils. These changes do affect some class and function signatures, so any derivative functionality may require some compatibility shims to support their expected interface. Please report any issues to the Setuptools project for investigation. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev80.10.2\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate vendored dependencies. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5159\"\u003e#5159\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5115\"\u003e#5115\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5128\"\u003e#5128\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev80.10.1\u003c/h1\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5152\"\u003e#5152\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev80.10.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove post-release tags on setuptools' own build. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4530\"\u003e#4530\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefreshed vendored dependencies. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5139\"\u003e#5139\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/pypa/setuptools/commit/03f3615362c4eb19c770b71be5bd58e38f235528\"\u003e\u003ccode\u003e03f3615\u003c/code\u003e\u003c/a\u003e Bump version: 81.0.0 → 82.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/530d11498af526c4210d8eeaa1ed6c63f44a390f\"\u003e\u003ccode\u003e530d114\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5007\"\u003e#5007\u003c/a\u003e from pypa/feature/remove-more-pkg_resources\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/11efe9f552290bf536515d458aa85752a0606aa8\"\u003e\u003ccode\u003e11efe9f\u003c/code\u003e\u003c/a\u003e Merge branch 'maint/75.3'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/118f129dd0fb319058bd05f382c50188fd60a60e\"\u003e\u003ccode\u003e118f129\u003c/code\u003e\u003c/a\u003e Bump version: 75.3.3 → 75.3.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/90561ffde1220a590b7644745f48b5837b1a130d\"\u003e\u003ccode\u003e90561ff\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5150\"\u003e#5150\u003c/a\u003e from UladzimirTrehubenka/backport_cve_47273\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/4595034db8aab4ea33035a47a068b04fd8aa00cc\"\u003e\u003ccode\u003e4595034\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/fc008006fc072af02eb7e0b601172c67eba395e3\"\u003e\u003ccode\u003efc00800\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5171\"\u003e#5171\u003c/a\u003e from cclauss/ruff-v0.15.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/127e561362a2b4e560faabe9e979ed848106b62d\"\u003e\u003ccode\u003e127e561\u003c/code\u003e\u003c/a\u003e Remove tests reliant on pkg_resources, rather than xfailing them.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/64bc21e10b5d749b1b75fa334caedb67cc7414c4\"\u003e\u003ccode\u003e64bc21e\u003c/code\u003e\u003c/a\u003e Reference the superseding libraries.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/cf1ff459ea997b615a75d99304f6c9aa1fc94c06\"\u003e\u003ccode\u003ecf1ff45\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into debt/pbr-without-pkg_resources\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/setuptools/compare/v80.9.0...v82.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyrefly` from 0.44.0 to 0.54.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facebook/pyrefly/releases\"\u003epyrefly's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ePyrefly v0.54.0\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eStatus: BETA\u003c/strong\u003e\u003cbr /\u003e\n\u003cem\u003e\u003cstrong\u003eRelease date:\u003c/strong\u003e February 23, 2026\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003ePyrefly 0.54.0 bundles \u003cstrong\u003e93 commits\u003c/strong\u003e from \u003cstrong\u003e18 contributors\u003c/strong\u003e.\u003c/p\u003e\n\u003ch2\u003e✨ New \u0026amp; Improved\u003c/h2\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth align=\"left\"\u003eArea\u003c/th\u003e\n\u003cth align=\"left\"\u003eWhat’s new\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd align=\"left\"\u003e\u003cstrong\u003eType checker\u003c/strong\u003e\u003c/td\u003e\n\u003ctd align=\"left\"\u003e- Pyrefly now supports using \u003ccode\u003etype(X)\u003c/code\u003e in base class lists, enabling compatibility with codebases that use metaclass expressions (e.g. those wrapping C extensions) \u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e- Added static evaluation support for more patterns of \u003ccode\u003esys.platform\u003c/code\u003e and \u003ccode\u003esys.version_info\u003c/code\u003e checks\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd align=\"left\"\u003e\u003cstrong\u003eLanguage Server\u003c/strong\u003e\u003c/td\u003e\n\u003ctd align=\"left\"\u003e- Autoimport and quickfix now surface explicit re-export paths, improving import suggestions for users working with re-exported symbols. \u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e- Diagnostics can now be controlled independently for each workspace folder in multi-root setups, allowing users to customize diagnostics per project \u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e- Enhanced  \u0026quot;Generate code\u0026quot; quick fix actions in Pyrefly's LSP, which will now infer parameter types and annotations from call-site arguments \u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e- Code completion and signature help now shows keyword argument and literal completions from all compatible overloads, not just the closest match\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e🐛 bug fixes\u003c/h2\u003e\n\u003cp\u003eWe closed 7 bug issues this release 👏\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/2273\"\u003e#2273\u003c/a\u003e - Adjusted overload-to-Callable subtyping so single-parameter overloads can satisfy a union-parameter Callable, fixing assignment errors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/2398\"\u003e#2398\u003c/a\u003e - When matching a value against a union containing both bare TypeVars and wrapped TypeVars, Pyrefly now tries wrapped vars first, producing better TypeVar solutions and satisfying bounds\u003c/li\u003e\n\u003cli\u003eAnd more! \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/2398\"\u003e#2398\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/949\"\u003e#949\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/2421\"\u003e#2421\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/2457\"\u003e#2457\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/1122\"\u003e#1122\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/2434\"\u003e#2434\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/787\"\u003e#787\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThank-you to all our contributors who found these bugs and reported them! Did you know this is one of the most helpful contributions you can make to an open-source project? If you find any bugs in Pyrefly we want to know about them! Please open a bug report issue \u003ca href=\"https://github.com/facebook/pyrefly/issues\"\u003ehere\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e📦 Upgrade\u003c/h2\u003e\n\u003cpre lang=\"shell\"\u003e\u003ccode\u003epip install --upgrade pyrefly==0.54.0\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eHow to safely upgrade your codebase\u003c/h3\u003e\n\u003cp\u003eUpgrading the version of Pyrefly you're using or a third-party library you depend on can reveal new type errors in your code. Fixing them all at once is often unrealistic. We've written scripts to help you temporarily silence them. After upgrading, follow ...\n\n_Description has been truncated_","html_url":"https://github.com/chrisjsewell/sphinx/pull/30","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisjsewell%2Fsphinx/issues/30","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/30/packages"},{"uuid":"3917820634","node_id":"PR_kwDOKoYLLM7CjqOH","number":195,"state":"open","title":"Bump the major-versions group across 1 directory with 16 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-02-09T19:38:22.000Z","updated_at":"2026-02-09T19:38:23.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"major-versions","update_count":16,"packages":[{"name":"django","old_version":"4.2.6","new_version":"4.2.28"},{"name":"django-guardian","old_version":"2.4.0","new_version":"3.2.0","repository_url":"https://github.com/django-guardian/django-guardian"},{"name":"django-extensions","old_version":"3.2.3","new_version":"4.1","repository_url":"https://github.com/django-extensions/django-extensions"},{"name":"django-filter","old_version":"23.3","new_version":"25.1","repository_url":"https://github.com/carltongibson/django-filter"},{"name":"gunicorn","old_version":"21.2.0","new_version":"23.0.0","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"redis","old_version":"4.6.0","new_version":"6.4.0","repository_url":"https://github.com/redis/redis-py"},{"name":"watchdog","old_version":"3.0.0","new_version":"6.0.0","repository_url":"https://github.com/gorakhargosh/watchdog"},{"name":"ocrmypdf","old_version":"14.4.0","new_version":"15.4.4","repository_url":"https://github.com/ocrmypdf/OCRmyPDF"},{"name":"django-multiselectfield","old_version":"0.1.12","new_version":"1.0.1","repository_url":"https://github.com/goinnn/django-multiselectfield"},{"name":"django-auditlog","old_version":"2.3.0","new_version":"3.3.0","repository_url":"https://github.com/jazzband/django-auditlog"},{"name":"black","old_version":"23.9.1","new_version":"25.11.0","repository_url":"https://github.com/psf/black"},{"name":"pre-commit","old_version":"3.4.0","new_version":"4.3.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pytest","old_version":"7.4.2","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-cov","old_version":"4.1.0","new_version":"7.0.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pytest-sugar","old_version":"0.9.7","new_version":"1.1.1","repository_url":"https://github.com/Teemu/pytest-sugar"},{"name":"pytest-rerunfailures","old_version":"12.0","new_version":"16.0.1","repository_url":"https://github.com/pytest-dev/pytest-rerunfailures"}],"path":null,"ecosystem":"conda"},"body":"Bumps the major-versions group with 16 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| django | `4.2.6` | `4.2.28` |\n| [django-guardian](https://github.com/django-guardian/django-guardian) | `2.4.0` | `3.2.0` |\n| [django-extensions](https://github.com/django-extensions/django-extensions) | `3.2.3` | `4.1` |\n| [django-filter](https://github.com/carltongibson/django-filter) | `23.3` | `25.1` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `21.2.0` | `23.0.0` |\n| [redis](https://github.com/redis/redis-py) | `4.6.0` | `6.4.0` |\n| [watchdog](https://github.com/gorakhargosh/watchdog) | `3.0.0` | `6.0.0` |\n| [ocrmypdf](https://github.com/ocrmypdf/OCRmyPDF) | `14.4.0` | `15.4.4` |\n| [django-multiselectfield](https://github.com/goinnn/django-multiselectfield) | `0.1.12` | `1.0.1` |\n| [django-auditlog](https://github.com/jazzband/django-auditlog) | `2.3.0` | `3.3.0` |\n| [black](https://github.com/psf/black) | `23.9.1` | `25.11.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `3.4.0` | `4.3.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `7.4.2` | `8.4.2` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `4.1.0` | `7.0.0` |\n| [pytest-sugar](https://github.com/Teemu/pytest-sugar) | `0.9.7` | `1.1.1` |\n| [pytest-rerunfailures](https://github.com/pytest-dev/pytest-rerunfailures) | `12.0` | `16.0.1` |\n\n\nUpdates `django` from 4.2.6 to 4.2.28\n\nUpdates `django-guardian` from 2.4.0 to 3.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-guardian/django-guardian/releases\"\u003edjango-guardian's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.2.0 The Bozkir progression\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate enforcement contact link in CODE_OF_CONDUCT.md by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/918\"\u003edjango-guardian/django-guardian#918\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptional cached anonymous user  - Pr 907 by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/912\"\u003edjango-guardian/django-guardian#912\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003egenerator warnings and logics are added for security purposes by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/920\"\u003edjango-guardian/django-guardian#920\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erollback compatible create anon user fix is developed by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/919\"\u003edjango-guardian/django-guardian#919\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e644 using inlines in django admin with guardian by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/921\"\u003edjango-guardian/django-guardian#921\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-guardian/django-guardian/compare/3.1.3...3.2.0\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.3...3.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edjango-packages badge is added by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/910\"\u003edjango-guardian/django-guardian#910\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate issue templates by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/909\"\u003edjango-guardian/django-guardian#909\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMakefile support by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/906\"\u003edjango-guardian/django-guardian#906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePR merging scenario is fixed by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/913\"\u003edjango-guardian/django-guardian#913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed issue causing prefetch_perms() to throw when passed an empty list by \u003ca href=\"https://github.com/keattang\"\u003e\u003ccode\u003e@​keattang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/904\"\u003edjango-guardian/django-guardian#904\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRe apply \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/812\"\u003e#812\u003c/a\u003e using correct lookup method by \u003ca href=\"https://github.com/sevdog\"\u003e\u003ccode\u003e@​sevdog\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/842\"\u003edjango-guardian/django-guardian#842\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOPS: Bump version for release by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/915\"\u003edjango-guardian/django-guardian#915\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-guardian/django-guardian/compare/3.1.2...3.1.3\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.2...3.1.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 in /.github/workflows by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/903\"\u003edjango-guardian/django-guardian#903\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix type and deprecate old name by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/902\"\u003edjango-guardian/django-guardian#902\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/django-guardian/django-guardian/pull/903\"\u003edjango-guardian/django-guardian#903\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-guardian/django-guardian/compare/3.1.1...3.1.2\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.1...3.1.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epre-commit checker step is added by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/901\"\u003edjango-guardian/django-guardian#901\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-guardian/django-guardian/compare/3.1.0...3.1.1\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.0...3.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eImproved indexing, tweaks and bugfixes\u003c/h2\u003e\n\u003ch2\u003eSaving the 🌳🌳🌳 and the 💰💰💰\u003c/h2\u003e\n\u003cp\u003e⚠️⚠️⚠️ \u003cstrong\u003eWARNING:\u003c/strong\u003e This release contains an update to database indexing which should yield \u003cstrong\u003econsiderable additional performance\u003c/strong\u003e, especially on large table permissions lookups (thanks \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e for such rigorous performance testing!!!). Following the migration that introduces these indexes, databases should reindex automatically in the background (typically within 0-30s even for large tables): this is unlikely to be noticeable but users may experience a short lived performance hit during this period.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow ignore_conflicts on bulk create by \u003ca href=\"https://github.com/pgiki\"\u003e\u003ccode\u003e@​pgiki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/814\"\u003edjango-guardian/django-guardian#814\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/4120d00c28c1b6d3bacb988f6db86bacf91ed0f1\"\u003e\u003ccode\u003e4120d00\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/921\"\u003e#921\u003c/a\u003e from django-guardian/644-using-inlines-in-django-admi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/c896b220bdf96783f1c25d730f12ebef95758c99\"\u003e\u003ccode\u003ec896b22\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/919\"\u003e#919\u003c/a\u003e from django-guardian/770-migration-rollback-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/3814e2383c69266350a3d885d445bdd79da8cb78\"\u003e\u003ccode\u003e3814e23\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 770-migration-rollback-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/94854899f4a030b42840837e08b42923a71c5b78\"\u003e\u003ccode\u003e9485489\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/920\"\u003e#920\u003c/a\u003e from django-guardian/666-permissionrequiredmixin-does...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/e01e2e1edeec60b2c79d561db56e0949ea3c4dad\"\u003e\u003ccode\u003ee01e2e1\u003c/code\u003e\u003c/a\u003e check only username field fixing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/e1ae3c5a7ab74a679ef1ccff2a480a88117df464\"\u003e\u003ccode\u003ee1ae3c5\u003c/code\u003e\u003c/a\u003e show warning instead of error for backward compatibility and giving time the ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/63c10f549dfe2b5ba67e9eec36095cf3e6a2bab8\"\u003e\u003ccode\u003e63c10f5\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 644-using-inlines-in-django-admin-with-guardian\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/b27ebbdcc7f9952d9d9aaaa879b5e202063ccaa8\"\u003e\u003ccode\u003eb27ebbd\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 666-permissionrequiredmixin-does-not-warn-against-us...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/d7ed4a3bccb730d3cdf16fdc404f25b94674c653\"\u003e\u003ccode\u003ed7ed4a3\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 770-migration-rollback-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/03fed6924e06fd13991d9e8ae1b4590addf5473e\"\u003e\u003ccode\u003e03fed69\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/912\"\u003e#912\u003c/a\u003e from django-guardian/pr-907\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-guardian/django-guardian/compare/v2.4.0...3.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-extensions` from 3.2.3 to 4.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-extensions/django-extensions/releases\"\u003edjango-extensions's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd: show_permissions command (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1920\"\u003e#1920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, style per app (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1848\"\u003e#1848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: JSONField, bulk_update's (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1924\"\u003e#1924\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/ahmad88me\"\u003e\u003ccode\u003e@​ahmad88me\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1848\"\u003edjango-extensions/django-extensions#1848\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-extensions/django-extensions/compare/4.0...4.1\"\u003ehttps://github.com/django-extensions/django-extensions/compare/4.0...4.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprovement: Support for Python 3.12 and 3.13\u003c/li\u003e\n\u003cli\u003eImprovement: Support for Django 5.x\u003c/li\u003e\n\u003cli\u003eImprovement: Switch from setup.{cfg,py} to pyproject.toml\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add option to display field choices in graph_models (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1854\"\u003e#1854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add webp support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1857\"\u003e#1857\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Support for ordering edges on pydot/dot/graphviz (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1914\"\u003e#1914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: mail_debug, Update mail_debug command to use aiosmtpd (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1880\"\u003e#1880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: shell_plus, Improve error message for missing import (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1898\"\u003e#1898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: reset_db, Add reset_db support for django_tenants (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1855\"\u003e#1855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: docs, various improvements (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1852\"\u003e#1852\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1888\"\u003e#1888\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1882\"\u003e#1882\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1901\"\u003e#1901\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1912\"\u003e#1912\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1913\"\u003e#1913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: jobs, Handle non-package modules when looking for job definitions (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1887\"\u003e#1887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Add django-prometheus DB backends support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1800\"\u003e#1800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Call post_command when the command raises an unhandled exception (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1837\"\u003e#1837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: sqldiff, do not consider ('serial', 'integer') nor ('bigserial', 'bigint') as a field-type-differ (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1867\"\u003e#1867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: shell_plus, Fix start up order and add history (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1869\"\u003e#1869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove pipchecker and associated tests (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1906\"\u003e#1906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFollowing Django's release numbering style more closely (see \u003ca href=\"https://docs.djangoproject.com/en/5.2/internals/release-process/\"\u003ehttps://docs.djangoproject.com/en/5.2/internals/release-process/\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/dimitrismistriotis\"\u003e\u003ccode\u003e@​dimitrismistriotis\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1859\"\u003edjango-extensions/django-extensions#1859\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/titouanc\"\u003e\u003ccode\u003e@​titouanc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1854\"\u003edjango-extensions/django-extensions#1854\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dmwyatt\"\u003e\u003ccode\u003e@​dmwyatt\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1872\"\u003edjango-extensions/django-extensions#1872\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stianjensen\"\u003e\u003ccode\u003e@​stianjensen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1898\"\u003edjango-extensions/django-extensions#1898\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PapaZ810\"\u003e\u003ccode\u003e@​PapaZ810\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1888\"\u003edjango-extensions/django-extensions#1888\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kviktor\"\u003e\u003ccode\u003e@​kviktor\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1857\"\u003edjango-extensions/django-extensions#1857\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aripollak\"\u003e\u003ccode\u003e@​aripollak\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1913\"\u003edjango-extensions/django-extensions#1913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/flowgunso\"\u003e\u003ccode\u003e@​flowgunso\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1914\"\u003edjango-extensions/django-extensions#1914\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anitahammer\"\u003e\u003ccode\u003e@​anitahammer\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1869\"\u003edjango-extensions/django-extensions#1869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nicolaspanel\"\u003e\u003ccode\u003e@​nicolaspanel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1867\"\u003edjango-extensions/django-extensions#1867\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yujinyuz\"\u003e\u003ccode\u003e@​yujinyuz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1855\"\u003edjango-extensions/django-extensions#1855\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/soof-golan\"\u003e\u003ccode\u003e@​soof-golan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1852\"\u003edjango-extensions/django-extensions#1852\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ghickman\"\u003e\u003ccode\u003e@​ghickman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1887\"\u003edjango-extensions/django-extensions#1887\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jrobichaud\"\u003e\u003ccode\u003e@​jrobichaud\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1837\"\u003edjango-extensions/django-extensions#1837\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-extensions/django-extensions/compare/3.2.3...4.0\"\u003ehttps://github.com/django-extensions/django-extensions/compare/3.2.3...4.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.2.4b1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-extensions/django-extensions/blob/main/CHANGELOG.md\"\u003edjango-extensions's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.1\u003c/h2\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd: show_permissions command (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1920\"\u003e#1920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, style per app (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1848\"\u003e#1848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: JSONField, bulk_update's (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1924\"\u003e#1924\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.0\u003c/h2\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eImprovement: Support for Python 3.12 and 3.13\u003c/li\u003e\n\u003cli\u003eImprovement: Support for Django 5.x\u003c/li\u003e\n\u003cli\u003eImprovement: Switch from setup.{cfg,py} to pyproject.toml\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add option to display field choices in graph_models (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1854\"\u003e#1854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add webp support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1857\"\u003e#1857\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Support for ordering edges on pydot/dot/graphviz (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1914\"\u003e#1914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: mail_debug, Update mail_debug command to use aiosmtpd (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1880\"\u003e#1880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: shell_plus, Improve error message for missing import (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1898\"\u003e#1898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: reset_db, Add reset_db support for django_tenants (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1855\"\u003e#1855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: docs, various improvements (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1852\"\u003e#1852\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1888\"\u003e#1888\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1882\"\u003e#1882\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1901\"\u003e#1901\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1912\"\u003e#1912\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1913\"\u003e#1913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: jobs, Handle non-package modules when looking for job definitions (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1887\"\u003e#1887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Add django-prometheus DB backends support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1800\"\u003e#1800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Call post_command when the command raises an unhandled exception (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1837\"\u003e#1837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: sqldiff, do not consider ('serial', 'integer') nor ('bigserial', 'bigint') as a \u003ccode\u003efield-type-differ\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1867\"\u003e#1867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: shell_plus, Fix start up order and add history (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1869\"\u003e#1869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove pipchecker and associated tests (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1906\"\u003e#1906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFollowing Django's release numbering style more closely (see \u003ca href=\"https://docs.djangoproject.com/en/5.2/internals/release-process/\"\u003ehttps://docs.djangoproject.com/en/5.2/internals/release-process/\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/django-extensions/django-extensions/commit/ad015513e5d8e8ee6ad748fca5f32ccf3fb3d5c5\"\u003e\u003ccode\u003ead01551\u003c/code\u003e\u003c/a\u003e v4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/2c3e914f1264c0a029b3b47b7425d0f68ce637ed\"\u003e\u003ccode\u003e2c3e914\u003c/code\u003e\u003c/a\u003e update CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/fb5b2af1b6595ee126237c299acf242fcfee817e\"\u003e\u003ccode\u003efb5b2af\u003c/code\u003e\u003c/a\u003e ruff format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/7e978d27b031843640f9204ff495738c46233d7f\"\u003e\u003ccode\u003e7e978d2\u003c/code\u003e\u003c/a\u003e graph_models style per app (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1848\"\u003e#1848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/067064ea0c6dec7cba1583447fe5fe1c706d5351\"\u003e\u003ccode\u003e067064e\u003c/code\u003e\u003c/a\u003e avoid trying to serialize expressions when serializing default values\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/a886068502474e70a2d68ff4634a15cc3366088d\"\u003e\u003ccode\u003ea886068\u003c/code\u003e\u003c/a\u003e update CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/d824501cbc6d04a24a43ff5756b496f84093b225\"\u003e\u003ccode\u003ed824501\u003c/code\u003e\u003c/a\u003e Add show_permissions management command (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1920\"\u003e#1920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/934f93f53bdf6c6271ae1ddaee71bc9bf3364a0e\"\u003e\u003ccode\u003e934f93f\u003c/code\u003e\u003c/a\u003e bumped version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/c4577df5b69ec1ebcbe6bc64d7a5c20362f3a8fa\"\u003e\u003ccode\u003ec4577df\u003c/code\u003e\u003c/a\u003e v4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/7cdb43ab56a3b610b47680d8a2fe86b09d5913aa\"\u003e\u003ccode\u003e7cdb43a\u003c/code\u003e\u003c/a\u003e pyproject formatting\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-extensions/django-extensions/compare/3.2.3...4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-filter` from 23.3 to 25.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/carltongibson/django-filter/blob/main/CHANGES.rst\"\u003edjango-filter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 25.1 (2025-02-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved the in-built API schema generation methods, which have been\ndeprecated since v23.2.\u003c/p\u003e\n\u003cp\u003eYou should use \u003ccode\u003edrf-spectacular \u0026lt;https://drf-spectacular.readthedocs.io/en/latest/\u0026gt;\u003c/code\u003e_\nfor generating OpenAPI schemas with DRF.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped support for EOL Python 3.8.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded testing against Python 3.13.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded official support for Django 5.2.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 24.3 (2024-08-02)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdds official support for Django 5.1.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow using dictionaries for grouped choices on Django 5.0+.\u003c/p\u003e\n\u003cp\u003eThanks to Sævar Öfjörð Magnússon.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdds \u003ccode\u003eunknown_field_behavior\u003c/code\u003e FilterSet option to allowing warning and\nignore behaviours for unknown field types during FilterSet generation.\u003c/p\u003e\n\u003cp\u003eThanks to Loes.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 24.2 (2024-03-27)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a regression in v23.4 where callable choices were incorrectly evaluated\nat filter instantiation, on Django versions prior to 5.0.\u003c/p\u003e\n\u003cp\u003eThanks to Craig de Stigter for the report and reproduce.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 24.1 (2024-03-08)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated supported Python and Django versions, and resolved upcoming Django\ndeprecations.\u003c/p\u003e\n\u003cp\u003eRequired versions are now at least Python 3.8 and Django 4.2.\u003c/p\u003e\n\u003cp\u003eThanks to Michael Manganiello.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllowed passing a FilterSet class to the filterset_factory().\u003c/p\u003e\n\u003cp\u003eThanks to Birger Schacht.\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/carltongibson/django-filter/commit/27dd67284405ee832701509b3515baa50c6e074d\"\u003e\u003ccode\u003e27dd672\u003c/code\u003e\u003c/a\u003e Updated Change notes for 25.1 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/2ea38174b010f378a9b57d90c566c2bab7b37bbb\"\u003e\u003ccode\u003e2ea3817\u003c/code\u003e\u003c/a\u003e Added Trove classifier for Django 5.2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/4d2306c211c1d86f85f04fb311b8b05bfefb08a8\"\u003e\u003ccode\u003e4d2306c\u003c/code\u003e\u003c/a\u003e Replaced hardcoded pks in tests (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1703\"\u003e#1703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/fbf5a76a4d97480d78779397b90d34fa8f13d141\"\u003e\u003ccode\u003efbf5a76\u003c/code\u003e\u003c/a\u003e Update tox after Django 5.2 alpha release. (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1700\"\u003e#1700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/1e76d6859e109ae34d5e2a657c66146a9d744c80\"\u003e\u003ccode\u003e1e76d68\u003c/code\u003e\u003c/a\u003e Use QueryDict for data default. (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1691\"\u003e#1691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/e709e5d43a4ad8b8e8ea62520669b88300c9c686\"\u003e\u003ccode\u003ee709e5d\u003c/code\u003e\u003c/a\u003e Add testing against Python 3.13.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/ccde000dfe74362b62301b248681e9505133e821\"\u003e\u003ccode\u003eccde000\u003c/code\u003e\u003c/a\u003e Dropped support for EOL Python 3.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/2a644e176634ec0ce99d9446d980501e9763e194\"\u003e\u003ccode\u003e2a644e1\u003c/code\u003e\u003c/a\u003e Removed deprecated schema generation methods from DRF backend. (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1698\"\u003e#1698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/2494df96c6387a9fa411fcb00b696b15dfd9216b\"\u003e\u003ccode\u003e2494df9\u003c/code\u003e\u003c/a\u003e fix typo in filterset.txt (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1695\"\u003e#1695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/3656174bd90d20f3d916fd98b6476c270013b681\"\u003e\u003ccode\u003e3656174\u003c/code\u003e\u003c/a\u003e Translated using Weblate (Czech) (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1687\"\u003e#1687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/carltongibson/django-filter/compare/23.3...25.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gunicorn` from 21.2.0 to 23.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/benoitc/gunicorn/releases\"\u003egunicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e23.0.0\u003c/h2\u003e\n\u003cp\u003eGunicorn 23.0.0 has been released. This version improve HTTP 1.1. support and  which improve safety\u003c/p\u003e\n\u003cp\u003eYou're invited to upgrade asap your own installation.\u003c/p\u003e\n\u003ch1\u003e23.0.0 - 2024-08-10\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eminor docs fixes (:pr:\u003ccode\u003e3217\u003c/code\u003e, :pr:\u003ccode\u003e3089\u003c/code\u003e, :pr:\u003ccode\u003e3167\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eworker_class parameter accepts a class (:pr:\u003ccode\u003e3079\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003efix deadlock if request terminated during chunked parsing (:pr:\u003ccode\u003e2688\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003epermit receiving Transfer-Encodings: compress, deflate, gzip (:pr:\u003ccode\u003e3261\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003epermit Transfer-Encoding headers specifying multiple encodings. note: no parameters, still (:pr:\u003ccode\u003e3261\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003esdist generation now explicitly excludes sphinx build folder (:pr:\u003ccode\u003e3257\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003edecode bytes-typed status (as can be passed by gevent) as utf-8 instead of raising \u003ccode\u003eTypeError\u003c/code\u003e (:pr:\u003ccode\u003e2336\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eraise correct Exception when encounting invalid chunked requests (:pr:\u003ccode\u003e3258\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ethe SCRIPT_NAME and PATH_INFO headers, when received from allowed forwarders, are no longer restricted for containing an underscore (:pr:\u003ccode\u003e3192\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003einclude IPv6 loopback address \u003ccode\u003e[::1]\u003c/code\u003e in default for :ref:\u003ccode\u003eforwarded-allow-ips\u003c/code\u003e and :ref:\u003ccode\u003eproxy-allow-ips\u003c/code\u003e (:pr:\u003ccode\u003e3192\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e** NOTE **\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SCRIPT_NAME change mitigates a regression that appeared first in the 22.0.0 release\u003c/li\u003e\n\u003cli\u003eReview your :ref:\u003ccode\u003eforwarded-allow-ips\u003c/code\u003e setting if you are still not seeing the SCRIPT_NAME transmitted\u003c/li\u003e\n\u003cli\u003eReview your :ref:\u003ccode\u003eforwarder-headers\u003c/code\u003e setting if you are missing headers after upgrading from a version prior to 22.0.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e** Breaking changes **\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003erefuse requests where the uri field is empty (:pr:\u003ccode\u003e3255\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003erefuse requests with invalid CR/LR/NUL in heade field values (:pr:\u003ccode\u003e3253\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eremove temporary \u003ccode\u003e--tolerate-dangerous-framing\u003c/code\u003e switch from 22.0 (:pr:\u003ccode\u003e3260\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eIf any of the breaking changes affect you, be aware that now refused requests can post a security problem, especially so in setups involving request pipe-lining and/or proxies.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFix CVE-2024-1135\u003c/p\u003e\n\u003ch2\u003eGunicorn 22.0 has been released\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eGunicorn 22.0.0 has been released.\u003c/strong\u003e This version fix the numerous security vulnerabilities. You're invited to upgrade asap your own installation.\u003c/p\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e22.0.0 - 2024-04-17\n===================\n\u003cul\u003e\n\u003cli\u003euse \u003ccode\u003eutime\u003c/code\u003e to notify workers liveness\u003c/li\u003e\n\u003cli\u003emigrate setup to pyproject.toml\u003c/li\u003e\n\u003cli\u003efix numerous security vulnerabilities in HTTP parser (closing some request smuggling vectors)\u003c/li\u003e\n\u003cli\u003eparsing additional requests is no longer attempted past unsupported request framing\u003c/li\u003e\n\u003cli\u003eon HTTP versions \u0026lt; 1.1 support for chunked transfer is refused (only used in exploits)\u003c/li\u003e\n\u003cli\u003erequests conflicting configured or passed SCRIPT_NAME now produce a verbose error\u003c/li\u003e\n\u003cli\u003eTrailer fields are no longer inspected for headers indicating secure scheme\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/411986d6191114dd1d1bbb9c72c948dbf0ef0425\"\u003e\u003ccode\u003e411986d\u003c/code\u003e\u003c/a\u003e fix doc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/334392e7795f2017e83f7054d372422512d6f4b6\"\u003e\u003ccode\u003e334392e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/2559\"\u003e#2559\u003c/a\u003e from laggardkernel/bugfix/reexec-env\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/e75c3533e32f91a9dceba9e8e1341fea5540ba81\"\u003e\u003ccode\u003ee75c353\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3189\"\u003e#3189\u003c/a\u003e from pajod/patch-py36\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/9357b28dd867950e33ca3864207cb35a1eb8ba6f\"\u003e\u003ccode\u003e9357b28\u003c/code\u003e\u003c/a\u003e keep document user in access_log_format setting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/79fdef0822cbfe7e16b659b07230af9be098d5fc\"\u003e\u003ccode\u003e79fdef0\u003c/code\u003e\u003c/a\u003e bump to 23.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/3acd9fbfd1159ca3cd80a8052ada89a0bf27f806\"\u003e\u003ccode\u003e3acd9fb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/2620\"\u003e#2620\u003c/a\u003e from talkerbox/improve-access-log-format-docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/3f56d76548e4ade034bf5e174737902970285d1f\"\u003e\u003ccode\u003e3f56d76\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3192\"\u003e#3192\u003c/a\u003e from pajod/patch-allowed-script-name\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/256d474a7910bd605f2cc8c082b79c1ae55215a9\"\u003e\u003ccode\u003e256d474\u003c/code\u003e\u003c/a\u003e docs: revert duped directive\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/ffa48b581dcaa75f17fd2df263515e4266feeef6\"\u003e\u003ccode\u003effa48b5\u003c/code\u003e\u003c/a\u003e test: default change was intentional\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/52538ca9070b5e7ead5d0fa731e82a622dc6f3ee\"\u003e\u003ccode\u003e52538ca\u003c/code\u003e\u003c/a\u003e docs: recommend SCRIPT_NAME=/subfolder\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/benoitc/gunicorn/compare/21.2.0...23.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `redis` from 4.6.0 to 6.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/redis-py/releases\"\u003eredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.4.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🚀 New Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded epsilon property to the vsim command (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3723\"\u003e#3723\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdating the latest Redis image for github pipeline testing (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3726\"\u003e#3726\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\n\u003ca href=\"https://github.com/htemelski-redis\"\u003e\u003ccode\u003e@​htemelski-redis\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/elena-kolevska\"\u003e\u003ccode\u003e@​elena-kolevska\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/petyaslavova\"\u003e\u003ccode\u003e@​petyaslavova\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/vladvildanov\"\u003e\u003ccode\u003e@​vladvildanov\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e6.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🚀 New Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for new BITOP operations: DIFF, DIFF1, ANDOR, ONE (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3690\"\u003e#3690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport new VAMANA vector index type (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3702\"\u003e#3702\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd new stream commands (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3711\"\u003e#3711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd async Retry \u003cstrong\u003eeq\u003c/strong\u003e and \u003cstrong\u003ehash\u003c/strong\u003e \u0026amp; fix ExponentialWithJitterBackoff \u003cstrong\u003eeq\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3668\"\u003e#3668\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixing sentinel command execution to allow returning of actual responses when meaningful - behaviour controlled by 'return_responses' argument. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3191\"\u003e#3191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAnnotate deprecated_args decorator to preserve wrapped function type signature (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3701\"\u003e#3701\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix ConnectionPool to raise MaxConnectionsError instead of Connection… (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3698\"\u003e#3698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd async Retry \u003cstrong\u003eeq\u003c/strong\u003e and \u003cstrong\u003ehash\u003c/strong\u003e \u0026amp; fix ExponentialWithJitterBackoff \u003cstrong\u003eeq\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3668\"\u003e#3668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSentinelManagedConnection searches for new master upon connection failure (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3560\"\u003e#3560\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3601\"\u003e#3601\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: avoid instantiating a connection on \u003cem\u003erepr\u003c/em\u003e_ (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3653\"\u003e#3653\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixing the return type hint for the transaction method in the standalone client. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3660\"\u003e#3660\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump rojopolis/spellcheck-github-actions from 0.48.0 to 0.49.0 (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3665\"\u003e#3665\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDropping integration tests with Redis 6.2 from pipeline actions. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3659\"\u003e#3659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove deprecated arg from call to ClusterPipeline (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3670\"\u003e#3670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTransactionStrategy reset: UNWATCH only when status is watching (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3671\"\u003e#3671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eKeyT for set operations (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3190\"\u003e#3190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoving references to old docs site '\u003ca href=\"https://redis-py.readthedocs.io/\"\u003ehttps://redis-py.readthedocs.io/\u003c/a\u003e' replaced by '\u003ca href=\"https://redis.readthedocs.io/\"\u003ehttps://redis.readthedocs.io/\u003c/a\u003e' (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3674\"\u003e#3674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoving unnecessary check for tests using AsyncMock (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3432\"\u003e#3432\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdating test images for github pipeline execution (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3678\"\u003e#3678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdating the latest Redis image for pipeline testing (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3695\"\u003e#3695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump rojopolis/spellcheck-github-actions from 0.49.0 to 0.51.0 (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3689\"\u003e#3689\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDOC-5225 testable probabilistic dt examples (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3691\"\u003e#3691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate README.md (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3699\"\u003e#3699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eConvert the value to int type only if it exists in CLIENT INFO (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3688\"\u003e#3688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix compatibility with latest pytest-asyncio version(1.1.0) (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3708\"\u003e#3708\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDOC-5424 time series examples (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3705\"\u003e#3705\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdding information in connection pool class doc string for available SSLConnection class, that can be used for SSL connections (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3710\"\u003e#3710\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/redis/redis-py/commit/fff669daaf43ae8092ea8ab7a2a3196a9b1b7e41\"\u003e\u003ccode\u003efff669d\u003c/code\u003e\u003c/a\u003e Updated package version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/43ce2a4025c020bd26e401371c16ca4920b470a5\"\u003e\u003ccode\u003e43ce2a4\u003c/code\u003e\u003c/a\u003e Updating the latest Redis image for github pipeline testing (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3726\"\u003e#3726\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/64426cbdd43153b70b0e29d9d7b3ab2c63760359\"\u003e\u003ccode\u003e64426cb\u003c/code\u003e\u003c/a\u003e Added epsilon property to the vsim command (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3723\"\u003e#3723\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/67ab74d705b4c1d00d600c500596af7a68abfd56\"\u003e\u003ccode\u003e67ab74d\u003c/code\u003e\u003c/a\u003e Add new stream commands (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3711\"\u003e#3711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/4c9512b1fe592dc9becebe9e5f053b0184b47f2c\"\u003e\u003ccode\u003e4c9512b\u003c/code\u003e\u003c/a\u003e Adding information in connection pool class doc string for available SSLConne...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/31399ed43588840bbbfdbbf0e8260d1b989b49ce\"\u003e\u003ccode\u003e31399ed\u003c/code\u003e\u003c/a\u003e SentinelManagedConnection searches for new master upon connection failure (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3\"\u003e#3\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/7291deb5eb8054a0dc915a8bf499a17498bc5968\"\u003e\u003ccode\u003e7291deb\u003c/code\u003e\u003c/a\u003e add async Retry \u003ccode\u003e__eq__\u003c/code\u003e and \u003ccode\u003e__hash__\u003c/code\u003e \u0026amp; fix ExponentialWithJitterBackof...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/4cf094fdd2c1f2ce335e671af3fad7ad0a48f309\"\u003e\u003ccode\u003e4cf094f\u003c/code\u003e\u003c/a\u003e Fix ConnectionPool to raise MaxConnectionsError instead of Connection… (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3698\"\u003e#3698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/a00141618572764821bbe6bd74e025536e061587\"\u003e\u003ccode\u003ea001416\u003c/code\u003e\u003c/a\u003e DOC-5424 time series examples (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3705\"\u003e#3705\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/2b1ff5363715c8ba0043314a8b4bcbbc1ba741f5\"\u003e\u003ccode\u003e2b1ff53\u003c/code\u003e\u003c/a\u003e Fix compatibility with latest pytest-asyncio version(1.1.0) (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3708\"\u003e#3708\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/redis/redis-py/compare/v4.6.0...v6.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `watchdog` from 3.0.0 to 6.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/gorakhargosh/watchdog/releases\"\u003ewatchdog's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[inotify] Use of \u003ccode\u003eselect.poll()\u003c/code\u003e instead of deprecated \u003ccode\u003eselect.select()\u003c/code\u003e, if available. (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1078\"\u003e#1078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_class()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_instancemethod()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_module()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eis_class_private_name()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eis_classmethod()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eis_method(met()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003emethod_name()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003ename()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Removed the \u003ccode\u003e--trace\u003c/code\u003e CLI argument from the \u003ccode\u003ewatchmedo log\u003c/code\u003e command, useless since events are logged by default at the \u003ccode\u003eLoggerTrick\u003c/code\u003e class level.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePin test dependecies.\u003c/li\u003e\n\u003cli\u003e[docs] Add typing info to quick start. (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1082\"\u003e#1082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[inotify] Fix reading inotify file descriptor after closing it. (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1081\"\u003e#1081\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[utils] The \u003ccode\u003estop_signal\u003c/code\u003e keyword-argument type of the \u003ccode\u003eAutoRestartTrick\u003c/code\u003e class can now be either a \u003ccode\u003esignal.Signals\u003c/code\u003e or an \u003ccode\u003eint\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e[utils] Added the \u003ccode\u003e__repr__()\u003c/code\u003e method to the \u003ccode\u003eTrick\u003c/code\u003e class.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Fixed Mypy issues.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Added the \u003ccode\u003e__repr__()\u003c/code\u003e method to the \u003ccode\u003eHelpFormatter\u003c/code\u003e class.\u003c/li\u003e\n\u003cli\u003e[windows] Fixed Mypy issues.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e💟 Thanks to our beloved contributors: \u003ca href=\"https://github.com/g-pichler\"\u003e\u003ccode\u003e@​g-pichler\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ethan-vanderheijden\"\u003e\u003ccode\u003e@​ethan-vanderheijden\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/nhairs\"\u003e\u003ccode\u003e@​nhairs\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[inotify] Improve cleaning up \u003ccode\u003eInotify\u003c/code\u003e threads, and add \u003ccode\u003eeventlet\u003c/code\u003e test cases (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1070\"\u003e#1070\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e💟 Thanks to our beloved contributors: \u003ca href=\"https://github.com/ethan-vanderheijden\"\u003e\u003ccode\u003e@​ethan-vanderheijden\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEnable OS specific Mypy checks (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1064\"\u003e#1064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[watchmedo] Fix \u003ccode\u003etricks\u003c/code\u003e argument type of \u003ccode\u003eschedule_tricks()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1063\"\u003e#1063\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e💟 Thanks to our beloved contributors: \u003ca href=\"https://github.com/gnought\"\u003e\u003ccode\u003e@​gnought\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[kqueue] Fix \u003ccode\u003eTypeError: kqueue.control() only accepts positional parameters\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1062\"\u003e#1062\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e💟 Thanks to our beloved contributors: \u003ca href=\"https://github.com/apoirier\"\u003e\u003ccode\u003e@​apoirier\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8 (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[core] Enforced usage of proper keyword-arguments (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1057\"\u003e#1057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[core] Renamed the \u003ccode\u003eBaseObserverSubclassCallable\u003c/code\u003e class to \u003ccode\u003eObserverType\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[inotify] Renamed the \u003ccode\u003einotify_event_struct\u003c/code\u003e class to \u003ccode\u003eInotifyEventStruct\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1055\"\u003e#1055\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/gorakhargosh/watchdog/blob/master/changelog.rst\"\u003ewatchdog's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e6.0.0\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n2024-11-01 • `full history \u0026lt;https://github.com/gorakhargosh/watchdog/compare/v5.0.3...v6.0.0\u0026gt;`__\n\u003cul\u003e\n\u003cli\u003ePin test dependencies.\u003c/li\u003e\n\u003cli\u003e[docs] Add typing info to quick start. (\u003ccode\u003e[#1082](https://github.com/gorakhargosh/watchdog/issues/1082) \u0026amp;lt;https://github.com/gorakhargosh/watchdog/pull/1082\u0026amp;gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003e[inotify] Use of \u003ccode\u003eselect.poll()\u003c/code\u003e instead of deprecated \u003ccode\u003eselect.select()\u003c/code\u003e, if available. (\u003ccode\u003e[#1078](https://github.com/gorakhargosh/watchdog/issues/1078) \u0026amp;lt;https://github.com/gorakhargosh/watchdog/pull/1078\u0026amp;gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003e[inotify] Fix reading inotify file descriptor after closing it. (\u003ccode\u003e[#1081](https://github.com/gorakhargosh/watchdog/issues/1081) \u0026amp;lt;https://github.com/gorakhargosh/watchdog/pull/1081\u0026amp;gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003e[utils] The \u003ccode\u003estop_signal\u003c/code\u003e keyword-argument type of the \u003ccode\u003eAutoRestartTrick\u003c/code\u003e class can now be either a \u003ccode\u003esignal.Signals\u003c/code\u003e or an \u003ccode\u003eint\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e[utils] Added the \u003ccode\u003e__repr__()\u003c/code\u003e method to the \u003ccode\u003eTrick\u003c/code\u003e class.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_class()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_instancemethod()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_module()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eis_class_private_name()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eis_classmethod()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eic_method(met()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003emethod_name()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003ename()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Fixed Mypy issues.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Added the \u003ccode\u003e__repr__()\u003c/code\u003e method to the \u003ccode\u003eHelpFormatter\u003c/code\u003e class.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Removed the \u003ccode\u003e--trace\u003c/code\u003e CLI argument from the \u003ccode\u003ewatchmedo log\u003c/code\u003e command, useless since events are logged by default at the \u003ccode\u003eLoggerTrick\u003c/code\u003e class level.\u003c/li\u003e\n\u003cli\u003e[windows] Fixed Mypy issues.\u003c/li\u003e\n\u003cli\u003eThanks to our beloved contributors: \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/g-pichler\"\u003e\u003ccode\u003e@​g-pichler\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ethan-vanderheijden\"\u003e\u003ccode\u003e@​ethan-vanderheijden\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/nhairs\"\u003e\u003ccode\u003e@​nhairs\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e5.0.3\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e2024-09-27 • \u003ccode\u003efull history \u0026lt;https://github.com/gorakhargosh/watchdog/compare/v5.0.2...v5.0.3\u0026gt;\u003c/code\u003e__\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[inotify] Improve cleaning up \u003ccode\u003eInotify\u003c/code\u003e threads, and add \u003ccode\u003eeventlet\u003c/code\u003e test cases (\u003ccode\u003e[#1070](https://github.com/gorakhargosh/watchdog/issues/1070) \u0026lt;https://github.com/gorakhargosh/watchdog/pull/1070\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eThanks to our beloved contributors: \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ethan-vanderheijden\"\u003e\u003ccode\u003e@​ethan-vanderheijden\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e5.0.2\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n2024-09-03 • `full history \u0026lt;https://github.com/gorakhargosh/watchdog/compare/v5.0.1...v5.0.2\u0026gt;`__\n\u003cul\u003e\n\u003cli\u003eEnable OS specific Mypy checks (\u003ccode\u003e[#1064](https://github.com/gorakhargosh/watchdog/issues/1064) \u0026amp;lt;https://github.com/gorakhargosh/watchdog/pull/1064\u0026amp;gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003e[watchmedo] Fix \u003ccode\u003etricks\u003c/code\u003e argument type of \u003ccode\u003eschedule_tricks()\u003c/code\u003e (\u003ccode\u003e[#1063](https://github.com/gorakhargosh/watchdog/issues/1063) \u0026amp;lt;https://github.com/gorakhargosh/watchdog/pull/1063\u0026amp;gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eThanks to our beloved contributors: \u003ca href=\"https://github.com/gnought\"\u003e\u003ccode\u003e@​gnought\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e5.0.1\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e2024-09-02 • \u003ccode\u003efull history \u0026lt;https://github.com/gorakhargosh/watchdog/compare/v5.0.0...v5.0.1\u0026gt;\u003c/code\u003e__\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[kqueue] Fix \u003ccode\u003eTypeError: kqueue.control() only accepts positional parameters\u003c/code\u003e  (\u003ccode\u003e[#1062](https://github.com/gorakhargosh/watchdog/issues/1062) \u0026lt;https://github.com/gorakhargosh/watchdog/pull/1062\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eThanks to our beloved contributors: \u003ca href=\"https://github.com/apoirier\"\u003e\u003ccode\u003e@​apoirier\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\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/gorakhargosh/watchdog/commit/76c091dc8841de1d1a1cd6511bb509fe4f058de6\"\u003e\u003ccode\u003e76c091d\u003c/code\u003e\u003c/a\u003e Version 6.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/58386d88747259b8b3da5082e30f1c6e0aa3b31a\"\u003e\u003ccode\u003e58386d8\u003c/code\u003e\u003c/a\u003e Fixes, and clean-up (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1084\"\u003e#1084\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/db698a52bbb1eb8cc34e889a8afdac6f17a99e57\"\u003e\u003ccode\u003edb698a5\u003c/code\u003e\u003c/a\u003e fix: reading inotify file descriptor after closing it. (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1081\"\u003e#1081\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/73d561265b109f30cf76a280cdcc74aa9e6df391\"\u003e\u003ccode\u003e73d5612\u003c/code\u003e\u003c/a\u003e [docs] Add typing info to quick start (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1082\"\u003e#1082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/d774fec477a8f57d24b588164ebdd39b2d507bcd\"\u003e\u003ccode\u003ed774fec\u003c/code\u003e\u003c/a\u003e docs: Update README Badges (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1083\"\u003e#1083\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/6b74737501c85df9b9c2585faef4797a5250171b\"\u003e\u003ccode\u003e6b74737\u003c/code\u003e\u003c/a\u003e docs: funding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/3d1b888bccdd27a28f9f12a4e89288afe1ee493a\"\u003e\u003ccode\u003e3d1b888\u003c/code\u003e\u003c/a\u003e [inotify] Use of \u003ccode\u003eselect.poll()\u003c/code\u003e instead of deprecated \u003ccode\u003eselect.select()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1078\"\u003e#1078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/6a4f1cf846e03c8701fcc53b9e910077b5824e59\"\u003e\u003ccode\u003e6a4f1cf\u003c/code\u003e\u003c/a\u003e Bump the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/ad6df50908fca071ac8ad6558453bb28b522f794\"\u003e\u003ccode\u003ead6df50\u003c/code\u003e\u003c/a\u003e Version 5.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/59650f8fe72ac498374434a10a3dd49f3c3d1429\"\u003e\u003ccode\u003e59650f8\u003c/code\u003e\u003c/a\u003e fix: polish \u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1070\"\u003e#1070\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/gorakhargosh/watchdog/compare/v3.0.0...v6.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ocrmypdf` from 14.4.0 to 15.4.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/blob/main/docs/release_notes.md\"\u003eocrmypdf's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev15.4.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed documentation for installing Ghostscript on Windows. {issue}\u003ccode\u003e1198\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdded warning message about security issue in older versions of Ghostscript.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed deprecation warning in pikepdf older than 8.7.1; pikepdf \u0026gt;= 8.7.1 is\nnow required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWe now raise an exception on a certain class of PDFs that likely need an\nexplicit color conversion strategy selected to display correctly\nfor PDF/A conversion.\u003c/li\u003e\n\u003cli\u003eFixed an error that occurred while trying to write a log message after the\ndebug log handler was removed.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed misc/watcher.py regressions: accept \u003ccode\u003e--ocr-json-settings\u003c/code\u003e as either\nfilename or JSON string, as previously; and argument count mismatch.\n{issue}\u003ccode\u003e1183,1185\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eWe no longer attempt to set /ProcSet in the PDF output, since this is an\nobsolete PDF feature.\u003c/li\u003e\n\u003cli\u003eDocumentation improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded new experimental APIs to support offline editing of the final text.\nSpecifically, one can now generate hOCR files with OCRmyPDF, edit them with\nsome other tool, and then finalize the PDF. They are experimental and\nsubject to change, including details of how the working folder is used.\nThere is no command line interface.\u003c/li\u003e\n\u003cli\u003eCode reorganization: executors, progress bars, initialization and setup.\u003c/li\u003e\n\u003cli\u003eFixed test coverage in cases where the coverage tool did not properly trace\ninto threads or subprocesses. This code was still being tested but appeared\nas not covered.\u003c/li\u003e\n\u003cli\u003eIn the test suite, reduced use of subprocesses and other techniques that\ninterfere with coverage measurement.\u003c/li\u003e\n\u003cli\u003eImproved error check for when we appear to be running inside a snap container\nand files are not available.\u003c/li\u003e\n\u003cli\u003ePlugin specification now properly defines progress bars as a protocol rather\nthan defining them as \u0026quot;tqdm-like\u0026quot;.\u003c/li\u003e\n\u003cli\u003eWe now default to using \u0026quot;forkserver\u0026quot; process creation on POSIX platforms\nrather than fork, since this is method is more robust and avoids some\nissues when threads are present.\u003c/li\u003e\n\u003cli\u003eFixed an instance where the user's request to \u003ccode\u003e--no-use-threads\u003c/code\u003e was ignored.\u003c/li\u003e\n\u003cli\u003eIf a PDF does not have language metadata on its top level object, we add\nthe OCR language.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/c90d5cd84b0e27906310c28f0d78c3ded9106d65\"\u003e\u003ccode\u003ec90d5cd\u003c/code\u003e\u003c/a\u003e Fix Ghostscript installation instructions and add warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/9898904be70bf957154cc66cb5d6f57bac7c26b4\"\u003e\u003ccode\u003e9898904\u003c/code\u003e\u003c/a\u003e Fix pikepdf PdfMatrix deprecation warning; v15.4.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/27d52298420e785300e418bef4e4219ef97720e1\"\u003e\u003ccode\u003e27d5229\u003c/code\u003e\u003c/a\u003e Make logger names unique\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/4a9a575ef0f2cd7459538a43e802c8d8b3846168\"\u003e\u003ccode\u003e4a9a575\u003c/code\u003e\u003c/a\u003e ghostscript: better comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/52fd9a630d57ac7af91db423b17e6b0297fc1c66\"\u003e\u003ccode\u003e52fd9a6\u003c/code\u003e\u003c/a\u003e v15.4.2 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/a596ccf84469c81c6d19ab0eb59f53a5df0bc3c7\"\u003e\u003ccode\u003ea596ccf\u003c/code\u003e\u003c/a\u003e Raise exception if resulting PDF might appear blank in a known in some PDF vi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/e7fa97731f507c1d91e4289b9d5f3344533d7c4c\"\u003e\u003ccode\u003ee7fa977\u003c/code\u003e\u003c/a\u003e ghostscript duplicate filter: filter within a window of previous messages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/290aa2810868fb506a0ded2db8dabb580d5a2459\"\u003e\u003ccode\u003e290aa28\u003c/code\u003e\u003c/a\u003e Fix error on attempt to write to debug log after removing debug log handler\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/a95640ed9ec0a5caa360bd64b9ad6cc9f916fa61\"\u003e\u003ccode\u003ea95640e\u003c/code\u003e\u003c/a\u003e v15.4.1 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/f69267bb675c3261121b70451f6e673f433bc7ad\"\u003e\u003ccode\u003ef69267b\u003c/code\u003e\u003c/a\u003e watcher: restore ability to read json from file or command line string\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/compare/v14.4.0...v15.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-multiselectfield` from 0.1.12 to 1.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/goinnn/django-multiselectfield/releases\"\u003edjango-multiselectfield's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBadge image worked on GitHub but was broken on PyPI — fixed it.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.0\u003c/h2\u003e\n\u003cp\u003eThis release introduces multiple changes that are incompatible with previous versions.\u003c/p\u003e\n\u003cp\u003eThe major version number has been incremented following \u003ccode\u003eSemantic Versioning (SemVer) \u0026lt;https://semver.org/\u0026gt;\u003c/code\u003e_, as several components of the package have changed in ways that may require updates in client code.\u003c/p\u003e\n\u003cp\u003eThe internal codebase has been significantly cleaned up and reorganized, making it more maintainable and consistent.\u003c/p\u003e\n\u003cp\u003eThis version contains \u003cstrong\u003e40% fewer lines of code\u003c/strong\u003e compared to the previous release.\u003c/p\u003e\n\u003cp\u003eLess code means fewer bugs, easier maintenance, and better long-term sustainability.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFList (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\"\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2\u003c/a\u003e):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/50d3f785883e0a314f2dc89950e3fe1e88a7ede6\"\u003e50d3f785883e0a314f2dc89950e3fe1e88a7ede6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIt was created to support MultiSelectFields in admin.list_display, but it never actually worked. If you add a multiselect field to list_display, Django does not call to \u003cstrong\u003estr\u003c/strong\u003e method of MSGList (renamed to MSFList)\u003c/li\u003e\n\u003cli\u003eIt was created for integer choices too and it is a misconception. This is explained in the README file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFFlatchoices (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\"\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2\u003c/a\u003e):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/5638247c1d70670d4f81adf35143ef17a7d7575e\"\u003e5638247c1d70670d4f81adf35143ef17a7d7575e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIn list_display, labels for the choices are now shown (comma-separated) instead of the values of the choices (comma-separated).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn to_python method, value is a list or a string. (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/c4579138dda2833cbce26afbf57da5353aa45690\"\u003ec4579138dda2833cbce26afbf57da5353aa45690\u003c/a\u003e)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove set case and dict case\u003c/li\u003e\n\u003cli\u003eIf this breaks something, please create a test to help understand the use case.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoving integer choices:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIt was a mistake. MultiSelectField inherits of CharField, not IntegerField.\u003c/li\u003e\n\u003cli\u003eIt is impossible knows if original choice is (1, 'Item title 2.1') or ('1', 'Item title 2.1')\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: Form instance generated twice since Django  (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/168\"\u003e#168\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix CSS admin:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/173\"\u003e#173\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/7711f4aa755c81d00f07ce8a6ff0fd9240061f9c\"\u003e7711f4aa755c81d00f07ce8a6ff0fd9240061f9c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix Properly Display Categorized Choices in get_FOO_display (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/169\"\u003e#169\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSortMultiSelectField: (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/172\"\u003e#172\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/goinnn/django-multiselectfield/blob/master/CHANGES.rst\"\u003edjango-multiselectfield's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.0.1 (2025-06-12)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBadge image worked on GitHub but was broken on PyPI — fixed it.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.0.0 (2025-06-12)\u003c/h2\u003e\n\u003cp\u003eThis release introduces multiple changes that are incompatible with previous versions.\u003c/p\u003e\n\u003cp\u003eThe major version number has been incremented following \u003ccode\u003eSemantic Versioning (SemVer) \u0026lt;https://semver.org/\u0026gt;\u003c/code\u003e_, as several components of the package have changed in ways that may require updates in client code.\u003c/p\u003e\n\u003cp\u003eThe internal codebase has been significantly cleaned up and reorganized, making it more maintainable and consistent.\u003c/p\u003e\n\u003cp\u003eThis version contains \u003cstrong\u003e40% fewer lines of code\u003c/strong\u003e compared to the previous release.\u003c/p\u003e\n\u003cp\u003eLess code means fewer bugs, easier maintenance, and better long-term sustainability.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFList (\u003ccode\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\u0026gt;\u003c/code\u003e_):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ccode\u003e50d3f785883e0a314f2dc89950e3fe1e88a7ede6 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/50d3f785883e0a314f2dc89950e3fe1e88a7ede6\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eIt was created to support MultiSelectFields in admin.list_display, but it never actually worked. If you add a multiselect field to list_display, Django does not call to \u003cstrong\u003estr\u003c/strong\u003e method of MSGList (renamed to MSFList)\u003c/li\u003e\n\u003cli\u003eIt was created for integer choices too and it is a misconception. This is explained in the README file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFFlatchoices (\u003ccode\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\u0026gt;\u003c/code\u003e_):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ccode\u003e5638247c1d70670d4f81adf35143ef17a7d7575e \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/5638247c1d70670d4f81adf35143ef17a7d7575e\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eIn list_display, labels for the choices are now shown (comma-separated) instead of the values of the choices (comma-separated).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn to_python method, value is a list or a string. (\u003ccode\u003ec4579138dda2833cbce26afbf57da5353aa45690 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/c4579138dda2833cbce26afbf57da5353aa45690\u0026gt;\u003c/code\u003e_)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove set case and dict case\u003c/li\u003e\n\u003cli\u003eIf this breaks something, please create a test to help understand the use case.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoving integer choices:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIt was a mistake. MultiSelectField inherits of CharField, not IntegerField.\u003c/li\u003e\n\u003cli\u003eIt is impossibl...\n\n_Description has been truncated_","html_url":"https://github.com/dsp-testing/paperless-ngx/pull/195","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/dsp-testing%2Fpaperless-ngx/issues/195","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/195/packages"},{"uuid":"3869701884","node_id":"PR_kwDOHzc07s7AFGzs","number":1350,"state":"open","title":"Bump the patch group across 1 directory with 5 updates","user":"dependabot[bot]","labels":["part:tooling","type:tech-debt"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-01-29T09:33:47.000Z","updated_at":"2026-02-02T13:25:24.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"patch","update_count":5,"packages":[{"name":"markdown","old_version":"3.10","new_version":"3.10.1","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"mkdocs-material","old_version":"9.7.0","new_version":"9.7.1","repository_url":"https://github.com/squidfunk/mkdocs-material"},{"name":"mkdocstrings","old_version":"1.0.0","new_version":"1.0.2"},{"name":"mypy","old_version":"1.19.0","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"pytest","old_version":"9.0.1","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"}],"path":null,"ecosystem":"conda"},"body":"[//]: # (dependabot-start)\n⚠️  **Dependabot is rebasing this PR** ⚠️ \n\nRebasing might not happen immediately, so don't worry if this takes some time.\n\nNote: if you make any changes to this PR yourself, they will take precedence over the rebase.\n\n---\n\n[//]: # (dependabot-end)\n\nBumps the patch group with 5 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.10` | `3.10.1` |\n| [mkdocs-material](https://github.com/squidfunk/mkdocs-material) | `9.7.0` | `9.7.1` |\n| [mkdocstrings[python]](https://github.com/mkdocstrings/mkdocstrings) | `1.0.0` | `1.0.2` |\n| [mypy](https://github.com/python/mypy) | `1.19.0` | `1.19.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.1` | `9.0.2` |\n\n\nUpdates `markdown` from 3.10 to 3.10.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/releases\"\u003emarkdown's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.10.1\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure nested elements inside inline comments are properly unescaped (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1571\"\u003e#1571\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eMake the docs build successfully with mkdocstrings-python 2.0 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1575\"\u003e#1575\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix infinite loop when multiple bogus or unclosed HTML comments appear in input (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1578\"\u003e#1578\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix another infinite loop when handling bad comments (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1586\"\u003e#1586\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/changelog.md\"\u003emarkdown's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[3.10.1] - 2026-01-21\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure nested elements inside inline comments are properly unescaped (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1571\"\u003e#1571\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eMake the docs build successfully with mkdocstrings-python 2.0 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1575\"\u003e#1575\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix infinite loop when multiple bogus or unclosed HTML comments appear in input (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1578\"\u003e#1578\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix another infinite loop when handling bad comments (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1586\"\u003e#1586\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.10.0] - 2025-11-03\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.9.0] - 2025-09-04\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFootnotes are now ordered by the occurrence of their references in the\ndocument. A new configuration option for the footnotes extension,\n\u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e, has been added to support restoring the previous\nbehavior of ordering footnotes by the occurrence of definitions (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1367\"\u003e#1367\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure inline processing iterates through elements in document order (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1546\"\u003e#1546\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix handling of incomplete HTML tags in code spans in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1547\"\u003e#1547\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.8.2] - 2025-06-19\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003ecodecs\u003c/code\u003e deprecation in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed comment parsing in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed declarations in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed HTML tag \u003ccode\u003e\u0026lt;foo\u003c/code\u003e and Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.8.1] - 2025-06-18\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/e5fa5b86e8ec380cbc520cfc637d72c779e5c601\"\u003e\u003ccode\u003ee5fa5b8\u003c/code\u003e\u003c/a\u003e Bump version to 3.10.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/f9253495f5d9919f2fdd5e147832b5fc21330f65\"\u003e\u003ccode\u003ef925349\u003c/code\u003e\u003c/a\u003e More HTML fixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/9933a0a4699f3dea91f46528a2bf54863f531c08\"\u003e\u003ccode\u003e9933a0a\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Allow reference links with backticks\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/07dfa4eb43f7a2ab3181b4f842a960a03a6c1221\"\u003e\u003ccode\u003e07dfa4e\u003c/code\u003e\u003c/a\u003e Allow reference links with backticks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/fb6b27a6ff90980b5bcb0cd51528a7c9dc3a93ca\"\u003e\u003ccode\u003efb6b27a\u003c/code\u003e\u003c/a\u003e Fix infinite loop when text contains multiple unclosed comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/89112c293f7b399ae8808f3a06306f46601e9684\"\u003e\u003ccode\u003e89112c2\u003c/code\u003e\u003c/a\u003e Make the docs build successfully with mkdocstrings-python 2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/961856ceb30623b929d8b7abdf5ed7074db7184c\"\u003e\u003ccode\u003e961856c\u003c/code\u003e\u003c/a\u003e Update link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/2b49115b1002142afbd84b3002f13c0e98a0f487\"\u003e\u003ccode\u003e2b49115\u003c/code\u003e\u003c/a\u003e Ensure nested elements inside inline comments are properly unescaped.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Python-Markdown/markdown/compare/3.10.0...3.10.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-material` from 9.7.0 to 9.7.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/squidfunk/mkdocs-material/releases\"\u003emkdocs-material's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003emkdocs-material-9.7.1\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!WARNING]\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMaterial for MkDocs is in maintenance mode\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eGoing forward, the Material for MkDocs team focuses on \u003ca href=\"https://zensical.org\"\u003eZensical\u003c/a\u003e, a next-gen static site generator built from first principles. We will provide critical bug fixes and security updates for Material for MkDocs until November 2026.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003eRead the full announcement on our blog\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated requests to 2.30+ to mitigate CVE in urllib\u003c/li\u003e\n\u003cli\u003eFixed privacy plugin not picking up protocol-relative URLs\u003c/li\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8542\"\u003e#8542\u003c/a\u003e: false positives and negatives captured in privacy plugin\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG\"\u003emkdocs-material's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003emkdocs-material-9.7.1 (2025-12-18)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated requests to 2.30+ to mitigate CVE in urllib\u003c/li\u003e\n\u003cli\u003eFixed privacy plugin not picking up protocol-relative URLs\u003c/li\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8542\"\u003e#8542\u003c/a\u003e: false positives and negatives captured in privacy plugin\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.0 (2025-11-11)\u003c/p\u003e\n\u003cp\u003e⚠️ Material for MkDocs is now in maintenance mode\u003c/p\u003e\n\u003cp\u003eThis is the last release of Material for MkDocs that will receive new features.\nGoing forward, the Material for MkDocs team focuses on Zensical, a next-gen\nstatic site generator built from first principles. We will provide critical\nbug fixes and security updates for Material for MkDocs for 12 months at least.\u003c/p\u003e\n\u003cp\u003eRead the full announcement on our blog:\n\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003ehttps://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis release includes all features that were previously exclusive to the\nInsiders edition. These features are now freely available to everyone.\u003c/p\u003e\n\u003cp\u003eNote on deprecated plugins: The projects and typeset plugins are included in\nthis release, but must be considered deprecated. Both plugins proved\nunsustainable to maintain and represent architectural dead ends. They are\nprovided as-is without ongoing support.\u003c/p\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for pinned blog posts and author profiles\u003c/li\u003e\n\u003cli\u003eAdded support for customizing pagination for blog index pages\u003c/li\u003e\n\u003cli\u003eAdded support for customizing blog category sort order\u003c/li\u003e\n\u003cli\u003eAdded support for staying on page when switching languages\u003c/li\u003e\n\u003cli\u003eAdded support for disabling tags in table of contents\u003c/li\u003e\n\u003cli\u003eAdded support for nested tags and shadow tags\u003c/li\u003e\n\u003cli\u003eAdded support for footnote tooltips\u003c/li\u003e\n\u003cli\u003eAdded support for instant previews\u003c/li\u003e\n\u003cli\u003eAdded support for instant prefetching\u003c/li\u003e\n\u003cli\u003eAdded support for custom social card layouts\u003c/li\u003e\n\u003cli\u003eAdded support for custom social card background images\u003c/li\u003e\n\u003cli\u003eAdded support for selectable rangs in code blocks\u003c/li\u003e\n\u003cli\u003eAdded support for custom selectors for code annotations\u003c/li\u003e\n\u003cli\u003eAdded support for configurable log level in privacy plugin\u003c/li\u003e\n\u003cli\u003eAdded support for processing of external links in privacy plugin\u003c/li\u003e\n\u003cli\u003eAdded support for automatic image optimization via optimize plugin\u003c/li\u003e\n\u003cli\u003eAdded support for navigation paths (breadcrumbs)\u003c/li\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8519\"\u003e#8519\u003c/a\u003e: Vector accents do not render when using KaTeX\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.6.23 (2025-11-01)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated Burmese translation\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/7e236f6866b73aa080cd4d209752f6440bf67440\"\u003e\u003ccode\u003e7e236f6\u003c/code\u003e\u003c/a\u003e Temporarily disable publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/394149152dc10fc5383c956cd133a665c22fa907\"\u003e\u003ccode\u003e3941491\u003c/code\u003e\u003c/a\u003e Fixed CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/034eaf7b0b7a0a4d2e66179de0dcaded4c923f76\"\u003e\u003ccode\u003e034eaf7\u003c/code\u003e\u003c/a\u003e Prepare 9.7.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/79ba428abebf9b365d4930fb9b147255edd10b88\"\u003e\u003ccode\u003e79ba428\u003c/code\u003e\u003c/a\u003e Fixed privacy plugin not picking up protocol-relative URLs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/61cad249b6eec5727bcf245ca2dea3ef6c98790f\"\u003e\u003ccode\u003e61cad24\u003c/code\u003e\u003c/a\u003e Updated dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/dde13ceb9bb49be3b84bc8c1e59b313250ea8516\"\u003e\u003ccode\u003edde13ce\u003c/code\u003e\u003c/a\u003e Fixed false positives and negatives captured in privacy plugin  (\u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8542\"\u003e#8542\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/291012dcf5aff75a32a6fe9e9a6be4d769da12ac\"\u003e\u003ccode\u003e291012d\u003c/code\u003e\u003c/a\u003e Updated requests to 2.30+ to mitigate CVE in urllib\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/673d8ca986c37ddeabe25c7e7b7299ec644910ed\"\u003e\u003ccode\u003e673d8ca\u003c/code\u003e\u003c/a\u003e Fixed links\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/17227844dce216bf172c9e5de69809765a0b5ab7\"\u003e\u003ccode\u003e1722784\u003c/code\u003e\u003c/a\u003e Documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/aee925f5a0ae3e343ff310e35c667d24eeaff7df\"\u003e\u003ccode\u003eaee925f\u003c/code\u003e\u003c/a\u003e Fixed links\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/squidfunk/mkdocs-material/compare/9.7.0...9.7.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocstrings[python]` from 1.0.0 to 1.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases\"\u003emkdocstrings[python]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.0.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/1.0.2\"\u003e1.0.2\u003c/a\u003e - 2026-01-24\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/1.0.1...1.0.2\"\u003eCompare with 1.0.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse global instances for handlers and autorefs (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/9f79141d7eb35aba0c89a43795df0ee22a25a61e\"\u003e9f79141\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.0.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/1.0.1\"\u003e1.0.1\u003c/a\u003e - 2026-01-19\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/1.0.0...1.0.1\"\u003eCompare with 1.0.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport manual cross-references in Zensical too (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/d37d9079e5381350b2e3ffc5f698e28a5b572d36\"\u003ed37d907\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eSupport cross-references in Zensical (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f43f1ee2cd38a0dba64fc7d0db3c5ffb037bf7f7\"\u003ef43f1ee\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/812\"\u003ePR-812\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/blob/main/CHANGELOG.md\"\u003emkdocstrings[python]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/1.0.2\"\u003e1.0.2\u003c/a\u003e - 2026-01-24\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/1.0.1...1.0.2\"\u003eCompare with 1.0.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse global instances for handlers and autorefs (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/9f79141d7eb35aba0c89a43795df0ee22a25a61e\"\u003e9f79141\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/1.0.1\"\u003e1.0.1\u003c/a\u003e - 2026-01-19\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/1.0.0...1.0.1\"\u003eCompare with 1.0.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport manual cross-references in Zensical too (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/d37d9079e5381350b2e3ffc5f698e28a5b572d36\"\u003ed37d907\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eSupport cross-references in Zensical (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f43f1ee2cd38a0dba64fc7d0db3c5ffb037bf7f7\"\u003ef43f1ee\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/812\"\u003ePR-812\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/4e66617fbe26636f86117c26b2482c21892166fe\"\u003e\u003ccode\u003e4e66617\u003c/code\u003e\u003c/a\u003e chore: Prepare release 1.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/9f79141d7eb35aba0c89a43795df0ee22a25a61e\"\u003e\u003ccode\u003e9f79141\u003c/code\u003e\u003c/a\u003e refactor: Use global instances for handlers and autorefs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/cb8a3c781674b8e23cf0048955d70358d7bab49e\"\u003e\u003ccode\u003ecb8a3c7\u003c/code\u003e\u003c/a\u003e chore: Prepare release 1.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/d37d9079e5381350b2e3ffc5f698e28a5b572d36\"\u003e\u003ccode\u003ed37d907\u003c/code\u003e\u003c/a\u003e refactor: Support manual cross-references in Zensical too\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/0edd18af00fa5907bb31e8309ecf5ad4309da552\"\u003e\u003ccode\u003e0edd18a\u003c/code\u003e\u003c/a\u003e chore: Clean up after v1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f43f1ee2cd38a0dba64fc7d0db3c5ffb037bf7f7\"\u003e\u003ccode\u003ef43f1ee\u003c/code\u003e\u003c/a\u003e refactor: Support cross-references in Zensical\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/b6a33e23ba411159253ee44d1b1fa63b9a9a7b7a\"\u003e\u003ccode\u003eb6a33e2\u003c/code\u003e\u003c/a\u003e chore: Update sponsors section in README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/afefc0fbccc09f7b6f0c92cf3446434d241f1658\"\u003e\u003ccode\u003eafefc0f\u003c/code\u003e\u003c/a\u003e chore: Fix docs-deploy duty\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/cc54d77f63ecb97c4bcc6fb1b447eddad6e842ce\"\u003e\u003ccode\u003ecc54d77\u003c/code\u003e\u003c/a\u003e chore: Template upgrade\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/1.0.0...1.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.19.0 to 1.19.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.19.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix noncommutative joins with bounded TypeVars (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20345\"\u003e20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect output format for cached runs by serializing raw errors in cache metas (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20372\"\u003e20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (A5rocks, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20383\"\u003e20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mypyc generator regression with empty tuple (BobTheBuidler, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20371\"\u003e20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash involving Unpack-ed TypeVarTuple (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20323\"\u003e20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on star import of redefinition (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20333\"\u003e20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on typevar with forward ref used in other module (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20334\"\u003e20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFail with an explicit error on PyPy (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20389\"\u003e20389\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChainfire\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eDavid Foster\u003c/li\u003e\n\u003cli\u003eFrank Dana\u003c/li\u003e\n\u003cli\u003eGuo Ci\u003c/li\u003e\n\u003cli\u003eiap\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilton-Balfe\u003c/li\u003e\n\u003cli\u003ejhance\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eJukka Lehtosalo\u003c/li\u003e\n\u003cli\u003eKarelKenens\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael Carlstrom\u003c/li\u003e\n\u003cli\u003eMichael J. Sullivan\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003cli\u003eRandolf Scholz\u003c/li\u003e\n\u003cli\u003eShantanu\u003c/li\u003e\n\u003cli\u003eSigve Sebastian Farstad\u003c/li\u003e\n\u003cli\u003esobolevn\u003c/li\u003e\n\u003cli\u003eStanislav Terliakov\u003c/li\u003e\n\u003cli\u003eStephen Morton\u003c/li\u003e\n\u003cli\u003eTheodore Ando\u003c/li\u003e\n\u003cli\u003eThiago J. Barbalho\u003c/li\u003e\n\u003cli\u003ewyattscarpenter\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI’d also like to thank my employer, Dropbox, for supporting mypy development.\u003c/p\u003e\n\u003ch2\u003eMypy 1.18\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.18.1 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/412c19a6bde31e7afa7f41afdf8356664689ae80\"\u003e\u003ccode\u003e412c19a\u003c/code\u003e\u003c/a\u003e Bump version to 1.19.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/20aea0a6ca0710f5427239bdd2fd8e8bf1caf634\"\u003e\u003ccode\u003e20aea0a\u003c/code\u003e\u003c/a\u003e Update changelog for 1.19.1 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20414\"\u003e#20414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2b23b507524bf1bd7513eea6f2a16fb91e072cb6\"\u003e\u003ccode\u003e2b23b50\u003c/code\u003e\u003c/a\u003e Serialize raw errors in cache metas (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20372\"\u003e#20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f60f90fb8872bf722e32aefd548daaf6d8560e05\"\u003e\u003ccode\u003ef60f90f\u003c/code\u003e\u003c/a\u003e Fail on PyPy in main instead of setup.py (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20389\"\u003e#20389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/58d485b4ea4776e0b9d4045b306cb0818ecc2aa6\"\u003e\u003ccode\u003e58d485b\u003c/code\u003e\u003c/a\u003e Fail with an explicit error on PyPy (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20384\"\u003e#20384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4b31a26788b70c4a2a19adbafa2bbda43dc2e8b\"\u003e\u003ccode\u003ea4b31a2\u003c/code\u003e\u003c/a\u003e Allow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20383\"\u003e#20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8a6eff478416cd3ed3931a6ed77ce61c88ab69e9\"\u003e\u003ccode\u003e8a6eff4\u003c/code\u003e\u003c/a\u003e [mypyc] fix generator regression with empty tuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20371\"\u003e#20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/70eceea682c041c0d8e8462dffef9c7bb252e014\"\u003e\u003ccode\u003e70eceea\u003c/code\u003e\u003c/a\u003e Fix noncommutative joins with bounded TypeVars (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20345\"\u003e#20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/3890fc49bf7cc02db04b1e63eb2540aaacdeecc0\"\u003e\u003ccode\u003e3890fc4\u003c/code\u003e\u003c/a\u003e Fix crash involving Unpack-ed TypeVarTuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20323\"\u003e#20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c93d917a86993e06dcc88e508f28f4f5199ce1c8\"\u003e\u003ccode\u003ec93d917\u003c/code\u003e\u003c/a\u003e Fix crash on star import of redefinition (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20333\"\u003e#20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.19.0...v1.19.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 9.0.1 to 9.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13965\"\u003e#13965\u003c/a\u003e: Fixed quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/4492\"\u003e#4492\u003c/a\u003e: The API Reference now contains cross-reference-able documentation of \u003ccode\u003epytest's command-line flags \u0026lt;command-line-flags\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/3d10b5148e03eb82b3ee29181dbdc73cf82699e2\"\u003e\u003ccode\u003e3d10b51\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/188750b725add8c3400eee6fbb6b80559c296d69\"\u003e\u003ccode\u003e188750b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14030\"\u003e#14030\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/1e4b01d1f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7d7bef90cb9a6db8ac1d3dd5b9ae0eb9abd6c58\"\u003e\u003ccode\u003eb7d7bef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14014\"\u003e#14014\u003c/a\u003e from bluetech/compat-note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bd08e85ac76614ff5ca9ae338aee8d8b06c8fae0\"\u003e\u003ccode\u003ebd08e85\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14013\"\u003e#14013\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/922b60377...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bc783862991241c442c9f9c068e51737ec15ea10\"\u003e\u003ccode\u003ebc78386\u003c/code\u003e\u003c/a\u003e Add CLI options reference documentation (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13930\"\u003e#13930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/5a4e398ce89bc23d2cf3fd98c042fdffb6fa8afa\"\u003e\u003ccode\u003e5a4e398\u003c/code\u003e\u003c/a\u003e Fix docs typo (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14005\"\u003e#14005\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14008\"\u003e#14008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/d7ae6df394398168bf9d926f803c26849c8f07ee\"\u003e\u003ccode\u003ed7ae6df\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14006\"\u003e#14006\u003c/a\u003e from pytest-dev/maintenance/update-plugin-list-tmpl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/556f6a22e12d13d1ffeceaf64424eb95d5e0fb87\"\u003e\u003ccode\u003e556f6a2\u003c/code\u003e\u003c/a\u003e pre-commit: fix rst-lint after new release (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13999\"\u003e#13999\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14001\"\u003e#14001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c60fbe63a26f64a42738e3f3527a8f79024fdf50\"\u003e\u003ccode\u003ec60fbe6\u003c/code\u003e\u003c/a\u003e Fix quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10 ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/73d9b011183d9a1c4a7007c1119d97a6e627788e\"\u003e\u003ccode\u003e73d9b01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13995\"\u003e#13995\u003c/a\u003e from nicoddemus/patchback/backports/9.0.x/1b5200c0f...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/9.0.1...9.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/frequenz-floss/frequenz-sdk-python/pull/1350","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/frequenz-floss%2Ffrequenz-sdk-python/issues/1350","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1350/packages"},{"uuid":"3831199331","node_id":"PR_kwDOQE992c6-FeL8","number":6,"state":"open","title":"⬆ Bump the python-packages group across 1 directory with 6 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-01-19T21:03:27.000Z","updated_at":"2026-01-19T21:03:27.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"⬆ Bump","group_name":"python-packages","update_count":6,"packages":[{"name":"fastparquet","old_version":"2024.11.0","new_version":"2025.12.0","repository_url":"https://github.com/dask/fastparquet"},{"name":"pyarrow","old_version":"22.0.0","new_version":"23.0.0","repository_url":"https://github.com/apache/arrow"},{"name":"scikit-learn","old_version":"1.7.2","new_version":"1.8.0","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"watermark","old_version":"2.5.0","new_version":"2.6.0","repository_url":"https://github.com/rasbt/watermark"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"}],"path":null,"ecosystem":"conda"},"body":"Bumps the python-packages group with 6 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastparquet](https://github.com/dask/fastparquet) | `2024.11.0` | `2025.12.0` |\n| [pyarrow](https://github.com/apache/arrow) | `22.0.0` | `23.0.0` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.7.2` | `1.8.0` |\n| [watermark](https://github.com/rasbt/watermark) | `2.5.0` | `2.6.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.5.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.2` | `9.0.2` |\n\n\nUpdates `fastparquet` from 2024.11.0 to 2025.12.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/c2942b13e08b97022c0964af08f7b17d32b969e5\"\u003e\u003ccode\u003ec2942b1\u003c/code\u003e\u003c/a\u003e remove win selectors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/b94076c40095607f20be6a1aeb683569c0302027\"\u003e\u003ccode\u003eb94076c\u003c/code\u003e\u003c/a\u003e build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/7630de8795465c0b42610fadf736bd5441c38714\"\u003e\u003ccode\u003e7630de8\u003c/code\u003e\u003c/a\u003e build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/e4bd5e69b8bf3d5836948e13d2e0ce139060d9be\"\u003e\u003ccode\u003ee4bd5e6\u003c/code\u003e\u003c/a\u003e update wheel GHA versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/af08bab65df254e0483e8e66eb0b42b246d89fd3\"\u003e\u003ccode\u003eaf08bab\u003c/code\u003e\u003c/a\u003e changelog (\u003ca href=\"https://redirect.github.com/dask/fastparquet/issues/969\"\u003e#969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/f4524139b64322dff2822e18182cdf4f52b7a51a\"\u003e\u003ccode\u003ef452413\u003c/code\u003e\u003c/a\u003e Add CoC (\u003ca href=\"https://redirect.github.com/dask/fastparquet/issues/967\"\u003e#967\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/66b1044d1265c828298b605605e2f7070bc7897d\"\u003e\u003ccode\u003e66b1044\u003c/code\u003e\u003c/a\u003e CI: fix pandas build (\u003ca href=\"https://redirect.github.com/dask/fastparquet/issues/964\"\u003e#964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/e975b92a9c47253fac71e7fcec074331e26fc001\"\u003e\u003ccode\u003ee975b92\u003c/code\u003e\u003c/a\u003e Modernise cython (\u003ca href=\"https://redirect.github.com/dask/fastparquet/issues/966\"\u003e#966\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/83b3f1d22bfd2fd6345c07c7985fd9e4c4d8843f\"\u003e\u003ccode\u003e83b3f1d\u003c/code\u003e\u003c/a\u003e Test: makes tests fail on xpass (\u003ca href=\"https://redirect.github.com/dask/fastparquet/issues/965\"\u003e#965\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/230909717272c9e9257a4e321a66d071ece4ef4d\"\u003e\u003ccode\u003e2309097\u003c/code\u003e\u003c/a\u003e add goat link (\u003ca href=\"https://redirect.github.com/dask/fastparquet/issues/963\"\u003e#963\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/dask/fastparquet/compare/2024.11.0...2025.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyarrow` from 22.0.0 to 23.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/apache/arrow/releases\"\u003epyarrow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eApache Arrow 23.0.0\u003c/h2\u003e\n\u003cp\u003eRelease Notes URL: \u003ca href=\"https://arrow.apache.org/release/23.0.0.html\"\u003ehttps://arrow.apache.org/release/23.0.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eApache Arrow 23.0.0 RC2\u003c/h2\u003e\n\u003cp\u003eRelease Notes: Release Candidate: 23.0.0 RC2\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/eafe3a9e620cf94683dee2347f370c35156dc965\"\u003e\u003ccode\u003eeafe3a9\u003c/code\u003e\u003c/a\u003e MINOR: [Release] Update versions for 23.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/45781e854cc9248013349decc4639644871d9f5f\"\u003e\u003ccode\u003e45781e8\u003c/code\u003e\u003c/a\u003e MINOR: [Release] Update .deb/.rpm changelogs for 23.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/365e5aca5a1ae2cdc31e6bd4ed640bfba00d5cc5\"\u003e\u003ccode\u003e365e5ac\u003c/code\u003e\u003c/a\u003e MINOR: [Release] Update CHANGELOG.md for 23.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/e33512d1d82c28e753004d0d7a76c1dca542b1cd\"\u003e\u003ccode\u003ee33512d\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/48841\"\u003eGH-48841\u003c/a\u003e: [Release][Package] Add GH_TOKEN to rake build step on Linux Packagi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/86d28e9d55f8d0f11634b4a2a19233fa843d9261\"\u003e\u003ccode\u003e86d28e9\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/48838\"\u003eGH-48838\u003c/a\u003e: [Release] Use gh cli to download sources for Linux packages and pub...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/b6362d09204136dbf2167fee8ec8ec2af0efe42d\"\u003e\u003ccode\u003eb6362d0\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/48582\"\u003eGH-48582\u003c/a\u003e: [CI][GPU][C++][Python] Add new CUDA jobs using the new self-hosted ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/8fb7a53f0e2d0fa85ccdc6dd7ccda44dec6ee0d9\"\u003e\u003ccode\u003e8fb7a53\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/48827\"\u003eGH-48827\u003c/a\u003e: [CI][Python] Add required xz dependency to emscripten dockerfile (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/342c5d563005709eab03dde332e44bcb237385fc\"\u003e\u003ccode\u003e342c5d5\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/48809\"\u003eGH-48809\u003c/a\u003e: [CI] Fix homebrew-cpp with Mac by using formula-based dependency re...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/8955bbf7b266d7e293f5037bd20c3e2e983e004c\"\u003e\u003ccode\u003e8955bbf\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/48631\"\u003eGH-48631\u003c/a\u003e: [R] Non-API calls: 'ATTRIB', 'SET_ATTRIB' (\u003ca href=\"https://redirect.github.com/apache/arrow/issues/48634\"\u003e#48634\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/b90a2b82d85b1479470b7f1bdd941c9a59ecd3d4\"\u003e\u003ccode\u003eb90a2b8\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/48314\"\u003eGH-48314\u003c/a\u003e: [Python] Compat with pandas 3.0 changed default datetime unit (\u003ca href=\"https://redirect.github.com/apache/arrow/issues/48319\"\u003e#48319\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/apache/arrow/compare/apache-arrow-22.0.0...apache-arrow-23.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `scikit-learn` from 1.7.2 to 1.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/scikit-learn/scikit-learn/releases\"\u003escikit-learn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 1.8.0\u003c/h2\u003e\n\u003cp\u003eWe're happy to announce the 1.8.0 release.\u003c/p\u003e\n\u003cp\u003eYou can read the release highlights under \u003ca href=\"https://scikit-learn.org/stable/auto_examples/release_highlights/plot_release_highlights_1_8_0.html\"\u003ehttps://scikit-learn.org/stable/auto_examples/release_highlights/plot_release_highlights_1_8_0.html\u003c/a\u003e and the long version of the change log under \u003ca href=\"https://scikit-learn.org/stable/whats_new/v1.8.html\"\u003ehttps://scikit-learn.org/stable/whats_new/v1.8.html\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis version supports Python versions 3.11 to 3.14 and features support of free-threaded CPython.\u003c/p\u003e\n\u003cp\u003eYou can upgrade with pip as usual:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epip install -U scikit-learn\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThe conda-forge builds can be installed using:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge scikit-learn\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/646da0f072a8afef6a980aa427a710311e67eb9d\"\u003e\u003ccode\u003e646da0f\u003c/code\u003e\u003c/a\u003e [cd build]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/4f4f2831de348859efc5d8298cbf37e212a1efac\"\u003e\u003ccode\u003e4f4f283\u003c/code\u003e\u003c/a\u003e Generate changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/967dcde6dae92a6f9eafa804b5d93e8fdfd08f26\"\u003e\u003ccode\u003e967dcde\u003c/code\u003e\u003c/a\u003e Set version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/cb1424bf0d548d6fa9fdef2f91bb00636f484f10\"\u003e\u003ccode\u003ecb1424b\u003c/code\u003e\u003c/a\u003e DOC Release highlights for 1.8 (\u003ca href=\"https://redirect.github.com/scikit-learn/scikit-learn/issues/32809\"\u003e#32809\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/5645b27b985486d6b75bb75e4929faa4da574173\"\u003e\u003ccode\u003e5645b27\u003c/code\u003e\u003c/a\u003e :lock: :robot: CI Update lock files for main CI build(s) :lock: :robot: (\u003ca href=\"https://redirect.github.com/scikit-learn/scikit-learn/issues/32859\"\u003e#32859\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/6b9fb1189957962cd0e4988d137af312ad09008f\"\u003e\u003ccode\u003e6b9fb11\u003c/code\u003e\u003c/a\u003e :lock: :robot: CI Update lock files for free-threaded CI build(s) :lock: :rob...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/a0f6d88d05d52594785455b570ed142c912568e7\"\u003e\u003ccode\u003ea0f6d88\u003c/code\u003e\u003c/a\u003e :lock: :robot: CI Update lock files for array-api CI build(s) :lock: :robot: ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/c1de8fc595fce930c5ce1792faeab8d80a4fecc2\"\u003e\u003ccode\u003ec1de8fc\u003c/code\u003e\u003c/a\u003e FIX Make \u003ccode\u003eget_namespace\u003c/code\u003e handle pandas dataframe input (\u003ca href=\"https://redirect.github.com/scikit-learn/scikit-learn/issues/32838\"\u003e#32838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/764249a255ba4110685a772836f06477c40cf8a3\"\u003e\u003ccode\u003e764249a\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e_safe_indexing\u003c/code\u003e with non integer arrays on array API inputs (\u003ca href=\"https://redirect.github.com/scikit-learn/scikit-learn/issues/32840\"\u003e#32840\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/eca5e0ab2a16844c57fff675c2d017af2d8a570b\"\u003e\u003ccode\u003eeca5e0a\u003c/code\u003e\u003c/a\u003e FIX Add new default max_samples=None in Bagging estimators (\u003ca href=\"https://redirect.github.com/scikit-learn/scikit-learn/issues/32825\"\u003e#32825\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/scikit-learn/scikit-learn/compare/1.7.2...1.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `watermark` from 2.5.0 to 2.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rasbt/watermark/releases\"\u003ewatermark's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.6.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdds a new \u003ccode\u003e--check_jupyter\u003c/code\u003e flag to report which notebook environment is used (e.g., Colab, Jupyter Notebook, JupyterLab, VS Code). (\u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/99\"\u003e#102\u003c/a\u003e, contributed by \u003ca href=\"https://github.com/mariam851\"\u003eMariam Zakaria\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdds a new \u003ccode\u003e--check_latest\u003c/code\u003e flag to check whether newer package versions are available. (\u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/99\"\u003e#102\u003c/a\u003e, contributed by \u003ca href=\"https://github.com/mariam851\"\u003eMariam Zakaria\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdds a new \u003ccode\u003e--python_installation\u003c/code\u003e flag to provide information about how Python was installed. (\u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/99\"\u003e#102\u003c/a\u003e, contributed by \u003ca href=\"https://github.com/mariam851\"\u003eMariam Zakaria\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeat check latest 87 by \u003ca href=\"https://github.com/mariam851\"\u003e\u003ccode\u003e@​mariam851\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/110\"\u003erasbt/watermark#110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Add --filename (-fn) option to display notebook path. Closes \u003ca href=\"https://redirect.github.com/rasbt/watermark/issues/25\"\u003e#25\u003c/a\u003e by \u003ca href=\"https://github.com/mariam851\"\u003e\u003ccode\u003e@​mariam851\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/103\"\u003erasbt/watermark#103\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix KeyError in version lookup and implement fallback  by \u003ca href=\"https://github.com/mariam851\"\u003e\u003ccode\u003e@​mariam851\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/106\"\u003erasbt/watermark#106\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix timezone space 73 by \u003ca href=\"https://github.com/mariam851\"\u003e\u003ccode\u003e@​mariam851\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/107\"\u003erasbt/watermark#107\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat jupyter env 93 by \u003ca href=\"https://github.com/mariam851\"\u003e\u003ccode\u003e@​mariam851\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/108\"\u003erasbt/watermark#108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat python install 89 by \u003ca href=\"https://github.com/mariam851\"\u003e\u003ccode\u003e@​mariam851\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/109\"\u003erasbt/watermark#109\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/mariam851\"\u003e\u003ccode\u003e@​mariam851\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/110\"\u003erasbt/watermark#110\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rasbt/watermark/compare/v2.5.1...v2.6.0\"\u003ehttps://github.com/rasbt/watermark/compare/v2.5.1...v2.6.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.5.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efixed typo by \u003ca href=\"https://github.com/d-kleine\"\u003e\u003ccode\u003e@​d-kleine\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/96\"\u003erasbt/watermark#96\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump version to 2.5.1.dev by \u003ca href=\"https://github.com/rasbt\"\u003e\u003ccode\u003e@​rasbt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/97\"\u003erasbt/watermark#97\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump to 2.5.1.dev1 for build testing by \u003ca href=\"https://github.com/rasbt\"\u003e\u003ccode\u003e@​rasbt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/98\"\u003erasbt/watermark#98\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixed -d and -t flags by \u003ca href=\"https://github.com/d-kleine\"\u003e\u003ccode\u003e@​d-kleine\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/99\"\u003erasbt/watermark#99\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eList imported packages in alphabetical order. by \u003ca href=\"https://github.com/vlulla\"\u003e\u003ccode\u003e@​vlulla\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/102\"\u003erasbt/watermark#102\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd auto deployment workflow by \u003ca href=\"https://github.com/rasbt\"\u003e\u003ccode\u003e@​rasbt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/105\"\u003erasbt/watermark#105\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/vlulla\"\u003e\u003ccode\u003e@​vlulla\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/102\"\u003erasbt/watermark#102\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rasbt/watermark/compare/v2.5.0...v2.5.1\"\u003ehttps://github.com/rasbt/watermark/compare/v2.5.0...v2.5.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rasbt/watermark/commit/b857ecf279a350dc6b6f96de2d5d3073b063b32d\"\u003e\u003ccode\u003eb857ecf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rasbt/watermark/issues/110\"\u003e#110\u003c/a\u003e from mariam851/feat-check-latest-87\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rasbt/watermark/commit/2691f7f2295e9f4b351acaa86616bcb57977ad30\"\u003e\u003ccode\u003e2691f7f\u003c/code\u003e\u003c/a\u003e improvements and docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rasbt/watermark/commit/972c9736e7ecfea40d23d58e0732e0371848479c\"\u003e\u003ccode\u003e972c973\u003c/code\u003e\u003c/a\u003e Feat \u003ca href=\"https://redirect.github.com/rasbt/watermark/issues/87\"\u003e#87\u003c/a\u003e: Add --check_latest flag to check package updates via PyPI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rasbt/watermark/commit/8ad19fc154a0e3cafe20e0c682531b4dec715993\"\u003e\u003ccode\u003e8ad19fc\u003c/code\u003e\u003c/a\u003e Feat \u003ca href=\"https://redirect.github.com/rasbt/watermark/issues/89\"\u003e#89\u003c/a\u003e: Add --python_installation flag\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rasbt/watermark/commit/a4e8c123678898a90480cee23b0f377e88233fd5\"\u003e\u003ccode\u003ea4e8c12\u003c/code\u003e\u003c/a\u003e Feat \u003ca href=\"https://redirect.github.com/rasbt/watermark/issues/93\"\u003e#93\u003c/a\u003e: Add --jupyter_env flag to detect environment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rasbt/watermark/commit/0b4948416de7fcc534c83ce7ff6053a6cab600ca\"\u003e\u003ccode\u003e0b49484\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/rasbt/watermark/issues/73\"\u003e#73\u003c/a\u003e: Add space before timezone and update date format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rasbt/watermark/commit/a19ec2a5320cb9d59c7029c557b97da3b2b83a91\"\u003e\u003ccode\u003ea19ec2a\u003c/code\u003e\u003c/a\u003e Fix KeyError in version lookup and implement fallback (\u003ca href=\"https://redirect.github.com/rasbt/watermark/issues/100\"\u003e#100\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rasbt/watermark/commit/3ec302e077c533844e094040bad6a07669026c64\"\u003e\u003ccode\u003e3ec302e\u003c/code\u003e\u003c/a\u003e Update publish workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rasbt/watermark/commit/e7567da961065076e9fa56476ac4f22b483f83cf\"\u003e\u003ccode\u003ee7567da\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rasbt/watermark/issues/105\"\u003e#105\u003c/a\u003e from rasbt/autodeploy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rasbt/watermark/commit/9a3d0c4dc53170e9d6f5983adf340177b1ce6154\"\u003e\u003ccode\u003e9a3d0c4\u003c/code\u003e\u003c/a\u003e update\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rasbt/watermark/compare/v2.5.0...v2.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit` from 4.3.0 to 4.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.5.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.5.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.4.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases for \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be deprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.5.1 - 2025-12-16\u003c/h1\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.5.0 - 2025-11-22\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.4.0 - 2025-11-08\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases\nfor \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be\ndeprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/8a0630ca1aa7f6d5665effe674ebe2022af17919\"\u003e\u003ccode\u003e8a0630c\u003c/code\u003e\u003c/a\u003e v4.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fcbc745744377ef2c9fe6a7e1a21c67d797933dc\"\u003e\u003ccode\u003efcbc745\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e from pre-commit/empty-setup-py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/51592eececd13b99c40ec477ad8f810799147227\"\u003e\u003ccode\u003e51592ee\u003c/code\u003e\u003c/a\u003e fix python local template when artifact dirs are present\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/67e8faf80baffcb4b79c31b89ca9a413a1cd6776\"\u003e\u003ccode\u003e67e8faf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3596\"\u003e#3596\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c251e6b6d011b3b262339dc8e109de29b0ff8db1\"\u003e\u003ccode\u003ec251e6b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/98ccafa3ce42b846b9a9be9ed73fbbec7415496d\"\u003e\u003ccode\u003e98ccafa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3593\"\u003e#3593\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/48953556d06f8cdb4248002c1a0044e69e0916b3\"\u003e\u003ccode\u003e4895355\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2cedd58e691f4d3bc6ab266c7d7c28464c3502be\"\u003e\u003ccode\u003e2cedd58\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3588\"\u003e#3588\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/465192d7de58d569776eaaa818c94cb2b962d436\"\u003e\u003ccode\u003e465192d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fd42f96874279c4f65363bfea5238714419e54d7\"\u003e\u003ccode\u003efd42f96\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3586\"\u003e#3586\u003c/a\u003e from pre-commit/zipapp-sha256-file-not-needed\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.3.0...v4.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.4.2 to 9.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13965\"\u003e#13965\u003c/a\u003e: Fixed quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/4492\"\u003e#4492\u003c/a\u003e: The API Reference now contains cross-reference-able documentation of \u003ccode\u003epytest's command-line flags \u0026lt;command-line-flags\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e9.0.1\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.1 (2025-11-12)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13895\"\u003e#13895\u003c/a\u003e: Restore support for skipping tests via \u003ccode\u003eraise unittest.SkipTest\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress plugin added in pytest 9.0 is now automatically disabled when iTerm2 is detected, it generated desktop notifications instead of the desired functionality.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the verbosity settings in the API reference from number to string.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13910\"\u003e#13910\u003c/a\u003e: Fixed \u003c!-- raw HTML omitted --\u003eUserWarning: Do not expect file_or_dir\u003c!-- raw HTML omitted --\u003e on some earlier Python 3.12 and 3.13 point versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePackaging updates and notes for downstreams\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13891\"\u003e#13891\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13942\"\u003e#13942\u003c/a\u003e: The CI/CD part of the release automation is now capable of\ncreating GitHub Releases without having a Git checkout on\ndisk -- by \u003ccode\u003ebluetech\u003c/code\u003e and \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/3d10b5148e03eb82b3ee29181dbdc73cf82699e2\"\u003e\u003ccode\u003e3d10b51\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/188750b725add8c3400eee6fbb6b80559c296d69\"\u003e\u003ccode\u003e188750b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14030\"\u003e#14030\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/1e4b01d1f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7d7bef90cb9a6db8ac1d3dd5b9ae0eb9abd6c58\"\u003e\u003ccode\u003eb7d7bef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14014\"\u003e#14014\u003c/a\u003e from bluetech/compat-note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bd08e85ac76614ff5ca9ae338aee8d8b06c8fae0\"\u003e\u003ccode\u003ebd08e85\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14013\"\u003e#14013\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/922b60377...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bc783862991241c442c9f9c068e51737ec15ea10\"\u003e\u003ccode\u003ebc78386\u003c/code\u003e\u003c/a\u003e Add CLI options reference documentation (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13930\"\u003e#13930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/5a4e398ce89bc23d2cf3fd98c042fdffb6fa8afa\"\u003e\u003ccode\u003e5a4e398\u003c/code\u003e\u003c/a\u003e Fix docs typo (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14005\"\u003e#14005\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14008\"\u003e#14008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/d7ae6df394398168bf9d926f803c26849c8f07ee\"\u003e\u003ccode\u003ed7ae6df\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14006\"\u003e#14006\u003c/a\u003e from pytest-dev/maintenance/update-plugin-list-tmpl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/556f6a22e12d13d1ffeceaf64424eb95d5e0fb87\"\u003e\u003ccode\u003e556f6a2\u003c/code\u003e\u003c/a\u003e pre-commit: fix rst-lint after new release (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13999\"\u003e#13999\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14001\"\u003e#14001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c60fbe63a26f64a42738e3f3527a8f79024fdf50\"\u003e\u003ccode\u003ec60fbe6\u003c/code\u003e\u003c/a\u003e Fix quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10 ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/73d9b011183d9a1c4a7007c1119d97a6e627788e\"\u003e\u003ccode\u003e73d9b01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13995\"\u003e#13995\u003c/a\u003e from nicoddemus/patchback/backports/9.0.x/1b5200c0f...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.4.2...9.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/anasperezhoyos/nlp-upb_ana_sofia/pull/6","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/anasperezhoyos%2Fnlp-upb_ana_sofia/issues/6","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/6/packages"},{"uuid":"3830796074","node_id":"PR_kwDOQE-B0c6-EHY-","number":6,"state":"open","title":"⬆ Bump the python-packages group across 1 directory with 5 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-01-19T18:31:20.000Z","updated_at":"2026-01-19T18:31:21.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"⬆ Bump","group_name":"python-packages","update_count":5,"packages":[{"name":"fastparquet","old_version":"2024.11.0","new_version":"2025.12.0","repository_url":"https://github.com/dask/fastparquet"},{"name":"pyarrow","old_version":"22.0.0","new_version":"23.0.0","repository_url":"https://github.com/apache/arrow"},{"name":"scikit-learn","old_version":"1.7.2","new_version":"1.8.0","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"}],"path":null,"ecosystem":"conda"},"body":"Bumps the python-packages group with 5 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastparquet](https://github.com/dask/fastparquet) | `2024.11.0` | `2025.12.0` |\n| [pyarrow](https://github.com/apache/arrow) | `22.0.0` | `23.0.0` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.7.2` | `1.8.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.5.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.2` | `9.0.2` |\n\n\nUpdates `fastparquet` from 2024.11.0 to 2025.12.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/c2942b13e08b97022c0964af08f7b17d32b969e5\"\u003e\u003ccode\u003ec2942b1\u003c/code\u003e\u003c/a\u003e remove win selectors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/b94076c40095607f20be6a1aeb683569c0302027\"\u003e\u003ccode\u003eb94076c\u003c/code\u003e\u003c/a\u003e build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/7630de8795465c0b42610fadf736bd5441c38714\"\u003e\u003ccode\u003e7630de8\u003c/code\u003e\u003c/a\u003e build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/e4bd5e69b8bf3d5836948e13d2e0ce139060d9be\"\u003e\u003ccode\u003ee4bd5e6\u003c/code\u003e\u003c/a\u003e update wheel GHA versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/af08bab65df254e0483e8e66eb0b42b246d89fd3\"\u003e\u003ccode\u003eaf08bab\u003c/code\u003e\u003c/a\u003e changelog (\u003ca href=\"https://redirect.github.com/dask/fastparquet/issues/969\"\u003e#969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/f4524139b64322dff2822e18182cdf4f52b7a51a\"\u003e\u003ccode\u003ef452413\u003c/code\u003e\u003c/a\u003e Add CoC (\u003ca href=\"https://redirect.github.com/dask/fastparquet/issues/967\"\u003e#967\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/66b1044d1265c828298b605605e2f7070bc7897d\"\u003e\u003ccode\u003e66b1044\u003c/code\u003e\u003c/a\u003e CI: fix pandas build (\u003ca href=\"https://redirect.github.com/dask/fastparquet/issues/964\"\u003e#964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/e975b92a9c47253fac71e7fcec074331e26fc001\"\u003e\u003ccode\u003ee975b92\u003c/code\u003e\u003c/a\u003e Modernise cython (\u003ca href=\"https://redirect.github.com/dask/fastparquet/issues/966\"\u003e#966\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/83b3f1d22bfd2fd6345c07c7985fd9e4c4d8843f\"\u003e\u003ccode\u003e83b3f1d\u003c/code\u003e\u003c/a\u003e Test: makes tests fail on xpass (\u003ca href=\"https://redirect.github.com/dask/fastparquet/issues/965\"\u003e#965\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/230909717272c9e9257a4e321a66d071ece4ef4d\"\u003e\u003ccode\u003e2309097\u003c/code\u003e\u003c/a\u003e add goat link (\u003ca href=\"https://redirect.github.com/dask/fastparquet/issues/963\"\u003e#963\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/dask/fastparquet/compare/2024.11.0...2025.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyarrow` from 22.0.0 to 23.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/apache/arrow/releases\"\u003epyarrow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eApache Arrow 23.0.0\u003c/h2\u003e\n\u003cp\u003eRelease Notes URL: \u003ca href=\"https://arrow.apache.org/release/23.0.0.html\"\u003ehttps://arrow.apache.org/release/23.0.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eApache Arrow 23.0.0 RC2\u003c/h2\u003e\n\u003cp\u003eRelease Notes: Release Candidate: 23.0.0 RC2\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/eafe3a9e620cf94683dee2347f370c35156dc965\"\u003e\u003ccode\u003eeafe3a9\u003c/code\u003e\u003c/a\u003e MINOR: [Release] Update versions for 23.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/45781e854cc9248013349decc4639644871d9f5f\"\u003e\u003ccode\u003e45781e8\u003c/code\u003e\u003c/a\u003e MINOR: [Release] Update .deb/.rpm changelogs for 23.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/365e5aca5a1ae2cdc31e6bd4ed640bfba00d5cc5\"\u003e\u003ccode\u003e365e5ac\u003c/code\u003e\u003c/a\u003e MINOR: [Release] Update CHANGELOG.md for 23.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/e33512d1d82c28e753004d0d7a76c1dca542b1cd\"\u003e\u003ccode\u003ee33512d\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/48841\"\u003eGH-48841\u003c/a\u003e: [Release][Package] Add GH_TOKEN to rake build step on Linux Packagi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/86d28e9d55f8d0f11634b4a2a19233fa843d9261\"\u003e\u003ccode\u003e86d28e9\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/48838\"\u003eGH-48838\u003c/a\u003e: [Release] Use gh cli to download sources for Linux packages and pub...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/b6362d09204136dbf2167fee8ec8ec2af0efe42d\"\u003e\u003ccode\u003eb6362d0\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/48582\"\u003eGH-48582\u003c/a\u003e: [CI][GPU][C++][Python] Add new CUDA jobs using the new self-hosted ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/8fb7a53f0e2d0fa85ccdc6dd7ccda44dec6ee0d9\"\u003e\u003ccode\u003e8fb7a53\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/48827\"\u003eGH-48827\u003c/a\u003e: [CI][Python] Add required xz dependency to emscripten dockerfile (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/342c5d563005709eab03dde332e44bcb237385fc\"\u003e\u003ccode\u003e342c5d5\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/48809\"\u003eGH-48809\u003c/a\u003e: [CI] Fix homebrew-cpp with Mac by using formula-based dependency re...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/8955bbf7b266d7e293f5037bd20c3e2e983e004c\"\u003e\u003ccode\u003e8955bbf\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/48631\"\u003eGH-48631\u003c/a\u003e: [R] Non-API calls: 'ATTRIB', 'SET_ATTRIB' (\u003ca href=\"https://redirect.github.com/apache/arrow/issues/48634\"\u003e#48634\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/b90a2b82d85b1479470b7f1bdd941c9a59ecd3d4\"\u003e\u003ccode\u003eb90a2b8\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/48314\"\u003eGH-48314\u003c/a\u003e: [Python] Compat with pandas 3.0 changed default datetime unit (\u003ca href=\"https://redirect.github.com/apache/arrow/issues/48319\"\u003e#48319\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/apache/arrow/compare/apache-arrow-22.0.0...apache-arrow-23.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `scikit-learn` from 1.7.2 to 1.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/scikit-learn/scikit-learn/releases\"\u003escikit-learn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 1.8.0\u003c/h2\u003e\n\u003cp\u003eWe're happy to announce the 1.8.0 release.\u003c/p\u003e\n\u003cp\u003eYou can read the release highlights under \u003ca href=\"https://scikit-learn.org/stable/auto_examples/release_highlights/plot_release_highlights_1_8_0.html\"\u003ehttps://scikit-learn.org/stable/auto_examples/release_highlights/plot_release_highlights_1_8_0.html\u003c/a\u003e and the long version of the change log under \u003ca href=\"https://scikit-learn.org/stable/whats_new/v1.8.html\"\u003ehttps://scikit-learn.org/stable/whats_new/v1.8.html\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis version supports Python versions 3.11 to 3.14 and features support of free-threaded CPython.\u003c/p\u003e\n\u003cp\u003eYou can upgrade with pip as usual:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epip install -U scikit-learn\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThe conda-forge builds can be installed using:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge scikit-learn\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/646da0f072a8afef6a980aa427a710311e67eb9d\"\u003e\u003ccode\u003e646da0f\u003c/code\u003e\u003c/a\u003e [cd build]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/4f4f2831de348859efc5d8298cbf37e212a1efac\"\u003e\u003ccode\u003e4f4f283\u003c/code\u003e\u003c/a\u003e Generate changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/967dcde6dae92a6f9eafa804b5d93e8fdfd08f26\"\u003e\u003ccode\u003e967dcde\u003c/code\u003e\u003c/a\u003e Set version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/cb1424bf0d548d6fa9fdef2f91bb00636f484f10\"\u003e\u003ccode\u003ecb1424b\u003c/code\u003e\u003c/a\u003e DOC Release highlights for 1.8 (\u003ca href=\"https://redirect.github.com/scikit-learn/scikit-learn/issues/32809\"\u003e#32809\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/5645b27b985486d6b75bb75e4929faa4da574173\"\u003e\u003ccode\u003e5645b27\u003c/code\u003e\u003c/a\u003e :lock: :robot: CI Update lock files for main CI build(s) :lock: :robot: (\u003ca href=\"https://redirect.github.com/scikit-learn/scikit-learn/issues/32859\"\u003e#32859\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/6b9fb1189957962cd0e4988d137af312ad09008f\"\u003e\u003ccode\u003e6b9fb11\u003c/code\u003e\u003c/a\u003e :lock: :robot: CI Update lock files for free-threaded CI build(s) :lock: :rob...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/a0f6d88d05d52594785455b570ed142c912568e7\"\u003e\u003ccode\u003ea0f6d88\u003c/code\u003e\u003c/a\u003e :lock: :robot: CI Update lock files for array-api CI build(s) :lock: :robot: ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/c1de8fc595fce930c5ce1792faeab8d80a4fecc2\"\u003e\u003ccode\u003ec1de8fc\u003c/code\u003e\u003c/a\u003e FIX Make \u003ccode\u003eget_namespace\u003c/code\u003e handle pandas dataframe input (\u003ca href=\"https://redirect.github.com/scikit-learn/scikit-learn/issues/32838\"\u003e#32838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/764249a255ba4110685a772836f06477c40cf8a3\"\u003e\u003ccode\u003e764249a\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e_safe_indexing\u003c/code\u003e with non integer arrays on array API inputs (\u003ca href=\"https://redirect.github.com/scikit-learn/scikit-learn/issues/32840\"\u003e#32840\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/eca5e0ab2a16844c57fff675c2d017af2d8a570b\"\u003e\u003ccode\u003eeca5e0a\u003c/code\u003e\u003c/a\u003e FIX Add new default max_samples=None in Bagging estimators (\u003ca href=\"https://redirect.github.com/scikit-learn/scikit-learn/issues/32825\"\u003e#32825\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/scikit-learn/scikit-learn/compare/1.7.2...1.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit` from 4.3.0 to 4.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.5.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.5.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.4.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases for \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be deprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.5.1 - 2025-12-16\u003c/h1\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.5.0 - 2025-11-22\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.4.0 - 2025-11-08\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases\nfor \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be\ndeprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/8a0630ca1aa7f6d5665effe674ebe2022af17919\"\u003e\u003ccode\u003e8a0630c\u003c/code\u003e\u003c/a\u003e v4.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fcbc745744377ef2c9fe6a7e1a21c67d797933dc\"\u003e\u003ccode\u003efcbc745\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e from pre-commit/empty-setup-py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/51592eececd13b99c40ec477ad8f810799147227\"\u003e\u003ccode\u003e51592ee\u003c/code\u003e\u003c/a\u003e fix python local template when artifact dirs are present\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/67e8faf80baffcb4b79c31b89ca9a413a1cd6776\"\u003e\u003ccode\u003e67e8faf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3596\"\u003e#3596\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c251e6b6d011b3b262339dc8e109de29b0ff8db1\"\u003e\u003ccode\u003ec251e6b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/98ccafa3ce42b846b9a9be9ed73fbbec7415496d\"\u003e\u003ccode\u003e98ccafa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3593\"\u003e#3593\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/48953556d06f8cdb4248002c1a0044e69e0916b3\"\u003e\u003ccode\u003e4895355\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2cedd58e691f4d3bc6ab266c7d7c28464c3502be\"\u003e\u003ccode\u003e2cedd58\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3588\"\u003e#3588\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/465192d7de58d569776eaaa818c94cb2b962d436\"\u003e\u003ccode\u003e465192d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fd42f96874279c4f65363bfea5238714419e54d7\"\u003e\u003ccode\u003efd42f96\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3586\"\u003e#3586\u003c/a\u003e from pre-commit/zipapp-sha256-file-not-needed\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.3.0...v4.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.4.2 to 9.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13965\"\u003e#13965\u003c/a\u003e: Fixed quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/4492\"\u003e#4492\u003c/a\u003e: The API Reference now contains cross-reference-able documentation of \u003ccode\u003epytest's command-line flags \u0026lt;command-line-flags\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e9.0.1\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.1 (2025-11-12)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13895\"\u003e#13895\u003c/a\u003e: Restore support for skipping tests via \u003ccode\u003eraise unittest.SkipTest\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress plugin added in pytest 9.0 is now automatically disabled when iTerm2 is detected, it generated desktop notifications instead of the desired functionality.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the verbosity settings in the API reference from number to string.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13910\"\u003e#13910\u003c/a\u003e: Fixed \u003c!-- raw HTML omitted --\u003eUserWarning: Do not expect file_or_dir\u003c!-- raw HTML omitted --\u003e on some earlier Python 3.12 and 3.13 point versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePackaging updates and notes for downstreams\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13891\"\u003e#13891\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13942\"\u003e#13942\u003c/a\u003e: The CI/CD part of the release automation is now capable of\ncreating GitHub Releases without having a Git checkout on\ndisk -- by \u003ccode\u003ebluetech\u003c/code\u003e and \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/3d10b5148e03eb82b3ee29181dbdc73cf82699e2\"\u003e\u003ccode\u003e3d10b51\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/188750b725add8c3400eee6fbb6b80559c296d69\"\u003e\u003ccode\u003e188750b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14030\"\u003e#14030\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/1e4b01d1f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7d7bef90cb9a6db8ac1d3dd5b9ae0eb9abd6c58\"\u003e\u003ccode\u003eb7d7bef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14014\"\u003e#14014\u003c/a\u003e from bluetech/compat-note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bd08e85ac76614ff5ca9ae338aee8d8b06c8fae0\"\u003e\u003ccode\u003ebd08e85\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14013\"\u003e#14013\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/922b60377...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bc783862991241c442c9f9c068e51737ec15ea10\"\u003e\u003ccode\u003ebc78386\u003c/code\u003e\u003c/a\u003e Add CLI options reference documentation (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13930\"\u003e#13930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/5a4e398ce89bc23d2cf3fd98c042fdffb6fa8afa\"\u003e\u003ccode\u003e5a4e398\u003c/code\u003e\u003c/a\u003e Fix docs typo (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14005\"\u003e#14005\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14008\"\u003e#14008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/d7ae6df394398168bf9d926f803c26849c8f07ee\"\u003e\u003ccode\u003ed7ae6df\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14006\"\u003e#14006\u003c/a\u003e from pytest-dev/maintenance/update-plugin-list-tmpl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/556f6a22e12d13d1ffeceaf64424eb95d5e0fb87\"\u003e\u003ccode\u003e556f6a2\u003c/code\u003e\u003c/a\u003e pre-commit: fix rst-lint after new release (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13999\"\u003e#13999\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14001\"\u003e#14001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c60fbe63a26f64a42738e3f3527a8f79024fdf50\"\u003e\u003ccode\u003ec60fbe6\u003c/code\u003e\u003c/a\u003e Fix quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10 ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/73d9b011183d9a1c4a7007c1119d97a6e627788e\"\u003e\u003ccode\u003e73d9b01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13995\"\u003e#13995\u003c/a\u003e from nicoddemus/patchback/backports/9.0.x/1b5200c0f...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.4.2...9.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/TatanMP/PrimerNLP/pull/6","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/TatanMP%2FPrimerNLP/issues/6","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/6/packages"},{"uuid":"3754936775","node_id":"PR_kwDOQE992c66M9yt","number":5,"state":"closed","title":"⬆ Bump the python-packages group across 1 directory with 5 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-01-19T21:03:09.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-22T19:22:12.000Z","updated_at":"2026-01-19T21:03:10.000Z","time_to_close":2425257,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"⬆ Bump","group_name":"python-packages","update_count":5,"packages":[{"name":"fastparquet","old_version":"2024.11.0","new_version":"2025.12.0","repository_url":"https://github.com/dask/fastparquet"},{"name":"scikit-learn","old_version":"1.7.2","new_version":"1.8.0","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"watermark","old_version":"2.5.0","new_version":"2.6.0","repository_url":"https://github.com/rasbt/watermark"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"}],"path":null,"ecosystem":"conda"},"body":"Bumps the python-packages group with 5 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastparquet](https://github.com/dask/fastparquet) | `2024.11.0` | `2025.12.0` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.7.2` | `1.8.0` |\n| [watermark](https://github.com/rasbt/watermark) | `2.5.0` | `2.6.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.5.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.2` | `9.0.2` |\n\n\nUpdates `fastparquet` from 2024.11.0 to 2025.12.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/b94076c40095607f20be6a1aeb683569c0302027\"\u003e\u003ccode\u003eb94076c\u003c/code\u003e\u003c/a\u003e build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/7630de8795465c0b42610fadf736bd5441c38714\"\u003e\u003ccode\u003e7630de8\u003c/code\u003e\u003c/a\u003e build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/e4bd5e69b8bf3d5836948e13d2e0ce139060d9be\"\u003e\u003ccode\u003ee4bd5e6\u003c/code\u003e\u003c/a\u003e update wheel GHA versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/af08bab65df254e0483e8e66eb0b42b246d89fd3\"\u003e\u003ccode\u003eaf08bab\u003c/code\u003e\u003c/a\u003e changelog (\u003ca href=\"https://redirect.github.com/dask/fastparquet/issues/969\"\u003e#969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/f4524139b64322dff2822e18182cdf4f52b7a51a\"\u003e\u003ccode\u003ef452413\u003c/code\u003e\u003c/a\u003e Add CoC (\u003ca href=\"https://redirect.github.com/dask/fastparquet/issues/967\"\u003e#967\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/66b1044d1265c828298b605605e2f7070bc7897d\"\u003e\u003ccode\u003e66b1044\u003c/code\u003e\u003c/a\u003e CI: fix pandas build (\u003ca href=\"https://redirect.github.com/dask/fastparquet/issues/964\"\u003e#964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/e975b92a9c47253fac71e7fcec074331e26fc001\"\u003e\u003ccode\u003ee975b92\u003c/code\u003e\u003c/a\u003e Modernise cython (\u003ca href=\"https://redirect.github.com/dask/fastparquet/issues/966\"\u003e#966\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/83b3f1d22bfd2fd6345c07c7985fd9e4c4d8843f\"\u003e\u003ccode\u003e83b3f1d\u003c/code\u003e\u003c/a\u003e Test: makes tests fail on xpass (\u003ca href=\"https://redirect.github.com/dask/fastparquet/issues/965\"\u003e#965\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/230909717272c9e9257a4e321a66d071ece4ef4d\"\u003e\u003ccode\u003e2309097\u003c/code\u003e\u003c/a\u003e add goat link (\u003ca href=\"https://redirect.github.com/dask/fastparquet/issues/963\"\u003e#963\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/f34291409d359522578d7bf5ebd8bf0d10fa304b\"\u003e\u003ccode\u003ef342914\u003c/code\u003e\u003c/a\u003e Fix timestamp conversion factor (\u003ca href=\"https://redirect.github.com/dask/fastparquet/issues/960\"\u003e#960\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/dask/fastparquet/issues/961\"\u003e#961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/dask/fastparquet/compare/2024.11.0...2025.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `scikit-learn` from 1.7.2 to 1.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/scikit-learn/scikit-learn/releases\"\u003escikit-learn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 1.8.0\u003c/h2\u003e\n\u003cp\u003eWe're happy to announce the 1.8.0 release.\u003c/p\u003e\n\u003cp\u003eYou can read the release highlights under \u003ca href=\"https://scikit-learn.org/stable/auto_examples/release_highlights/plot_release_highlights_1_8_0.html\"\u003ehttps://scikit-learn.org/stable/auto_examples/release_highlights/plot_release_highlights_1_8_0.html\u003c/a\u003e and the long version of the change log under \u003ca href=\"https://scikit-learn.org/stable/whats_new/v1.8.html\"\u003ehttps://scikit-learn.org/stable/whats_new/v1.8.html\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis version supports Python versions 3.11 to 3.14 and features support of free-threaded CPython.\u003c/p\u003e\n\u003cp\u003eYou can upgrade with pip as usual:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epip install -U scikit-learn\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThe conda-forge builds can be installed using:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge scikit-learn\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/646da0f072a8afef6a980aa427a710311e67eb9d\"\u003e\u003ccode\u003e646da0f\u003c/code\u003e\u003c/a\u003e [cd build]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/4f4f2831de348859efc5d8298cbf37e212a1efac\"\u003e\u003ccode\u003e4f4f283\u003c/code\u003e\u003c/a\u003e Generate changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/967dcde6dae92a6f9eafa804b5d93e8fdfd08f26\"\u003e\u003ccode\u003e967dcde\u003c/code\u003e\u003c/a\u003e Set version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/cb1424bf0d548d6fa9fdef2f91bb00636f484f10\"\u003e\u003ccode\u003ecb1424b\u003c/code\u003e\u003c/a\u003e DOC Release highlights for 1.8 (\u003ca href=\"https://redirect.github.com/scikit-learn/scikit-learn/issues/32809\"\u003e#32809\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/5645b27b985486d6b75bb75e4929faa4da574173\"\u003e\u003ccode\u003e5645b27\u003c/code\u003e\u003c/a\u003e :lock: :robot: CI Update lock files for main CI build(s) :lock: :robot: (\u003ca href=\"https://redirect.github.com/scikit-learn/scikit-learn/issues/32859\"\u003e#32859\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/6b9fb1189957962cd0e4988d137af312ad09008f\"\u003e\u003ccode\u003e6b9fb11\u003c/code\u003e\u003c/a\u003e :lock: :robot: CI Update lock files for free-threaded CI build(s) :lock: :rob...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/a0f6d88d05d52594785455b570ed142c912568e7\"\u003e\u003ccode\u003ea0f6d88\u003c/code\u003e\u003c/a\u003e :lock: :robot: CI Update lock files for array-api CI build(s) :lock: :robot: ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/c1de8fc595fce930c5ce1792faeab8d80a4fecc2\"\u003e\u003ccode\u003ec1de8fc\u003c/code\u003e\u003c/a\u003e FIX Make \u003ccode\u003eget_namespace\u003c/code\u003e handle pandas dataframe input (\u003ca href=\"https://redirect.github.com/scikit-learn/scikit-learn/issues/32838\"\u003e#32838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/764249a255ba4110685a772836f06477c40cf8a3\"\u003e\u003ccode\u003e764249a\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e_safe_indexing\u003c/code\u003e with non integer arrays on array API inputs (\u003ca href=\"https://redirect.github.com/scikit-learn/scikit-learn/issues/32840\"\u003e#32840\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/eca5e0ab2a16844c57fff675c2d017af2d8a570b\"\u003e\u003ccode\u003eeca5e0a\u003c/code\u003e\u003c/a\u003e FIX Add new default max_samples=None in Bagging estimators (\u003ca href=\"https://redirect.github.com/scikit-learn/scikit-learn/issues/32825\"\u003e#32825\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/scikit-learn/scikit-learn/compare/1.7.2...1.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `watermark` from 2.5.0 to 2.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rasbt/watermark/releases\"\u003ewatermark's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.6.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdds a new \u003ccode\u003e--check_jupyter\u003c/code\u003e flag to report which notebook environment is used (e.g., Colab, Jupyter Notebook, JupyterLab, VS Code). (\u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/99\"\u003e#102\u003c/a\u003e, contributed by \u003ca href=\"https://github.com/mariam851\"\u003eMariam Zakaria\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdds a new \u003ccode\u003e--check_latest\u003c/code\u003e flag to check whether newer package versions are available. (\u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/99\"\u003e#102\u003c/a\u003e, contributed by \u003ca href=\"https://github.com/mariam851\"\u003eMariam Zakaria\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdds a new \u003ccode\u003e--python_installation\u003c/code\u003e flag to provide information about how Python was installed. (\u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/99\"\u003e#102\u003c/a\u003e, contributed by \u003ca href=\"https://github.com/mariam851\"\u003eMariam Zakaria\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeat check latest 87 by \u003ca href=\"https://github.com/mariam851\"\u003e\u003ccode\u003e@​mariam851\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/110\"\u003erasbt/watermark#110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Add --filename (-fn) option to display notebook path. Closes \u003ca href=\"https://redirect.github.com/rasbt/watermark/issues/25\"\u003e#25\u003c/a\u003e by \u003ca href=\"https://github.com/mariam851\"\u003e\u003ccode\u003e@​mariam851\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/103\"\u003erasbt/watermark#103\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix KeyError in version lookup and implement fallback  by \u003ca href=\"https://github.com/mariam851\"\u003e\u003ccode\u003e@​mariam851\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/106\"\u003erasbt/watermark#106\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix timezone space 73 by \u003ca href=\"https://github.com/mariam851\"\u003e\u003ccode\u003e@​mariam851\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/107\"\u003erasbt/watermark#107\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat jupyter env 93 by \u003ca href=\"https://github.com/mariam851\"\u003e\u003ccode\u003e@​mariam851\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/108\"\u003erasbt/watermark#108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat python install 89 by \u003ca href=\"https://github.com/mariam851\"\u003e\u003ccode\u003e@​mariam851\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/109\"\u003erasbt/watermark#109\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/mariam851\"\u003e\u003ccode\u003e@​mariam851\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/110\"\u003erasbt/watermark#110\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rasbt/watermark/compare/v2.5.1...v2.6.0\"\u003ehttps://github.com/rasbt/watermark/compare/v2.5.1...v2.6.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.5.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efixed typo by \u003ca href=\"https://github.com/d-kleine\"\u003e\u003ccode\u003e@​d-kleine\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/96\"\u003erasbt/watermark#96\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump version to 2.5.1.dev by \u003ca href=\"https://github.com/rasbt\"\u003e\u003ccode\u003e@​rasbt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/97\"\u003erasbt/watermark#97\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump to 2.5.1.dev1 for build testing by \u003ca href=\"https://github.com/rasbt\"\u003e\u003ccode\u003e@​rasbt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/98\"\u003erasbt/watermark#98\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixed -d and -t flags by \u003ca href=\"https://github.com/d-kleine\"\u003e\u003ccode\u003e@​d-kleine\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/99\"\u003erasbt/watermark#99\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eList imported packages in alphabetical order. by \u003ca href=\"https://github.com/vlulla\"\u003e\u003ccode\u003e@​vlulla\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/102\"\u003erasbt/watermark#102\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd auto deployment workflow by \u003ca href=\"https://github.com/rasbt\"\u003e\u003ccode\u003e@​rasbt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/105\"\u003erasbt/watermark#105\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/vlulla\"\u003e\u003ccode\u003e@​vlulla\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/102\"\u003erasbt/watermark#102\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rasbt/watermark/compare/v2.5.0...v2.5.1\"\u003ehttps://github.com/rasbt/watermark/compare/v2.5.0...v2.5.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rasbt/watermark/commit/b857ecf279a350dc6b6f96de2d5d3073b063b32d\"\u003e\u003ccode\u003eb857ecf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rasbt/watermark/issues/110\"\u003e#110\u003c/a\u003e from mariam851/feat-check-latest-87\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rasbt/watermark/commit/2691f7f2295e9f4b351acaa86616bcb57977ad30\"\u003e\u003ccode\u003e2691f7f\u003c/code\u003e\u003c/a\u003e improvements and docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rasbt/watermark/commit/972c9736e7ecfea40d23d58e0732e0371848479c\"\u003e\u003ccode\u003e972c973\u003c/code\u003e\u003c/a\u003e Feat \u003ca href=\"https://redirect.github.com/rasbt/watermark/issues/87\"\u003e#87\u003c/a\u003e: Add --check_latest flag to check package updates via PyPI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rasbt/watermark/commit/8ad19fc154a0e3cafe20e0c682531b4dec715993\"\u003e\u003ccode\u003e8ad19fc\u003c/code\u003e\u003c/a\u003e Feat \u003ca href=\"https://redirect.github.com/rasbt/watermark/issues/89\"\u003e#89\u003c/a\u003e: Add --python_installation flag\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rasbt/watermark/commit/a4e8c123678898a90480cee23b0f377e88233fd5\"\u003e\u003ccode\u003ea4e8c12\u003c/code\u003e\u003c/a\u003e Feat \u003ca href=\"https://redirect.github.com/rasbt/watermark/issues/93\"\u003e#93\u003c/a\u003e: Add --jupyter_env flag to detect environment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rasbt/watermark/commit/0b4948416de7fcc534c83ce7ff6053a6cab600ca\"\u003e\u003ccode\u003e0b49484\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/rasbt/watermark/issues/73\"\u003e#73\u003c/a\u003e: Add space before timezone and update date format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rasbt/watermark/commit/a19ec2a5320cb9d59c7029c557b97da3b2b83a91\"\u003e\u003ccode\u003ea19ec2a\u003c/code\u003e\u003c/a\u003e Fix KeyError in version lookup and implement fallback (\u003ca href=\"https://redirect.github.com/rasbt/watermark/issues/100\"\u003e#100\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rasbt/watermark/commit/3ec302e077c533844e094040bad6a07669026c64\"\u003e\u003ccode\u003e3ec302e\u003c/code\u003e\u003c/a\u003e Update publish workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rasbt/watermark/commit/e7567da961065076e9fa56476ac4f22b483f83cf\"\u003e\u003ccode\u003ee7567da\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rasbt/watermark/issues/105\"\u003e#105\u003c/a\u003e from rasbt/autodeploy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rasbt/watermark/commit/9a3d0c4dc53170e9d6f5983adf340177b1ce6154\"\u003e\u003ccode\u003e9a3d0c4\u003c/code\u003e\u003c/a\u003e update\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rasbt/watermark/compare/v2.5.0...v2.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit` from 4.3.0 to 4.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.5.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.5.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.4.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases for \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be deprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.5.1 - 2025-12-16\u003c/h1\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.5.0 - 2025-11-22\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.4.0 - 2025-11-08\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases\nfor \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be\ndeprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/8a0630ca1aa7f6d5665effe674ebe2022af17919\"\u003e\u003ccode\u003e8a0630c\u003c/code\u003e\u003c/a\u003e v4.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fcbc745744377ef2c9fe6a7e1a21c67d797933dc\"\u003e\u003ccode\u003efcbc745\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e from pre-commit/empty-setup-py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/51592eececd13b99c40ec477ad8f810799147227\"\u003e\u003ccode\u003e51592ee\u003c/code\u003e\u003c/a\u003e fix python local template when artifact dirs are present\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/67e8faf80baffcb4b79c31b89ca9a413a1cd6776\"\u003e\u003ccode\u003e67e8faf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3596\"\u003e#3596\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c251e6b6d011b3b262339dc8e109de29b0ff8db1\"\u003e\u003ccode\u003ec251e6b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/98ccafa3ce42b846b9a9be9ed73fbbec7415496d\"\u003e\u003ccode\u003e98ccafa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3593\"\u003e#3593\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/48953556d06f8cdb4248002c1a0044e69e0916b3\"\u003e\u003ccode\u003e4895355\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2cedd58e691f4d3bc6ab266c7d7c28464c3502be\"\u003e\u003ccode\u003e2cedd58\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3588\"\u003e#3588\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/465192d7de58d569776eaaa818c94cb2b962d436\"\u003e\u003ccode\u003e465192d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fd42f96874279c4f65363bfea5238714419e54d7\"\u003e\u003ccode\u003efd42f96\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3586\"\u003e#3586\u003c/a\u003e from pre-commit/zipapp-sha256-file-not-needed\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.3.0...v4.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.4.2 to 9.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13965\"\u003e#13965\u003c/a\u003e: Fixed quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/4492\"\u003e#4492\u003c/a\u003e: The API Reference now contains cross-reference-able documentation of \u003ccode\u003epytest's command-line flags \u0026lt;command-line-flags\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e9.0.1\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.1 (2025-11-12)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13895\"\u003e#13895\u003c/a\u003e: Restore support for skipping tests via \u003ccode\u003eraise unittest.SkipTest\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress plugin added in pytest 9.0 is now automatically disabled when iTerm2 is detected, it generated desktop notifications instead of the desired functionality.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the verbosity settings in the API reference from number to string.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13910\"\u003e#13910\u003c/a\u003e: Fixed \u003c!-- raw HTML omitted --\u003eUserWarning: Do not expect file_or_dir\u003c!-- raw HTML omitted --\u003e on some earlier Python 3.12 and 3.13 point versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePackaging updates and notes for downstreams\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13891\"\u003e#13891\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13942\"\u003e#13942\u003c/a\u003e: The CI/CD part of the release automation is now capable of\ncreating GitHub Releases without having a Git checkout on\ndisk -- by \u003ccode\u003ebluetech\u003c/code\u003e and \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/3d10b5148e03eb82b3ee29181dbdc73cf82699e2\"\u003e\u003ccode\u003e3d10b51\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/188750b725add8c3400eee6fbb6b80559c296d69\"\u003e\u003ccode\u003e188750b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14030\"\u003e#14030\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/1e4b01d1f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7d7bef90cb9a6db8ac1d3dd5b9ae0eb9abd6c58\"\u003e\u003ccode\u003eb7d7bef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14014\"\u003e#14014\u003c/a\u003e from bluetech/compat-note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bd08e85ac76614ff5ca9ae338aee8d8b06c8fae0\"\u003e\u003ccode\u003ebd08e85\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14013\"\u003e#14013\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/922b60377...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bc783862991241c442c9f9c068e51737ec15ea10\"\u003e\u003ccode\u003ebc78386\u003c/code\u003e\u003c/a\u003e Add CLI options reference documentation (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13930\"\u003e#13930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/5a4e398ce89bc23d2cf3fd98c042fdffb6fa8afa\"\u003e\u003ccode\u003e5a4e398\u003c/code\u003e\u003c/a\u003e Fix docs typo (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14005\"\u003e#14005\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14008\"\u003e#14008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/d7ae6df394398168bf9d926f803c26849c8f07ee\"\u003e\u003ccode\u003ed7ae6df\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14006\"\u003e#14006\u003c/a\u003e from pytest-dev/maintenance/update-plugin-list-tmpl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/556f6a22e12d13d1ffeceaf64424eb95d5e0fb87\"\u003e\u003ccode\u003e556f6a2\u003c/code\u003e\u003c/a\u003e pre-commit: fix rst-lint after new release (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13999\"\u003e#13999\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14001\"\u003e#14001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c60fbe63a26f64a42738e3f3527a8f79024fdf50\"\u003e\u003ccode\u003ec60fbe6\u003c/code\u003e\u003c/a\u003e Fix quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10 ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/73d9b011183d9a1c4a7007c1119d97a6e627788e\"\u003e\u003ccode\u003e73d9b01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13995\"\u003e#13995\u003c/a\u003e from nicoddemus/patchback/backports/9.0.x/1b5200c0f...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.4.2...9.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/anasperezhoyos/nlp-upb_ana_sofia/pull/5","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/anasperezhoyos%2Fnlp-upb_ana_sofia/issues/5","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/5/packages"},{"uuid":"3754395150","node_id":"PR_kwDOQE961866LJOG","number":6,"state":"open","title":"⬆ Bump the python-packages group across 1 directory with 7 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-12-22T16:26:37.000Z","updated_at":"2025-12-22T16:26:38.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"⬆ Bump","group_name":"python-packages","update_count":7,"packages":[{"name":"fastparquet","old_version":"2024.11.0","new_version":"2025.12.0","repository_url":"https://github.com/dask/fastparquet"},{"name":"numpy","old_version":"2.3.4","new_version":"2.4.0","repository_url":"https://github.com/numpy/numpy"},{"name":"regex","old_version":"2025.10.23","new_version":"2025.11.3","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"scikit-learn","old_version":"1.7.2","new_version":"1.8.0","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"watermark","old_version":"2.5.0","new_version":"2.6.0","repository_url":"https://github.com/rasbt/watermark"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"}],"path":null,"ecosystem":"conda"},"body":"Bumps the python-packages group with 7 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastparquet](https://github.com/dask/fastparquet) | `2024.11.0` | `2025.12.0` |\n| [numpy](https://github.com/numpy/numpy) | `2.3.4` | `2.4.0` |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2025.10.23` | `2025.11.3` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.7.2` | `1.8.0` |\n| [watermark](https://github.com/rasbt/watermark) | `2.5.0` | `2.6.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.5.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.2` | `9.0.2` |\n\n\nUpdates `fastparquet` from 2024.11.0 to 2025.12.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/b94076c40095607f20be6a1aeb683569c0302027\"\u003e\u003ccode\u003eb94076c\u003c/code\u003e\u003c/a\u003e build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/7630de8795465c0b42610fadf736bd5441c38714\"\u003e\u003ccode\u003e7630de8\u003c/code\u003e\u003c/a\u003e build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/e4bd5e69b8bf3d5836948e13d2e0ce139060d9be\"\u003e\u003ccode\u003ee4bd5e6\u003c/code\u003e\u003c/a\u003e update wheel GHA versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/af08bab65df254e0483e8e66eb0b42b246d89fd3\"\u003e\u003ccode\u003eaf08bab\u003c/code\u003e\u003c/a\u003e changelog (\u003ca href=\"https://redirect.github.com/dask/fastparquet/issues/969\"\u003e#969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/f4524139b64322dff2822e18182cdf4f52b7a51a\"\u003e\u003ccode\u003ef452413\u003c/code\u003e\u003c/a\u003e Add CoC (\u003ca href=\"https://redirect.github.com/dask/fastparquet/issues/967\"\u003e#967\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/66b1044d1265c828298b605605e2f7070bc7897d\"\u003e\u003ccode\u003e66b1044\u003c/code\u003e\u003c/a\u003e CI: fix pandas build (\u003ca href=\"https://redirect.github.com/dask/fastparquet/issues/964\"\u003e#964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/e975b92a9c47253fac71e7fcec074331e26fc001\"\u003e\u003ccode\u003ee975b92\u003c/code\u003e\u003c/a\u003e Modernise cython (\u003ca href=\"https://redirect.github.com/dask/fastparquet/issues/966\"\u003e#966\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/83b3f1d22bfd2fd6345c07c7985fd9e4c4d8843f\"\u003e\u003ccode\u003e83b3f1d\u003c/code\u003e\u003c/a\u003e Test: makes tests fail on xpass (\u003ca href=\"https://redirect.github.com/dask/fastparquet/issues/965\"\u003e#965\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/230909717272c9e9257a4e321a66d071ece4ef4d\"\u003e\u003ccode\u003e2309097\u003c/code\u003e\u003c/a\u003e add goat link (\u003ca href=\"https://redirect.github.com/dask/fastparquet/issues/963\"\u003e#963\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/f34291409d359522578d7bf5ebd8bf0d10fa304b\"\u003e\u003ccode\u003ef342914\u003c/code\u003e\u003c/a\u003e Fix timestamp conversion factor (\u003ca href=\"https://redirect.github.com/dask/fastparquet/issues/960\"\u003e#960\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/dask/fastparquet/issues/961\"\u003e#961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/dask/fastparquet/compare/2024.11.0...2025.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `numpy` from 2.3.4 to 2.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/numpy/numpy/releases\"\u003enumpy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.0 (Dec 20, 2025)\u003c/h2\u003e\n\u003ch1\u003eNumPy 2.4.0 Release Notes\u003c/h1\u003e\n\u003cp\u003eThe NumPy 2.4.0 release continues the work to improve free threaded Python\nsupport, user dtypes implementation, and annotations. There are many expired\ndeprecations and bug fixes as well.\u003c/p\u003e\n\u003cp\u003eThis release supports Python versions 3.11-3.14\u003c/p\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cp\u003eApart from annotations and \u003ccode\u003esame_value\u003c/code\u003e kwarg, the 2.4 highlights are mostly\nof interest to downstream developers. They should help in implementing new user\ndtypes.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMany annotation improvements. In particular, runtime signature introspection.\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003ecasting\u003c/code\u003e kwarg \u003ccode\u003e'same_value'\u003c/code\u003e for casting by value.\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003ePyUFunc_AddLoopsFromSpec\u003c/code\u003e function that can be used to add user sort\nloops using the \u003ccode\u003eArrayMethod\u003c/code\u003e API.\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003e__numpy_dtype__\u003c/code\u003e protocol.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations\u003c/h2\u003e\n\u003ch3\u003eSetting the \u003ccode\u003estrides\u003c/code\u003e attribute is deprecated\u003c/h3\u003e\n\u003cp\u003eSetting the strides attribute is now deprecated since mutating\nan array is unsafe if an array is shared, especially by multiple\nthreads. As an alternative, you can create a new view (no copy) via:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003enp.lib.stride_tricks.strided_window_view\u003c/code\u003e if applicable,\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003enp.lib.stride_tricks.as_strided\u003c/code\u003e for the general case,\u003c/li\u003e\n\u003cli\u003eor the \u003ccode\u003enp.ndarray\u003c/code\u003e constructor (\u003ccode\u003ebuffer\u003c/code\u003e is the original array) for a\nlight-weight version.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e(\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/28925\"\u003egh-28925\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003ePositional \u003ccode\u003eout\u003c/code\u003e argument to \u003ccode\u003enp.maximum\u003c/code\u003e, \u003ccode\u003enp.minimum\u003c/code\u003e is deprecated\u003c/h3\u003e\n\u003cp\u003ePassing the output array \u003ccode\u003eout\u003c/code\u003e positionally to \u003ccode\u003enumpy.maximum\u003c/code\u003e and\n\u003ccode\u003enumpy.minimum\u003c/code\u003e is deprecated. For example, \u003ccode\u003enp.maximum(a, b, c)\u003c/code\u003e will emit\na deprecation warning, since \u003ccode\u003ec\u003c/code\u003e is treated as the output buffer rather than\na third input.\u003c/p\u003e\n\u003cp\u003eAlways pass the output with the keyword form, e.g. \u003ccode\u003enp.maximum(a, b, out=c)\u003c/code\u003e.\nThis makes intent clear and simplifies type annotations.\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/29052\"\u003egh-29052\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003e\u003ccode\u003ealign=\u003c/code\u003e must be passed as boolean to \u003ccode\u003enp.dtype()\u003c/code\u003e\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/numpy/numpy/blob/main/doc/RELEASE_WALKTHROUGH.rst\"\u003enumpy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eUpdate 2.4.0 milestones\u003c/h2\u003e\n\u003cp\u003eLook at the issues/prs with 2.4.0 milestones and either push them off to a\nlater version, or maybe remove the milestone. You may need to add a milestone.\u003c/p\u003e\n\u003ch2\u003eCheck the numpy-release repo\u003c/h2\u003e\n\u003cp\u003eThe things to check are the \u003ccode\u003ecibuildwheel\u003c/code\u003e version in\n\u003ccode\u003e.github/workflows/wheels.yml\u003c/code\u003e and the \u003ccode\u003eopenblas\u003c/code\u003e versions in\n\u003ccode\u003eopenblas_requirements.txt\u003c/code\u003e.\u003c/p\u003e\n\u003ch1\u003eMake a release PR\u003c/h1\u003e\n\u003cp\u003eFour documents usually need to be updated or created for the release PR:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe changelog\u003c/li\u003e\n\u003cli\u003eThe release notes\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003e.mailmap\u003c/code\u003e file\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003epyproject.toml\u003c/code\u003e file\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThese changes should be made in an ordinary PR against the maintenance branch.\nOther small, miscellaneous fixes may be part of this PR. The commit message\nmight be something like::\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eREL: Prepare for the NumPy 2.4.0 release\n\u003cul\u003e\n\u003cli\u003eCreate 2.4.0-changelog.rst.\u003c/li\u003e\n\u003cli\u003eUpdate 2.4.0-notes.rst.\u003c/li\u003e\n\u003cli\u003eUpdate .mailmap.\u003c/li\u003e\n\u003cli\u003eUpdate pyproject.toml\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSet the release version\u003c/h2\u003e\n\u003cp\u003eCheck the \u003ccode\u003epyproject.toml\u003c/code\u003e file and set the release version and update the\nclassifier if needed::\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e$ gvim pyproject.toml\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003eCheck the \u003ccode\u003edoc/source/release.rst\u003c/code\u003e file\u003c/h2\u003e\n\u003cp\u003emake sure that the release notes have an entry in the \u003ccode\u003erelease.rst\u003c/code\u003e file::\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/numpy/numpy/commit/c5ab79c14c98bfda1e60770ffa23a6130f8267b7\"\u003e\u003ccode\u003ec5ab79c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30487\"\u003e#30487\u003c/a\u003e from charris/prepare-2.4.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/05e379a9c925dbeca59851b881c64ba098c5abab\"\u003e\u003ccode\u003e05e379a\u003c/code\u003e\u003c/a\u003e REL: Prepare for the NumPy 2.4.0 release (2)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/485f1c40703f1c43be708be4c7b7a21b10d90337\"\u003e\u003ccode\u003e485f1c4\u003c/code\u003e\u003c/a\u003e REL: Prepare for the NumPy 2.4.0 release (1) (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30486\"\u003e#30486\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/c683481c9bace3c6a3ba487f50b34539832377a8\"\u003e\u003ccode\u003ec683481\u003c/code\u003e\u003c/a\u003e REL: Prepare for the NumPy 2.4.0 release (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30439\"\u003e#30439\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/11d9ed27e07637aa92b8d43bf2ad380a2b8c5c01\"\u003e\u003ccode\u003e11d9ed2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30459\"\u003e#30459\u003c/a\u003e from charris/backport-30456\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/2a17ddb25580f20f27c76327733449434c302032\"\u003e\u003ccode\u003e2a17ddb\u003c/code\u003e\u003c/a\u003e TYP: restore \u003ccode\u003egeneric.__hash__\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30456\"\u003e#30456\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/d04a4293bf8c8345f072891433ddb8c483785a6b\"\u003e\u003ccode\u003ed04a429\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30432\"\u003e#30432\u003c/a\u003e from charris/backport-30426\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/f94a148bc07fd167275f167995edce57b4f0b8c5\"\u003e\u003ccode\u003ef94a148\u003c/code\u003e\u003c/a\u003e fix more data races in mtrand.pyx (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30426\"\u003e#30426\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/06a9d4219291f5a15eed54de9314f72b74c41aed\"\u003e\u003ccode\u003e06a9d42\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30420\"\u003e#30420\u003c/a\u003e from charris/backport-30418\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/30819cd952a4a92852d619b5dd720c63fbcab6bd\"\u003e\u003ccode\u003e30819cd\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30419\"\u003e#30419\u003c/a\u003e from charris/backport-30373\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/numpy/numpy/compare/v2.3.4...v2.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `regex` from 2025.10.23 to 2025.11.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mrabarnett/mrab-regex/blob/hg/changelog.txt\"\u003eregex's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eVersion: 2025.11.3\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eGit issue 594: Support relative PARNO in recursive subpatterns\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2025.10.23\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e'setup.py' was missing from the source distribution.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2025.10.22\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed test in main.yml.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2025.10.21\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eMoved tests into subfolder.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2025.10.20\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eRe-organised files.\n\u003cp\u003eUpdated to Unicode 17.0.0.\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eVersion: 2025.9.20\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eEnable free-threading support in cibuildwheel in another place.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2025.9.19\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eEnable free-threading support in cibuildwheel.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2025.9.18\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eGit issue 565: Support the free-threaded build of CPython 3.13\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2025.9.1\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eGit PR 585: Fix AttributeError: 'AnyAll' object has no attribute '_key'\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2025.8.29\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eGit issue 584: AttributeError: 'AnyAll' object has no attribute 'positive'\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2025.7.34\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eGit issue 575: Issues with ASCII/Unicode modifiers\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2025.7.33\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eUpdated main.yml and pyproject.toml.\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/b01d6e7349f1f754f9576e85aa19575acff0c839\"\u003e\u003ccode\u003eb01d6e7\u003c/code\u003e\u003c/a\u003e Git issue 594: Support relative PARNO in recursive subpatterns\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/dd256cd36e6d7da215bb82be8e9b6e846e1140e5\"\u003e\u003ccode\u003edd256cd\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/mrabarnett/mrab-regex/issues/591\"\u003e#591\u003c/a\u003e from foosel/ci-tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/1b2ca8c31d8d256f398576ddd3b8c27033d72a63\"\u003e\u003ccode\u003e1b2ca8c\u003c/code\u003e\u003c/a\u003e ci: run tests against sdist\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/609733abe4d957b02406eeec59240850b03ff34d\"\u003e\u003ccode\u003e609733a\u003c/code\u003e\u003c/a\u003e ci: only release if the tests are green\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/fa08ff1ed46ffeb7e618a7def415ddf89d888112\"\u003e\u003ccode\u003efa08ff1\u003c/code\u003e\u003c/a\u003e ci: make sure to always run tests against full matrix\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2025.10.23...2025.11.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `scikit-learn` from 1.7.2 to 1.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/scikit-learn/scikit-learn/releases\"\u003escikit-learn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 1.8.0\u003c/h2\u003e\n\u003cp\u003eWe're happy to announce the 1.8.0 release.\u003c/p\u003e\n\u003cp\u003eYou can read the release highlights under \u003ca href=\"https://scikit-learn.org/stable/auto_examples/release_highlights/plot_release_highlights_1_8_0.html\"\u003ehttps://scikit-learn.org/stable/auto_examples/release_highlights/plot_release_highlights_1_8_0.html\u003c/a\u003e and the long version of the change log under \u003ca href=\"https://scikit-learn.org/stable/whats_new/v1.8.html\"\u003ehttps://scikit-learn.org/stable/whats_new/v1.8.html\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis version supports Python versions 3.11 to 3.14 and features support of free-threaded CPython.\u003c/p\u003e\n\u003cp\u003eYou can upgrade with pip as usual:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epip install -U scikit-learn\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThe conda-forge builds can be installed using:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge scikit-learn\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/646da0f072a8afef6a980aa427a710311e67eb9d\"\u003e\u003ccode\u003e646da0f\u003c/code\u003e\u003c/a\u003e [cd build]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/4f4f2831de348859efc5d8298cbf37e212a1efac\"\u003e\u003ccode\u003e4f4f283\u003c/code\u003e\u003c/a\u003e Generate changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/967dcde6dae92a6f9eafa804b5d93e8fdfd08f26\"\u003e\u003ccode\u003e967dcde\u003c/code\u003e\u003c/a\u003e Set version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/cb1424bf0d548d6fa9fdef2f91bb00636f484f10\"\u003e\u003ccode\u003ecb1424b\u003c/code\u003e\u003c/a\u003e DOC Release highlights for 1.8 (\u003ca href=\"https://redirect.github.com/scikit-learn/scikit-learn/issues/32809\"\u003e#32809\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/5645b27b985486d6b75bb75e4929faa4da574173\"\u003e\u003ccode\u003e5645b27\u003c/code\u003e\u003c/a\u003e :lock: :robot: CI Update lock files for main CI build(s) :lock: :robot: (\u003ca href=\"https://redirect.github.com/scikit-learn/scikit-learn/issues/32859\"\u003e#32859\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/6b9fb1189957962cd0e4988d137af312ad09008f\"\u003e\u003ccode\u003e6b9fb11\u003c/code\u003e\u003c/a\u003e :lock: :robot: CI Update lock files for free-threaded CI build(s) :lock: :rob...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/a0f6d88d05d52594785455b570ed142c912568e7\"\u003e\u003ccode\u003ea0f6d88\u003c/code\u003e\u003c/a\u003e :lock: :robot: CI Update lock files for array-api CI build(s) :lock: :robot: ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/c1de8fc595fce930c5ce1792faeab8d80a4fecc2\"\u003e\u003ccode\u003ec1de8fc\u003c/code\u003e\u003c/a\u003e FIX Make \u003ccode\u003eget_namespace\u003c/code\u003e handle pandas dataframe input (\u003ca href=\"https://redirect.github.com/scikit-learn/scikit-learn/issues/32838\"\u003e#32838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/764249a255ba4110685a772836f06477c40cf8a3\"\u003e\u003ccode\u003e764249a\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e_safe_indexing\u003c/code\u003e with non integer arrays on array API inputs (\u003ca href=\"https://redirect.github.com/scikit-learn/scikit-learn/issues/32840\"\u003e#32840\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/eca5e0ab2a16844c57fff675c2d017af2d8a570b\"\u003e\u003ccode\u003eeca5e0a\u003c/code\u003e\u003c/a\u003e FIX Add new default max_samples=None in Bagging estimators (\u003ca href=\"https://redirect.github.com/scikit-learn/scikit-learn/issues/32825\"\u003e#32825\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/scikit-learn/scikit-learn/compare/1.7.2...1.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `watermark` from 2.5.0 to 2.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rasbt/watermark/releases\"\u003ewatermark's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.6.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdds a new \u003ccode\u003e--check_jupyter\u003c/code\u003e flag to report which notebook environment is used (e.g., Colab, Jupyter Notebook, JupyterLab, VS Code). (\u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/99\"\u003e#102\u003c/a\u003e, contributed by \u003ca href=\"https://github.com/mariam851\"\u003eMariam Zakaria\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdds a new \u003ccode\u003e--check_latest\u003c/code\u003e flag to check whether newer package versions are available. (\u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/99\"\u003e#102\u003c/a\u003e, contributed by \u003ca href=\"https://github.com/mariam851\"\u003eMariam Zakaria\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdds a new \u003ccode\u003e--python_installation\u003c/code\u003e flag to provide information about how Python was installed. (\u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/99\"\u003e#102\u003c/a\u003e, contributed by \u003ca href=\"https://github.com/mariam851\"\u003eMariam Zakaria\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeat check latest 87 by \u003ca href=\"https://github.com/mariam851\"\u003e\u003ccode\u003e@​mariam851\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/110\"\u003erasbt/watermark#110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Add --filename (-fn) option to display notebook path. Closes \u003ca href=\"https://redirect.github.com/rasbt/watermark/issues/25\"\u003e#25\u003c/a\u003e by \u003ca href=\"https://github.com/mariam851\"\u003e\u003ccode\u003e@​mariam851\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/103\"\u003erasbt/watermark#103\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix KeyError in version lookup and implement fallback  by \u003ca href=\"https://github.com/mariam851\"\u003e\u003ccode\u003e@​mariam851\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/106\"\u003erasbt/watermark#106\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix timezone space 73 by \u003ca href=\"https://github.com/mariam851\"\u003e\u003ccode\u003e@​mariam851\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/107\"\u003erasbt/watermark#107\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat jupyter env 93 by \u003ca href=\"https://github.com/mariam851\"\u003e\u003ccode\u003e@​mariam851\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/108\"\u003erasbt/watermark#108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat python install 89 by \u003ca href=\"https://github.com/mariam851\"\u003e\u003ccode\u003e@​mariam851\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/109\"\u003erasbt/watermark#109\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/mariam851\"\u003e\u003ccode\u003e@​mariam851\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/110\"\u003erasbt/watermark#110\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rasbt/watermark/compare/v2.5.1...v2.6.0\"\u003ehttps://github.com/rasbt/watermark/compare/v2.5.1...v2.6.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.5.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efixed typo by \u003ca href=\"https://github.com/d-kleine\"\u003e\u003ccode\u003e@​d-kleine\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/96\"\u003erasbt/watermark#96\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump version to 2.5.1.dev by \u003ca href=\"https://github.com/rasbt\"\u003e\u003ccode\u003e@​rasbt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/97\"\u003erasbt/watermark#97\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump to 2.5.1.dev1 for build testing by \u003ca href=\"https://github.com/rasbt\"\u003e\u003ccode\u003e@​rasbt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/98\"\u003erasbt/watermark#98\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixed -d and -t flags by \u003ca href=\"https://github.com/d-kleine\"\u003e\u003ccode\u003e@​d-kleine\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/99\"\u003erasbt/watermark#99\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eList imported packages in alphabetical order. by \u003ca href=\"https://github.com/vlulla\"\u003e\u003ccode\u003e@​vlulla\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/102\"\u003erasbt/watermark#102\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd auto deployment workflow by \u003ca href=\"https://github.com/rasbt\"\u003e\u003ccode\u003e@​rasbt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/105\"\u003erasbt/watermark#105\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/vlulla\"\u003e\u003ccode\u003e@​vlulla\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/102\"\u003erasbt/watermark#102\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rasbt/watermark/compare/v2.5.0...v2.5.1\"\u003ehttps://github.com/rasbt/watermark/compare/v2.5.0...v2.5.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rasbt/watermark/commit/b857ecf279a350dc6b6f96de2d5d3073b063b32d\"\u003e\u003ccode\u003eb857ecf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rasbt/watermark/issues/110\"\u003e#110\u003c/a\u003e from mariam851/feat-check-latest-87\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rasbt/watermark/commit/2691f7f2295e9f4b351acaa86616bcb57977ad30\"\u003e\u003ccode\u003e2691f7f\u003c/code\u003e\u003c/a\u003e improvements and docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rasbt/watermark/commit/972c9736e7ecfea40d23d58e0732e0371848479c\"\u003e\u003ccode\u003e972c973\u003c/code\u003e\u003c/a\u003e Feat \u003ca href=\"https://redirect.github.com/rasbt/watermark/issues/87\"\u003e#87\u003c/a\u003e: Add --check_latest flag to check package updates via PyPI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rasbt/watermark/commit/8ad19fc154a0e3cafe20e0c682531b4dec715993\"\u003e\u003ccode\u003e8ad19fc\u003c/code\u003e\u003c/a\u003e Feat \u003ca href=\"https://redirect.github.com/rasbt/watermark/issues/89\"\u003e#89\u003c/a\u003e: Add --python_installation flag\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rasbt/watermark/commit/a4e8c123678898a90480cee23b0f377e88233fd5\"\u003e\u003ccode\u003ea4e8c12\u003c/code\u003e\u003c/a\u003e Feat \u003ca href=\"https://redirect.github.com/rasbt/watermark/issues/93\"\u003e#93\u003c/a\u003e: Add --jupyter_env flag to detect environment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rasbt/watermark/commit/0b4948416de7fcc534c83ce7ff6053a6cab600ca\"\u003e\u003ccode\u003e0b49484\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/rasbt/watermark/issues/73\"\u003e#73\u003c/a\u003e: Add space before timezone and update date format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rasbt/watermark/commit/a19ec2a5320cb9d59c7029c557b97da3b2b83a91\"\u003e\u003ccode\u003ea19ec2a\u003c/code\u003e\u003c/a\u003e Fix KeyError in version lookup and implement fallback (\u003ca href=\"https://redirect.github.com/rasbt/watermark/issues/100\"\u003e#100\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rasbt/watermark/commit/3ec302e077c533844e094040bad6a07669026c64\"\u003e\u003ccode\u003e3ec302e\u003c/code\u003e\u003c/a\u003e Update publish workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rasbt/watermark/commit/e7567da961065076e9fa56476ac4f22b483f83cf\"\u003e\u003ccode\u003ee7567da\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rasbt/watermark/issues/105\"\u003e#105\u003c/a\u003e from rasbt/autodeploy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rasbt/watermark/commit/9a3d0c4dc53170e9d6f5983adf340177b1ce6154\"\u003e\u003ccode\u003e9a3d0c4\u003c/code\u003e\u003c/a\u003e update\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rasbt/watermark/compare/v2.5.0...v2.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit` from 4.3.0 to 4.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.5.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.5.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.4.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases for \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be deprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.5.1 - 2025-12-16\u003c/h1\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.5.0 - 2025-11-22\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.4.0 - 2025-11-08\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases\nfor \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be\ndeprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/8a0630ca1aa7f6d5665effe674ebe2022af17919\"\u003e\u003ccode\u003e8a0630c\u003c/code\u003e\u003c/a\u003e v4.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fcbc745744377ef2c9fe6a7e1a21c67d797933dc\"\u003e\u003ccode\u003efcbc745\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e from pre-commit/empty-setup-py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/51592eececd13b99c40ec477ad8f810799147227\"\u003e\u003ccode\u003e51592ee\u003c/code\u003e\u003c/a\u003e fix python local template when artifact dirs are present\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/67e8faf80baffcb4b79c31b89ca9a413a1cd6776\"\u003e\u003ccode\u003e67e8faf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3596\"\u003e#3596\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c251e6b6d011b3b262339dc8e109de29b0ff8db1\"\u003e\u003ccode\u003ec251e6b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/98ccafa3ce42b846b9a9be9ed73fbbec7415496d\"\u003e\u003ccode\u003e98ccafa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3593\"\u003e#3593\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/48953556d06f8cdb4248002c1a0044e69e0916b3\"\u003e\u003ccode\u003e4895355\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2cedd58e691f4d3bc6ab266c7d7c28464c3502be\"\u003e\u003ccode\u003e2cedd58\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3588\"\u003e#3588\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/465192d7de58d569776eaaa818c94cb2b962d436\"\u003e\u003ccode\u003e465192d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fd42f96874279c4f65363bfea5238714419e54d7\"\u003e\u003ccode\u003efd42f96\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3586\"\u003e#3586\u003c/a\u003e from pre-commit/zipapp-sha256-file-not-needed\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.3.0...v4.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.4.2 to 9.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13965\"\u003e#13965\u003c/a\u003e: Fixed quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/4492\"\u003e#4492\u003c/a\u003e: The API Reference now contains cross-reference-able documentation of \u003ccode\u003epytest's command-line flags \u0026lt;command-line-flags\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e9.0.1\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.1 (2025-11-12)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13895\"\u003e#13895\u003c/a\u003e: Restore support for skipping tests via \u003ccode\u003eraise unittest.SkipTest\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress plugin added in pytest 9.0 is now automatically disabled when iTerm2 is detected, it generated desktop notifications instead of the desired functionality.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the verbosity settings in the API reference from number to string.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13910\"\u003e#13910\u003c/a\u003e: Fixed \u003c!-- raw HTML omitted --\u003eUserWarning: Do not expect file_or_dir\u003c!-- raw HTML omitted --\u003e on some earlier Python 3.12 and 3.13 point versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePackaging updates and notes for downstreams\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13891\"\u003e#13891\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13942\"\u003e#13942\u003c/a\u003e: The CI/CD part of the release automation is now capable of\ncreating GitHub Releases without having a Git checkout on\ndisk -- by \u003ccode\u003ebluetech\u003c/code\u003e and \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/3d10b5148e03eb82b3ee29181dbdc73cf82699e2\"\u003e\u003ccode\u003e3d10b51\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/188750b725add8c3400eee6fbb6b80559c296d69\"\u003e\u003ccode\u003e188750b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14030\"\u003e#14030\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/1e4b01d1f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7d7bef90cb9a6db8ac1d3dd5b9ae0eb9abd6c58\"\u003e\u003ccode\u003eb7d7bef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14014\"\u003e#14014\u003c/a\u003e from bluetech/compat-note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bd08e85ac76614ff5ca9ae338aee8d8b06c8fae0\"\u003e\u003ccode\u003ebd08e85\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14013\"\u003e#14013\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/922b60377...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bc783862991241c442c9f9c068e51737ec15ea10\"\u003e\u003ccode\u003ebc78386\u003c/code\u003e\u003c/a\u003e Add CLI options reference documentation (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13930\"\u003e#13930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/5a4e398ce89bc23d2cf3fd98c042fdffb6fa8afa\"\u003e\u003ccode\u003e5a4e398\u003c/code\u003e\u003c/a\u003e Fix docs typo (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14005\"\u003e#14005\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14008\"\u003e#14008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/d7ae6df394398168bf9d926f803c26849c8f07ee\"\u003e\u003ccode\u003ed7ae6df\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14006\"\u003e#14006\u003c/a\u003e from pytest-dev/maintenance/update-plugin-list-tmpl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/556f6a22e12d13d1ffeceaf64424eb95d5e0fb87\"\u003e\u003ccode\u003e556f6a2\u003c/code\u003e\u003c/a\u003e pre-commit: fix rst-lint after new release (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13999\"\u003e#13999\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14001\"\u003e#14001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c60fbe63a26f64a42738e3f3527a8f79024fdf50\"\u003e\u003ccode\u003ec60fbe6\u003c/code\u003e\u003c/a\u003e Fix quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10 ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/73d9b011183d9a1c4a7007c1119d97a6e627788e\"\u003e\u003ccode\u003e73d9b01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13995\"\u003e#13995\u003c/a\u003e from nicoddemus/patchback/backports/9.0.x/1b5200c0f...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.4.2...9.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/DanielGongora28/nlp-upb/pull/6","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/DanielGongora28%2Fnlp-upb/issues/6","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/6/packages"},{"uuid":"3731088988","node_id":"PR_kwDOKoYLLM649Wm5","number":187,"state":"open","title":"Bump the major-versions group across 1 directory with 16 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-12-15T15:58:57.000Z","updated_at":"2025-12-15T15:58:59.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"major-versions","update_count":16,"packages":[{"name":"django","old_version":"4.2.6","new_version":"4.2.27"},{"name":"django-guardian","old_version":"2.4.0","new_version":"3.2.0","repository_url":"https://github.com/django-guardian/django-guardian"},{"name":"django-extensions","old_version":"3.2.3","new_version":"4.1","repository_url":"https://github.com/django-extensions/django-extensions"},{"name":"django-filter","old_version":"23.3","new_version":"25.1","repository_url":"https://github.com/carltongibson/django-filter"},{"name":"gunicorn","old_version":"21.2.0","new_version":"23.0.0","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"python-ipware","old_version":"2.0.0","new_version":"3.0.0","repository_url":"https://github.com/un33k/python-ipware"},{"name":"redis","old_version":"4.6.0","new_version":"6.4.0","repository_url":"https://github.com/redis/redis-py"},{"name":"ocrmypdf","old_version":"14.4.0","new_version":"15.4.4","repository_url":"https://github.com/ocrmypdf/OCRmyPDF"},{"name":"django-multiselectfield","old_version":"0.1.12","new_version":"1.0.1","repository_url":"https://github.com/goinnn/django-multiselectfield"},{"name":"django-auditlog","old_version":"2.3.0","new_version":"3.3.0","repository_url":"https://github.com/jazzband/django-auditlog"},{"name":"black","old_version":"23.9.1","new_version":"25.11.0","repository_url":"https://github.com/psf/black"},{"name":"pre-commit","old_version":"3.4.0","new_version":"4.3.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pytest","old_version":"7.4.2","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-cov","old_version":"4.1.0","new_version":"7.0.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pytest-sugar","old_version":"0.9.7","new_version":"1.1.1","repository_url":"https://github.com/Teemu/pytest-sugar"},{"name":"pytest-rerunfailures","old_version":"12.0","new_version":"16.0.1","repository_url":"https://github.com/pytest-dev/pytest-rerunfailures"}],"path":null,"ecosystem":"conda"},"body":"Bumps the major-versions group with 16 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| django | `4.2.6` | `4.2.27` |\n| [django-guardian](https://github.com/django-guardian/django-guardian) | `2.4.0` | `3.2.0` |\n| [django-extensions](https://github.com/django-extensions/django-extensions) | `3.2.3` | `4.1` |\n| [django-filter](https://github.com/carltongibson/django-filter) | `23.3` | `25.1` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `21.2.0` | `23.0.0` |\n| [python-ipware](https://github.com/un33k/python-ipware) | `2.0.0` | `3.0.0` |\n| [redis](https://github.com/redis/redis-py) | `4.6.0` | `6.4.0` |\n| [ocrmypdf](https://github.com/ocrmypdf/OCRmyPDF) | `14.4.0` | `15.4.4` |\n| [django-multiselectfield](https://github.com/goinnn/django-multiselectfield) | `0.1.12` | `1.0.1` |\n| [django-auditlog](https://github.com/jazzband/django-auditlog) | `2.3.0` | `3.3.0` |\n| [black](https://github.com/psf/black) | `23.9.1` | `25.11.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `3.4.0` | `4.3.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `7.4.2` | `8.4.2` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `4.1.0` | `7.0.0` |\n| [pytest-sugar](https://github.com/Teemu/pytest-sugar) | `0.9.7` | `1.1.1` |\n| [pytest-rerunfailures](https://github.com/pytest-dev/pytest-rerunfailures) | `12.0` | `16.0.1` |\n\n\nUpdates `django` from 4.2.6 to 4.2.27\n\nUpdates `django-guardian` from 2.4.0 to 3.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-guardian/django-guardian/releases\"\u003edjango-guardian's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.2.0 The Bozkir progression\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate enforcement contact link in CODE_OF_CONDUCT.md by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/918\"\u003edjango-guardian/django-guardian#918\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptional cached anonymous user  - Pr 907 by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/912\"\u003edjango-guardian/django-guardian#912\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003egenerator warnings and logics are added for security purposes by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/920\"\u003edjango-guardian/django-guardian#920\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erollback compatible create anon user fix is developed by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/919\"\u003edjango-guardian/django-guardian#919\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e644 using inlines in django admin with guardian by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/921\"\u003edjango-guardian/django-guardian#921\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-guardian/django-guardian/compare/3.1.3...3.2.0\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.3...3.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edjango-packages badge is added by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/910\"\u003edjango-guardian/django-guardian#910\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate issue templates by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/909\"\u003edjango-guardian/django-guardian#909\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMakefile support by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/906\"\u003edjango-guardian/django-guardian#906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePR merging scenario is fixed by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/913\"\u003edjango-guardian/django-guardian#913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed issue causing prefetch_perms() to throw when passed an empty list by \u003ca href=\"https://github.com/keattang\"\u003e\u003ccode\u003e@​keattang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/904\"\u003edjango-guardian/django-guardian#904\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRe apply \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/812\"\u003e#812\u003c/a\u003e using correct lookup method by \u003ca href=\"https://github.com/sevdog\"\u003e\u003ccode\u003e@​sevdog\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/842\"\u003edjango-guardian/django-guardian#842\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOPS: Bump version for release by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/915\"\u003edjango-guardian/django-guardian#915\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-guardian/django-guardian/compare/3.1.2...3.1.3\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.2...3.1.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 in /.github/workflows by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/903\"\u003edjango-guardian/django-guardian#903\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix type and deprecate old name by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/902\"\u003edjango-guardian/django-guardian#902\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/django-guardian/django-guardian/pull/903\"\u003edjango-guardian/django-guardian#903\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-guardian/django-guardian/compare/3.1.1...3.1.2\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.1...3.1.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epre-commit checker step is added by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/901\"\u003edjango-guardian/django-guardian#901\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-guardian/django-guardian/compare/3.1.0...3.1.1\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.0...3.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eImproved indexing, tweaks and bugfixes\u003c/h2\u003e\n\u003ch2\u003eSaving the 🌳🌳🌳 and the 💰💰💰\u003c/h2\u003e\n\u003cp\u003e⚠️⚠️⚠️ \u003cstrong\u003eWARNING:\u003c/strong\u003e This release contains an update to database indexing which should yield \u003cstrong\u003econsiderable additional performance\u003c/strong\u003e, especially on large table permissions lookups (thanks \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e for such rigorous performance testing!!!). Following the migration that introduces these indexes, databases should reindex automatically in the background (typically within 0-30s even for large tables): this is unlikely to be noticeable but users may experience a short lived performance hit during this period.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow ignore_conflicts on bulk create by \u003ca href=\"https://github.com/pgiki\"\u003e\u003ccode\u003e@​pgiki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/814\"\u003edjango-guardian/django-guardian#814\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/4120d00c28c1b6d3bacb988f6db86bacf91ed0f1\"\u003e\u003ccode\u003e4120d00\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/921\"\u003e#921\u003c/a\u003e from django-guardian/644-using-inlines-in-django-admi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/c896b220bdf96783f1c25d730f12ebef95758c99\"\u003e\u003ccode\u003ec896b22\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/919\"\u003e#919\u003c/a\u003e from django-guardian/770-migration-rollback-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/3814e2383c69266350a3d885d445bdd79da8cb78\"\u003e\u003ccode\u003e3814e23\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 770-migration-rollback-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/94854899f4a030b42840837e08b42923a71c5b78\"\u003e\u003ccode\u003e9485489\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/920\"\u003e#920\u003c/a\u003e from django-guardian/666-permissionrequiredmixin-does...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/e01e2e1edeec60b2c79d561db56e0949ea3c4dad\"\u003e\u003ccode\u003ee01e2e1\u003c/code\u003e\u003c/a\u003e check only username field fixing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/e1ae3c5a7ab74a679ef1ccff2a480a88117df464\"\u003e\u003ccode\u003ee1ae3c5\u003c/code\u003e\u003c/a\u003e show warning instead of error for backward compatibility and giving time the ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/63c10f549dfe2b5ba67e9eec36095cf3e6a2bab8\"\u003e\u003ccode\u003e63c10f5\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 644-using-inlines-in-django-admin-with-guardian\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/b27ebbdcc7f9952d9d9aaaa879b5e202063ccaa8\"\u003e\u003ccode\u003eb27ebbd\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 666-permissionrequiredmixin-does-not-warn-against-us...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/d7ed4a3bccb730d3cdf16fdc404f25b94674c653\"\u003e\u003ccode\u003ed7ed4a3\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 770-migration-rollback-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/03fed6924e06fd13991d9e8ae1b4590addf5473e\"\u003e\u003ccode\u003e03fed69\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/912\"\u003e#912\u003c/a\u003e from django-guardian/pr-907\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-guardian/django-guardian/compare/v2.4.0...3.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-extensions` from 3.2.3 to 4.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-extensions/django-extensions/releases\"\u003edjango-extensions's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd: show_permissions command (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1920\"\u003e#1920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, style per app (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1848\"\u003e#1848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: JSONField, bulk_update's (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1924\"\u003e#1924\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/ahmad88me\"\u003e\u003ccode\u003e@​ahmad88me\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1848\"\u003edjango-extensions/django-extensions#1848\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-extensions/django-extensions/compare/4.0...4.1\"\u003ehttps://github.com/django-extensions/django-extensions/compare/4.0...4.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprovement: Support for Python 3.12 and 3.13\u003c/li\u003e\n\u003cli\u003eImprovement: Support for Django 5.x\u003c/li\u003e\n\u003cli\u003eImprovement: Switch from setup.{cfg,py} to pyproject.toml\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add option to display field choices in graph_models (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1854\"\u003e#1854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add webp support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1857\"\u003e#1857\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Support for ordering edges on pydot/dot/graphviz (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1914\"\u003e#1914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: mail_debug, Update mail_debug command to use aiosmtpd (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1880\"\u003e#1880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: shell_plus, Improve error message for missing import (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1898\"\u003e#1898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: reset_db, Add reset_db support for django_tenants (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1855\"\u003e#1855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: docs, various improvements (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1852\"\u003e#1852\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1888\"\u003e#1888\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1882\"\u003e#1882\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1901\"\u003e#1901\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1912\"\u003e#1912\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1913\"\u003e#1913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: jobs, Handle non-package modules when looking for job definitions (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1887\"\u003e#1887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Add django-prometheus DB backends support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1800\"\u003e#1800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Call post_command when the command raises an unhandled exception (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1837\"\u003e#1837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: sqldiff, do not consider ('serial', 'integer') nor ('bigserial', 'bigint') as a field-type-differ (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1867\"\u003e#1867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: shell_plus, Fix start up order and add history (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1869\"\u003e#1869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove pipchecker and associated tests (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1906\"\u003e#1906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFollowing Django's release numbering style more closely (see \u003ca href=\"https://docs.djangoproject.com/en/5.2/internals/release-process/\"\u003ehttps://docs.djangoproject.com/en/5.2/internals/release-process/\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/dimitrismistriotis\"\u003e\u003ccode\u003e@​dimitrismistriotis\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1859\"\u003edjango-extensions/django-extensions#1859\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/titouanc\"\u003e\u003ccode\u003e@​titouanc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1854\"\u003edjango-extensions/django-extensions#1854\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dmwyatt\"\u003e\u003ccode\u003e@​dmwyatt\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1872\"\u003edjango-extensions/django-extensions#1872\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stianjensen\"\u003e\u003ccode\u003e@​stianjensen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1898\"\u003edjango-extensions/django-extensions#1898\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PapaZ810\"\u003e\u003ccode\u003e@​PapaZ810\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1888\"\u003edjango-extensions/django-extensions#1888\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kviktor\"\u003e\u003ccode\u003e@​kviktor\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1857\"\u003edjango-extensions/django-extensions#1857\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aripollak\"\u003e\u003ccode\u003e@​aripollak\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1913\"\u003edjango-extensions/django-extensions#1913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/flowgunso\"\u003e\u003ccode\u003e@​flowgunso\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1914\"\u003edjango-extensions/django-extensions#1914\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anitahammer\"\u003e\u003ccode\u003e@​anitahammer\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1869\"\u003edjango-extensions/django-extensions#1869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nicolaspanel\"\u003e\u003ccode\u003e@​nicolaspanel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1867\"\u003edjango-extensions/django-extensions#1867\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yujinyuz\"\u003e\u003ccode\u003e@​yujinyuz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1855\"\u003edjango-extensions/django-extensions#1855\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/soof-golan\"\u003e\u003ccode\u003e@​soof-golan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1852\"\u003edjango-extensions/django-extensions#1852\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ghickman\"\u003e\u003ccode\u003e@​ghickman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1887\"\u003edjango-extensions/django-extensions#1887\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jrobichaud\"\u003e\u003ccode\u003e@​jrobichaud\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1837\"\u003edjango-extensions/django-extensions#1837\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-extensions/django-extensions/compare/3.2.3...4.0\"\u003ehttps://github.com/django-extensions/django-extensions/compare/3.2.3...4.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.2.4b1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-extensions/django-extensions/blob/main/CHANGELOG.md\"\u003edjango-extensions's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.1\u003c/h2\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd: show_permissions command (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1920\"\u003e#1920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, style per app (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1848\"\u003e#1848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: JSONField, bulk_update's (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1924\"\u003e#1924\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.0\u003c/h2\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eImprovement: Support for Python 3.12 and 3.13\u003c/li\u003e\n\u003cli\u003eImprovement: Support for Django 5.x\u003c/li\u003e\n\u003cli\u003eImprovement: Switch from setup.{cfg,py} to pyproject.toml\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add option to display field choices in graph_models (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1854\"\u003e#1854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add webp support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1857\"\u003e#1857\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Support for ordering edges on pydot/dot/graphviz (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1914\"\u003e#1914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: mail_debug, Update mail_debug command to use aiosmtpd (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1880\"\u003e#1880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: shell_plus, Improve error message for missing import (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1898\"\u003e#1898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: reset_db, Add reset_db support for django_tenants (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1855\"\u003e#1855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: docs, various improvements (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1852\"\u003e#1852\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1888\"\u003e#1888\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1882\"\u003e#1882\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1901\"\u003e#1901\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1912\"\u003e#1912\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1913\"\u003e#1913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: jobs, Handle non-package modules when looking for job definitions (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1887\"\u003e#1887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Add django-prometheus DB backends support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1800\"\u003e#1800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Call post_command when the command raises an unhandled exception (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1837\"\u003e#1837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: sqldiff, do not consider ('serial', 'integer') nor ('bigserial', 'bigint') as a \u003ccode\u003efield-type-differ\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1867\"\u003e#1867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: shell_plus, Fix start up order and add history (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1869\"\u003e#1869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove pipchecker and associated tests (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1906\"\u003e#1906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFollowing Django's release numbering style more closely (see \u003ca href=\"https://docs.djangoproject.com/en/5.2/internals/release-process/\"\u003ehttps://docs.djangoproject.com/en/5.2/internals/release-process/\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/django-extensions/django-extensions/commit/ad015513e5d8e8ee6ad748fca5f32ccf3fb3d5c5\"\u003e\u003ccode\u003ead01551\u003c/code\u003e\u003c/a\u003e v4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/2c3e914f1264c0a029b3b47b7425d0f68ce637ed\"\u003e\u003ccode\u003e2c3e914\u003c/code\u003e\u003c/a\u003e update CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/fb5b2af1b6595ee126237c299acf242fcfee817e\"\u003e\u003ccode\u003efb5b2af\u003c/code\u003e\u003c/a\u003e ruff format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/7e978d27b031843640f9204ff495738c46233d7f\"\u003e\u003ccode\u003e7e978d2\u003c/code\u003e\u003c/a\u003e graph_models style per app (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1848\"\u003e#1848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/067064ea0c6dec7cba1583447fe5fe1c706d5351\"\u003e\u003ccode\u003e067064e\u003c/code\u003e\u003c/a\u003e avoid trying to serialize expressions when serializing default values\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/a886068502474e70a2d68ff4634a15cc3366088d\"\u003e\u003ccode\u003ea886068\u003c/code\u003e\u003c/a\u003e update CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/d824501cbc6d04a24a43ff5756b496f84093b225\"\u003e\u003ccode\u003ed824501\u003c/code\u003e\u003c/a\u003e Add show_permissions management command (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1920\"\u003e#1920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/934f93f53bdf6c6271ae1ddaee71bc9bf3364a0e\"\u003e\u003ccode\u003e934f93f\u003c/code\u003e\u003c/a\u003e bumped version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/c4577df5b69ec1ebcbe6bc64d7a5c20362f3a8fa\"\u003e\u003ccode\u003ec4577df\u003c/code\u003e\u003c/a\u003e v4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/7cdb43ab56a3b610b47680d8a2fe86b09d5913aa\"\u003e\u003ccode\u003e7cdb43a\u003c/code\u003e\u003c/a\u003e pyproject formatting\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-extensions/django-extensions/compare/3.2.3...4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-filter` from 23.3 to 25.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/carltongibson/django-filter/blob/main/CHANGES.rst\"\u003edjango-filter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 25.1 (2025-02-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved the in-built API schema generation methods, which have been\ndeprecated since v23.2.\u003c/p\u003e\n\u003cp\u003eYou should use \u003ccode\u003edrf-spectacular \u0026lt;https://drf-spectacular.readthedocs.io/en/latest/\u0026gt;\u003c/code\u003e_\nfor generating OpenAPI schemas with DRF.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped support for EOL Python 3.8.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded testing against Python 3.13.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded official support for Django 5.2.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 24.3 (2024-08-02)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdds official support for Django 5.1.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow using dictionaries for grouped choices on Django 5.0+.\u003c/p\u003e\n\u003cp\u003eThanks to Sævar Öfjörð Magnússon.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdds \u003ccode\u003eunknown_field_behavior\u003c/code\u003e FilterSet option to allowing warning and\nignore behaviours for unknown field types during FilterSet generation.\u003c/p\u003e\n\u003cp\u003eThanks to Loes.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 24.2 (2024-03-27)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a regression in v23.4 where callable choices were incorrectly evaluated\nat filter instantiation, on Django versions prior to 5.0.\u003c/p\u003e\n\u003cp\u003eThanks to Craig de Stigter for the report and reproduce.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 24.1 (2024-03-08)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated supported Python and Django versions, and resolved upcoming Django\ndeprecations.\u003c/p\u003e\n\u003cp\u003eRequired versions are now at least Python 3.8 and Django 4.2.\u003c/p\u003e\n\u003cp\u003eThanks to Michael Manganiello.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllowed passing a FilterSet class to the filterset_factory().\u003c/p\u003e\n\u003cp\u003eThanks to Birger Schacht.\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/carltongibson/django-filter/commit/27dd67284405ee832701509b3515baa50c6e074d\"\u003e\u003ccode\u003e27dd672\u003c/code\u003e\u003c/a\u003e Updated Change notes for 25.1 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/2ea38174b010f378a9b57d90c566c2bab7b37bbb\"\u003e\u003ccode\u003e2ea3817\u003c/code\u003e\u003c/a\u003e Added Trove classifier for Django 5.2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/4d2306c211c1d86f85f04fb311b8b05bfefb08a8\"\u003e\u003ccode\u003e4d2306c\u003c/code\u003e\u003c/a\u003e Replaced hardcoded pks in tests (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1703\"\u003e#1703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/fbf5a76a4d97480d78779397b90d34fa8f13d141\"\u003e\u003ccode\u003efbf5a76\u003c/code\u003e\u003c/a\u003e Update tox after Django 5.2 alpha release. (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1700\"\u003e#1700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/1e76d6859e109ae34d5e2a657c66146a9d744c80\"\u003e\u003ccode\u003e1e76d68\u003c/code\u003e\u003c/a\u003e Use QueryDict for data default. (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1691\"\u003e#1691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/e709e5d43a4ad8b8e8ea62520669b88300c9c686\"\u003e\u003ccode\u003ee709e5d\u003c/code\u003e\u003c/a\u003e Add testing against Python 3.13.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/ccde000dfe74362b62301b248681e9505133e821\"\u003e\u003ccode\u003eccde000\u003c/code\u003e\u003c/a\u003e Dropped support for EOL Python 3.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/2a644e176634ec0ce99d9446d980501e9763e194\"\u003e\u003ccode\u003e2a644e1\u003c/code\u003e\u003c/a\u003e Removed deprecated schema generation methods from DRF backend. (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1698\"\u003e#1698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/2494df96c6387a9fa411fcb00b696b15dfd9216b\"\u003e\u003ccode\u003e2494df9\u003c/code\u003e\u003c/a\u003e fix typo in filterset.txt (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1695\"\u003e#1695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/3656174bd90d20f3d916fd98b6476c270013b681\"\u003e\u003ccode\u003e3656174\u003c/code\u003e\u003c/a\u003e Translated using Weblate (Czech) (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1687\"\u003e#1687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/carltongibson/django-filter/compare/23.3...25.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gunicorn` from 21.2.0 to 23.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/benoitc/gunicorn/releases\"\u003egunicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e23.0.0\u003c/h2\u003e\n\u003cp\u003eGunicorn 23.0.0 has been released. This version improve HTTP 1.1. support and  which improve safety\u003c/p\u003e\n\u003cp\u003eYou're invited to upgrade asap your own installation.\u003c/p\u003e\n\u003ch1\u003e23.0.0 - 2024-08-10\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eminor docs fixes (:pr:\u003ccode\u003e3217\u003c/code\u003e, :pr:\u003ccode\u003e3089\u003c/code\u003e, :pr:\u003ccode\u003e3167\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eworker_class parameter accepts a class (:pr:\u003ccode\u003e3079\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003efix deadlock if request terminated during chunked parsing (:pr:\u003ccode\u003e2688\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003epermit receiving Transfer-Encodings: compress, deflate, gzip (:pr:\u003ccode\u003e3261\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003epermit Transfer-Encoding headers specifying multiple encodings. note: no parameters, still (:pr:\u003ccode\u003e3261\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003esdist generation now explicitly excludes sphinx build folder (:pr:\u003ccode\u003e3257\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003edecode bytes-typed status (as can be passed by gevent) as utf-8 instead of raising \u003ccode\u003eTypeError\u003c/code\u003e (:pr:\u003ccode\u003e2336\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eraise correct Exception when encounting invalid chunked requests (:pr:\u003ccode\u003e3258\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ethe SCRIPT_NAME and PATH_INFO headers, when received from allowed forwarders, are no longer restricted for containing an underscore (:pr:\u003ccode\u003e3192\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003einclude IPv6 loopback address \u003ccode\u003e[::1]\u003c/code\u003e in default for :ref:\u003ccode\u003eforwarded-allow-ips\u003c/code\u003e and :ref:\u003ccode\u003eproxy-allow-ips\u003c/code\u003e (:pr:\u003ccode\u003e3192\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e** NOTE **\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SCRIPT_NAME change mitigates a regression that appeared first in the 22.0.0 release\u003c/li\u003e\n\u003cli\u003eReview your :ref:\u003ccode\u003eforwarded-allow-ips\u003c/code\u003e setting if you are still not seeing the SCRIPT_NAME transmitted\u003c/li\u003e\n\u003cli\u003eReview your :ref:\u003ccode\u003eforwarder-headers\u003c/code\u003e setting if you are missing headers after upgrading from a version prior to 22.0.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e** Breaking changes **\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003erefuse requests where the uri field is empty (:pr:\u003ccode\u003e3255\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003erefuse requests with invalid CR/LR/NUL in heade field values (:pr:\u003ccode\u003e3253\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eremove temporary \u003ccode\u003e--tolerate-dangerous-framing\u003c/code\u003e switch from 22.0 (:pr:\u003ccode\u003e3260\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eIf any of the breaking changes affect you, be aware that now refused requests can post a security problem, especially so in setups involving request pipe-lining and/or proxies.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFix CVE-2024-1135\u003c/p\u003e\n\u003ch2\u003eGunicorn 22.0 has been released\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eGunicorn 22.0.0 has been released.\u003c/strong\u003e This version fix the numerous security vulnerabilities. You're invited to upgrade asap your own installation.\u003c/p\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e22.0.0 - 2024-04-17\n===================\n\u003cul\u003e\n\u003cli\u003euse \u003ccode\u003eutime\u003c/code\u003e to notify workers liveness\u003c/li\u003e\n\u003cli\u003emigrate setup to pyproject.toml\u003c/li\u003e\n\u003cli\u003efix numerous security vulnerabilities in HTTP parser (closing some request smuggling vectors)\u003c/li\u003e\n\u003cli\u003eparsing additional requests is no longer attempted past unsupported request framing\u003c/li\u003e\n\u003cli\u003eon HTTP versions \u0026lt; 1.1 support for chunked transfer is refused (only used in exploits)\u003c/li\u003e\n\u003cli\u003erequests conflicting configured or passed SCRIPT_NAME now produce a verbose error\u003c/li\u003e\n\u003cli\u003eTrailer fields are no longer inspected for headers indicating secure scheme\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/411986d6191114dd1d1bbb9c72c948dbf0ef0425\"\u003e\u003ccode\u003e411986d\u003c/code\u003e\u003c/a\u003e fix doc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/334392e7795f2017e83f7054d372422512d6f4b6\"\u003e\u003ccode\u003e334392e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/2559\"\u003e#2559\u003c/a\u003e from laggardkernel/bugfix/reexec-env\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/e75c3533e32f91a9dceba9e8e1341fea5540ba81\"\u003e\u003ccode\u003ee75c353\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3189\"\u003e#3189\u003c/a\u003e from pajod/patch-py36\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/9357b28dd867950e33ca3864207cb35a1eb8ba6f\"\u003e\u003ccode\u003e9357b28\u003c/code\u003e\u003c/a\u003e keep document user in access_log_format setting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/79fdef0822cbfe7e16b659b07230af9be098d5fc\"\u003e\u003ccode\u003e79fdef0\u003c/code\u003e\u003c/a\u003e bump to 23.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/3acd9fbfd1159ca3cd80a8052ada89a0bf27f806\"\u003e\u003ccode\u003e3acd9fb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/2620\"\u003e#2620\u003c/a\u003e from talkerbox/improve-access-log-format-docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/3f56d76548e4ade034bf5e174737902970285d1f\"\u003e\u003ccode\u003e3f56d76\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3192\"\u003e#3192\u003c/a\u003e from pajod/patch-allowed-script-name\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/256d474a7910bd605f2cc8c082b79c1ae55215a9\"\u003e\u003ccode\u003e256d474\u003c/code\u003e\u003c/a\u003e docs: revert duped directive\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/ffa48b581dcaa75f17fd2df263515e4266feeef6\"\u003e\u003ccode\u003effa48b5\u003c/code\u003e\u003c/a\u003e test: default change was intentional\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/52538ca9070b5e7ead5d0fa731e82a622dc6f3ee\"\u003e\u003ccode\u003e52538ca\u003c/code\u003e\u003c/a\u003e docs: recommend SCRIPT_NAME=/subfolder\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/benoitc/gunicorn/compare/21.2.0...23.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-ipware` from 2.0.0 to 3.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/un33k/python-ipware/blob/main/CHANGELOG.md\"\u003epython-ipware's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.0.0\u003c/h2\u003e\n\u003cp\u003eFix:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRelease major version, as there is a possibility of api change causing minimal backward incompatibly\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.5\u003c/h2\u003e\n\u003cp\u003eEnhance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAI assisted clean up\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.4\u003c/h2\u003e\n\u003cp\u003eEnhance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eproxy_count=0\u003c/code\u003e as an option (\u003ca href=\"https://github.com/FraKraBa\"\u003e\u003ccode\u003e@​FraKraBa\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.3\u003c/h2\u003e\n\u003cp\u003eEnhance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eHTTP_CF_CONNECTING_IP\u003c/code\u003e to list of known ip headers (Adam M.)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.2\u003c/h2\u003e\n\u003cp\u003eEnhance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded logger name\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.1\u003c/h2\u003e\n\u003cp\u003eIssue:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003eHTTP_VIA\u003c/code\u003e header support (unreliable IP information) (\u003ca href=\"https://github.com/yourcelf\"\u003e\u003ccode\u003e@​yourcelf\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eEnhance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eInclude support for python 3.12\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/cab810ced72457abcc77ffd234be9cb0a75f7ec3\"\u003e\u003ccode\u003ecab810c\u003c/code\u003e\u003c/a\u003e version 3 major (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/21\"\u003e#21\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/5d01f1e6662f3de861d44006247fd5f0a3ae4a0b\"\u003e\u003ccode\u003e5d01f1e\u003c/code\u003e\u003c/a\u003e Feat/enhance (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/20\"\u003e#20\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/bd56bcd1d4ed2d2bbd690059e5a231d6b51bcd31\"\u003e\u003ccode\u003ebd56bcd\u003c/code\u003e\u003c/a\u003e Allow for proxy_count of exact 0 (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/19\"\u003e#19\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/ddfde3c6d4dee387a59287a2c0afc933f9773791\"\u003e\u003ccode\u003eddfde3c\u003c/code\u003e\u003c/a\u003e Update Readme (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/17\"\u003e#17\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/aab321baf9958ae128460c2279364926f6612dca\"\u003e\u003ccode\u003eaab321b\u003c/code\u003e\u003c/a\u003e Add HTTP_CF_CONNECTING_IP to ip Header list (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/16\"\u003e#16\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/e908cc321dc61e203033768f8d1072efc71f4556\"\u003e\u003ccode\u003ee908cc3\u003c/code\u003e\u003c/a\u003e Added logger name (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/15\"\u003e#15\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/ad1f01783279ecd8dfff91b3db8558f92b5bde0b\"\u003e\u003ccode\u003ead1f017\u003c/code\u003e\u003c/a\u003e Remove HTTP_VIA support, support for 3.12 (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/14\"\u003e#14\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/un33k/python-ipware/compare/v2.0.0...v3.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `redis` from 4.6.0 to 6.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/redis-py/releases\"\u003eredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.4.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🚀 New Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded epsilon property to the vsim command (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3723\"\u003e#3723\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdating the latest Redis image for github pipeline testing (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3726\"\u003e#3726\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\n\u003ca href=\"https://github.com/htemelski-redis\"\u003e\u003ccode\u003e@​htemelski-redis\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/elena-kolevska\"\u003e\u003ccode\u003e@​elena-kolevska\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/petyaslavova\"\u003e\u003ccode\u003e@​petyaslavova\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/vladvildanov\"\u003e\u003ccode\u003e@​vladvildanov\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e6.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🚀 New Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for new BITOP operations: DIFF, DIFF1, ANDOR, ONE (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3690\"\u003e#3690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport new VAMANA vector index type (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3702\"\u003e#3702\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd new stream commands (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3711\"\u003e#3711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd async Retry \u003cstrong\u003eeq\u003c/strong\u003e and \u003cstrong\u003ehash\u003c/strong\u003e \u0026amp; fix ExponentialWithJitterBackoff \u003cstrong\u003eeq\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3668\"\u003e#3668\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixing sentinel command execution to allow returning of actual responses when meaningful - behaviour controlled by 'return_responses' argument. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3191\"\u003e#3191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAnnotate deprecated_args decorator to preserve wrapped function type signature (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3701\"\u003e#3701\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix ConnectionPool to raise MaxConnectionsError instead of Connection… (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3698\"\u003e#3698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd async Retry \u003cstrong\u003eeq\u003c/strong\u003e and \u003cstrong\u003ehash\u003c/strong\u003e \u0026amp; fix ExponentialWithJitterBackoff \u003cstrong\u003eeq\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3668\"\u003e#3668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSentinelManagedConnection searches for new master upon connection failure (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3560\"\u003e#3560\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3601\"\u003e#3601\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: avoid instantiating a connection on \u003cem\u003erepr\u003c/em\u003e_ (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3653\"\u003e#3653\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixing the return type hint for the transaction method in the standalone client. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3660\"\u003e#3660\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump rojopolis/spellcheck-github-actions from 0.48.0 to 0.49.0 (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3665\"\u003e#3665\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDropping integration tests with Redis 6.2 from pipeline actions. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3659\"\u003e#3659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove deprecated arg from call to ClusterPipeline (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3670\"\u003e#3670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTransactionStrategy reset: UNWATCH only when status is watching (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3671\"\u003e#3671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eKeyT for set operations (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3190\"\u003e#3190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoving references to old docs site '\u003ca href=\"https://redis-py.readthedocs.io/\"\u003ehttps://redis-py.readthedocs.io/\u003c/a\u003e' replaced by '\u003ca href=\"https://redis.readthedocs.io/\"\u003ehttps://redis.readthedocs.io/\u003c/a\u003e' (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3674\"\u003e#3674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoving unnecessary check for tests using AsyncMock (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3432\"\u003e#3432\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdating test images for github pipeline execution (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3678\"\u003e#3678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdating the latest Redis image for pipeline testing (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3695\"\u003e#3695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump rojopolis/spellcheck-github-actions from 0.49.0 to 0.51.0 (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3689\"\u003e#3689\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDOC-5225 testable probabilistic dt examples (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3691\"\u003e#3691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate README.md (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3699\"\u003e#3699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eConvert the value to int type only if it exists in CLIENT INFO (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3688\"\u003e#3688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix compatibility with latest pytest-asyncio version(1.1.0) (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3708\"\u003e#3708\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDOC-5424 time series examples (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3705\"\u003e#3705\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdding information in connection pool class doc string for available SSLConnection class, that can be used for SSL connections (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3710\"\u003e#3710\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/redis/redis-py/commit/fff669daaf43ae8092ea8ab7a2a3196a9b1b7e41\"\u003e\u003ccode\u003efff669d\u003c/code\u003e\u003c/a\u003e Updated package version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/43ce2a4025c020bd26e401371c16ca4920b470a5\"\u003e\u003ccode\u003e43ce2a4\u003c/code\u003e\u003c/a\u003e Updating the latest Redis image for github pipeline testing (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3726\"\u003e#3726\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/64426cbdd43153b70b0e29d9d7b3ab2c63760359\"\u003e\u003ccode\u003e64426cb\u003c/code\u003e\u003c/a\u003e Added epsilon property to the vsim command (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3723\"\u003e#3723\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/67ab74d705b4c1d00d600c500596af7a68abfd56\"\u003e\u003ccode\u003e67ab74d\u003c/code\u003e\u003c/a\u003e Add new stream commands (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3711\"\u003e#3711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/4c9512b1fe592dc9becebe9e5f053b0184b47f2c\"\u003e\u003ccode\u003e4c9512b\u003c/code\u003e\u003c/a\u003e Adding information in connection pool class doc string for available SSLConne...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/31399ed43588840bbbfdbbf0e8260d1b989b49ce\"\u003e\u003ccode\u003e31399ed\u003c/code\u003e\u003c/a\u003e SentinelManagedConnection searches for new master upon connection failure (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3\"\u003e#3\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/7291deb5eb8054a0dc915a8bf499a17498bc5968\"\u003e\u003ccode\u003e7291deb\u003c/code\u003e\u003c/a\u003e add async Retry \u003ccode\u003e__eq__\u003c/code\u003e and \u003ccode\u003e__hash__\u003c/code\u003e \u0026amp; fix ExponentialWithJitterBackof...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/4cf094fdd2c1f2ce335e671af3fad7ad0a48f309\"\u003e\u003ccode\u003e4cf094f\u003c/code\u003e\u003c/a\u003e Fix ConnectionPool to raise MaxConnectionsError instead of Connection… (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3698\"\u003e#3698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/a00141618572764821bbe6bd74e025536e061587\"\u003e\u003ccode\u003ea001416\u003c/code\u003e\u003c/a\u003e DOC-5424 time series examples (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3705\"\u003e#3705\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/2b1ff5363715c8ba0043314a8b4bcbbc1ba741f5\"\u003e\u003ccode\u003e2b1ff53\u003c/code\u003e\u003c/a\u003e Fix compatibility with latest pytest-asyncio version(1.1.0) (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3708\"\u003e#3708\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/redis/redis-py/compare/v4.6.0...v6.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ocrmypdf` from 14.4.0 to 15.4.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/blob/main/docs/release_notes.md\"\u003eocrmypdf's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev15.4.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed documentation for installing Ghostscript on Windows. {issue}\u003ccode\u003e1198\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdded warning message about security issue in older versions of Ghostscript.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed deprecation warning in pikepdf older than 8.7.1; pikepdf \u0026gt;= 8.7.1 is\nnow required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWe now raise an exception on a certain class of PDFs that likely need an\nexplicit color conversion strategy selected to display correctly\nfor PDF/A conversion.\u003c/li\u003e\n\u003cli\u003eFixed an error that occurred while trying to write a log message after the\ndebug log handler was removed.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed misc/watcher.py regressions: accept \u003ccode\u003e--ocr-json-settings\u003c/code\u003e as either\nfilename or JSON string, as previously; and argument count mismatch.\n{issue}\u003ccode\u003e1183,1185\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eWe no longer attempt to set /ProcSet in the PDF output, since this is an\nobsolete PDF feature.\u003c/li\u003e\n\u003cli\u003eDocumentation improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded new experimental APIs to support offline editing of the final text.\nSpecifically, one can now generate hOCR files with OCRmyPDF, edit them with\nsome other tool, and then finalize the PDF. They are experimental and\nsubject to change, including details of how the working folder is used.\nThere is no command line interface.\u003c/li\u003e\n\u003cli\u003eCode reorganization: executors, progress bars, initialization and setup.\u003c/li\u003e\n\u003cli\u003eFixed test coverage in cases where the coverage tool did not properly trace\ninto threads or subprocesses. This code was still being tested but appeared\nas not covered.\u003c/li\u003e\n\u003cli\u003eIn the test suite, reduced use of subprocesses and other techniques that\ninterfere with coverage measurement.\u003c/li\u003e\n\u003cli\u003eImproved error check for when we appear to be running inside a snap container\nand files are not available.\u003c/li\u003e\n\u003cli\u003ePlugin specification now properly defines progress bars as a protocol rather\nthan defining them as \u0026quot;tqdm-like\u0026quot;.\u003c/li\u003e\n\u003cli\u003eWe now default to using \u0026quot;forkserver\u0026quot; process creation on POSIX platforms\nrather than fork, since this is method is more robust and avoids some\nissues when threads are present.\u003c/li\u003e\n\u003cli\u003eFixed an instance where the user's request to \u003ccode\u003e--no-use-threads\u003c/code\u003e was ignored.\u003c/li\u003e\n\u003cli\u003eIf a PDF does not have language metadata on its top level object, we add\nthe OCR language.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/c90d5cd84b0e27906310c28f0d78c3ded9106d65\"\u003e\u003ccode\u003ec90d5cd\u003c/code\u003e\u003c/a\u003e Fix Ghostscript installation instructions and add warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/9898904be70bf957154cc66cb5d6f57bac7c26b4\"\u003e\u003ccode\u003e9898904\u003c/code\u003e\u003c/a\u003e Fix pikepdf PdfMatrix deprecation warning; v15.4.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/27d52298420e785300e418bef4e4219ef97720e1\"\u003e\u003ccode\u003e27d5229\u003c/code\u003e\u003c/a\u003e Make logger names unique\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/4a9a575ef0f2cd7459538a43e802c8d8b3846168\"\u003e\u003ccode\u003e4a9a575\u003c/code\u003e\u003c/a\u003e ghostscript: better comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/52fd9a630d57ac7af91db423b17e6b0297fc1c66\"\u003e\u003ccode\u003e52fd9a6\u003c/code\u003e\u003c/a\u003e v15.4.2 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/a596ccf84469c81c6d19ab0eb59f53a5df0bc3c7\"\u003e\u003ccode\u003ea596ccf\u003c/code\u003e\u003c/a\u003e Raise exception if resulting PDF might appear blank in a known in some PDF vi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/e7fa97731f507c1d91e4289b9d5f3344533d7c4c\"\u003e\u003ccode\u003ee7fa977\u003c/code\u003e\u003c/a\u003e ghostscript duplicate filter: filter within a window of previous messages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/290aa2810868fb506a0ded2db8dabb580d5a2459\"\u003e\u003ccode\u003e290aa28\u003c/code\u003e\u003c/a\u003e Fix error on attempt to write to debug log after removing debug log handler\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/a95640ed9ec0a5caa360bd64b9ad6cc9f916fa61\"\u003e\u003ccode\u003ea95640e\u003c/code\u003e\u003c/a\u003e v15.4.1 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/f69267bb675c3261121b70451f6e673f433bc7ad\"\u003e\u003ccode\u003ef69267b\u003c/code\u003e\u003c/a\u003e watcher: restore ability to read json from file or command line string\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/compare/v14.4.0...v15.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-multiselectfield` from 0.1.12 to 1.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/goinnn/django-multiselectfield/releases\"\u003edjango-multiselectfield's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBadge image worked on GitHub but was broken on PyPI — fixed it.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.0\u003c/h2\u003e\n\u003cp\u003eThis release introduces multiple changes that are incompatible with previous versions.\u003c/p\u003e\n\u003cp\u003eThe major version number has been incremented following \u003ccode\u003eSemantic Versioning (SemVer) \u0026lt;https://semver.org/\u0026gt;\u003c/code\u003e_, as several components of the package have changed in ways that may require updates in client code.\u003c/p\u003e\n\u003cp\u003eThe internal codebase has been significantly cleaned up and reorganized, making it more maintainable and consistent.\u003c/p\u003e\n\u003cp\u003eThis version contains \u003cstrong\u003e40% fewer lines of code\u003c/strong\u003e compared to the previous release.\u003c/p\u003e\n\u003cp\u003eLess code means fewer bugs, easier maintenance, and better long-term sustainability.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFList (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\"\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2\u003c/a\u003e):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/50d3f785883e0a314f2dc89950e3fe1e88a7ede6\"\u003e50d3f785883e0a314f2dc89950e3fe1e88a7ede6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIt was created to support MultiSelectFields in admin.list_display, but it never actually worked. If you add a multiselect field to list_display, Django does not call to \u003cstrong\u003estr\u003c/strong\u003e method of MSGList (renamed to MSFList)\u003c/li\u003e\n\u003cli\u003eIt was created for integer choices too and it is a misconception. This is explained in the README file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFFlatchoices (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\"\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2\u003c/a\u003e):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/5638247c1d70670d4f81adf35143ef17a7d7575e\"\u003e5638247c1d70670d4f81adf35143ef17a7d7575e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIn list_display, labels for the choices are now shown (comma-separated) instead of the values of the choices (comma-separated).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn to_python method, value is a list or a string. (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/c4579138dda2833cbce26afbf57da5353aa45690\"\u003ec4579138dda2833cbce26afbf57da5353aa45690\u003c/a\u003e)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove set case and dict case\u003c/li\u003e\n\u003cli\u003eIf this breaks something, please create a test to help understand the use case.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoving integer choices:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIt was a mistake. MultiSelectField inherits of CharField, not IntegerField.\u003c/li\u003e\n\u003cli\u003eIt is impossible knows if original choice is (1, 'Item title 2.1') or ('1', 'Item title 2.1')\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: Form instance generated twice since Django  (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/168\"\u003e#168\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix CSS admin:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/173\"\u003e#173\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/7711f4aa755c81d00f07ce8a6ff0fd9240061f9c\"\u003e7711f4aa755c81d00f07ce8a6ff0fd9240061f9c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix Properly Display Categorized Choices in get_FOO_display (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/169\"\u003e#169\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSortMultiSelectField: (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/172\"\u003e#172\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/goinnn/django-multiselectfield/blob/master/CHANGES.rst\"\u003edjango-multiselectfield's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.0.1 (2025-06-12)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBadge image worked on GitHub but was broken on PyPI — fixed it.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.0.0 (2025-06-12)\u003c/h2\u003e\n\u003cp\u003eThis release introduces multiple changes that are incompatible with previous versions.\u003c/p\u003e\n\u003cp\u003eThe major version number has been incremented following \u003ccode\u003eSemantic Versioning (SemVer) \u0026lt;https://semver.org/\u0026gt;\u003c/code\u003e_, as several components of the package have changed in ways that may require updates in client code.\u003c/p\u003e\n\u003cp\u003eThe internal codebase has been significantly cleaned up and reorganized, making it more maintainable and consistent.\u003c/p\u003e\n\u003cp\u003eThis version contains \u003cstrong\u003e40% fewer lines of code\u003c/strong\u003e compared to the previous release.\u003c/p\u003e\n\u003cp\u003eLess code means fewer bugs, easier maintenance, and better long-term sustainability.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFList (\u003ccode\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\u0026gt;\u003c/code\u003e_):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ccode\u003e50d3f785883e0a314f2dc89950e3fe1e88a7ede6 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/50d3f785883e0a314f2dc89950e3fe1e88a7ede6\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eIt was created to support MultiSelectFields in admin.list_display, but it never actually worked. If you add a multiselect field to list_display, Django does not call to \u003cstrong\u003estr\u003c/strong\u003e method of MSGList (renamed to MSFList)\u003c/li\u003e\n\u003cli\u003eIt was created for integer choices too and it is a misconception. This is explained in the README file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFFlatchoices (\u003ccode\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\u0026gt;\u003c/code\u003e_):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ccode\u003e5638247c1d70670d4f81adf35143ef17a7d7575e \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/5638247c1d70670d4f81adf35143ef17a7d7575e\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eIn list_display, labels for the choices are now shown (comma-separated) instead of the values of the choices (comma-separated).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn to_python method, value is a list or a string. (\u003ccode\u003ec4579138dda2833cbce26afbf57da5353aa45690 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/c4579138dda2833cbce26afbf57da5353aa45690\u0026gt;\u003c/code\u003e_)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove set case and dict case\u003c/li\u003e\n\u003cli\u003eIf this breaks something, please create a test to help understand the use case.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoving integer choices:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIt was a mistake. MultiSelectField inherits of CharField, not IntegerField.\u003c/li\u003e\n\u003cli\u003eIt is impossible knows if original choice is (1, 'Item title 2.1') or ('1', 'Item title 2.1')\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: Form instance generated twice since Django  (\u003ccode\u003e[#168](https://github.com/goinnn/django-multiselectfield/issues/168) \u0026lt;https://github.com/goinnn/django-multiselectfield/pull/168\u0026gt;\u003c/code\u003e_)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix CSS admin:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ccode\u003e[#173](https://github.com/goinnn/django-multiselectfield/issues/173) \u0026lt;https://github.com/goinnn/django-multiselectfield/pull/173\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003e(\u003ccode\u003e7711f4aa755c81d00f07ce8a6ff0fd9240061f9c \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/7711f4aa755c81d00f07ce8a6ff0fd9240061f9c\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/679bac60a5156b26c608972a1b4a576b7010e6c2\"\u003e\u003ccode\u003e679bac6\u003c/code\u003e\u003c/a\u003e Ready to new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/bef25142b5f266164185ec3de4abdfcf91c3e89d\"\u003e\u003ccode\u003ebef2514\u003c/code\u003e\u003c/a\u003e Ready to new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/9a564a35581f89c35279ebfa20a2d693b3d23d73\"\u003e\u003ccode\u003e9a564a3\u003c/code\u003e\u003c/a\u003e Add image from github (pypi broken)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/f2b3186c1da7f50abf68b8e11e1d54c2683e2b34\"\u003e\u003ccode\u003ef2b3186\u003c/code\u003e\u003c/a\u003e Fix typo error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/72894698f191aeddd5364977365c6c2c88a5ac53\"\u003e\u003ccode\u003e7289469\u003c/code\u003e\u003c/a\u003e Fix another pypi error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/f17a82819157736ff0378f57c8bb114060f4f803\"\u003e\u003ccode\u003ef17a828\u003c/code\u003e\u003c/a\u003e Improve readme file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/d9e2b979f5f37fea812b39a90247e1afd5314415\"\u003e\u003ccode\u003ed9e2b97\u003c/code\u003e\u003c/a\u003e Fix error uploading to pypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/a387bc619d95a1e61da4ad7e7b0d319429322243\"\u003e\u003ccode\u003ea387bc6\u003c/code\u003e\u003c/a\u003e Ready to new release. The major version number has been incremented because t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/4fc13699678de3bdbe6c7299c6fdbfb901ca08f6\"\u003e\u003ccode\u003e4fc1369\u003c/code\u003e\u003c/a\u003e If the choices are Proxy str (i18n) patched_display_for_field gets an error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/8bafbdbd9db515206b1fef6ec7263d9b485c2c31\"\u003e\u003ccode\u003e8bafbdb\u003c/code\u003e\u003c/a\u003e Add static files to package\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/goinnn/django-multiselectfield/compare/v0.1.12...v1.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-auditlog` from 2.3.0 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jazzband/django-auditlog/releases\"\u003edjango-auditlog's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUse canonical timezone name for Buenos Aires by \u003ca href=\"https://github.com/EdwardBetts\"\u003e\u003ccode\u003e@​EdwardBetts\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/736\"\u003ejazzband/django-auditlog#736\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded fixes for changes_display_dict when AUDITLOG_STORE_JSON_CHANGES is True by \u003ca href=\"https://github.com/The-Alchemist\"\u003e\u003ccode\u003e@​The-Alchemist\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/738\"\u003ejazzband/django-auditlog#738\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd audit log history view to Django Admin by \u003ca href=\"https://github.com/2ykwang\"\u003e\u003ccode\u003e@​2ykwang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/743\"\u003ejazzband/django-auditlog#743\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExtend CI and local test coverage to MySQL and SQLite by \u003ca href=\"https://github.com/2ykwang\"\u003e\u003ccode\u003e@​2ykwang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/744\"\u003ejazzband/django-auditlog#744\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 4 to 5 in the github-actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/752\"\u003ejazzband/django-auditlog#752\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/753\"\u003ejazzband/django-auditlog#753\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/setup-python from 5 to 6 in the github-actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/754\"\u003ejazzband/django-auditlog#754\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Expression test compatibility for Django 6.0+ by \u003ca href=\"https://github.com/2ykwang\"\u003e\u003ccode\u003e@​2ykwang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/759\"\u003ejazzband/django-auditlog#759\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd I18N Support by \u003ca href=\"https://github.com/2ykwang\"\u003e\u003ccode\u003e@​2ykwang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/762\"\u003ejazzband/django-auditlog#762\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix None type mismatch in change detection by \u003ca href=\"https://github.com/2ykwang\"\u003e\u003ccode\u003e@​2ykwang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/763\"\u003ejazzband/django-auditlog#763\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare release 3.3.0 by \u003ca href=\"https://github.com/2ykwang\"\u003e\u003ccode\u003e@​2ykwang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/756\"\u003ejazzband/django-auditlog#756\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/EdwardBetts\"\u003e\u003ccode\u003e@​EdwardBetts\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/736\"\u003ejazzband/django-auditlog#736\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jazzband/django-auditlog/compare/v3.2.1...v3.3.0\"\u003ehttps://github.com/jazzband/django-auditlog/compare/v3.2.1...v3.3.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev3.2.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Django 5.2 by \u003ca href=\"https://github.com/mahdirahimi1999\"\u003e\u003ccode\u003e@​mahdirahimi1999\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/730\"\u003ejazzband/django-auditlog#730\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded fixes for updates and deletes if AUDITLOG_STORE_JSON_CHANGES is True by \u003ca href=\"https://github.com/The-Alchemist\"\u003e\u003ccode\u003e@​The-Alchemist\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/732\"\u003ejazzband/django-auditlog#732\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare release 3.2.1 by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/733\"\u003ejazzband/django-auditlog#733\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/mahdirahimi1999\"\u003e\u003ccode\u003e@​mahdirahimi1999\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/730\"\u003ejazzband/django-auditlog#730\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jazzband/django-auditlog/compare/v3.2.0...v3.2.1\"\u003ehttps://github.com/jazzband/django-auditlog/compare/v3.2.0...v3.2.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev3.2.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eimprove actor_email assignment by \u003ca href=\"https://github.com/GreatBahram\"\u003e\u003ccode\u003e@​GreatBahram\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/720\"\u003ejazzband/django-auditlog#720\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003enew setting: STORE_JSON_CHANGES that intelligently store JSON by \u003ca href=\"https://github.com/The-Alchemist\"\u003e\u003ccode\u003e@​The-Alchemist\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/719\"\u003ejazzband/django-auditlog#719\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eget_field_value\u003c/code\u003e field default value handling for Django 6.0 compatibility by \u003ca href=\"https://github.com/2ykwang\"\u003e\u003ccode\u003e@​2ykwang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/726\"\u003ejazzband/django-auditlog#726\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for custom masking functions by \u003ca href=\"https://github.com/2ykwang\"\u003e\u003ccode\u003e@​2ykwang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/725\"\u003ejazzband/django-auditlog#725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate pre-commit repos by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/728\"\u003ejazzband/django-auditlog#728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare release 3.2.0 by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/729\"\u003ejazzband/django-auditlog#729\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/The-Alchemist\"\u003e\u003ccode\u003e@​The-Alchemist\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/719\"\u003ejazzband/django-auditlog#719\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog...\n\n_Description has been truncated_","html_url":"https://github.com/dsp-testing/paperless-ngx/pull/187","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/dsp-testing%2Fpaperless-ngx/issues/187","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/187/packages"},{"uuid":"3680283696","node_id":"PR_kwDOP09MxM62TviW","number":57,"state":"open","title":"Bump the python group across 2 directories with 3 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-12-01T10:17:27.000Z","updated_at":"2025-12-04T17:08:01.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python","update_count":3,"packages":[{"name":"starlette","old_version":"0.49.3","new_version":"0.50.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.1","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-asyncio","old_version":"1.2.0","new_version":"1.3.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"}],"path":null,"ecosystem":"conda"},"body":"Bumps the python group with 1 update in the /example directory: [starlette](https://github.com/Kludex/starlette).\nBumps the python group with 2 updates in the /noextras directory: [pytest](https://github.com/pytest-dev/pytest) and [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio).\n\nUpdates `starlette` from 0.49.3 to 0.50.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/releases\"\u003estarlette's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.50.0\u003c/h2\u003e\n\u003ch2\u003eRemoved\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3061\"\u003e#3061\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.49.3...0.50.0\"\u003ehttps://github.com/Kludex/starlette/compare/0.49.3...0.50.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/blob/main/docs/release-notes.md\"\u003estarlette's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.50.0 (November 1, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3061\"\u003e#3061\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/4941b4a04993d087dea66e9287fe9472babee879\"\u003e\u003ccode\u003e4941b4a\u003c/code\u003e\u003c/a\u003e Version 0.50.0 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3063\"\u003e#3063\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/a0499f60a6f13b8b42381d70bafc076b6ece4eee\"\u003e\u003ccode\u003ea0499f6\u003c/code\u003e\u003c/a\u003e Drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3061\"\u003e#3061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Kludex/starlette/compare/0.49.3...0.50.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.4.2 to 9.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.1\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.1 (2025-11-12)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13895\"\u003e#13895\u003c/a\u003e: Restore support for skipping tests via \u003ccode\u003eraise unittest.SkipTest\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress plugin added in pytest 9.0 is now automatically disabled when iTerm2 is detected, it generated desktop notifications instead of the desired functionality.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the verbosity settings in the API reference from number to string.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13910\"\u003e#13910\u003c/a\u003e: Fixed \u003c!-- raw HTML omitted --\u003eUserWarning: Do not expect file_or_dir\u003c!-- raw HTML omitted --\u003e on some earlier Python 3.12 and 3.13 point versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePackaging updates and notes for downstreams\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13891\"\u003e#13891\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13942\"\u003e#13942\u003c/a\u003e: The CI/CD part of the release automation is now capable of\ncreating GitHub Releases without having a Git checkout on\ndisk -- by \u003ccode\u003ebluetech\u003c/code\u003e and \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e9.0.0\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.0 (2025-11-05)\u003c/h1\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/1367\"\u003e#1367\u003c/a\u003e: \u003cstrong\u003eSupport for subtests\u003c/strong\u003e has been added.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003esubtests \u0026lt;subtests\u0026gt;\u003c/code\u003e are an alternative to parametrization, useful in situations where the parametrization values are not all known at collection time.\u003c/p\u003e\n\u003cp\u003eExample:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003edef contains_docstring(p: Path) -\u0026gt; bool:\n    \u0026quot;\u0026quot;\u0026quot;Return True if the given Python file contains a top-level docstring.\u0026quot;\u0026quot;\u0026quot;\n    ...\n\u003cp\u003edef test_py_files_contain_docstring(subtests: pytest.Subtests) -\u0026gt; None:\u003cbr /\u003e\nfor path in Path.cwd().glob(\u0026quot;*.py\u0026quot;):\u003cbr /\u003e\nwith subtests.test(path=str(path)):\u003cbr /\u003e\nassert contains_docstring(path)\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/d1b64aa60b9e1a0fcfaf03af7ebeb185f1024a87\"\u003e\u003ccode\u003ed1b64aa\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/0a497c7b213ea950821319fd80dce219b0033f32\"\u003e\u003ccode\u003e0a497c7\u003c/code\u003e\u003c/a\u003e regendoc: remove CI environment variables (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13950\"\u003e#13950\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13951\"\u003e#13951\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a9f7e6ed579b8844e302067b7f05122b82993355\"\u003e\u003ccode\u003ea9f7e6e\u003c/code\u003e\u003c/a\u003e 🧪 Run \u003ccode\u003egh release\u003c/code\u003e w/o Git in CI/CD (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13942\"\u003e#13942\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13947\"\u003e#13947\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/2682a6607304f1f5bb5a2140340003cdf5121bc4\"\u003e\u003ccode\u003e2682a66\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13944\"\u003e#13944\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/bef7d34f1...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a999997e36c53d189ecded3369bf35bfe2be96ad\"\u003e\u003ccode\u003ea999997\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13941\"\u003e#13941\u003c/a\u003e from nicoddemus/min-pre-commit-version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/4bd63a0ead81d740aa767a4384d3b0b4c18f2ef2\"\u003e\u003ccode\u003e4bd63a0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13935\"\u003e#13935\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/ce8b8a7b4...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/15f93b332c1c3ec9c200c0ad3d55af5a2158e0db\"\u003e\u003ccode\u003e15f93b3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e from webknjaz/maintenance/tox-pep517-env-setuptools...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/0fa11ae3f79d06dc9e2f1f7c81ade4a1126d9ef3\"\u003e\u003ccode\u003e0fa11ae\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13927\"\u003e#13927\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/3d8075743...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/fa454700133c7b2cc960cba3b1cd09cc048c25a0\"\u003e\u003ccode\u003efa45470\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13926\"\u003e#13926\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d587e0cf8...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b4e3973505a2b7a2caa17ccc392d91a6ad73e122\"\u003e\u003ccode\u003eb4e3973\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13922\"\u003e#13922\u003c/a\u003e from bluetech/fix-argparse-userwarning\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.4.2...9.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-asyncio` from 1.2.0 to 1.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/releases\"\u003epytest-asyncio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epytest-asyncio 1.3.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/tree/1.3.0\"\u003e1.3.0\u003c/a\u003e - 2025-11-10\u003c/h1\u003e\n\u003ch2\u003eRemoved\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.9 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1278\"\u003e#1278\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for pytest 9 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1279\"\u003e#1279\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNotes for Downstream Packagers\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTested Python versions include free threaded Python 3.14t (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1274\"\u003e#1274\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTests are run in the same pytest process, instead of spawning a subprocess with \u003ccode\u003epytest.Pytester.runpytest_subprocess\u003c/code\u003e. This prevents the test suite from accidentally using a system installation of pytest-asyncio, which could result in test errors. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1275\"\u003e#1275\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/pytest-dev/pytest-asyncio/commit/2e9695fcf8c5c514f30f57b7d14ab83846357b96\"\u003e\u003ccode\u003e2e9695f\u003c/code\u003e\u003c/a\u003e docs: Compile changelog for v1.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/dd0e9ba3fa672fd6bf375004319742f8d3a50e12\"\u003e\u003ccode\u003edd0e9ba\u003c/code\u003e\u003c/a\u003e docs: Reference correct issue in news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/4c31abe5bf46bca3c9bdc7b18405f3deba4145d0\"\u003e\u003ccode\u003e4c31abe\u003c/code\u003e\u003c/a\u003e Build(deps): Bump nh3 from 0.3.1 to 0.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/13e94770d7bb146c329ae0e02486c0a6b38f3772\"\u003e\u003ccode\u003e13e9477\u003c/code\u003e\u003c/a\u003e Link to migration guides from changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/4d2cf3c36f47d7c4d563d401cdf229b35da34fbe\"\u003e\u003ccode\u003e4d2cf3c\u003c/code\u003e\u003c/a\u003e tests: handle Python 3.14 DefaultEventLoopPolicy deprecation warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/ee3549b6efb729b934e370e2be8040b25b034010\"\u003e\u003ccode\u003eee3549b\u003c/code\u003e\u003c/a\u003e test: Remove obsolete test for the event_loop fixture.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/7a67c82c5ae548f0968438e9dfa0f282d51c4597\"\u003e\u003ccode\u003e7a67c82\u003c/code\u003e\u003c/a\u003e tests: Fix failing test by preventing warning conversion to error.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/a17b689a750d05b6fc9369f5fb2b06baaba83536\"\u003e\u003ccode\u003ea17b689\u003c/code\u003e\u003c/a\u003e test: add pytest config to isolated test directories\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/18afc9df5a3153dc1fbdc4e11a56517ef95480df\"\u003e\u003ccode\u003e18afc9d\u003c/code\u003e\u003c/a\u003e fix(tests): replace runpytest_subprocess with runpytest\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/cdc6bd1de75b4738289eafd546f5e27a0bfd3b41\"\u003e\u003ccode\u003ecdc6bd1\u003c/code\u003e\u003c/a\u003e Add support for pytest 9 and drop Python 3.9 support\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/compare/v1.2.0...v1.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/connectrpc/connect-python/pull/57","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/connectrpc%2Fconnect-python/issues/57","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/57/packages"},{"uuid":"3633961058","node_id":"PR_kwDOKoYLLM6z47eA","number":183,"state":"open","title":"Bump the major-versions group across 1 directory with 17 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-11-17T16:01:58.000Z","updated_at":"2025-11-17T16:02:00.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"major-versions","update_count":17,"packages":[{"name":"django","old_version":"4.2.6","new_version":"4.2.26"},{"name":"django-guardian","old_version":"2.4.0","new_version":"3.2.0","repository_url":"https://github.com/django-guardian/django-guardian"},{"name":"django-extensions","old_version":"3.2.3","new_version":"4.1","repository_url":"https://github.com/django-extensions/django-extensions"},{"name":"django-filter","old_version":"23.3","new_version":"25.1","repository_url":"https://github.com/carltongibson/django-filter"},{"name":"gunicorn","old_version":"21.2.0","new_version":"23.0.0","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"python-ipware","old_version":"2.0.0","new_version":"3.0.0","repository_url":"https://github.com/un33k/python-ipware"},{"name":"redis","old_version":"4.6.0","new_version":"5.2.1","repository_url":"https://github.com/redis/redis-py"},{"name":"watchdog","old_version":"3.0.0","new_version":"6.0.0","repository_url":"https://github.com/gorakhargosh/watchdog"},{"name":"ocrmypdf","old_version":"14.4.0","new_version":"15.4.4","repository_url":"https://github.com/ocrmypdf/OCRmyPDF"},{"name":"django-multiselectfield","old_version":"0.1.12","new_version":"1.0.1","repository_url":"https://github.com/goinnn/django-multiselectfield"},{"name":"django-auditlog","old_version":"2.3.0","new_version":"3.3.0","repository_url":"https://github.com/jazzband/django-auditlog"},{"name":"black","old_version":"23.9.1","new_version":"25.11.0","repository_url":"https://github.com/psf/black"},{"name":"pre-commit","old_version":"3.4.0","new_version":"4.3.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pytest","old_version":"7.4.2","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-cov","old_version":"4.1.0","new_version":"7.0.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pytest-sugar","old_version":"0.9.7","new_version":"1.1.1","repository_url":"https://github.com/Teemu/pytest-sugar"},{"name":"pytest-rerunfailures","old_version":"12.0","new_version":"16.0.1","repository_url":"https://github.com/pytest-dev/pytest-rerunfailures"}],"path":null,"ecosystem":"conda"},"body":"Bumps the major-versions group with 17 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| django | `4.2.6` | `4.2.26` |\n| [django-guardian](https://github.com/django-guardian/django-guardian) | `2.4.0` | `3.2.0` |\n| [django-extensions](https://github.com/django-extensions/django-extensions) | `3.2.3` | `4.1` |\n| [django-filter](https://github.com/carltongibson/django-filter) | `23.3` | `25.1` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `21.2.0` | `23.0.0` |\n| [python-ipware](https://github.com/un33k/python-ipware) | `2.0.0` | `3.0.0` |\n| [redis](https://github.com/redis/redis-py) | `4.6.0` | `5.2.1` |\n| [watchdog](https://github.com/gorakhargosh/watchdog) | `3.0.0` | `6.0.0` |\n| [ocrmypdf](https://github.com/ocrmypdf/OCRmyPDF) | `14.4.0` | `15.4.4` |\n| [django-multiselectfield](https://github.com/goinnn/django-multiselectfield) | `0.1.12` | `1.0.1` |\n| [django-auditlog](https://github.com/jazzband/django-auditlog) | `2.3.0` | `3.3.0` |\n| [black](https://github.com/psf/black) | `23.9.1` | `25.11.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `3.4.0` | `4.3.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `7.4.2` | `8.4.2` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `4.1.0` | `7.0.0` |\n| [pytest-sugar](https://github.com/Teemu/pytest-sugar) | `0.9.7` | `1.1.1` |\n| [pytest-rerunfailures](https://github.com/pytest-dev/pytest-rerunfailures) | `12.0` | `16.0.1` |\n\n\nUpdates `django` from 4.2.6 to 4.2.26\n\nUpdates `django-guardian` from 2.4.0 to 3.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-guardian/django-guardian/releases\"\u003edjango-guardian's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.2.0 The Bozkir progression\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate enforcement contact link in CODE_OF_CONDUCT.md by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/918\"\u003edjango-guardian/django-guardian#918\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptional cached anonymous user  - Pr 907 by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/912\"\u003edjango-guardian/django-guardian#912\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003egenerator warnings and logics are added for security purposes by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/920\"\u003edjango-guardian/django-guardian#920\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erollback compatible create anon user fix is developed by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/919\"\u003edjango-guardian/django-guardian#919\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e644 using inlines in django admin with guardian by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/921\"\u003edjango-guardian/django-guardian#921\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-guardian/django-guardian/compare/3.1.3...3.2.0\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.3...3.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edjango-packages badge is added by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/910\"\u003edjango-guardian/django-guardian#910\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate issue templates by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/909\"\u003edjango-guardian/django-guardian#909\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMakefile support by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/906\"\u003edjango-guardian/django-guardian#906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePR merging scenario is fixed by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/913\"\u003edjango-guardian/django-guardian#913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed issue causing prefetch_perms() to throw when passed an empty list by \u003ca href=\"https://github.com/keattang\"\u003e\u003ccode\u003e@​keattang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/904\"\u003edjango-guardian/django-guardian#904\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRe apply \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/812\"\u003e#812\u003c/a\u003e using correct lookup method by \u003ca href=\"https://github.com/sevdog\"\u003e\u003ccode\u003e@​sevdog\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/842\"\u003edjango-guardian/django-guardian#842\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOPS: Bump version for release by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/915\"\u003edjango-guardian/django-guardian#915\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-guardian/django-guardian/compare/3.1.2...3.1.3\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.2...3.1.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 in /.github/workflows by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/903\"\u003edjango-guardian/django-guardian#903\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix type and deprecate old name by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/902\"\u003edjango-guardian/django-guardian#902\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/django-guardian/django-guardian/pull/903\"\u003edjango-guardian/django-guardian#903\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-guardian/django-guardian/compare/3.1.1...3.1.2\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.1...3.1.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epre-commit checker step is added by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/901\"\u003edjango-guardian/django-guardian#901\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-guardian/django-guardian/compare/3.1.0...3.1.1\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.0...3.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eImproved indexing, tweaks and bugfixes\u003c/h2\u003e\n\u003ch2\u003eSaving the 🌳🌳🌳 and the 💰💰💰\u003c/h2\u003e\n\u003cp\u003e⚠️⚠️⚠️ \u003cstrong\u003eWARNING:\u003c/strong\u003e This release contains an update to database indexing which should yield \u003cstrong\u003econsiderable additional performance\u003c/strong\u003e, especially on large table permissions lookups (thanks \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e for such rigorous performance testing!!!). Following the migration that introduces these indexes, databases should reindex automatically in the background (typically within 0-30s even for large tables): this is unlikely to be noticeable but users may experience a short lived performance hit during this period.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow ignore_conflicts on bulk create by \u003ca href=\"https://github.com/pgiki\"\u003e\u003ccode\u003e@​pgiki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/814\"\u003edjango-guardian/django-guardian#814\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/4120d00c28c1b6d3bacb988f6db86bacf91ed0f1\"\u003e\u003ccode\u003e4120d00\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/921\"\u003e#921\u003c/a\u003e from django-guardian/644-using-inlines-in-django-admi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/c896b220bdf96783f1c25d730f12ebef95758c99\"\u003e\u003ccode\u003ec896b22\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/919\"\u003e#919\u003c/a\u003e from django-guardian/770-migration-rollback-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/3814e2383c69266350a3d885d445bdd79da8cb78\"\u003e\u003ccode\u003e3814e23\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 770-migration-rollback-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/94854899f4a030b42840837e08b42923a71c5b78\"\u003e\u003ccode\u003e9485489\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/920\"\u003e#920\u003c/a\u003e from django-guardian/666-permissionrequiredmixin-does...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/e01e2e1edeec60b2c79d561db56e0949ea3c4dad\"\u003e\u003ccode\u003ee01e2e1\u003c/code\u003e\u003c/a\u003e check only username field fixing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/e1ae3c5a7ab74a679ef1ccff2a480a88117df464\"\u003e\u003ccode\u003ee1ae3c5\u003c/code\u003e\u003c/a\u003e show warning instead of error for backward compatibility and giving time the ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/63c10f549dfe2b5ba67e9eec36095cf3e6a2bab8\"\u003e\u003ccode\u003e63c10f5\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 644-using-inlines-in-django-admin-with-guardian\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/b27ebbdcc7f9952d9d9aaaa879b5e202063ccaa8\"\u003e\u003ccode\u003eb27ebbd\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 666-permissionrequiredmixin-does-not-warn-against-us...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/d7ed4a3bccb730d3cdf16fdc404f25b94674c653\"\u003e\u003ccode\u003ed7ed4a3\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 770-migration-rollback-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/03fed6924e06fd13991d9e8ae1b4590addf5473e\"\u003e\u003ccode\u003e03fed69\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/912\"\u003e#912\u003c/a\u003e from django-guardian/pr-907\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-guardian/django-guardian/compare/v2.4.0...3.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-extensions` from 3.2.3 to 4.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-extensions/django-extensions/releases\"\u003edjango-extensions's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd: show_permissions command (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1920\"\u003e#1920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, style per app (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1848\"\u003e#1848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: JSONField, bulk_update's (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1924\"\u003e#1924\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/ahmad88me\"\u003e\u003ccode\u003e@​ahmad88me\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1848\"\u003edjango-extensions/django-extensions#1848\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-extensions/django-extensions/compare/4.0...4.1\"\u003ehttps://github.com/django-extensions/django-extensions/compare/4.0...4.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprovement: Support for Python 3.12 and 3.13\u003c/li\u003e\n\u003cli\u003eImprovement: Support for Django 5.x\u003c/li\u003e\n\u003cli\u003eImprovement: Switch from setup.{cfg,py} to pyproject.toml\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add option to display field choices in graph_models (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1854\"\u003e#1854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add webp support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1857\"\u003e#1857\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Support for ordering edges on pydot/dot/graphviz (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1914\"\u003e#1914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: mail_debug, Update mail_debug command to use aiosmtpd (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1880\"\u003e#1880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: shell_plus, Improve error message for missing import (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1898\"\u003e#1898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: reset_db, Add reset_db support for django_tenants (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1855\"\u003e#1855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: docs, various improvements (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1852\"\u003e#1852\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1888\"\u003e#1888\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1882\"\u003e#1882\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1901\"\u003e#1901\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1912\"\u003e#1912\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1913\"\u003e#1913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: jobs, Handle non-package modules when looking for job definitions (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1887\"\u003e#1887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Add django-prometheus DB backends support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1800\"\u003e#1800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Call post_command when the command raises an unhandled exception (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1837\"\u003e#1837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: sqldiff, do not consider ('serial', 'integer') nor ('bigserial', 'bigint') as a field-type-differ (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1867\"\u003e#1867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: shell_plus, Fix start up order and add history (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1869\"\u003e#1869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove pipchecker and associated tests (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1906\"\u003e#1906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFollowing Django's release numbering style more closely (see \u003ca href=\"https://docs.djangoproject.com/en/5.2/internals/release-process/\"\u003ehttps://docs.djangoproject.com/en/5.2/internals/release-process/\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/dimitrismistriotis\"\u003e\u003ccode\u003e@​dimitrismistriotis\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1859\"\u003edjango-extensions/django-extensions#1859\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/titouanc\"\u003e\u003ccode\u003e@​titouanc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1854\"\u003edjango-extensions/django-extensions#1854\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dmwyatt\"\u003e\u003ccode\u003e@​dmwyatt\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1872\"\u003edjango-extensions/django-extensions#1872\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stianjensen\"\u003e\u003ccode\u003e@​stianjensen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1898\"\u003edjango-extensions/django-extensions#1898\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PapaZ810\"\u003e\u003ccode\u003e@​PapaZ810\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1888\"\u003edjango-extensions/django-extensions#1888\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kviktor\"\u003e\u003ccode\u003e@​kviktor\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1857\"\u003edjango-extensions/django-extensions#1857\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aripollak\"\u003e\u003ccode\u003e@​aripollak\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1913\"\u003edjango-extensions/django-extensions#1913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/flowgunso\"\u003e\u003ccode\u003e@​flowgunso\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1914\"\u003edjango-extensions/django-extensions#1914\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anitahammer\"\u003e\u003ccode\u003e@​anitahammer\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1869\"\u003edjango-extensions/django-extensions#1869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nicolaspanel\"\u003e\u003ccode\u003e@​nicolaspanel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1867\"\u003edjango-extensions/django-extensions#1867\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yujinyuz\"\u003e\u003ccode\u003e@​yujinyuz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1855\"\u003edjango-extensions/django-extensions#1855\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/soof-golan\"\u003e\u003ccode\u003e@​soof-golan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1852\"\u003edjango-extensions/django-extensions#1852\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ghickman\"\u003e\u003ccode\u003e@​ghickman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1887\"\u003edjango-extensions/django-extensions#1887\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jrobichaud\"\u003e\u003ccode\u003e@​jrobichaud\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1837\"\u003edjango-extensions/django-extensions#1837\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-extensions/django-extensions/compare/3.2.3...4.0\"\u003ehttps://github.com/django-extensions/django-extensions/compare/3.2.3...4.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.2.4b1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-extensions/django-extensions/blob/main/CHANGELOG.md\"\u003edjango-extensions's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.1\u003c/h2\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd: show_permissions command (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1920\"\u003e#1920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, style per app (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1848\"\u003e#1848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: JSONField, bulk_update's (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1924\"\u003e#1924\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.0\u003c/h2\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eImprovement: Support for Python 3.12 and 3.13\u003c/li\u003e\n\u003cli\u003eImprovement: Support for Django 5.x\u003c/li\u003e\n\u003cli\u003eImprovement: Switch from setup.{cfg,py} to pyproject.toml\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add option to display field choices in graph_models (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1854\"\u003e#1854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add webp support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1857\"\u003e#1857\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Support for ordering edges on pydot/dot/graphviz (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1914\"\u003e#1914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: mail_debug, Update mail_debug command to use aiosmtpd (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1880\"\u003e#1880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: shell_plus, Improve error message for missing import (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1898\"\u003e#1898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: reset_db, Add reset_db support for django_tenants (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1855\"\u003e#1855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: docs, various improvements (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1852\"\u003e#1852\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1888\"\u003e#1888\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1882\"\u003e#1882\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1901\"\u003e#1901\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1912\"\u003e#1912\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1913\"\u003e#1913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: jobs, Handle non-package modules when looking for job definitions (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1887\"\u003e#1887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Add django-prometheus DB backends support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1800\"\u003e#1800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Call post_command when the command raises an unhandled exception (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1837\"\u003e#1837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: sqldiff, do not consider ('serial', 'integer') nor ('bigserial', 'bigint') as a \u003ccode\u003efield-type-differ\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1867\"\u003e#1867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: shell_plus, Fix start up order and add history (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1869\"\u003e#1869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove pipchecker and associated tests (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1906\"\u003e#1906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFollowing Django's release numbering style more closely (see \u003ca href=\"https://docs.djangoproject.com/en/5.2/internals/release-process/\"\u003ehttps://docs.djangoproject.com/en/5.2/internals/release-process/\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/django-extensions/django-extensions/commit/ad015513e5d8e8ee6ad748fca5f32ccf3fb3d5c5\"\u003e\u003ccode\u003ead01551\u003c/code\u003e\u003c/a\u003e v4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/2c3e914f1264c0a029b3b47b7425d0f68ce637ed\"\u003e\u003ccode\u003e2c3e914\u003c/code\u003e\u003c/a\u003e update CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/fb5b2af1b6595ee126237c299acf242fcfee817e\"\u003e\u003ccode\u003efb5b2af\u003c/code\u003e\u003c/a\u003e ruff format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/7e978d27b031843640f9204ff495738c46233d7f\"\u003e\u003ccode\u003e7e978d2\u003c/code\u003e\u003c/a\u003e graph_models style per app (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1848\"\u003e#1848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/067064ea0c6dec7cba1583447fe5fe1c706d5351\"\u003e\u003ccode\u003e067064e\u003c/code\u003e\u003c/a\u003e avoid trying to serialize expressions when serializing default values\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/a886068502474e70a2d68ff4634a15cc3366088d\"\u003e\u003ccode\u003ea886068\u003c/code\u003e\u003c/a\u003e update CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/d824501cbc6d04a24a43ff5756b496f84093b225\"\u003e\u003ccode\u003ed824501\u003c/code\u003e\u003c/a\u003e Add show_permissions management command (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1920\"\u003e#1920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/934f93f53bdf6c6271ae1ddaee71bc9bf3364a0e\"\u003e\u003ccode\u003e934f93f\u003c/code\u003e\u003c/a\u003e bumped version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/c4577df5b69ec1ebcbe6bc64d7a5c20362f3a8fa\"\u003e\u003ccode\u003ec4577df\u003c/code\u003e\u003c/a\u003e v4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/7cdb43ab56a3b610b47680d8a2fe86b09d5913aa\"\u003e\u003ccode\u003e7cdb43a\u003c/code\u003e\u003c/a\u003e pyproject formatting\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-extensions/django-extensions/compare/3.2.3...4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-filter` from 23.3 to 25.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/carltongibson/django-filter/blob/main/CHANGES.rst\"\u003edjango-filter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 25.1 (2025-02-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved the in-built API schema generation methods, which have been\ndeprecated since v23.2.\u003c/p\u003e\n\u003cp\u003eYou should use \u003ccode\u003edrf-spectacular \u0026lt;https://drf-spectacular.readthedocs.io/en/latest/\u0026gt;\u003c/code\u003e_\nfor generating OpenAPI schemas with DRF.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped support for EOL Python 3.8.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded testing against Python 3.13.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded official support for Django 5.2.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 24.3 (2024-08-02)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdds official support for Django 5.1.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow using dictionaries for grouped choices on Django 5.0+.\u003c/p\u003e\n\u003cp\u003eThanks to Sævar Öfjörð Magnússon.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdds \u003ccode\u003eunknown_field_behavior\u003c/code\u003e FilterSet option to allowing warning and\nignore behaviours for unknown field types during FilterSet generation.\u003c/p\u003e\n\u003cp\u003eThanks to Loes.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 24.2 (2024-03-27)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a regression in v23.4 where callable choices were incorrectly evaluated\nat filter instantiation, on Django versions prior to 5.0.\u003c/p\u003e\n\u003cp\u003eThanks to Craig de Stigter for the report and reproduce.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 24.1 (2024-03-08)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated supported Python and Django versions, and resolved upcoming Django\ndeprecations.\u003c/p\u003e\n\u003cp\u003eRequired versions are now at least Python 3.8 and Django 4.2.\u003c/p\u003e\n\u003cp\u003eThanks to Michael Manganiello.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllowed passing a FilterSet class to the filterset_factory().\u003c/p\u003e\n\u003cp\u003eThanks to Birger Schacht.\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/carltongibson/django-filter/commit/27dd67284405ee832701509b3515baa50c6e074d\"\u003e\u003ccode\u003e27dd672\u003c/code\u003e\u003c/a\u003e Updated Change notes for 25.1 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/2ea38174b010f378a9b57d90c566c2bab7b37bbb\"\u003e\u003ccode\u003e2ea3817\u003c/code\u003e\u003c/a\u003e Added Trove classifier for Django 5.2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/4d2306c211c1d86f85f04fb311b8b05bfefb08a8\"\u003e\u003ccode\u003e4d2306c\u003c/code\u003e\u003c/a\u003e Replaced hardcoded pks in tests (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1703\"\u003e#1703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/fbf5a76a4d97480d78779397b90d34fa8f13d141\"\u003e\u003ccode\u003efbf5a76\u003c/code\u003e\u003c/a\u003e Update tox after Django 5.2 alpha release. (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1700\"\u003e#1700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/1e76d6859e109ae34d5e2a657c66146a9d744c80\"\u003e\u003ccode\u003e1e76d68\u003c/code\u003e\u003c/a\u003e Use QueryDict for data default. (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1691\"\u003e#1691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/e709e5d43a4ad8b8e8ea62520669b88300c9c686\"\u003e\u003ccode\u003ee709e5d\u003c/code\u003e\u003c/a\u003e Add testing against Python 3.13.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/ccde000dfe74362b62301b248681e9505133e821\"\u003e\u003ccode\u003eccde000\u003c/code\u003e\u003c/a\u003e Dropped support for EOL Python 3.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/2a644e176634ec0ce99d9446d980501e9763e194\"\u003e\u003ccode\u003e2a644e1\u003c/code\u003e\u003c/a\u003e Removed deprecated schema generation methods from DRF backend. (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1698\"\u003e#1698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/2494df96c6387a9fa411fcb00b696b15dfd9216b\"\u003e\u003ccode\u003e2494df9\u003c/code\u003e\u003c/a\u003e fix typo in filterset.txt (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1695\"\u003e#1695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/3656174bd90d20f3d916fd98b6476c270013b681\"\u003e\u003ccode\u003e3656174\u003c/code\u003e\u003c/a\u003e Translated using Weblate (Czech) (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1687\"\u003e#1687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/carltongibson/django-filter/compare/23.3...25.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gunicorn` from 21.2.0 to 23.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/benoitc/gunicorn/releases\"\u003egunicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e23.0.0\u003c/h2\u003e\n\u003cp\u003eGunicorn 23.0.0 has been released. This version improve HTTP 1.1. support and  which improve safety\u003c/p\u003e\n\u003cp\u003eYou're invited to upgrade asap your own installation.\u003c/p\u003e\n\u003ch1\u003e23.0.0 - 2024-08-10\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eminor docs fixes (:pr:\u003ccode\u003e3217\u003c/code\u003e, :pr:\u003ccode\u003e3089\u003c/code\u003e, :pr:\u003ccode\u003e3167\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eworker_class parameter accepts a class (:pr:\u003ccode\u003e3079\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003efix deadlock if request terminated during chunked parsing (:pr:\u003ccode\u003e2688\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003epermit receiving Transfer-Encodings: compress, deflate, gzip (:pr:\u003ccode\u003e3261\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003epermit Transfer-Encoding headers specifying multiple encodings. note: no parameters, still (:pr:\u003ccode\u003e3261\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003esdist generation now explicitly excludes sphinx build folder (:pr:\u003ccode\u003e3257\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003edecode bytes-typed status (as can be passed by gevent) as utf-8 instead of raising \u003ccode\u003eTypeError\u003c/code\u003e (:pr:\u003ccode\u003e2336\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eraise correct Exception when encounting invalid chunked requests (:pr:\u003ccode\u003e3258\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ethe SCRIPT_NAME and PATH_INFO headers, when received from allowed forwarders, are no longer restricted for containing an underscore (:pr:\u003ccode\u003e3192\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003einclude IPv6 loopback address \u003ccode\u003e[::1]\u003c/code\u003e in default for :ref:\u003ccode\u003eforwarded-allow-ips\u003c/code\u003e and :ref:\u003ccode\u003eproxy-allow-ips\u003c/code\u003e (:pr:\u003ccode\u003e3192\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e** NOTE **\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SCRIPT_NAME change mitigates a regression that appeared first in the 22.0.0 release\u003c/li\u003e\n\u003cli\u003eReview your :ref:\u003ccode\u003eforwarded-allow-ips\u003c/code\u003e setting if you are still not seeing the SCRIPT_NAME transmitted\u003c/li\u003e\n\u003cli\u003eReview your :ref:\u003ccode\u003eforwarder-headers\u003c/code\u003e setting if you are missing headers after upgrading from a version prior to 22.0.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e** Breaking changes **\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003erefuse requests where the uri field is empty (:pr:\u003ccode\u003e3255\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003erefuse requests with invalid CR/LR/NUL in heade field values (:pr:\u003ccode\u003e3253\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eremove temporary \u003ccode\u003e--tolerate-dangerous-framing\u003c/code\u003e switch from 22.0 (:pr:\u003ccode\u003e3260\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eIf any of the breaking changes affect you, be aware that now refused requests can post a security problem, especially so in setups involving request pipe-lining and/or proxies.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFix CVE-2024-1135\u003c/p\u003e\n\u003ch2\u003eGunicorn 22.0 has been released\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eGunicorn 22.0.0 has been released.\u003c/strong\u003e This version fix the numerous security vulnerabilities. You're invited to upgrade asap your own installation.\u003c/p\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e22.0.0 - 2024-04-17\n===================\n\u003cul\u003e\n\u003cli\u003euse \u003ccode\u003eutime\u003c/code\u003e to notify workers liveness\u003c/li\u003e\n\u003cli\u003emigrate setup to pyproject.toml\u003c/li\u003e\n\u003cli\u003efix numerous security vulnerabilities in HTTP parser (closing some request smuggling vectors)\u003c/li\u003e\n\u003cli\u003eparsing additional requests is no longer attempted past unsupported request framing\u003c/li\u003e\n\u003cli\u003eon HTTP versions \u0026lt; 1.1 support for chunked transfer is refused (only used in exploits)\u003c/li\u003e\n\u003cli\u003erequests conflicting configured or passed SCRIPT_NAME now produce a verbose error\u003c/li\u003e\n\u003cli\u003eTrailer fields are no longer inspected for headers indicating secure scheme\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/411986d6191114dd1d1bbb9c72c948dbf0ef0425\"\u003e\u003ccode\u003e411986d\u003c/code\u003e\u003c/a\u003e fix doc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/334392e7795f2017e83f7054d372422512d6f4b6\"\u003e\u003ccode\u003e334392e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/2559\"\u003e#2559\u003c/a\u003e from laggardkernel/bugfix/reexec-env\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/e75c3533e32f91a9dceba9e8e1341fea5540ba81\"\u003e\u003ccode\u003ee75c353\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3189\"\u003e#3189\u003c/a\u003e from pajod/patch-py36\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/9357b28dd867950e33ca3864207cb35a1eb8ba6f\"\u003e\u003ccode\u003e9357b28\u003c/code\u003e\u003c/a\u003e keep document user in access_log_format setting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/79fdef0822cbfe7e16b659b07230af9be098d5fc\"\u003e\u003ccode\u003e79fdef0\u003c/code\u003e\u003c/a\u003e bump to 23.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/3acd9fbfd1159ca3cd80a8052ada89a0bf27f806\"\u003e\u003ccode\u003e3acd9fb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/2620\"\u003e#2620\u003c/a\u003e from talkerbox/improve-access-log-format-docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/3f56d76548e4ade034bf5e174737902970285d1f\"\u003e\u003ccode\u003e3f56d76\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3192\"\u003e#3192\u003c/a\u003e from pajod/patch-allowed-script-name\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/256d474a7910bd605f2cc8c082b79c1ae55215a9\"\u003e\u003ccode\u003e256d474\u003c/code\u003e\u003c/a\u003e docs: revert duped directive\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/ffa48b581dcaa75f17fd2df263515e4266feeef6\"\u003e\u003ccode\u003effa48b5\u003c/code\u003e\u003c/a\u003e test: default change was intentional\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/52538ca9070b5e7ead5d0fa731e82a622dc6f3ee\"\u003e\u003ccode\u003e52538ca\u003c/code\u003e\u003c/a\u003e docs: recommend SCRIPT_NAME=/subfolder\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/benoitc/gunicorn/compare/21.2.0...23.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-ipware` from 2.0.0 to 3.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/un33k/python-ipware/blob/main/CHANGELOG.md\"\u003epython-ipware's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.0.0\u003c/h2\u003e\n\u003cp\u003eFix:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRelease major version, as there is a possibility of api change causing minimal backward incompatibly\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.5\u003c/h2\u003e\n\u003cp\u003eEnhance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAI assisted clean up\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.4\u003c/h2\u003e\n\u003cp\u003eEnhance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eproxy_count=0\u003c/code\u003e as an option (\u003ca href=\"https://github.com/FraKraBa\"\u003e\u003ccode\u003e@​FraKraBa\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.3\u003c/h2\u003e\n\u003cp\u003eEnhance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eHTTP_CF_CONNECTING_IP\u003c/code\u003e to list of known ip headers (Adam M.)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.2\u003c/h2\u003e\n\u003cp\u003eEnhance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded logger name\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.1\u003c/h2\u003e\n\u003cp\u003eIssue:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003eHTTP_VIA\u003c/code\u003e header support (unreliable IP information) (\u003ca href=\"https://github.com/yourcelf\"\u003e\u003ccode\u003e@​yourcelf\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eEnhance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eInclude support for python 3.12\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/cab810ced72457abcc77ffd234be9cb0a75f7ec3\"\u003e\u003ccode\u003ecab810c\u003c/code\u003e\u003c/a\u003e version 3 major (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/21\"\u003e#21\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/5d01f1e6662f3de861d44006247fd5f0a3ae4a0b\"\u003e\u003ccode\u003e5d01f1e\u003c/code\u003e\u003c/a\u003e Feat/enhance (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/20\"\u003e#20\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/bd56bcd1d4ed2d2bbd690059e5a231d6b51bcd31\"\u003e\u003ccode\u003ebd56bcd\u003c/code\u003e\u003c/a\u003e Allow for proxy_count of exact 0 (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/19\"\u003e#19\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/ddfde3c6d4dee387a59287a2c0afc933f9773791\"\u003e\u003ccode\u003eddfde3c\u003c/code\u003e\u003c/a\u003e Update Readme (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/17\"\u003e#17\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/aab321baf9958ae128460c2279364926f6612dca\"\u003e\u003ccode\u003eaab321b\u003c/code\u003e\u003c/a\u003e Add HTTP_CF_CONNECTING_IP to ip Header list (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/16\"\u003e#16\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/e908cc321dc61e203033768f8d1072efc71f4556\"\u003e\u003ccode\u003ee908cc3\u003c/code\u003e\u003c/a\u003e Added logger name (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/15\"\u003e#15\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/ad1f01783279ecd8dfff91b3db8558f92b5bde0b\"\u003e\u003ccode\u003ead1f017\u003c/code\u003e\u003c/a\u003e Remove HTTP_VIA support, support for 3.12 (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/14\"\u003e#14\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/un33k/python-ipware/compare/v2.0.0...v3.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `redis` from 4.6.0 to 5.2.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/redis-py/releases\"\u003eredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.2.1\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed unsecured tempfile.mktemp() command usage (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3446\"\u003e#3446\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed bug with SLOWLOG GET response parsing on Redis Software (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3441\"\u003e#3441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed issue with invoking _close() on closed event loop (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3438\"\u003e#3438\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMigrate test infrastructure to new custom docker images (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3415\"\u003e#3415\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed flacky test with HEXPIREAT command (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3437\"\u003e#3437\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/IlianIliev\"\u003e\u003ccode\u003e@​IlianIliev\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/uglide\"\u003e\u003ccode\u003e@​uglide\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/vladvildanov\"\u003e\u003ccode\u003e@​vladvildanov\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/teodorfn\"\u003e\u003ccode\u003e@​teodorfn\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.2.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🚀 New Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExtend AggregateRequest with scorer argument (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3409\"\u003e#3409\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePin pytest-profiling version due to the bug (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3417\"\u003e#3417\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/uglide\"\u003e\u003ccode\u003e@​uglide\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/rbs333\"\u003e\u003ccode\u003e@​rbs333\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/vladvildanov\"\u003e\u003ccode\u003e@​vladvildanov\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/dwdougherty\"\u003e\u003ccode\u003e@​dwdougherty\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.1.1\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e5.1.1\u003c/h2\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed return type for Redis Set commands to be Set instead of List (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3399\"\u003e#3399\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed bug with partial Hiredis availability (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3400\"\u003e#3400\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed bug with async pipeline and cluster fails with some commands (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3402\"\u003e#3402\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.1.0\u003c/h2\u003e\n\u003ch3\u003e🚀 New Features\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/redis/redis-py/commit/a74fa6a3dc1996ff256d5b1849c3018a7ac05c99\"\u003e\u003ccode\u003ea74fa6a\u003c/code\u003e\u003c/a\u003e Release 5.2.1 (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3451\"\u003e#3451\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/166ae7bfd79a88cdfbd7959b2c28cd79aa0eaf0c\"\u003e\u003ccode\u003e166ae7b\u003c/code\u003e\u003c/a\u003e Updated package version (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3418\"\u003e#3418\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/00f5be420b397adfa1b9aa9c2761f7d8a27c0a9a\"\u003e\u003ccode\u003e00f5be4\u003c/code\u003e\u003c/a\u003e adds scorer to AggregateRequest (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3409\"\u003e#3409\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/4c4d4afd2b31b5c36a2d5e22419bcbf584265a17\"\u003e\u003ccode\u003e4c4d4af\u003c/code\u003e\u003c/a\u003e Pin pytest-profiling (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3417\"\u003e#3417\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/d6ddb0d66bc4bd28c99d9cf148c9085117cc8ce9\"\u003e\u003ccode\u003ed6ddb0d\u003c/code\u003e\u003c/a\u003e DOC-4199: add TCEs to the combined query page (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3380\"\u003e#3380\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/17db62e3c9ea796f5705d2857f49e52799057af7\"\u003e\u003ccode\u003e17db62e\u003c/code\u003e\u003c/a\u003e DOC-4200: add TCEs to the aggregation query page (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3381\"\u003e#3381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/700045c7a7db6d986df6610d61239375a2211053\"\u003e\u003ccode\u003e700045c\u003c/code\u003e\u003c/a\u003e Backport 5.1 changes into master (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3406\"\u003e#3406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/2e46613dcdf9db7f948f3258fee1c9199da8cbfa\"\u003e\u003ccode\u003e2e46613\u003c/code\u003e\u003c/a\u003e Client side caching refactoring (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3350\"\u003e#3350\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/7d73d742d6df4b3d6f6a1f0ec73e72d4a02add74\"\u003e\u003ccode\u003e7d73d74\u003c/code\u003e\u003c/a\u003e DOC-4197: add TCEs to the geospatial query page (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3378\"\u003e#3378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/c7483b3d63a2001508a2ff2c9952ad50d9252732\"\u003e\u003ccode\u003ec7483b3\u003c/code\u003e\u003c/a\u003e DOC-4196: add TCEs to the full-text query page (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3377\"\u003e#3377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/redis/redis-py/compare/v4.6.0...v5.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `watchdog` from 3.0.0 to 6.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/gorakhargosh/watchdog/releases\"\u003ewatchdog's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[inotify] Use of \u003ccode\u003eselect.poll()\u003c/code\u003e instead of deprecated \u003ccode\u003eselect.select()\u003c/code\u003e, if available. (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1078\"\u003e#1078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_class()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_instancemethod()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_module()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eis_class_private_name()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eis_classmethod()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eis_method(met()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003emethod_name()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003ename()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Removed the \u003ccode\u003e--trace\u003c/code\u003e CLI argument from the \u003ccode\u003ewatchmedo log\u003c/code\u003e command, useless since events are logged by default at the \u003ccode\u003eLoggerTrick\u003c/code\u003e class level.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePin test dependecies.\u003c/li\u003e\n\u003cli\u003e[docs] Add typing info to quick start. (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1082\"\u003e#1082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[inotify] Fix reading inotify file descriptor after closing it. (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1081\"\u003e#1081\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[utils] The \u003ccode\u003estop_signal\u003c/code\u003e keyword-argument type of the \u003ccode\u003eAutoRestartTrick\u003c/code\u003e class can now be either a \u003ccode\u003esignal.Signals\u003c/code\u003e or an \u003ccode\u003eint\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e[utils] Added the \u003ccode\u003e__repr__()\u003c/code\u003e method to the \u003ccode\u003eTrick\u003c/code\u003e class.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Fixed Mypy issues.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Added the \u003ccode\u003e__repr__()\u003c/code\u003e method to the \u003ccode\u003eHelpFormatter\u003c/code\u003e class.\u003c/li\u003e\n\u003cli\u003e[windows] Fixed Mypy issues.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e💟 Thanks to our beloved contributors: \u003ca href=\"https://github.com/g-pichler\"\u003e\u003ccode\u003e@​g-pichler\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ethan-vanderheijden\"\u003e\u003ccode\u003e@​ethan-vanderheijden\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/nhairs\"\u003e\u003ccode\u003e@​nhairs\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[inotify] Improve cleaning up \u003ccode\u003eInotify\u003c/code\u003e threads, and add \u003ccode\u003eeventlet\u003c/code\u003e test cases (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1070\"\u003e#1070\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e💟 Thanks to our beloved contributors: \u003ca href=\"https://github.com/ethan-vanderheijden\"\u003e\u003ccode\u003e@​ethan-vanderheijden\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEnable OS specific Mypy checks (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1064\"\u003e#1064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[watchmedo] Fix \u003ccode\u003etricks\u003c/code\u003e argument type of \u003ccode\u003eschedule_tricks()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1063\"\u003e#1063\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e💟 Thanks to our beloved contributors: \u003ca href=\"https://github.com/gnought\"\u003e\u003ccode\u003e@​gnought\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[kqueue] Fix \u003ccode\u003eTypeError: kqueue.control() only accepts positional parameters\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1062\"\u003e#1062\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e💟 Thanks to our beloved contributors: \u003ca href=\"https://github.com/apoirier\"\u003e\u003ccode\u003e@​apoirier\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8 (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[core] Enforced usage of proper keyword-arguments (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1057\"\u003e#1057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[core] Renamed the \u003ccode\u003eBaseObserverSubclassCallable\u003c/code\u003e class to \u003ccode\u003eObserverType\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[inotify] Renamed the \u003ccode\u003einotify_event_struct\u003c/code\u003e class to \u003ccode\u003eInotifyEventStruct\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1055\"\u003e#1055\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/gorakhargosh/watchdog/blob/master/changelog.rst\"\u003ewatchdog's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e6.0.0\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n2024-11-01 • `full history \u0026lt;https://github.com/gorakhargosh/watchdog/compare/v5.0.3...v6.0.0\u0026gt;`__\n\u003cul\u003e\n\u003cli\u003ePin test dependencies.\u003c/li\u003e\n\u003cli\u003e[docs] Add typing info to quick start. (\u003ccode\u003e[#1082](https://github.com/gorakhargosh/watchdog/issues/1082) \u0026amp;lt;https://github.com/gorakhargosh/watchdog/pull/1082\u0026amp;gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003e[inotify] Use of \u003ccode\u003eselect.poll()\u003c/code\u003e instead of deprecated \u003ccode\u003eselect.select()\u003c/code\u003e, if available. (\u003ccode\u003e[#1078](https://github.com/gorakhargosh/watchdog/issues/1078) \u0026amp;lt;https://github.com/gorakhargosh/watchdog/pull/1078\u0026amp;gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003e[inotify] Fix reading inotify file descriptor after closing it. (\u003ccode\u003e[#1081](https://github.com/gorakhargosh/watchdog/issues/1081) \u0026amp;lt;https://github.com/gorakhargosh/watchdog/pull/1081\u0026amp;gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003e[utils] The \u003ccode\u003estop_signal\u003c/code\u003e keyword-argument type of the \u003ccode\u003eAutoRestartTrick\u003c/code\u003e class can now be either a \u003ccode\u003esignal.Signals\u003c/code\u003e or an \u003ccode\u003eint\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e[utils] Added the \u003ccode\u003e__repr__()\u003c/code\u003e method to the \u003ccode\u003eTrick\u003c/code\u003e class.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_class()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_instancemethod()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_module()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eis_class_private_name()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eis_classmethod()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eic_method(met()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003emethod_name()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003ename()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Fixed Mypy issues.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Added the \u003ccode\u003e__repr__()\u003c/code\u003e method to the \u003ccode\u003eHelpFormatter\u003c/code\u003e class.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Removed the \u003ccode\u003e--trace\u003c/code\u003e CLI argument from the \u003ccode\u003ewatchmedo log\u003c/code\u003e command, useless since events are logged by default at the \u003ccode\u003eLoggerTrick\u003c/code\u003e class level.\u003c/li\u003e\n\u003cli\u003e[windows] Fixed Mypy issues.\u003c/li\u003e\n\u003cli\u003eThanks to our beloved contributors: \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/g-pichler\"\u003e\u003ccode\u003e@​g-pichler\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ethan-vanderheijden\"\u003e\u003ccode\u003e@​ethan-vanderheijden\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/nhairs\"\u003e\u003ccode\u003e@​nhairs\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e5.0.3\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e2024-09-27 • \u003ccode\u003efull history \u0026lt;https://github.com/gorakhargosh/watchdog/compare/v5.0.2...v5.0.3\u0026gt;\u003c/code\u003e__\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[inotify] Improve cleaning up \u003ccode\u003eInotify\u003c/code\u003e threads, and add \u003ccode\u003eeventlet\u003c/code\u003e test cases (\u003ccode\u003e[#1070](https://github.com/gorakhargosh/watchdog/issues/1070) \u0026lt;https://github.com/gorakhargosh/watchdog/pull/1070\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eThanks to our beloved contributors: \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ethan-vanderheijden\"\u003e\u003ccode\u003e@​ethan-vanderheijden\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e5.0.2\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n2024-09-03 • `full history \u0026lt;https://github.com/gorakhargosh/watchdog/compare/v5.0.1...v5.0.2\u0026gt;`__\n\u003cul\u003e\n\u003cli\u003eEnable OS specific Mypy checks (\u003ccode\u003e[#1064](https://github.com/gorakhargosh/watchdog/issues/1064) \u0026amp;lt;https://github.com/gorakhargosh/watchdog/pull/1064\u0026amp;gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003e[watchmedo] Fix \u003ccode\u003etricks\u003c/code\u003e argument type of \u003ccode\u003eschedule_tricks()\u003c/code\u003e (\u003ccode\u003e[#1063](https://github.com/gorakhargosh/watchdog/issues/1063) \u0026amp;lt;https://github.com/gorakhargosh/watchdog/pull/1063\u0026amp;gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eThanks to our beloved contributors: \u003ca href=\"https://github.com/gnought\"\u003e\u003ccode\u003e@​gnought\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e5.0.1\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e2024-09-02 • \u003ccode\u003efull history \u0026lt;https://github.com/gorakhargosh/watchdog/compare/v5.0.0...v5.0.1\u0026gt;\u003c/code\u003e__\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[kqueue] Fix \u003ccode\u003eTypeError: kqueue.control() only accepts positional parameters\u003c/code\u003e  (\u003ccode\u003e[#1062](https://github.com/gorakhargosh/watchdog/issues/1062) \u0026lt;https://github.com/gorakhargosh/watchdog/pull/1062\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eThanks to our beloved contributors: \u003ca href=\"https://github.com/apoirier\"\u003e\u003ccode\u003e@​apoirier\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\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/gorakhargosh/watchdog/commit/76c091dc8841de1d1a1cd6511bb509fe4f058de6\"\u003e\u003ccode\u003e76c091d\u003c/code\u003e\u003c/a\u003e Version 6.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/58386d88747259b8b3da5082e30f1c6e0aa3b31a\"\u003e\u003ccode\u003e58386d8\u003c/code\u003e\u003c/a\u003e Fixes, and clean-up (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1084\"\u003e#1084\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/db698a52bbb1eb8cc34e889a8afdac6f17a99e57\"\u003e\u003ccode\u003edb698a5\u003c/code\u003e\u003c/a\u003e fix: reading inotify file descriptor after closing it. (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1081\"\u003e#1081\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/73d561265b109f30cf76a280cdcc74aa9e6df391\"\u003e\u003ccode\u003e73d5612\u003c/code\u003e\u003c/a\u003e [docs] Add typing info to quick start (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1082\"\u003e#1082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/d774fec477a8f57d24b588164ebdd39b2d507bcd\"\u003e\u003ccode\u003ed774fec\u003c/code\u003e\u003c/a\u003e docs: Update README Badges (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1083\"\u003e#1083\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/6b74737501c85df9b9c2585faef4797a5250171b\"\u003e\u003ccode\u003e6b74737\u003c/code\u003e\u003c/a\u003e docs: funding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/3d1b888bccdd27a28f9f12a4e89288afe1ee493a\"\u003e\u003ccode\u003e3d1b888\u003c/code\u003e\u003c/a\u003e [inotify] Use of \u003ccode\u003eselect.poll()\u003c/code\u003e instead of deprecated \u003ccode\u003eselect.select()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1078\"\u003e#1078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/6a4f1cf846e03c8701fcc53b9e910077b5824e59\"\u003e\u003ccode\u003e6a4f1cf\u003c/code\u003e\u003c/a\u003e Bump the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/ad6df50908fca071ac8ad6558453bb28b522f794\"\u003e\u003ccode\u003ead6df50\u003c/code\u003e\u003c/a\u003e Version 5.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/59650f8fe72ac498374434a10a3dd49f3c3d1429\"\u003e\u003ccode\u003e59650f8\u003c/code\u003e\u003c/a\u003e fix: polish \u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1070\"\u003e#1070\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/gorakhargosh/watchdog/compare/v3.0.0...v6.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ocrmypdf` from 14.4.0 to 15.4.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/blob/main/docs/release_notes.md\"\u003eocrmypdf's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev15.4.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed documentation for installing Ghostscript on Windows. {issue}\u003ccode\u003e1198\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdded warning message about security issue in older versions of Ghostscript.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed deprecation warning in pikepdf older than 8.7.1; pikepdf \u0026gt;= 8.7.1 is\nnow required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWe now raise an exception on a certain class of PDFs that likely need an\nexplicit color conversion strategy selected to display correctly\nfor PDF/A conversion.\u003c/li\u003e\n\u003cli\u003eFixed an error that occurred while trying to write a log message after the\ndebug log handler was removed.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed misc/watcher.py regressions: accept \u003ccode\u003e--ocr-json-settings\u003c/code\u003e as either\nfilename or JSON string, as previously; and argument count mismatch.\n{issue}\u003ccode\u003e1183,1185\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eWe no longer attempt to set /ProcSet in the PDF output, since this is an\nobsolete PDF feature.\u003c/li\u003e\n\u003cli\u003eDocumentation improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded new experimental APIs to support offline editing of the final text.\nSpecifically, one can now generate hOCR files with OCRmyPDF, edit them with\nsome other tool, and then finalize the PDF. They are experimental and\nsubject to change, including details of how the working folder is used.\nThere is no command line interface.\u003c/li\u003e\n\u003cli\u003eCode reorganization: executors, progress bars, initialization and setup.\u003c/li\u003e\n\u003cli\u003eFixed test coverage in cases where the coverage tool did not properly trace\ninto threads or subprocesses. This code was still being tested but appeared\nas not covered.\u003c/li\u003e\n\u003cli\u003eIn the test suite, reduced use of subprocesses and other techniques that\ninterfere with coverage measurement.\u003c/li\u003e\n\u003cli\u003eImproved error check for when we appear to be running inside a snap container\nand files are not available.\u003c/li\u003e\n\u003cli\u003ePlugin specification now properly defines progress bars as a protocol rather\nthan defining them as \u0026quot;tqdm-like\u0026quot;.\u003c/li\u003e\n\u003cli\u003eWe now default to using \u0026quot;forkserver\u0026quot; process creation on POSIX platforms\nrather than fork, since this is method is more robust and avoids some\nissues when threads are present.\u003c/li\u003e\n\u003cli\u003eFixed an instance where the user's request to \u003ccode\u003e--no-use-threads\u003c/code\u003e was ignored.\u003c/li\u003e\n\u003cli\u003eIf a PDF does not have language metadata on its top level object, we add\nthe OCR language.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/c90d5cd84b0e27906310c28f0d78c3ded9106d65\"\u003e\u003ccode\u003ec90d5cd\u003c/code\u003e\u003c/a\u003e Fix Ghostscript installation instructions and add warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/9898904be70bf957154cc66cb5d6f57bac7c26b4\"\u003e\u003ccode\u003e9898904\u003c/code\u003e\u003c/a\u003e Fix pikepdf PdfMatrix deprecation warning; v15.4.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/27d52298420e785300e418bef4e4219ef97720e1\"\u003e\u003ccode\u003e27d5229\u003c/code\u003e\u003c/a\u003e Make logger names unique\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/4a9a575ef0f2cd7459538a43e802c8d8b3846168\"\u003e\u003ccode\u003e4a9a575\u003c/code\u003e\u003c/a\u003e ghostscript: better comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/52fd9a630d57ac7af91db423b17e6b0297fc1c66\"\u003e\u003ccode\u003e52fd9a6\u003c/code\u003e\u003c/a\u003e v15.4.2 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/a596ccf84469c81c6d19ab0eb59f53a5df0bc3c7\"\u003e\u003ccode\u003ea596ccf\u003c/code\u003e\u003c/a\u003e Raise exception if resulting PDF might appear blank in a known in some PDF vi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/e7fa97731f507c1d91e4289b9d5f3344533d7c4c\"\u003e\u003ccode\u003ee7fa977\u003c/code\u003e\u003c/a\u003e ghostscript duplicate filter: filter within a window of previous messages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/290aa2810868fb506a0ded2db8dabb580d5a2459\"\u003e\u003ccode\u003e290aa28\u003c/code\u003e\u003c/a\u003e Fix error on attempt to write to debug log after removing debug log handler\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/a95640ed9ec0a5caa360bd64b9ad6cc9f916fa61\"\u003e\u003ccode\u003ea95640e\u003c/code\u003e\u003c/a\u003e v15.4.1 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/f69267bb675c3261121b70451f6e673f433bc7ad\"\u003e\u003ccode\u003ef69267b\u003c/code\u003e\u003c/a\u003e watcher: restore ability to read json from file or command line string\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/compare/v14.4.0...v15.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-multiselectfield` from 0.1.12 to 1.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/goinnn/django-multiselectfield/releases\"\u003edjango-multiselectfield's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBadge image worked on GitHub but was broken on PyPI — fixed it.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.0\u003c/h2\u003e\n\u003cp\u003eThis release introduces multiple changes that are incompatible with previous versions.\u003c/p\u003e\n\u003cp\u003eThe major version number has been incremented following \u003ccode\u003eSemantic Versioning (SemVer) \u0026lt;https://semver.org/\u0026gt;\u003c/code\u003e_, as several components of the package have changed in ways that may require updates in client code.\u003c/p\u003e\n\u003cp\u003eThe internal codebase has been significantly cleaned up and reorganized, making it more maintainable and consistent.\u003c/p\u003e\n\u003cp\u003eThis version contains \u003cstrong\u003e40% fewer lines of code\u003c/strong\u003e compared to the previous release.\u003c/p\u003e\n\u003cp\u003eLess code means fewer bugs, easier maintenance, and better long-term sustainability.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFList (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\"\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2\u003c/a\u003e):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/50d3f785883e0a314f2dc89950e3fe1e88a7ede6\"\u003e50d3f785883e0a314f2dc89950e3fe1e88a7ede6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIt was created to support MultiSelectFields in admin.list_display, but it never actually worked. If you add a multiselect field to list_display, Django does not call to \u003cstrong\u003estr\u003c/strong\u003e method of MSGList (renamed to MSFList)\u003c/li\u003e\n\u003cli\u003eIt was created for integer choices too and it is a misconception. This is explained in the README file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFFlatchoices (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\"\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2\u003c/a\u003e):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/5638247c1d70670d4f81adf35143ef17a7d7575e\"\u003e5638247c1d70670d4f81adf35143ef17a7d7575e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIn list_display, labels for the choices are now shown (comma-separated) instead of the values of the choices (comma-separated).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn to_python method, value is a list or a string. (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/c4579138dda2833cbce26afbf57da5353aa45690\"\u003ec4579138dda2833cbce26afbf57da5353aa45690\u003c/a\u003e)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove set case and dict case\u003c/li\u003e\n\u003cli\u003eIf this breaks something, please create a test to help understand the use case.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoving integer choices:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIt was a mistake. MultiSelectField inherits of CharField, not IntegerField.\u003c/li\u003e\n\u003cli\u003eIt is impossible knows if original choice is (1, 'Item title 2.1') or ('1', 'Item title 2.1')\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: Form instance generated twice since Django  (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/168\"\u003e#168\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix CSS admin:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/173\"\u003e#173\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/7711f4aa755c81d00f07ce8a6ff0fd9240061f9c\"\u003e7711f4aa755c81d00f07ce8a6ff0fd9240061f9c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix Properly Display Categorized Choices in get_FOO_display (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/169\"\u003e#169\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSortMultiSelectField: (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/172\"\u003e#172\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/goinnn/django-multiselectfield/blob/master/CHANGES.rst\"\u003edjango-multiselectfield's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.0.1 (2025-06-12)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBadge image worked on GitHub but was broken on PyPI — fixed it.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.0.0 (2025-06-12)\u003c/h2\u003e\n\u003cp\u003eThis release introduces multiple changes that are incompatible with previous versions.\u003c/p\u003e\n\u003cp\u003eThe major version number has been incremented following \u003ccode\u003eSemantic Versioning (SemVer) \u0026lt;https://semver.org/\u0026gt;\u003c/code\u003e_, as several components of the package have changed in ways that may require updates in client code.\u003c/p\u003e\n\u003cp\u003eThe internal codebase has been significantly cleaned up and reorganized, making it more maintainable and consistent.\u003c/p\u003e\n\u003cp\u003eThis version contains \u003cstrong\u003e40% fewer lines of code\u003c/strong\u003e compared to the previous release.\u003c/p\u003e\n\u003cp\u003eLess code means fewer bugs, easier maintenance, and better long-term sustainability.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFList (\u003ccode\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\u0026gt;\u003c/code\u003e_):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ccode\u003e50d3f785883e0a314f2dc89950e3fe1e88a7ede6 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/50d3f785883e0a314f2dc89950e3fe1e88a7ede6\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eIt was created to support MultiSelectFields in admin.list_display, but it never actually worked. If you add a multiselect field to list_display, Django does not call to \u003cstrong\u003estr\u003c/strong\u003e method of MSGList (renamed to MSFList)\u003c/li\u003e\n\u003cli\u003eIt was created for integer choices too and it is a misconception. This is explained in the README file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFFlatchoices (\u003ccode\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\u0026gt;\u003c/code\u003e_):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ccode\u003e5638247c1d70670d4f81adf35143ef17a7d7575e \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/5638247c1d70670d4f81adf35143ef17a7d7575e\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eIn list_display, labels for the choices are now shown (comma-separated) instead of the values of the choices (comma-separated).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn to_python method, value is a list or a string. (\u003ccode\u003ec4579138dda2833cbce26afbf57da5353aa45690 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/c4579138dda2833cbce26afbf57da5...\n\n_Description has been truncated_","html_url":"https://github.com/dsp-testing/paperless-ngx/pull/183","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/dsp-testing%2Fpaperless-ngx/issues/183","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/183/packages"},{"uuid":"3577947660","node_id":"PR_kwDOH-NjAc6w_Eb1","number":52,"state":"closed","title":"build(deps): bump the dependencies group with 7 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-12-01T15:44:21.000Z","author_association":null,"state_reason":null,"created_at":"2025-11-01T12:15:52.000Z","updated_at":"2025-12-01T15:44:23.000Z","time_to_close":2604509,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"dependencies","update_count":7,"packages":[{"name":"beautifulsoup4","old_version":"4.12.3","new_version":"4.14.2"},{"name":"typed-argument-parser","old_version":"1.10.1","new_version":"1.11.0","repository_url":"https://github.com/swansonk14/typed-argument-parser"},{"name":"types-beautifulsoup4","old_version":"4.12.0.20241020","new_version":"4.12.0.20250516","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"mypy","old_version":"1.14.1","new_version":"1.18.2","repository_url":"https://github.com/python/mypy"},{"name":"pre-commit","old_version":"4.0.1","new_version":"4.3.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pytest","old_version":"8.3.4","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pdoc","old_version":"15.0.1","new_version":"16.0.0","repository_url":"https://github.com/mitmproxy/pdoc"}],"path":null,"ecosystem":"conda"},"body":"Bumps the dependencies group with 7 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.12.3` | `4.14.2` |\n| [typed-argument-parser](https://github.com/swansonk14/typed-argument-parser) | `1.10.1` | `1.11.0` |\n| [types-beautifulsoup4](https://github.com/typeshed-internal/stub_uploader) | `4.12.0.20241020` | `4.12.0.20250516` |\n| [mypy](https://github.com/python/mypy) | `1.14.1` | `1.18.2` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.0.1` | `4.3.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.4` | `8.4.2` |\n| [pdoc](https://github.com/mitmproxy/pdoc) | `15.0.1` | `16.0.0` |\n\nUpdates `beautifulsoup4` from 4.12.3 to 4.14.2\n\nUpdates `typed-argument-parser` from 1.10.1 to 1.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/swansonk14/typed-argument-parser/releases\"\u003etyped-argument-parser's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eHousekeeping\u003c/h2\u003e\n\u003cp\u003eThis release focuses on keeping Tap working well: making bug fixes, improving performance, and adding support for the latest Python versions. We are grateful for the many collaborators that have maintained and improved Tap!\u003c/p\u003e\n\u003ch2\u003eImprove robustness and performance of help string generation\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/swansonk14/typed-argument-parser/pull/149\"\u003eswansonk14/typed-argument-parser#149\u003c/a\u003e: Performance optimization of source code parsing by roughly two orders of magnitude. Thanks \u003ca href=\"https://github.com/arnaud-ma\"\u003e\u003ccode\u003e@​arnaud-ma\u003c/code\u003e\u003c/a\u003e!\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/swansonk14/typed-argument-parser/commit/02f4358ac7fd15b0f03c4d814c0db22741ddc6cc\"\u003ehttps://github.com/swansonk14/typed-argument-parser/commit/02f4358ac7fd15b0f03c4d814c0db22741ddc6cc\u003c/a\u003e: Improved handling of comment extraction for multiline assign statements.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/swansonk14/typed-argument-parser/commit/69f78d38ebadcc09d4d3425f4fc4dc3bba1b08d9\"\u003ehttps://github.com/swansonk14/typed-argument-parser/commit/69f78d38ebadcc09d4d3425f4fc4dc3bba1b08d9\u003c/a\u003e: Fixing comment parsing on multiline assign statements (\u003ca href=\"https://redirect.github.com/swansonk14/typed-argument-parser/issues/130\"\u003eswansonk14/typed-argument-parser#130\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/swansonk14/typed-argument-parser/pull/148\"\u003eswansonk14/typed-argument-parser#148\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/swansonk14/typed-argument-parser/pull/144\"\u003eswansonk14/typed-argument-parser#144\u003c/a\u003e). Thanks \u003ca href=\"https://github.com/arnaud-ma\"\u003e\u003ccode\u003e@​arnaud-ma\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Tibilius\"\u003e\u003ccode\u003e@​Tibilius\u003c/code\u003e\u003c/a\u003e!\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/swansonk14/typed-argument-parser/commit/85104e731e91f372ab8c7084b13517c22a7065e5\"\u003ehttps://github.com/swansonk14/typed-argument-parser/commit/85104e731e91f372ab8c7084b13517c22a7065e5\u003c/a\u003e: Deterministic class variable order for consistent display of the help string (\u003ca href=\"https://redirect.github.com/swansonk14/typed-argument-parser/issues/161\"\u003eswansonk14/typed-argument-parser#161\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/swansonk14/typed-argument-parser/pull/162\"\u003eswansonk14/typed-argument-parser#162\u003c/a\u003e). Thanks \u003ca href=\"https://github.com/Daraan\"\u003e\u003ccode\u003e@​Daraan\u003c/code\u003e\u003c/a\u003e!\u003c/p\u003e\n\u003cp\u003e495d6c3ef1c5ef204eaa1cb81370af2fc543d72b: Makes error messages agnostic to different quote styles across Python versions (\u003ca href=\"https://redirect.github.com/swansonk14/typed-argument-parser/issues/156\"\u003eswansonk14/typed-argument-parser#156\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/swansonk14/typed-argument-parser/pull/157\"\u003eswansonk14/typed-argument-parser#157\u003c/a\u003e). Thanks \u003ca href=\"https://github.com/brianschubert\"\u003e\u003ccode\u003e@​brianschubert\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/JelleZijlstra\"\u003e\u003ccode\u003e@​JelleZijlstra\u003c/code\u003e\u003c/a\u003e!\u003c/p\u003e\n\u003cp\u003ebf9818808944a27d1ec9437c55a82fe93ced7fae: Fix quote escaping in docstring parsing (\u003ca href=\"https://redirect.github.com/swansonk14/typed-argument-parser/issues/97\"\u003eswansonk14/typed-argument-parser#97\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003eDeprecate Python 3.8 due to end of life\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/swansonk14/typed-argument-parser/commit/fe0d2d8c0a022786dd1c976ad1ec85c2b3d03c2e\"\u003ehttps://github.com/swansonk14/typed-argument-parser/commit/fe0d2d8c0a022786dd1c976ad1ec85c2b3d03c2e\u003c/a\u003e: Removes support for Python 3.8 due to end of life.\u003c/p\u003e\n\u003ch2\u003eSupport for new Python versions (3.12-3.14)\u003c/h2\u003e\n\u003cp\u003ed7f7f9defcf3038a31e2aebf292ae4df56ba336d: Fixes tests failing on Python 3.12. Thanks \u003ca href=\"https://github.com/shadchin\"\u003e\u003ccode\u003e@​shadchin\u003c/code\u003e\u003c/a\u003e!\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/swansonk14/typed-argument-parser/issues/150\"\u003eswansonk14/typed-argument-parser#150\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/swansonk14/typed-argument-parser/pull/151\"\u003eswansonk14/typed-argument-parser#151\u003c/a\u003e: Fixes tests failing on Python 3.13. Thanks \u003ca href=\"https://github.com/kddubey\"\u003e\u003ccode\u003e@​kddubey\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/JelleZijlstra\"\u003e\u003ccode\u003e@​JelleZijlstra\u003c/code\u003e\u003c/a\u003e!\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/swansonk14/typed-argument-parser/pull/164\"\u003eswansonk14/typed-argument-parser#164\u003c/a\u003e: Prepare for Python 3.14 by fixing compatibility with pydantic version 1. Thanks \u003ca href=\"https://github.com/kddubey\"\u003e\u003ccode\u003e@​kddubey\u003c/code\u003e\u003c/a\u003e!\u003c/p\u003e\n\u003ch2\u003eImproved error handling\u003c/h2\u003e\n\u003cp\u003ecfdaabfc2f3f5366029cf5e9544a98e1298bae01: Better error handling in cases of no git remote (\u003ca href=\"https://redirect.github.com/swansonk14/typed-argument-parser/issues/99\"\u003eswansonk14/typed-argument-parser#99\u003c/a\u003e). Thanks \u003ca href=\"https://github.com/arnaud-ma\"\u003e\u003ccode\u003e@​arnaud-ma\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/ndryden\"\u003e\u003ccode\u003e@​ndryden\u003c/code\u003e\u003c/a\u003e!\u003c/p\u003e\n\u003cp\u003e--JK\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/swansonk14/typed-argument-parser/commit/acf6a75e4463995e1b2f7f9715fa1ae3a77f9056\"\u003e\u003ccode\u003eacf6a75\u003c/code\u003e\u003c/a\u003e Bumping version to 1.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/swansonk14/typed-argument-parser/commit/043490c2845f0aa1c6f0fba0c4964a32cef8b03c\"\u003e\u003ccode\u003e043490c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/swansonk14/typed-argument-parser/issues/162\"\u003e#162\u003c/a\u003e from Daraan/main\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/swansonk14/typed-argument-parser/commit/7f36ff2076358d9deea609c5cf6755f54ded0bd1\"\u003e\u003ccode\u003e7f36ff2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/swansonk14/typed-argument-parser/issues/164\"\u003e#164\u003c/a\u003e from kddubey/kddubey/fix-python-314\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/swansonk14/typed-argument-parser/commit/34f9d27c21a282f472e00fdfe903681a4d153333\"\u003e\u003ccode\u003e34f9d27\u003c/code\u003e\u003c/a\u003e rm packaging dep\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/swansonk14/typed-argument-parser/commit/a59600cc3f531cbf318173822f46e232adee039f\"\u003e\u003ccode\u003ea59600c\u003c/code\u003e\u003c/a\u003e fix pydantic v1 \u0026lt;\u0026gt; python 3.13.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/swansonk14/typed-argument-parser/commit/05646e47efb7e3bba3585ef4d3c51acfda02dd94\"\u003e\u003ccode\u003e05646e4\u003c/code\u003e\u003c/a\u003e huh\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/swansonk14/typed-argument-parser/commit/619ee8bc2ec3798c203e6641149f93402701ca5f\"\u003e\u003ccode\u003e619ee8b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/swansonk14/typed-argument-parser/issues/160\"\u003e#160\u003c/a\u003e from amotzop/fix_tapify_typing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/swansonk14/typed-argument-parser/commit/85104e731e91f372ab8c7084b13517c22a7065e5\"\u003e\u003ccode\u003e85104e7\u003c/code\u003e\u003c/a\u003e deterministic in-order iteration of class variables\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/swansonk14/typed-argument-parser/commit/3c3ee97ed15a56b63d8b5f3c0a29023e501d416a\"\u003e\u003ccode\u003e3c3ee97\u003c/code\u003e\u003c/a\u003e Removed InputType\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/swansonk14/typed-argument-parser/commit/581db5312364a9e6897cbe361ddc2056f5741375\"\u003e\u003ccode\u003e581db53\u003c/code\u003e\u003c/a\u003e Fixed the typing of the  function\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/swansonk14/typed-argument-parser/compare/v_1.10.1...v_1.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `types-beautifulsoup4` from 4.12.0.20241020 to 4.12.0.20250516\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 `mypy` from 1.14.1 to 1.18.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.18.2\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix crash on recursive alias (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19845\"\u003e19845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd additional guidance for stubtest errors when runtime is \u003ccode\u003eobject.__init__\u003c/code\u003e (Stephen Morton, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19733\"\u003e19733\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix handling of None values in f-string expressions in mypyc (BobTheBuidler, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19846\"\u003e19846\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\u003eAli Hamdan\u003c/li\u003e\n\u003cli\u003eAnthony Sottile\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003eBrian Schubert\u003c/li\u003e\n\u003cli\u003eChainfire\u003c/li\u003e\n\u003cli\u003eCharlie Denton\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eCoolCat467\u003c/li\u003e\n\u003cli\u003eDaniel Hnyk\u003c/li\u003e\n\u003cli\u003eEmily\u003c/li\u003e\n\u003cli\u003eEmma Smith\u003c/li\u003e\n\u003cli\u003eEthan Sarp\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJahongir Qurbonov\u003c/li\u003e\n\u003cli\u003eJelle Zijlstra\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eJukka Lehtosalo\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eOmer Hadari\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003cli\u003ePrinceNaroliya\u003c/li\u003e\n\u003cli\u003eRandolf Scholz\u003c/li\u003e\n\u003cli\u003eRobsdedude\u003c/li\u003e\n\u003cli\u003eSaul Shanabrook\u003c/li\u003e\n\u003cli\u003eShantanu\u003c/li\u003e\n\u003cli\u003eStanislav Terliakov\u003c/li\u003e\n\u003cli\u003eStephen Morton\u003c/li\u003e\n\u003cli\u003ewyattscarpenter\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI’d also like to thank my employer, Dropbox, for supporting mypy development.\u003c/p\u003e\n\u003ch2\u003eMypy 1.17\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.17 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 and bug fixes.\nYou 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\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/df05f05555ee62dbdb9960c64cad186172e92be1\"\u003e\u003ccode\u003edf05f05\u003c/code\u003e\u003c/a\u003e remove +dev from version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/01a7a1285d03cb7a330359b22cb462aacb5f9720\"\u003e\u003ccode\u003e01a7a12\u003c/code\u003e\u003c/a\u003e Update changelog for 1.18.2 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19873\"\u003e#19873\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/ca5abf09f3bfc543ac9c18a364696bc5da20bc03\"\u003e\u003ccode\u003eca5abf0\u003c/code\u003e\u003c/a\u003e Typeshed cherry-pick: Make type of \u003ccode\u003eunitest.mock.Any\u003c/code\u003e a subclass of \u003ccode\u003eAny\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python/mypy/issues/1\"\u003e#1\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/9d794b57d9c5b03d61caa3286756c05e0ae3021b\"\u003e\u003ccode\u003e9d794b5\u003c/code\u003e\u003c/a\u003e [mypyc] fix: inappropriate \u003ccode\u003eNone\u003c/code\u003es in f-strings (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19846\"\u003e#19846\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2c0510c84868b6bb42ef0f305b701e530a85c25f\"\u003e\u003ccode\u003e2c0510c\u003c/code\u003e\u003c/a\u003e stubtest: additional guidance on errors when runtime is object.\u003cstrong\u003einit\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19733\"\u003e#19733\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2f3f03c3e39e68dbfa3544c01a34f99803b3e1c2\"\u003e\u003ccode\u003e2f3f03c\u003c/code\u003e\u003c/a\u003e Bump version to 1.18.2+dev for point release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/76698412bc1f3ca99000d52649acd5a0e06aa71d\"\u003e\u003ccode\u003e7669841\u003c/code\u003e\u003c/a\u003e Fix crash on recursive alias in indirection.py (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19845\"\u003e#19845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/03fbaa941bccc3a9f8aea796d586603b67119bf2\"\u003e\u003ccode\u003e03fbaa9\u003c/code\u003e\u003c/a\u003e bump version to 1.18.1 due to wheels failure\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/b44a1fbf0cf9fd90fd29d6bcd9f64c55dd2fd4c8\"\u003e\u003ccode\u003eb44a1fb\u003c/code\u003e\u003c/a\u003e removed +dev from version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/7197a99d1aebb1b7a584f82a53c44efb7dddf136\"\u003e\u003ccode\u003e7197a99\u003c/code\u003e\u003c/a\u003e Removed Unreleased in the Changelog for Release 1.18 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19827\"\u003e#19827\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.14.1...v1.18.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit` from 4.0.1 to 4.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.3.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elanguage: docker\u003c/code\u003e / \u003ccode\u003elanguage: docker_image\u003c/code\u003e: detect rootless docker.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3446\"\u003e#3446\u003c/a\u003e PR by \u003ca href=\"https://github.com/matthewhughes934\"\u003e\u003ccode\u003e@​matthewhughes934\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/1243\"\u003e#1243\u003c/a\u003e issue by \u003ca href=\"https://github.com/dkolepp\"\u003e\u003ccode\u003e@​dkolepp\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: julia\u003c/code\u003e: avoid \u003ccode\u003estartup.jl\u003c/code\u003e when executing hooks.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3496\"\u003e#3496\u003c/a\u003e PR by \u003ca href=\"https://github.com/ericphanson\"\u003e\u003ccode\u003e@​ericphanson\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: dart\u003c/code\u003e: support latest dart versions which require a higher sdk\nlower bound.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3507\"\u003e#3507\u003c/a\u003e PR by \u003ca href=\"https://github.com/bc-lee\"\u003e\u003ccode\u003e@​bc-lee\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.2.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFor \u003ccode\u003elanguage: python\u003c/code\u003e first attempt a versioned python executable for the default language version before consulting a potentially unversioned \u003ccode\u003esys.executable\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3430\"\u003e#3430\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle error during conflict detection when a file is named \u0026quot;HEAD\u0026quot;\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3425\"\u003e#3425\u003c/a\u003e PR by \u003ca href=\"https://github.com/tusharsadhwani\"\u003e\u003ccode\u003e@​tusharsadhwani\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.1.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: julia\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3348\"\u003e#3348\u003c/a\u003e PR by \u003ca href=\"https://github.com/fredrikekre\"\u003e\u003ccode\u003e@​fredrikekre\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/2689\"\u003e#2689\u003c/a\u003e issue \u003ca href=\"https://github.com/jmuchovej\"\u003e\u003ccode\u003e@​jmuchovej\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisable automatic toolchain switching for \u003ccode\u003elanguage: golang\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3304\"\u003e#3304\u003c/a\u003e PR by \u003ca href=\"https://github.com/AleksaC\"\u003e\u003ccode\u003e@​AleksaC\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3300\"\u003e#3300\u003c/a\u003e issue by \u003ca href=\"https://github.com/AleksaC\"\u003e\u003ccode\u003e@​AleksaC\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3149\"\u003e#3149\u003c/a\u003e issue by \u003ca href=\"https://github.com/nijel\"\u003e\u003ccode\u003e@​nijel\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: r\u003c/code\u003e installation when initiated by RStudio.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3389\"\u003e#3389\u003c/a\u003e PR by \u003ca href=\"https://github.com/lorenzwalthert\"\u003e\u003ccode\u003e@​lorenzwalthert\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3385\"\u003e#3385\u003c/a\u003e issue by \u003ca href=\"https://github.com/lorenzwalthert\"\u003e\u003ccode\u003e@​lorenzwalthert\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.3.0 - 2025-08-09\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elanguage: docker\u003c/code\u003e / \u003ccode\u003elanguage: docker_image\u003c/code\u003e: detect rootless docker.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3446\"\u003e#3446\u003c/a\u003e PR by \u003ca href=\"https://github.com/matthewhughes934\"\u003e\u003ccode\u003e@​matthewhughes934\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/1243\"\u003e#1243\u003c/a\u003e issue by \u003ca href=\"https://github.com/dkolepp\"\u003e\u003ccode\u003e@​dkolepp\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: julia\u003c/code\u003e: avoid \u003ccode\u003estartup.jl\u003c/code\u003e when executing hooks.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3496\"\u003e#3496\u003c/a\u003e PR by \u003ca href=\"https://github.com/ericphanson\"\u003e\u003ccode\u003e@​ericphanson\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: dart\u003c/code\u003e: support latest dart versions which require a higher sdk\nlower bound.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3507\"\u003e#3507\u003c/a\u003e PR by \u003ca href=\"https://github.com/bc-lee\"\u003e\u003ccode\u003e@​bc-lee\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.2.0 - 2025-03-18\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFor \u003ccode\u003elanguage: python\u003c/code\u003e first attempt a versioned python executable for\nthe default language version before consulting a potentially unversioned\n\u003ccode\u003esys.executable\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3430\"\u003e#3430\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle error during conflict detection when a file is named \u0026quot;HEAD\u0026quot;\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3425\"\u003e#3425\u003c/a\u003e PR by \u003ca href=\"https://github.com/tusharsadhwani\"\u003e\u003ccode\u003e@​tusharsadhwani\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.1.0 - 2025-01-20\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: julia\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3348\"\u003e#3348\u003c/a\u003e PR by \u003ca href=\"https://github.com/fredrikekre\"\u003e\u003ccode\u003e@​fredrikekre\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/2689\"\u003e#2689\u003c/a\u003e issue \u003ca href=\"https://github.com/jmuchovej\"\u003e\u003ccode\u003e@​jmuchovej\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisable automatic toolchain switching for \u003ccode\u003elanguage: golang\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3304\"\u003e#3304\u003c/a\u003e PR by \u003ca href=\"https://github.com/AleksaC\"\u003e\u003ccode\u003e@​AleksaC\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3300\"\u003e#3300\u003c/a\u003e issue by \u003ca href=\"https://github.com/AleksaC\"\u003e\u003ccode\u003e@​AleksaC\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3149\"\u003e#3149\u003c/a\u003e issue by \u003ca href=\"https://github.com/nijel\"\u003e\u003ccode\u003e@​nijel\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: r\u003c/code\u003e installation when initiated by RStudio.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3389\"\u003e#3389\u003c/a\u003e PR by \u003ca href=\"https://github.com/lorenzwalthert\"\u003e\u003ccode\u003e@​lorenzwalthert\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3385\"\u003e#3385\u003c/a\u003e issue by \u003ca href=\"https://github.com/lorenzwalthert\"\u003e\u003ccode\u003e@​lorenzwalthert\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/b74a22d96cca546b8e0bb9f68f1d7d8565205b65\"\u003e\u003ccode\u003eb74a22d\u003c/code\u003e\u003c/a\u003e v4.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/cc899de192a5f5614633d86178568cc1c46d999d\"\u003e\u003ccode\u003ecc899de\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3507\"\u003e#3507\u003c/a\u003e from bc-lee/dart-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2a0bcea7570620416a550362d9b2d2b24eb80dd8\"\u003e\u003ccode\u003e2a0bcea\u003c/code\u003e\u003c/a\u003e Downgrade Dart SDK version installed in the CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/f1cc7a445f1adbfc9ea4072e180fbe3054af669b\"\u003e\u003ccode\u003ef1cc7a4\u003c/code\u003e\u003c/a\u003e Make Dart pre-commit hook compatible with the latest Dart SDKs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/72a3b71f0e7b89b78899739aeee2e962914ab649\"\u003e\u003ccode\u003e72a3b71\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3504\"\u003e#3504\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c8925a457afb1d6850c8f105671846bae408aae0\"\u003e\u003ccode\u003ec8925a4\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/a5fe6c500c2c7a17aaa21f0bb91ee7ceecf61968\"\u003e\u003ccode\u003ea5fe6c5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3496\"\u003e#3496\u003c/a\u003e from ericphanson/eph/jl-startup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/6f1f433a9cea94a70828ade95931a703c9a9c82b\"\u003e\u003ccode\u003e6f1f433\u003c/code\u003e\u003c/a\u003e Julia language: skip startup.jl file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c6817210b1cdbbfbd1b1ff2148edfa15bf4b3c97\"\u003e\u003ccode\u003ec681721\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3499\"\u003e#3499\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/4fd4537bc69e6804998d99e4851a9dbe43e91757\"\u003e\u003ccode\u003e4fd4537\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.0.1...v4.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.3.4 to 8.4.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.4.2\u003c/h2\u003e\n\u003ch1\u003epytest 8.4.2 (2025-09-03)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13478\"\u003e#13478\u003c/a\u003e: Fixed a crash when using \u003ccode\u003econsole_output_style\u003c/code\u003e{.interpreted-text role=\u0026quot;confval\u0026quot;} with \u003ccode\u003etimes\u003c/code\u003e and a module is skipped.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13530\"\u003e#13530\u003c/a\u003e: Fixed a crash when using \u003ccode\u003epytest.approx\u003c/code\u003e{.interpreted-text role=\u0026quot;func\u0026quot;} and \u003ccode\u003edecimal.Decimal\u003c/code\u003e{.interpreted-text role=\u0026quot;class\u0026quot;} instances with the \u003ccode\u003edecimal.FloatOperation\u003c/code\u003e{.interpreted-text role=\u0026quot;class\u0026quot;} trap set.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13549\"\u003e#13549\u003c/a\u003e: No longer evaluate type annotations in Python \u003ccode\u003e3.14\u003c/code\u003e when inspecting function signatures.\u003c/p\u003e\n\u003cp\u003eThis prevents crashes during module collection when modules do not explicitly use \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e and import types for annotations within a \u003ccode\u003eif TYPE_CHECKING:\u003c/code\u003e block.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13559\"\u003e#13559\u003c/a\u003e: Added missing [int]{.title-ref} and [float]{.title-ref} variants to the [Literal]{.title-ref} type annotation of the [type]{.title-ref} parameter in \u003ccode\u003epytest.Parser.addini\u003c/code\u003e{.interpreted-text role=\u0026quot;meth\u0026quot;}.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13563\"\u003e#13563\u003c/a\u003e: \u003ccode\u003epytest.approx\u003c/code\u003e{.interpreted-text role=\u0026quot;func\u0026quot;} now only imports \u003ccode\u003enumpy\u003c/code\u003e if NumPy is already in \u003ccode\u003esys.modules\u003c/code\u003e. This fixes unconditional import behavior introduced in [8.4.0]{.title-ref}.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13577\"\u003e#13577\u003c/a\u003e: Clarify that \u003ccode\u003epytest_generate_tests\u003c/code\u003e is discovered in test modules/classes; other hooks must be in \u003ccode\u003econftest.py\u003c/code\u003e or plugins.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13480\"\u003e#13480\u003c/a\u003e: Self-testing: fixed a few test failures when run with \u003ccode\u003e-Wdefault\u003c/code\u003e or a similar override.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13547\"\u003e#13547\u003c/a\u003e: Self-testing: corrected expected message for \u003ccode\u003etest_doctest_unexpected_exception\u003c/code\u003e in Python \u003ccode\u003e3.14\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13684\"\u003e#13684\u003c/a\u003e: Make pytest's own testsuite insensitive to the presence of the \u003ccode\u003eCI\u003c/code\u003e environment variable -- by \u003ccode\u003eogrisel\u003c/code\u003e{.interpreted-text role=\u0026quot;user\u0026quot;}.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.4.1\u003c/h2\u003e\n\u003ch1\u003epytest 8.4.1 (2025-06-17)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13461\"\u003e#13461\u003c/a\u003e: Corrected \u003ccode\u003e_pytest.terminal.TerminalReporter.isatty\u003c/code\u003e to support\nbeing called as a method. Before it was just a boolean which could\nbreak correct code when using \u003ccode\u003e-o log_cli=true\u003c/code\u003e).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13477\"\u003e#13477\u003c/a\u003e: Reintroduced \u003ccode\u003epytest.PytestReturnNotNoneWarning\u003c/code\u003e{.interpreted-text role=\u0026quot;class\u0026quot;} which was removed by accident in pytest [8.4]{.title-ref}.\u003c/p\u003e\n\u003cp\u003eThis warning is raised when a test functions returns a value other than \u003ccode\u003eNone\u003c/code\u003e, which is often a mistake made by beginners.\u003c/p\u003e\n\u003cp\u003eSee \u003ccode\u003ereturn-not-none\u003c/code\u003e{.interpreted-text role=\u0026quot;ref\u0026quot;} for more information.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13497\"\u003e#13497\u003c/a\u003e: Fixed compatibility with \u003ccode\u003eTwisted 25+\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13492\"\u003e#13492\u003c/a\u003e: Fixed outdated warning about \u003ccode\u003efaulthandler\u003c/code\u003e not working on Windows.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.4.0\u003c/h2\u003e\n\u003ch1\u003epytest 8.4.0 (2025-06-02)\u003c/h1\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bfae4224fd554d3d7f2c277a4cc092b6ec6af3ae\"\u003e\u003ccode\u003ebfae422\u003c/code\u003e\u003c/a\u003e Prepare release version 8.4.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/89905381a163be30ae87d62e5f750e902d750c5f\"\u003e\u003ccode\u003e8990538\u003c/code\u003e\u003c/a\u003e Fix passenv CI in tox ini and make tests insensitive to the presence of the C...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ca676bfe005aebcb12f4146d1b0f1d2772e2cd5d\"\u003e\u003ccode\u003eca676bf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13687\"\u003e#13687\u003c/a\u003e from pytest-dev/patchback/backports/8.4.x/e63f6e51c...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/975a60a63ce385a44655596e254c1899feaa53e4\"\u003e\u003ccode\u003e975a60a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13686\"\u003e#13686\u003c/a\u003e from pytest-dev/patchback/backports/8.4.x/12bde8af6...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7723ce84b87ab08f86ddafcb342acc28ba5ec99d\"\u003e\u003ccode\u003e7723ce8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13683\"\u003e#13683\u003c/a\u003e from even-even/fix_Exeption_to_Exception_in_errorMe...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7f05680d1301e0969b30bcb3c4b27433c9ee2b7\"\u003e\u003ccode\u003eb7f0568\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13685\"\u003e#13685\u003c/a\u003e from CoretexShadow/fix/docs-pytest-generate-tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/2c94c4a6948ba53440818389298157fa5d5f94cd\"\u003e\u003ccode\u003e2c94c4a\u003c/code\u003e\u003c/a\u003e add missing colon (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13640\"\u003e#13640\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13641\"\u003e#13641\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c3d7684bc01c8c48d05145a30c5211ca8656c68c\"\u003e\u003ccode\u003ec3d7684\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13606\"\u003e#13606\u003c/a\u003e from pytest-dev/patchback/backports/8.4.x/5f9938563...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/dc6e3be2ddc75a149b6d102d9b7c82ee47a00cfa\"\u003e\u003ccode\u003edc6e3be\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13605\"\u003e#13605\u003c/a\u003e from The-Compiler/training-update-2025-07\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f87289c36c8dbe7740e3020f5546b6f8b0861ff0\"\u003e\u003ccode\u003ef87289c\u003c/code\u003e\u003c/a\u003e Fix crash with \u003ccode\u003etimes\u003c/code\u003e output style and skipped module (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13573\"\u003e#13573\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13579\"\u003e#13579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.3.4...8.4.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pdoc` from 15.0.1 to 16.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mitmproxy/pdoc/blob/main/CHANGELOG.md\"\u003epdoc's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025-10-27: pdoc 16.0.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epdoc has a new logo. 🐍\n(\u003ca href=\"https://redirect.github.com/mitmproxy/pdoc/pull/838\"\u003e#838\u003c/a\u003e, \u003ca href=\"https://github.com/mhils\"\u003e\u003ccode\u003e@​mhils\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14.\n(\u003ca href=\"https://redirect.github.com/mitmproxy/pdoc/pull/843\"\u003e#843\u003c/a\u003e, \u003ca href=\"https://github.com/mhils\"\u003e\u003ccode\u003e@​mhils\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9, which as reached\n\u003ca href=\"https://devguide.python.org/versions/\"\u003eend of life\u003c/a\u003e.\n(\u003ca href=\"https://redirect.github.com/mitmproxy/pdoc/pull/842\"\u003e#842\u003c/a\u003e, \u003ca href=\"https://github.com/mhils\"\u003e\u003ccode\u003e@​mhils\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix linking of identifiers that contain unicode characters.\n(\u003ca href=\"https://redirect.github.com/mitmproxy/pdoc/issues/831\"\u003e#831\u003c/a\u003e, \u003ca href=\"https://github.com/iFreilicht\"\u003e\u003ccode\u003e@​iFreilicht\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReplace vendored version of \u003ccode\u003emarkdown2\u003c/code\u003e with the \u003ca href=\"https://github.com/trentm/python-markdown2\"\u003eofficial\nupstream\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for keyword args for Google flavor docs.\n(\u003ca href=\"https://redirect.github.com/mitmproxy/pdoc/pull/840\"\u003e#840\u003c/a\u003e, \u003ca href=\"https://github.com/aleksslitvinovs\"\u003e\u003ccode\u003e@​aleksslitvinovs\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for Pydantic-style field docstrings,\ne.g. \u003ccode\u003epydantic.Field(description=\u0026quot;...\u0026quot;)\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/mitmproxy/pdoc/pull/802\"\u003e#802\u003c/a\u003e, \u003ca href=\"https://github.com/jinnovation\"\u003e\u003ccode\u003e@​jinnovation\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2025-06-04: pdoc 15.0.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eInclude included HTML headers in the ToC by default by enabling markdown2's \u003ccode\u003emixed=True\u003c/code\u003e option of the \u003ccode\u003eheader-ids\u003c/code\u003e extra\n(\u003ca href=\"https://redirect.github.com/mitmproxy/pdoc/issues/806\"\u003e#806\u003c/a\u003e, \u003ca href=\"https://github.com/mrossinek\"\u003e\u003ccode\u003e@​mrossinek\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003epdoc .\u003c/code\u003e work to document the module in the current directory.\n(\u003ca href=\"https://redirect.github.com/mitmproxy/pdoc/pull/813\"\u003e#813\u003c/a\u003e, \u003ca href=\"https://github.com/mhils\"\u003e\u003ccode\u003e@​mhils\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2025-04-21: pdoc 15.0.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd missing styles for Github's markdown alerts.\n(\u003ca href=\"https://redirect.github.com/mitmproxy/pdoc/pull/796\"\u003e#796\u003c/a\u003e, \u003ca href=\"https://github.com/Steve-Tech\"\u003e\u003ccode\u003e@​Steve-Tech\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2025-04-17: pdoc 15.0.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix a bug where type aliases wouldn't be linked.\n(\u003ca href=\"https://redirect.github.com/mitmproxy/pdoc/pull/798\"\u003e#798\u003c/a\u003e, \u003ca href=\"https://github.com/mhils\"\u003e\u003ccode\u003e@​mhils\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix a bug where invalid Numpydoc docstrings would raise an exception.\n(\u003ca href=\"https://redirect.github.com/mitmproxy/pdoc/pull/789\"\u003e#789\u003c/a\u003e, \u003ca href=\"https://github.com/tobiscode\"\u003e\u003ccode\u003e@​tobiscode\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/mhils\"\u003e\u003ccode\u003e@​mhils\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove debuggability of docstring processing\n(\u003ca href=\"https://redirect.github.com/mitmproxy/pdoc/pull/784\"\u003e#784\u003c/a\u003e, \u003ca href=\"https://github.com/tobiscode\"\u003e\u003ccode\u003e@​tobiscode\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix handling of URL-escaped module names\n(\u003ca href=\"https://redirect.github.com/mitmproxy/pdoc/pull/787\"\u003e#787\u003c/a\u003e, \u003ca href=\"https://github.com/iFreilicht\"\u003e\u003ccode\u003e@​iFreilicht\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEmbed local images referenced in docstrings with an HTML image tag (\u003ccode\u003e\u0026lt;img src=\u0026quot;./image.png\u0026quot;\u0026gt;\u003c/code\u003e) in addition to Markdown (\u003ccode\u003e![image](https://github.com/mitmproxy/pdoc/blob/main/image.png)\u003c/code\u003e)\n(\u003ca href=\"https://redirect.github.com/mitmproxy/pdoc/pull/785\"\u003e#785\u003c/a\u003e, \u003ca href=\"https://github.com/earshinov\"\u003e\u003ccode\u003e@​earshinov\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/mitmproxy/pdoc/commit/6677d73b7e21c3741ad8bee041f274923c75b73e\"\u003e\u003ccode\u003e6677d73\u003c/code\u003e\u003c/a\u003e pdoc 16.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitmproxy/pdoc/commit/3f758340fbd07b7af80c3befa09f505194581e8a\"\u003e\u003ccode\u003e3f75834\u003c/code\u003e\u003c/a\u003e Support Pydantic model defaults + field descriptions (\u003ca href=\"https://redirect.github.com/mitmproxy/pdoc/issues/802\"\u003e#802\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitmproxy/pdoc/commit/f19fbf7a669a2fbd52879ef473ca8bf3e180e288\"\u003e\u003ccode\u003ef19fbf7\u003c/code\u003e\u003c/a\u003e Add support for Python 3.14 (\u003ca href=\"https://redirect.github.com/mitmproxy/pdoc/issues/843\"\u003e#843\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitmproxy/pdoc/commit/8aa648f2fcb821060cdebdedc0f9c74d47047227\"\u003e\u003ccode\u003e8aa648f\u003c/code\u003e\u003c/a\u003e Bump mhils/workflows in the dependencies group (\u003ca href=\"https://redirect.github.com/mitmproxy/pdoc/issues/844\"\u003e#844\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitmproxy/pdoc/commit/b782455f5351fcbc6108f194d2bee7bf90052a4d\"\u003e\u003ccode\u003eb782455\u003c/code\u003e\u003c/a\u003e Add support for keyword args for Google flavor docs (\u003ca href=\"https://redirect.github.com/mitmproxy/pdoc/issues/840\"\u003e#840\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitmproxy/pdoc/commit/34c7759e68b2f27314d3e53b717d799257008958\"\u003e\u003ccode\u003e34c7759\u003c/code\u003e\u003c/a\u003e Drop Support for Python 3.9 (\u003ca href=\"https://redirect.github.com/mitmproxy/pdoc/issues/842\"\u003e#842\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitmproxy/pdoc/commit/0f273710fa48725865544776613ead4705dc0fb6\"\u003e\u003ccode\u003e0f27371\u003c/code\u003e\u003c/a\u003e fix: remove hard-coded pdoc mention from title in template (\u003ca href=\"https://redirect.github.com/mitmproxy/pdoc/issues/841\"\u003e#841\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitmproxy/pdoc/commit/a12c236e35b056cce2603abb40a80c7666823ae1\"\u003e\u003ccode\u003ea12c236\u003c/code\u003e\u003c/a\u003e Add new pdoc logo (\u003ca href=\"https://redirect.github.com/mitmproxy/pdoc/issues/838\"\u003e#838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitmproxy/pdoc/commit/0f308ab0d80a2ba2ca10d76c79baa142f202ee84\"\u003e\u003ccode\u003e0f308ab\u003c/code\u003e\u003c/a\u003e Bump mhils/workflows in the dependencies group (\u003ca href=\"https://redirect.github.com/mitmproxy/pdoc/issues/837\"\u003e#837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitmproxy/pdoc/commit/7c880c5d5629f05b940b7ee2e1f7bfcb7538db61\"\u003e\u003ccode\u003e7c880c5\u003c/code\u003e\u003c/a\u003e Replace vendored markdown2 w/ official upstream (\u003ca href=\"https://redirect.github.com/mitmproxy/pdoc/issues/836\"\u003e#836\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mitmproxy/pdoc/compare/v15.0.1...v16\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/eggplants/jason-json/pull/52","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/eggplants%2Fjason-json/issues/52","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/52/packages"},{"uuid":"3559588012","node_id":"PR_kwDOAG4Ac86wCw5V","number":22825,"state":"closed","title":"Bump the python-version-updates group across 1 directory with 30 updates","user":"dependabot[bot]","labels":["dependencies","category:internal","release-notes:not-required"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-10-28T14:05:31.000Z","author_association":null,"state_reason":null,"created_at":"2025-10-28T03:12:44.000Z","updated_at":"2025-10-28T14:05:33.000Z","time_to_close":39167,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-version-updates","update_count":30,"packages":[{"name":"fasteners","old_version":"0.16.3","new_version":"0.20","repository_url":"https://github.com/harlowja/fasteners"},{"name":"freezegun","old_version":"1.2.1","new_version":"1.5.5","repository_url":"https://github.com/spulec/freezegun"},{"name":"ijson","old_version":"3.2.3","new_version":"3.4.0.post0","repository_url":"https://github.com/ICRAR/ijson"},{"name":"libcst","old_version":"1.4.0","new_version":"1.8.5","repository_url":"https://github.com/Instagram/LibCST"},{"name":"packaging","old_version":"24.2","new_version":"25.0","repository_url":"https://github.com/pypa/packaging"},{"name":"psutil","old_version":"5.9.8","new_version":"7.1.2","repository_url":"https://github.com/giampaolo/psutil"},{"name":"pytest","old_version":"8.4.1","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"python-lsp-jsonrpc","old_version":"1.0.0","new_version":"1.1.2","repository_url":"https://github.com/python-lsp/python-lsp-jsonrpc"},{"name":"setproctitle","old_version":"1.3.2","new_version":"1.3.7","repository_url":"https://github.com/dvarrazzo/py-setproctitle"},{"name":"types-freezegun","old_version":"1.1.6","new_version":"1.1.10","repository_url":"https://github.com/python/typeshed"},{"name":"types-pyyaml","old_version":"6.0.3","new_version":"6.0.12.20250915","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"types-requests","old_version":"2.28.1","new_version":"2.32.4.20250913","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"types-setuptools","old_version":"62.6.1","new_version":"80.9.0.20250822","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"types-toml","old_version":"0.10.8","new_version":"0.10.8.20240310","repository_url":"https://github.com/python/typeshed"}],"path":null,"ecosystem":"conda"},"body":"Updates the requirements on [fasteners](https://github.com/harlowja/fasteners), [freezegun](https://github.com/spulec/freezegun), [ijson](https://github.com/ICRAR/ijson), [libcst](https://github.com/Instagram/LibCST), [packaging](https://github.com/pypa/packaging), [psutil](https://github.com/giampaolo/psutil), [pytest](https://github.com/pytest-dev/pytest), [python-lsp-jsonrpc](https://github.com/python-lsp/python-lsp-jsonrpc), [setproctitle](https://github.com/dvarrazzo/py-setproctitle), [setuptools](https://github.com/pypa/setuptools), [types-freezegun](https://github.com/python/typeshed), [types-pyyaml](https://github.com/typeshed-internal/stub_uploader), [types-requests](https://github.com/typeshed-internal/stub_uploader), [types-setuptools](https://github.com/typeshed-internal/stub_uploader), [types-toml](https://github.com/python/typeshed), [typing-extensions](https://github.com/python/typing_extensions), [urllib3](https://github.com/urllib3/urllib3), [debugpy](https://github.com/microsoft/debugpy), [pydevd-pycharm](https://github.com/JetBrains/intellij-community), [fastapi](https://github.com/fastapi/fastapi), [starlette](https://github.com/Kludex/starlette), [strawberry-graphql[fastapi]](https://github.com/strawberry-graphql/strawberry), [uvicorn[standard]](https://github.com/Kludex/uvicorn), [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/), [python-gnupg](https://github.com/vsajip/python-gnupg), [pygithub](https://github.com/pygithub/pygithub), [mypy](https://github.com/python/mypy), [strawberry-graphql](https://github.com/strawberry-graphql/strawberry), [pytest-cov](https://github.com/pytest-dev/pytest-cov) and [flake8](https://github.com/pycqa/flake8) to permit the latest version.\nUpdates `fasteners` from 0.16.3 to 0.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/harlowja/fasteners/releases\"\u003efasteners's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.20\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eInterProcessLock now catches OSError and handles BlockingIOError correctly.\u003c/li\u003e\n\u003cli\u003eRemove support for python 3.8, python 3.9 and pypy 3.9. It should still work,\nbut is no longer tested.\u003c/li\u003e\n\u003cli\u003eAdd support for python 3.12, 3.13 and pypy 3.11.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 0.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdds non-context manager methods to inter-thread lock\u003c/li\u003e\n\u003cli\u003eDrops support for python 3.7\u003c/li\u003e\n\u003cli\u003eAdds CI for python 3.11\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 0.18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReshuffle the process lock code and properly document it.\u003c/li\u003e\n\u003cli\u003eRevamp the docs and switch from sphinx to mkdocs\u003c/li\u003e\n\u003cli\u003eRemove difficult to use tread lock features from docs\u003c/li\u003e\n\u003cli\u003eBring back support for eventlet \u003ccode\u003espawn_n\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove support for python3.6. It should still work, but is no longer tested.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.17.3\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003e0.17.2\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003e0.17.1\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003e0.17\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\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/harlowja/fasteners/blob/main/CHANGELOG.md\"\u003efasteners's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.20]\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eInterProcessLock now catches OSError and handles BlockingIOError correctly.\u003c/li\u003e\n\u003cli\u003eRemove support for python 3.8, python 3.9 and pypy 3.9. It should still work,\nbut is no longer tested.\u003c/li\u003e\n\u003cli\u003eAdd support for python 3.12, 3.13 and pypy 3.11.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.19]\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e.acquire_read_lock\u003c/code\u003e, \u003ccode\u003e.release_read_lock\u003c/code\u003e, \u003ccode\u003e.acquire_write_lock\u003c/code\u003e, and\n\u003ccode\u003e.release_write_lock\u003c/code\u003e methods to the inter thread \u003ccode\u003eReaderWriterLock\u003c/code\u003e as was\npromised in the README.\u003c/li\u003e\n\u003cli\u003eRemove support for python 3.7 and pypy 3.7. It should still work, but is no\nlonger tested.\u003c/li\u003e\n\u003cli\u003eAdd support for pypy 3.10 and python 3.11\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.18]\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReshuffle the process lock code and properly document it.\u003c/li\u003e\n\u003cli\u003eRevamp the docs and switch from sphinx to mkdocs\u003c/li\u003e\n\u003cli\u003eRemove difficult to use tread lock features from docs\u003c/li\u003e\n\u003cli\u003eBring back support for eventlet \u003ccode\u003espawn_n\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove support for python3.6. It should still work, but is no longer tested.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.17.3]:\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow writer to become a reader in thread ReaderWriter lock\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.17.2]:\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove unnecessary setuptools pin\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.17.1]:\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch to the modern python package build infrastructure\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.17]: [NEVER RELEASED]\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for python 3.5 and earlier, including 2.7\u003c/li\u003e\n\u003cli\u003eAdd support for python 3.9 and 3.10\u003c/li\u003e\n\u003cli\u003eFix a conflict with django lock\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e__version__\u003c/code\u003e and \u003ccode\u003e__all__\u003c/code\u003e attributes\u003c/li\u003e\n\u003cli\u003eFix a failure to parse README as utf-8\u003c/li\u003e\n\u003cli\u003eMove from nosetest to pytest and cleanup testing infrastructure\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/harlowja/fasteners/commit/87839f4acc6660856c67963b128dedd84e94907d\"\u003e\u003ccode\u003e87839f4\u003c/code\u003e\u003c/a\u003e Release 0.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/harlowja/fasteners/commit/559e58654a5587dd5a8247e979179f80af1ba727\"\u003e\u003ccode\u003e559e586\u003c/code\u003e\u003c/a\u003e Use uv\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/harlowja/fasteners/commit/59edee2438b89f54eb0e372441face03a97c6689\"\u003e\u003ccode\u003e59edee2\u003c/code\u003e\u003c/a\u003e Update licence fields in pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/harlowja/fasteners/commit/433df5df95de7c79f3d993e5f0511e3bfa2752a5\"\u003e\u003ccode\u003e433df5d\u003c/code\u003e\u003c/a\u003e update docs build github action\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/harlowja/fasteners/commit/fb2206259297ef70cccaa679499582dfbbea2fd5\"\u003e\u003ccode\u003efb22062\u003c/code\u003e\u003c/a\u003e Catch OSError in the InterProcessLock (\u003ca href=\"https://redirect.github.com/harlowja/fasteners/issues/123\"\u003e#123\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/harlowja/fasteners/commit/3f114f01ca775db3e78b20a0e54ca561c5d31eb0\"\u003e\u003ccode\u003e3f114f0\u003c/code\u003e\u003c/a\u003e Update CI python versions (\u003ca href=\"https://redirect.github.com/harlowja/fasteners/issues/120\"\u003e#120\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/harlowja/fasteners/commit/06c3f06cab4e135b8d921932019a231c180eb9f4\"\u003e\u003ccode\u003e06c3f06\u003c/code\u003e\u003c/a\u003e Release 0.19\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/harlowja/fasteners/commit/b75eb0358021cb59b995df24ac1cd360e1d4618c\"\u003e\u003ccode\u003eb75eb03\u003c/code\u003e\u003c/a\u003e Update python version test matrix (+3.11 -3.7)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/harlowja/fasteners/commit/2535dce2c56b3bbb131ec08ffd10850f110a7677\"\u003e\u003ccode\u003e2535dce\u003c/code\u003e\u003c/a\u003e Add aquire_read_lock et. al. methods to ReaderWriterLock\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/harlowja/fasteners/commit/50f97f4c89d38ba51d80b8311168f8509b2856d0\"\u003e\u003ccode\u003e50f97f4\u003c/code\u003e\u003c/a\u003e Add .readthedocs.yaml file\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/harlowja/fasteners/compare/0.16.3...0.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `freezegun` from 1.2.1 to 1.5.5\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/spulec/freezegun/blob/master/CHANGELOG\"\u003efreezegun's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.5.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow parametrized arguments called 'func' (Broken in 1.5.4)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Ability to yield fixtures (broken in 1.5.3)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix compatibility with pytest 8.4.0 when using fixtures\u003c/li\u003e\n\u003cli\u003eAdd (back) class-decorator overload to guarantee Pytype understands it\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for Python 3.7\u003c/li\u003e\n\u003cli\u003eExplicitly marks support for Python 3.13\u003c/li\u003e\n\u003cli\u003eImproved project documentation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix the typing of the \u003ccode\u003etick()\u003c/code\u003e method, and improve it's behaviour.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe default ignore list now contains the \u003ccode\u003equeue\u003c/code\u003e-package\u003c/li\u003e\n\u003cli\u003eAdded a missing \u003ccode\u003emove_to\u003c/code\u003e-function when calling \u003ccode\u003efreeze_time(tick=True)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFixes a rounding error in \u003ccode\u003etime.time_ns()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFixed a bug where the default ignore list could not be empty (\u003ccode\u003econfigure(default_ignore_list=[])\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAll \u003ccode\u003etick()\u003c/code\u003e methods now return the new datetime (instead of None)\u003c/li\u003e\n\u003cli\u003eType improvements\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.4.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003easyncio\u003c/code\u003e-support from 1.3.x introduced quite a few  bugs, so that functionality is now hidden behind a flag:\n\u003ccode\u003ewith freeze_time('1970-01-02', real_asyncio=True):\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdded documentation for the \u003ccode\u003ereal_asyncio\u003c/code\u003e parameter in the \u003ccode\u003eREADME.rst\u003c/code\u003e file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed the release number in the build\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003easyncio\u003c/code\u003e support to avoid \u003ccode\u003eawait asyncio.sleep(1)\u003c/code\u003e hanging forever.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for Python 3.12\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/spulec/freezegun/commit/c9bf52c5aa12ea1b5b8647a136a92504ea071f2f\"\u003e\u003ccode\u003ec9bf52c\u003c/code\u003e\u003c/a\u003e Increase version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/0f2bd7ed8b420da73372f4cbb0207b777caa66e9\"\u003e\u003ccode\u003e0f2bd7e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/spulec/freezegun/issues/582\"\u003e#582\u003c/a\u003e from spulec/fixture-called-func\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/a6080557cbcbe4891843934c1334430bb1c5ead7\"\u003e\u003ccode\u003ea608055\u003c/code\u003e\u003c/a\u003e Allow parametrized arguments with name 'func'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/2bb47113a5f9f290d26630c92732e58f49557179\"\u003e\u003ccode\u003e2bb4711\u003c/code\u003e\u003c/a\u003e Increase version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/7599eeea16b8f206e881892dc104128a5b36de82\"\u003e\u003ccode\u003e7599eee\u003c/code\u003e\u003c/a\u003e Add 1.5.4 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/0d00e7ddd9ad33fc63fbed29af17853b18bc3c61\"\u003e\u003ccode\u003e0d00e7d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/spulec/freezegun/issues/579\"\u003e#579\u003c/a\u003e from zsh8/decorate_generator\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/10c93f2d6c98f82e54470b05144cd0f17d3e1b46\"\u003e\u003ccode\u003e10c93f2\u003c/code\u003e\u003c/a\u003e fix: preserve functionality in pytest yield fixtures\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/d2e0a00addb0653b0cf3be65f8fa7137c7e3bda1\"\u003e\u003ccode\u003ed2e0a00\u003c/code\u003e\u003c/a\u003e Increase version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/6229e27d27ec61c4c55d7006db7ede6f16d7280a\"\u003e\u003ccode\u003e6229e27\u003c/code\u003e\u003c/a\u003e Add 1.5.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/3111775d6e484f55a85030c626180b592adef569\"\u003e\u003ccode\u003e3111775\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/spulec/freezegun/issues/576\"\u003e#576\u003c/a\u003e from spulec/support-fixtures-pytest-840\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/spulec/freezegun/compare/1.2.1...1.5.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ijson` from 3.2.3 to 3.4.0.post0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ICRAR/ijson/blob/master/CHANGELOG.md\"\u003eijson's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[3.4.0.post0]\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePost-release to get 3.14 wheels built on published on PyPI.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.4.0]\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for PEP 489 multi-phase initialisation\nand per-module state for our C extension,\nallowing us to support sub-interpreters with per-interpreter GIL.\u003c/li\u003e\n\u003cli\u003eAdvertise support for free-threading python mode.\u003c/li\u003e\n\u003cli\u003eRemoved support for Python \u0026lt; 3.9.\u003c/li\u003e\n\u003cli\u003eEnhanced generators so they yield all possible results to users\nbefore errors are raised (\u003ca href=\"https://redirect.github.com/ICRAR/ijson/issues/123\"\u003e#123\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eijson.ALL_BACKENDS\u003c/code\u003e constant\nlisting all supported backends\n(which might or not be available at runtime).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecapabilities\u003c/code\u003e constant to each backend\ndescribing which capabilities it supports.\u003c/li\u003e\n\u003cli\u003eExposing backend's name under \u003ccode\u003e\u0026lt;backend\u0026gt;.backend_name\u003c/code\u003e,\nand default backend's name under \u003ccode\u003eijson.backend_name\u003c/code\u003e.\nThis is similar to the already existing \u003ccode\u003ename\u003c/code\u003e constant,\nonly slightly better named to hopefully avoid confusion.\u003c/li\u003e\n\u003cli\u003eRestructured source code so all code lives under \u003ccode\u003esrc/\u003c/code\u003e,\nand the \u003ccode\u003eijson.backends._yajl2\u003c/code\u003e extension under \u003ccode\u003esrc/ijson/backends/ext/_yajl2\u003c/code\u003e.\nThis allows C backend tests to actually run on cibuildwheel.\u003c/li\u003e\n\u003cli\u003eImproved performance of \u003ccode\u003eparse\u003c/code\u003e routine in C backend by ~4%.\u003c/li\u003e\n\u003cli\u003eFixed several potential stability issues in C backend\naround correct error handling.\u003c/li\u003e\n\u003cli\u003eFixed corner-case wrong behaviour of \u003ccode\u003eyajl2_c\u003c/code\u003e backend,\nwhich didn't work correctly with user-provided event names.\u003c/li\u003e\n\u003cli\u003ePointing to our own fork of yajl (for when we build it ourselves)\nthat contains fixes for all known CVEs (\u003ca href=\"https://redirect.github.com/ICRAR/ijson/issues/126\"\u003e#126\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRemoved leftover compatibility bits in the C backend.\u003c/li\u003e\n\u003cli\u003eFixed potential issue with \u003ccode\u003eyajl\u003c/code\u003e and \u003ccode\u003eyajl2\u003c/code\u003e backends\nwhere crashes could occur at interpreter shutdown.\u003c/li\u003e\n\u003cli\u003eRemoved tox.\u003c/li\u003e\n\u003cli\u003eMoved static project metadata to \u003ccode\u003epyproject.toml\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.3.0]\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved support for Python 2.7 and 3.4,\n3.5+ is still supported.\u003c/li\u003e\n\u003cli\u003eDistribute the existing \u003ccode\u003ebenchmark.py\u003c/code\u003e script\nas \u003ccode\u003eijson.benchmark\u003c/code\u003e.\nThe module is an improved version of the script,\nsupporting #iterations for a given function invocation,\nmultiple input files,\nand more.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ICRAR/ijson/commit/6c97a004996035d3ac06d9ca7ea6324d9ed50a4b\"\u003e\u003ccode\u003e6c97a00\u003c/code\u003e\u003c/a\u003e Release ijson 3.4.0.post0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ICRAR/ijson/commit/fbb34c91bc643df07908ee31db89db22a7fd95da\"\u003e\u003ccode\u003efbb34c9\u003c/code\u003e\u003c/a\u003e Bump pypa/cibuildwheel from 3.1.4 to 3.2.0 (\u003ca href=\"https://redirect.github.com/ICRAR/ijson/issues/151\"\u003e#151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ICRAR/ijson/commit/1652a7ea643b4eaaba1c51f5f48b5c2b15e1d6a4\"\u003e\u003ccode\u003e1652a7e\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/ICRAR/ijson/issues/149\"\u003e#149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ICRAR/ijson/commit/b17551dc6303165de56b192f2ecf7ce63338ff50\"\u003e\u003ccode\u003eb17551d\u003c/code\u003e\u003c/a\u003e Bump pypa/cibuildwheel from 3.1.3 to 3.1.4 (\u003ca href=\"https://redirect.github.com/ICRAR/ijson/issues/148\"\u003e#148\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ICRAR/ijson/commit/85a23f8d6fd22f27977ed23adb7fcd7de44902a6\"\u003e\u003ccode\u003e85a23f8\u003c/code\u003e\u003c/a\u003e Use GHA ARM runners for faster ARM builds\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ICRAR/ijson/commit/cd74a27ce49e9bf1599fce359b0b6f82482b7cf8\"\u003e\u003ccode\u003ecd74a27\u003c/code\u003e\u003c/a\u003e Mark python 3.14 as supported\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ICRAR/ijson/commit/f62d26cb0b16602c379ef08ed987e0ba653780ce\"\u003e\u003ccode\u003ef62d26c\u003c/code\u003e\u003c/a\u003e Add fast test against 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ICRAR/ijson/commit/500baead7919dc71a9538d1fbe6fb59a56e28450\"\u003e\u003ccode\u003e500baea\u003c/code\u003e\u003c/a\u003e README: clarify how to use it with requests lib\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ICRAR/ijson/commit/4de62c53951a00a7e81c174d51bc0f10add78054\"\u003e\u003ccode\u003e4de62c5\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/ICRAR/ijson/issues/146\"\u003e#146\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ICRAR/ijson/commit/fc931cf575c3b713f98c4c8c0535993b9db9079e\"\u003e\u003ccode\u003efc931cf\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/ICRAR/ijson/issues/145\"\u003e#145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ICRAR/ijson/compare/v3.2.3...v3.4.0.post0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `libcst` from 1.4.0 to 1.8.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/releases\"\u003elibcst's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.8.5\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: circular import error by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1406\"\u003eInstagram/LibCST#1406\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.4...v1.8.5\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.4...v1.8.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.8.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efixed: generate Attribute nodes when applying type annotations by \u003ca href=\"https://github.com/tungol\"\u003e\u003ccode\u003e@​tungol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1396\"\u003eInstagram/LibCST#1396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded:Support parsing of t-strings \u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1374\"\u003e#1374\u003c/a\u003e  by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1398\"\u003eInstagram/LibCST#1398\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded: add support for PEP758 by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1401\"\u003eInstagram/LibCST#1401\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/tungol\"\u003e\u003ccode\u003e@​tungol\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1396\"\u003eInstagram/LibCST#1396\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.4\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.8.2\u003c/h2\u003e\n\u003ch1\u003eFixed\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix(dependency): add back typing-extensions for 3.9 by \u003ca href=\"https://github.com/Lee-W\"\u003e\u003ccode\u003e@​Lee-W\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1358\"\u003eInstagram/LibCST#1358\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/Lee-W\"\u003e\u003ccode\u003e@​Lee-W\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1358\"\u003eInstagram/LibCST#1358\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.1...v1.8.2\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.1...v1.8.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.8.1\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd helper to convert nodes to matchers by \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1351\"\u003eInstagram/LibCST#1351\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eUpdated\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid raising bare Exception by \u003ca href=\"https://github.com/zaicruvoir1rominet\"\u003e\u003ccode\u003e@​zaicruvoir1rominet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1168\"\u003eInstagram/LibCST#1168\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade PyYAML-ft version and use new module name by \u003ca href=\"https://github.com/lysnikolaou\"\u003e\u003ccode\u003e@​lysnikolaou\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1353\"\u003eInstagram/LibCST#1353\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/lysnikolaou\"\u003e\u003ccode\u003e@​lysnikolaou\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1353\"\u003eInstagram/LibCST#1353\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.0...v1.8.1\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.0...v1.8.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.8.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow configuring empty formatter lists in codemod CLI by \u003ca href=\"https://github.com/ngoldbaum\"\u003e\u003ccode\u003e@​ngoldbaum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1319\"\u003eInstagram/LibCST#1319\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePublish several new binary wheels\n\u003cul\u003e\n\u003cli\u003emacos intel by \u003ca href=\"https://github.com/hadialqattan\"\u003e\u003ccode\u003e@​hadialqattan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1316\"\u003eInstagram/LibCST#1316\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ewindows arm64 by \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1304\"\u003eInstagram/LibCST#1304\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e3.13 CPython free-threaded by \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1333\"\u003eInstagram/LibCST#1333\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(only on \u003ca href=\"https://test.pypi.org/project/libcst/#history\"\u003etest.pypi.org\u003c/a\u003e) 3.14 and 3.14 CPython free-threaded by \u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1345\"\u003eInstagram/LibCST#1345\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1331\"\u003eInstagram/LibCST#1331\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eEnable support for free-threaded CPython by \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1295\"\u003eInstagram/LibCST#1295\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1335\"\u003eInstagram/LibCST#1335\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/Instagram/LibCST/blob/main/CHANGELOG.md\"\u003elibcst's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.8.5 - 2025-09-25\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efixed: circular import error by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1406\"\u003eInstagram/LibCST#1406\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.8.4 - 2025-09-09\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efixed: generate Attribute nodes when applying type annotations by \u003ca href=\"https://github.com/tungol\"\u003e\u003ccode\u003e@​tungol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1396\"\u003eInstagram/LibCST#1396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded: Support parsing of t-strings \u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1374\"\u003e#1374\u003c/a\u003e  by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1398\"\u003eInstagram/LibCST#1398\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded: add support for PEP758 by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1401\"\u003eInstagram/LibCST#1401\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/tungol\"\u003e\u003ccode\u003e@​tungol\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1396\"\u003eInstagram/LibCST#1396\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.4\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.4\u003c/a\u003e\u003c/p\u003e\n\u003ch1\u003e1.8.3 - 2025-08-29\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eremoved: remove entry points to pure parser by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1375\"\u003eInstagram/LibCST#1375\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixed: fixes match statements to work with PositionProvider by \u003ca href=\"https://github.com/imsut\"\u003e\u003ccode\u003e@​imsut\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1389\"\u003eInstagram/LibCST#1389\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/hunterhogan\"\u003e\u003ccode\u003e@​hunterhogan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1378\"\u003eInstagram/LibCST#1378\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thomas-serre-sonarsource\"\u003e\u003ccode\u003e@​thomas-serre-sonarsource\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1379\"\u003eInstagram/LibCST#1379\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/imsut\"\u003e\u003ccode\u003e@​imsut\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1389\"\u003eInstagram/LibCST#1389\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.3\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.3\u003c/a\u003e\u003c/p\u003e\n\u003ch1\u003e1.8.2 - 2025-06-13\u003c/h1\u003e\n\u003ch1\u003eFixed\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix(dependency): add back typing-extensions for 3.9 by \u003ca href=\"https://github.com/Lee-W\"\u003e\u003ccode\u003e@​Lee-W\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1358\"\u003eInstagram/LibCST#1358\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/Lee-W\"\u003e\u003ccode\u003e@​Lee-W\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1358\"\u003eInstagram/LibCST#1358\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.1...v1.8.2\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.1...v1.8.2\u003c/a\u003e\u003c/p\u003e\n\u003ch1\u003e1.8.1 - 2025-06-10\u003c/h1\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd helper to convert nodes to matchers by \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1351\"\u003eInstagram/LibCST#1351\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eUpdated\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid raising bare Exception by \u003ca href=\"https://github.com/zaicruvoir1rominet\"\u003e\u003ccode\u003e@​zaicruvoir1rominet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1168\"\u003eInstagram/LibCST#1168\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade PyYAML-ft version and use new module name by \u003ca href=\"https://github.com/lysnikolaou\"\u003e\u003ccode\u003e@​lysnikolaou\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1353\"\u003eInstagram/LibCST#1353\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/Instagram/LibCST/commit/7c906eb47c02dca8d5b4273a032805516361c8cb\"\u003e\u003ccode\u003e7c906eb\u003c/code\u003e\u003c/a\u003e bump version to 1.8.5 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1407\"\u003e#1407\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/de5635394b5627cb86656147ba2f96e835ed3d44\"\u003e\u003ccode\u003ede56353\u003c/code\u003e\u003c/a\u003e fix: circular import error (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1406\"\u003e#1406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/47cacb69a32520be52975527e0cc87a4b4d5cd77\"\u003e\u003ccode\u003e47cacb6\u003c/code\u003e\u003c/a\u003e bump version to 1.8.4 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1402\"\u003e#1402\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/3b5329aa2022d97972d2f58eefe61b759b8e56c1\"\u003e\u003ccode\u003e3b5329a\u003c/code\u003e\u003c/a\u003e feat: add support for PEP758 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1401\"\u003e#1401\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/48668dfabb25e4bbdd35f81407498f5f5e47bf88\"\u003e\u003ccode\u003e48668df\u003c/code\u003e\u003c/a\u003e Support parsing of t-strings \u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1374\"\u003e#1374\u003c/a\u003e  (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1398\"\u003e#1398\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/0c82bfa76166ed38409a97de8974f9aaf3e7e572\"\u003e\u003ccode\u003e0c82bfa\u003c/code\u003e\u003c/a\u003e build(deps): bump regex from 1.11.1 to 1.11.2 in /native (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1399\"\u003e#1399\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/f40d8351450ca9adfe5270bd86ec7951e83221f4\"\u003e\u003ccode\u003ef40d835\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1400\"\u003e#1400\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/d721a06c3fc3ab9210acd180cec5aaca856e1bc7\"\u003e\u003ccode\u003ed721a06\u003c/code\u003e\u003c/a\u003e generate Attribute nodes when applying type annotations (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1396\"\u003e#1396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/e064729b4c04b834754c7be7f43a4dfb38972570\"\u003e\u003ccode\u003ee064729\u003c/code\u003e\u003c/a\u003e build(deps): bump pypa/cibuildwheel from 3.0.1 to 3.1.4 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1395\"\u003e#1395\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/f746afd537910d99bd8226a1c1edbf5bc69630eb\"\u003e\u003ccode\u003ef746afd\u003c/code\u003e\u003c/a\u003e build(deps): bump rayon from 1.10.0 to 1.11.0 in /native (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1394\"\u003e#1394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.4.0...v1.8.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `packaging` from 24.2 to 25.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/releases\"\u003epackaging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRe-add a test for Unicode file name parsing by \u003ca href=\"https://github.com/Siddhesh-Agarwal\"\u003e\u003ccode\u003e@​Siddhesh-Agarwal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/863\"\u003epypa/packaging#863\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade to ruff 0.9.1 by \u003ca href=\"https://github.com/DimitriPapadopoulos\"\u003e\u003ccode\u003e@​DimitriPapadopoulos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/865\"\u003epypa/packaging#865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for PEP 738 Android tags by \u003ca href=\"https://github.com/mhsmith\"\u003e\u003ccode\u003e@​mhsmith\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/880\"\u003epypa/packaging#880\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(markers): support 'extras' and 'dependency_groups' markers 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/888\"\u003epypa/packaging#888\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/Siddhesh-Agarwal\"\u003e\u003ccode\u003e@​Siddhesh-Agarwal\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/863\"\u003epypa/packaging#863\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mhsmith\"\u003e\u003ccode\u003e@​mhsmith\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/880\"\u003epypa/packaging#880\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frostming\"\u003e\u003ccode\u003e@​frostming\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/888\"\u003epypa/packaging#888\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/24.2...25.0\"\u003ehttps://github.com/pypa/packaging/compare/24.2...25.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/pypa/packaging/blob/main/CHANGELOG.rst\"\u003epackaging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e25.0 - 2025-04-19\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* PEP 751: Add support for ``extras`` and ``dependency_groups`` markers. (:issue:`885`)\n* PEP 738: Add support for Android platform tags. (:issue:`880`)\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\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/f58537628042c7f29780b9d33f31597e7fc9d664\"\u003e\u003ccode\u003ef585376\u003c/code\u003e\u003c/a\u003e Bump for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/600ecea15b2388037b8dc94883504ca612947576\"\u003e\u003ccode\u003e600ecea\u003c/code\u003e\u003c/a\u003e Add changelog entries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/3910129009b25dd1aa1fe32e644bc891188c56fe\"\u003e\u003ccode\u003e3910129\u003c/code\u003e\u003c/a\u003e support 'extras' and 'dependency_groups' markers (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/888\"\u003e#888\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/8e49b4373731bffb110c9583e64ad802cb67c7ea\"\u003e\u003ccode\u003e8e49b43\u003c/code\u003e\u003c/a\u003e Add support for PEP 738 Android tags (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/880\"\u003e#880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/e624d8edfaa28865de7b5a7da8bd59fd410e5331\"\u003e\u003ccode\u003ee624d8e\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/886\"\u003e#886\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/71f38d872a6e88b28da9d1b270f8512475bc90d4\"\u003e\u003ccode\u003e71f38d8\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/878\"\u003e#878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/9b4922dd3c26c8522d716bec79d7e0ed408631c1\"\u003e\u003ccode\u003e9b4922d\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/870\"\u003e#870\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/8510bd9d3bab5571974202ec85f6ef7b0359bfaf\"\u003e\u003ccode\u003e8510bd9\u003c/code\u003e\u003c/a\u003e Upgrade to ruff 0.9.1 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/865\"\u003e#865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/9375ec2eff48257967c97d331b9a76019e95bdb0\"\u003e\u003ccode\u003e9375ec2\u003c/code\u003e\u003c/a\u003e Re-add tests for Unicode file name parsing (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/863\"\u003e#863\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/2256ed4ac261309a09daa04cc801abd7cff2e6f0\"\u003e\u003ccode\u003e2256ed4\u003c/code\u003e\u003c/a\u003e Bump the github-actions group across 1 directory with 2 updates (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/864\"\u003e#864\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/packaging/compare/24.2...25.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psutil` from 5.9.8 to 7.1.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/giampaolo/psutil/blob/master/HISTORY.rst\"\u003epsutil's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e7.1.2\u003c/h1\u003e\n\u003cp\u003e2025-10-25\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2657_: stop publishing prebuilt Linux and Windows wheels for 32-bit Python.\n32-bit CPython is still supported, but psutil must now be built from source.\n2565_: produce wheels for free-thread cPython 3.13 and 3.14 (patch by\nLysandros Nikolaou)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2650_, [macOS]: \u003ccode\u003eProcess.cmdline()\u003c/code\u003e_ and \u003ccode\u003eProcess.environ()\u003c/code\u003e_ may incorrectly\nraise \u003ccode\u003eNoSuchProcess\u003c/code\u003e_ instead of \u003ccode\u003eZombieProcess\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003e2658_, [macOS]: double \u003ccode\u003efree()\u003c/code\u003e in \u003ccode\u003eProcess.environ()\u003c/code\u003e_ when it fails\ninternally. This posed a risk of segfault.\u003c/li\u003e\n\u003cli\u003e2662_, [macOS]: massive C code cleanup to guard against possible segfaults\nwhich were (not so) sporadically spotted on CI.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eCompatibility notes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2657_: stop publishing prebuilt Linux and Windows wheels for 32-bit Python.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e7.1.1\u003c/h1\u003e\n\u003cp\u003e2025-10-19\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2645_, [SunOS]: dropped support for SunOS 10.\u003c/li\u003e\n\u003cli\u003e2646_, [SunOS]: add CI test runner for SunOS.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2641_, [SunOS]: cannot compile psutil from sources due to missing C include.\u003c/li\u003e\n\u003cli\u003e2357_, [SunOS]: \u003ccode\u003eProcess.cmdline()\u003c/code\u003e_ does not handle spaces properly. (patch\nby Ben Raz)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eCompatibility notes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2645_: SunOS 10 is no longer supported.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e7.1.0\u003c/h1\u003e\n\u003cp\u003e2025-09-17\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/giampaolo/psutil/commit/c948ef07e46b114a61492c9d207c741339fceeb2\"\u003e\u003ccode\u003ec948ef0\u003c/code\u003e\u003c/a\u003e Update HISTORY.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/7dfd0ed34fe70ffd879ae62d21aabd4a8ed06d6f\"\u003e\u003ccode\u003e7dfd0ed\u003c/code\u003e\u003c/a\u003e Build 3.14t wheels (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2659\"\u003e#2659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/cbc0ba9025ec22b3be9f59b9e5bc761484c913b8\"\u003e\u003ccode\u003ecbc0ba9\u003c/code\u003e\u003c/a\u003e C: add missing ;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/a6ca9e14c68069c1e40f1c10cece36ca0fa491c8\"\u003e\u003ccode\u003ea6ca9e1\u003c/code\u003e\u003c/a\u003e BSD: Py_INCREF None value + use psutil_badargs()\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/3ed64173b6592344200b27d284fb23c5fd70f450\"\u003e\u003ccode\u003e3ed6417\u003c/code\u003e\u003c/a\u003e BSD: kinfo_getfile() check args + INT_MAX\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/742c9b560ee01bea051438a0d7a205b709b6d144\"\u003e\u003ccode\u003e742c9b5\u003c/code\u003e\u003c/a\u003e [macOS] lots of fixes (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2662\"\u003e#2662\u003c/a\u003e) - should fix macOS segfault \u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2661\"\u003e#2661\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/9d1ba7529f68275697d5bcd1b0785ebd02743683\"\u003e\u003ccode\u003e9d1ba75\u003c/code\u003e\u003c/a\u003e Update pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/68585cae2b4b9a88df7a000de177e56443bd6b86\"\u003e\u003ccode\u003e68585ca\u003c/code\u003e\u003c/a\u003e [macOS] various fixes to prevent potential segfaults (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2660\"\u003e#2660\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/439358dedf908a52e5ae512d3d2908af0dfdb2e4\"\u003e\u003ccode\u003e439358d\u003c/code\u003e\u003c/a\u003e Update HISTORY.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/24fc7dbde26e4c93f534c9a31863eb1ed25d162f\"\u003e\u003ccode\u003e24fc7db\u003c/code\u003e\u003c/a\u003e macos, fix \u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2658\"\u003e#2658\u003c/a\u003e: don't double-free in case of environ() error\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/giampaolo/psutil/compare/release-5.9.8...release-7.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.4.1 to 8.4.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.4.2\u003c/h2\u003e\n\u003ch1\u003epytest 8.4.2 (2025-09-03)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13478\"\u003e#13478\u003c/a\u003e: Fixed a crash when using \u003ccode\u003econsole_output_style\u003c/code\u003e{.interpreted-text role=\u0026quot;confval\u0026quot;} with \u003ccode\u003etimes\u003c/code\u003e and a module is skipped.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13530\"\u003e#13530\u003c/a\u003e: Fixed a crash when using \u003ccode\u003epytest.approx\u003c/code\u003e{.interpreted-text role=\u0026quot;func\u0026quot;} and \u003ccode\u003edecimal.Decimal\u003c/code\u003e{.interpreted-text role=\u0026quot;class\u0026quot;} instances with the \u003ccode\u003edecimal.FloatOperation\u003c/code\u003e{.interpreted-text role=\u0026quot;class\u0026quot;} trap set.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13549\"\u003e#13549\u003c/a\u003e: No longer evaluate type annotations in Python \u003ccode\u003e3.14\u003c/code\u003e when inspecting function signatures.\u003c/p\u003e\n\u003cp\u003eThis prevents crashes during module collection when modules do not explicitly use \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e and import types for annotations within a \u003ccode\u003eif TYPE_CHECKING:\u003c/code\u003e block.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13559\"\u003e#13559\u003c/a\u003e: Added missing [int]{.title-ref} and [float]{.title-ref} variants to the [Literal]{.title-ref} type annotation of the [type]{.title-ref} parameter in \u003ccode\u003epytest.Parser.addini\u003c/code\u003e{.interpreted-text role=\u0026quot;meth\u0026quot;}.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13563\"\u003e#13563\u003c/a\u003e: \u003ccode\u003epytest.approx\u003c/code\u003e{.interpreted-text role=\u0026quot;func\u0026quot;} now only imports \u003ccode\u003enumpy\u003c/code\u003e if NumPy is already in \u003ccode\u003esys.modules\u003c/code\u003e. This fixes unconditional import behavior introduced in [8.4.0]{.title-ref}.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13577\"\u003e#13577\u003c/a\u003e: Clarify that \u003ccode\u003epytest_generate_tests\u003c/code\u003e is discovered in test modules/classes; other hooks must be in \u003ccode\u003econftest.py\u003c/code\u003e or plugins.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13480\"\u003e#13480\u003c/a\u003e: Self-testing: fixed a few test failures when run with \u003ccode\u003e-Wdefault\u003c/code\u003e or a similar override.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13547\"\u003e#13547\u003c/a\u003e: Self-testing: corrected expected message for \u003ccode\u003etest_doctest_unexpected_exception\u003c/code\u003e in Python \u003ccode\u003e3.14\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13684\"\u003e#13684\u003c/a\u003e: Make pytest's own testsuite insensitive to the presence of the \u003ccode\u003eCI\u003c/code\u003e environment variable -- by \u003ccode\u003eogrisel\u003c/code\u003e{.interpreted-text role=\u0026quot;user\u0026quot;}.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bfae4224fd554d3d7f2c277a4cc092b6ec6af3ae\"\u003e\u003ccode\u003ebfae422\u003c/code\u003e\u003c/a\u003e Prepare release version 8.4.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/89905381a163be30ae87d62e5f750e902d750c5f\"\u003e\u003ccode\u003e8990538\u003c/code\u003e\u003c/a\u003e Fix passenv CI in tox ini and make tests insensitive to the presence of the C...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ca676bfe005aebcb12f4146d1b0f1d2772e2cd5d\"\u003e\u003ccode\u003eca676bf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13687\"\u003e#13687\u003c/a\u003e from pytest-dev/patchback/backports/8.4.x/e63f6e51c...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/975a60a63ce385a44655596e254c1899feaa53e4\"\u003e\u003ccode\u003e975a60a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13686\"\u003e#13686\u003c/a\u003e from pytest-dev/patchback/backports/8.4.x/12bde8af6...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7723ce84b87ab08f86ddafcb342acc28ba5ec99d\"\u003e\u003ccode\u003e7723ce8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13683\"\u003e#13683\u003c/a\u003e from even-even/fix_Exeption_to_Exception_in_errorMe...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7f05680d1301e0969b30bcb3c4b27433c9ee2b7\"\u003e\u003ccode\u003eb7f0568\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13685\"\u003e#13685\u003c/a\u003e from CoretexShadow/fix/docs-pytest-generate-tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/2c94c4a6948ba53440818389298157fa5d5f94cd\"\u003e\u003ccode\u003e2c94c4a\u003c/code\u003e\u003c/a\u003e add missing colon (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13640\"\u003e#13640\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13641\"\u003e#13641\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c3d7684bc01c8c48d05145a30c5211ca8656c68c\"\u003e\u003ccode\u003ec3d7684\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13606\"\u003e#13606\u003c/a\u003e from pytest-dev/patchback/backports/8.4.x/5f9938563...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/dc6e3be2ddc75a149b6d102d9b7c82ee47a00cfa\"\u003e\u003ccode\u003edc6e3be\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13605\"\u003e#13605\u003c/a\u003e from The-Compiler/training-update-2025-07\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f87289c36c8dbe7740e3020f5546b6f8b0861ff0\"\u003e\u003ccode\u003ef87289c\u003c/code\u003e\u003c/a\u003e Fix crash with \u003ccode\u003etimes\u003c/code\u003e output style and skipped module (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13573\"\u003e#13573\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13579\"\u003e#13579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.4.1...8.4.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-lsp-jsonrpc` from 1.0.0 to 1.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-lsp/python-lsp-jsonrpc/releases\"\u003epython-lsp-jsonrpc's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ePython LSP JSON-RPC v1.1.2\u003c/h2\u003e\n\u003cp\u003eThis is a minor bugfix release that:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixes tests so they're compatible with both ujson and the pure json library.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePython LSP JSON-RPC v1.1.1\u003c/h2\u003e\n\u003cp\u003eThis is a minor bugfix release that:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoves the redundant \u003ccode\u003ewheel\u003c/code\u003e dependency from \u003ccode\u003epyproject.toml\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdds a license trove classifier to \u003ccode\u003epyproject.toml\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePython LSP JSON-RPC v1.1.0\u003c/h2\u003e\n\u003cp\u003eMajor release of python-lsp-jsonrpc with the following new features and changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAllow method handlers to return json rpc errors\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.6\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-lsp/python-lsp-jsonrpc/blob/develop/CHANGELOG.md\"\u003epython-lsp-jsonrpc's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.1.2 (2023/09/23)\u003c/h2\u003e\n\u003ch3\u003ePull Requests Merged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/python-lsp/python-lsp-jsonrpc/pull/26\"\u003ePR 26\u003c/a\u003e - Fix tests so they're compatible with both ujson and pure json library, by \u003ca href=\"https://github.com/ajohnston9\"\u003e\u003ccode\u003e@​ajohnston9\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIn this release 1 pull request was closed.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003eVersion 1.1.1 (2023/09/09)\u003c/h2\u003e\n\u003ch3\u003eIssues Closed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/python-lsp/python-lsp-jsonrpc/issues/18\"\u003eIssue 18\u003c/a\u003e - No license included in package metadata (\u003ca href=\"https://redirect.github.com/python-lsp/python-lsp-jsonrpc/pull/19\"\u003ePR 19\u003c/a\u003e by \u003ca href=\"https://github.com/thejcannon\"\u003e\u003ccode\u003e@​thejcannon\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIn this release 1 issue was closed.\u003c/p\u003e\n\u003ch3\u003ePull Requests Merged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/python-lsp/python-lsp-jsonrpc/pull/23\"\u003ePR 23\u003c/a\u003e - Remove redundant wheel dep from pyproject.toml, by \u003ca href=\"https://github.com/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/python-lsp/python-lsp-jsonrpc/pull/19\"\u003ePR 19\u003c/a\u003e - Add license trove classifier, by \u003ca href=\"https://github.com/thejcannon\"\u003e\u003ccode\u003e@​thejcannon\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/python-lsp/python-lsp-jsonrpc/issues/18\"\u003e18\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIn this release 2 pull requests were closed.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003eVersion 1.1.0 (2023/09/07)\u003c/h2\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow method handlers to return json rpc errors\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.6\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIssues Closed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/python-lsp/python-lsp-jsonrpc/issues/11\"\u003eIssue 11\u003c/a\u003e - Drop support for Python 3.6 (\u003ca href=\"https://redirect.github.com/python-lsp/python-lsp-jsonrpc/pull/16\"\u003ePR 16\u003c/a\u003e by \u003ca href=\"https://github.com/ccordoba12\"\u003e\u003ccode\u003e@​ccordoba12\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIn this release 1 issue was closed.\u003c/p\u003e\n\u003ch3\u003ePull Requests Merged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/python-lsp/python-lsp-jsonrpc/pull/21\"\u003ePR 21\u003c/a\u003e - Drop support for Python 3.7, by \u003ca href=\"https://github.com/ccordoba12\"\u003e\u003ccode\u003e@​ccordoba12\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/python-lsp/python-lsp-jsonrpc/pull/20\"\u003ePR 20\u003c/a\u003e - Allow method handlers to return json rpc errors, by \u003ca href=\"https://github.com/smacke\"\u003e\u003ccode\u003e@​smacke\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/python-lsp/python-lsp-jsonrpc/pull/16\"\u003ePR 16\u003c/a\u003e - Make necessary changes to drop support for Python 3.6, by \u003ca href=\"https://github.com/ccordoba12\"\u003e\u003ccode\u003e@​ccordoba12\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/python-lsp/python-lsp-jsonrpc/issues/11\"\u003e11\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/python-lsp/python-lsp-jsonrpc/pull/15\"\u003ePR 15\u003c/a\u003e - Drop Python 3.6 on CIs and start testing with Python 3.10, by \u003ca href=\"https://github.com/ccordoba12\"\u003e\u003ccode\u003e@​ccordoba12\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/python-lsp/python-lsp-jsonrpc/pull/14\"\u003ePR 14\u003c/a\u003e - Migrate metadata from \u003ccode\u003esetup.cfg\u003c/code\u003e to PEP 621-compliant \u003ccode\u003epyproject.toml\u003c/code\u003e, by \u003ca href=\"https://github.com/KOLANICH\"\u003e\u003ccode\u003e@​KOLANICH\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/python-lsp/python-lsp-jsonrpc/pull/10\"\u003ePR 10\u003c/a\u003e - Use f-strings wherever possible, by \u003ca href=\"https://github.com/ccordoba12\"\u003e\u003ccode\u003e@​ccordoba12\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/python-lsp/python-lsp-jsonrpc/pull/9\"\u003ePR 9\u003c/a\u003e - Add license info to setup.py so it will show up in wheel installs., by \u003ca href=\"https://github.com/itsbenweeks\"\u003e\u003ccode\u003e@​itsbenweeks\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/python-lsp/python-lsp-jsonrpc/pull/8\"\u003ePR 8\u003c/a\u003e - Move the package metadata from setup.py to setup.cfg, by \u003ca href=\"https://github.com/KOLANICH\"\u003e\u003ccode\u003e@​KOLANICH\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/python-lsp/python-lsp-jsonrpc/commit/786d8dd8f830dbd83a17962c0167183a6609e72f\"\u003e\u003ccode\u003e786d8dd\u003c/code\u003e\u003c/a\u003e Update changelog for 1.1.2 (\u003ca href=\"https://redirect.github.com/python-lsp/python-lsp-jsonrpc/issues/27\"\u003e#27\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-lsp/python-lsp-jsonrpc/commit/869bf81b307100ef4e794e929e5e142f2afea2a7\"\u003e\u003ccode\u003e869bf81\u003c/code\u003e\u003c/a\u003e Fix tests so they're compatible with both ujson and pure json library (\u003ca href=\"https://redirect.github.com/python-lsp/python-lsp-jsonrpc/issues/26\"\u003e#26\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-lsp/python-lsp-jsonrpc/commit/1a5ef4422266e28ac6c188f336cc7049f618616e\"\u003e\u003ccode\u003e1a5ef44\u003c/code\u003e\u003c/a\u003e Update Changelog for 1.1.1 (\u003ca href=\"https://redirect.github.com/python-lsp/python-lsp-jsonrpc/issues/24\"\u003e#24\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-lsp/python-lsp-jsonrpc/commit/2e41478f4a2408e64882bc7e1311f00bb7a0c2fa\"\u003e\u003ccode\u003e2e41478\u003c/code\u003e\u003c/a\u003e Add license trove classifier (\u003ca href=\"https://redirect.github.com/python-lsp/python-lsp-jsonrpc/issues/19\"\u003e#19\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-lsp/python-lsp-jsonrpc/commit/7360cd81665842202bcfebe1154141416ed4939c\"\u003e\u003ccode\u003e7360cd8\u003c/code\u003e\u003c/a\u003e Remove redundant wheel dep from pyproject.toml (\u003ca href=\"https://redirect.github.com/python-lsp/python-lsp-jsonrpc/issues/23\"\u003e#23\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-lsp/python-lsp-jsonrpc/commit/73e028f53ba1885052dcef8217a28f4ad9938f67\"\u003e\u003ccode\u003e73e028f\u003c/code\u003e\u003c/a\u003e Update changelog for 1.1.0 (\u003ca href=\"https://redirect.github.com/python-lsp/python-lsp-jsonrpc/issues/22\"\u003e#22\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-lsp/python-lsp-jsonrpc/commit/c53210eafb0816144452397aa432fe9b22c7561b\"\u003e\u003ccode\u003ec53210e\u003c/code\u003e\u003c/a\u003e Drop support for Python 3.7 (\u003ca href=\"https://redirect.github.com/python-lsp/python-lsp-jsonrpc/issues/21\"\u003e#21\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-lsp/python-lsp-jsonrpc/commit/b0331b70d410ffbf3a58fab05689dbe820d3fb19\"\u003e\u003ccode\u003eb0331b7\u003c/code\u003e\u003c/a\u003e Allow method handlers to return json rpc errors (\u003ca href=\"https://redirect.github.com/python-lsp/python-lsp-jsonrpc/issues/20\"\u003e#20\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-lsp/python-lsp-jsonrpc/commit/c73fbdba2eeb99b7b145dcda76e62250552feda4\"\u003e\u003ccode\u003ec73fbdb\u003c/code\u003e\u003c/a\u003e Make necessary changes to drop support for Python 3.6 (\u003ca href=\"https://redirect.github.com/python-lsp/python-lsp-jsonrpc/issues/16\"\u003e#16\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-lsp/python-lsp-jsonrpc/commit/81f1b86fd655aab65b35845b7d0314bfba14fc58\"\u003e\u003ccode\u003e81f1b86\u003c/code\u003e\u003c/a\u003e Migrate metadata from \u003ccode\u003esetup.cfg\u003c/code\u003e to PEP 621-compliant \u003ccode\u003epyproject.toml\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-lsp/python-lsp-jsonrpc/issues/14\"\u003e#14\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-lsp/python-lsp-jsonrpc/compare/v1.0.0...v1.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `setproctitle` from 1.3.2 to 1.3.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/dvarrazzo/py-setproctitle/blob/master/HISTORY.rst\"\u003esetproctitle's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.3.7\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14 (issue \u003ca href=\"https://redirect.github.com/dvarrazzo/py-setproctitle/issues/152\"\u003e#152\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for free-threading (issue \u003ca href=\"https://redirect.github.com/dvarrazzo/py-setproctitle/issues/147\"\u003e#147\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.3.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix bouncing Dock icon on macOS (issue \u003ca href=\"https://redirect.github.com/dvarrazzo/py-setproctitle/issues/143\"\u003e#143\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix building on C23 compilers (issue \u003ca href=\"https://redirect.github.com/dvarrazzo/py-setproctitle/issues/145\"\u003e#145\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.3.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13 (issue \u003ca href=\"https://redirect.github.com/dvarrazzo/py-setproctitle/issues/139\"\u003e#139\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.3.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eFix package metadata to include Python 3.11, 3.12.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dvarrazzo/py-setproctitle/commit/389ed6f4e3ccfebb34a38893553992ea10cf5dc8\"\u003e\u003ccode\u003e389ed6f\u003c/code\u003e\u003c/a\u003e chore: bump version to 1.3.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dvarrazzo/py-setproctitle/commit/0225735077e1891105005bef2b6907400f51e276\"\u003e\u003ccode\u003e0225735\u003c/code\u003e\u003c/a\u003e Build CPython 3.14 wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dvarrazzo/py-setproctitle/commit/11d5ba71f0dc2bee2deb32ad17ac577101d404cd\"\u003e\u003ccode\u003e11d5ba7\u003c/code\u003e\u003c/a\u003e chore: drop end year copyright\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dvarrazzo/py-setproctitle/commit/9950f38639e8bbda8d208bd4b8ec0531821e26a8\"\u003e\u003ccode\u003e9950f38\u003c/code\u003e\u003c/a\u003e chore: use a standard license file format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dvarrazzo/py-setproctitle/commit/864cb7298ead40c903b0276cbfa887b5369e037c\"\u003e\u003ccode\u003e864cb72\u003c/code\u003e\u003c/a\u003e chore: bump version update history\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dvarrazzo/py-setproctitle/commit/ef9cee19375d2a5c037df150a34a794fe4d8fb09\"\u003e\u003ccode\u003eef9cee1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/dvarrazzo/py-setproctitle/issues/148\"\u003e#148\u003c/a\u003e from lysnikolaou/free-threading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dvarrazzo/py-setproctitle/commit/fb28127656185b6ef5fba3a6d21275d235b67722\"\u003e\u003ccode\u003efb28127\u003c/code\u003e\u003c/a\u003e Implement support for CPython 3.13t\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dvarrazzo/py-setproctitle/commit/cacf96fafa3da1cd1a5b131b4f8b9997c01518d5\"\u003e\u003ccode\u003ecacf96f\u003c/code\u003e\u003c/a\u003e chore: bump version number to 1.3.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dvarrazzo/py-setproctitle/commit/314c9a8e5f5fc0d6bf39793f9cf69166708eeb8d\"\u003e\u003ccode\u003e314c9a8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/dvarrazzo/py-setproctitle/issues/146\"\u003e#146\u003c/a\u003e from gershnik/fix-145\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dvarrazzo/py-setproctitle/commit/8787da71db608c0c593f0fb83573bb8460c7c66d\"\u003e\u003ccode\u003e8787da7\u003c/code\u003e\u003c/a\u003e docs: add release note about C23 compilers fix\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/dvarrazzo/py-setproctitle/compare/version-1.3.2...version-1.3.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `setuptools` to 80.9.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/setuptools/blob/main/NEWS.rst\"\u003esetuptools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev80.9.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSet a deadline for the removal of pkg_resources later this year (December). (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/3085\"\u003e#3085\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved reliance on pkg_resources in test_wheel. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/3085\"\u003e#3085\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev80.8.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplaced more references to pkg_resources with importlib equivalents in wheel odule. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/3085\"\u003e#3085\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRestore explicit LICENSE file. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5001\"\u003e#5001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved no longer used build dependency on \u003ccode\u003ecoherent.licensed\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5003\"\u003e#5003\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev80.7.1\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOnly attempt to fetch eggs for unsatisfied requirements. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4998\"\u003e#4998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIn installer, when discovering egg dists, let metadata discovery search each egg. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4998\"\u003e#4998\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev80.7.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved usage of pkg_resources from installer. Set an official deadline on the installer deprecation to 2025-10-31. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4997\"\u003e#4997\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4996\"\u003e#4996\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev80.6.0\u003c/h1\u003e\n\u003cp\u003eFeatures\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/setuptools/commit/9c4d383631d3951fcae0afd73b5d08ff5a262976\"\u003e\u003ccode\u003e9c4d383\u003c/code\u003e\u003c/a\u003e Bump version: 80.8.0 → 80.9.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/05cb3c84f1422f3b26ccfb00f4c43886dc55b9bc\"\u003e\u003ccode\u003e05cb3c8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5014\"\u003e#5014\u003c/a\u003e from pypa/debt/pkg_resources-deadline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/3b0bf5bd43034c448a10e7102788fe710b4bb496\"\u003e\u003ccode\u003e3b0bf5b\u003c/code\u003e\u003c/a\u003e Adjust ignore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/9c28cdffd423f83e43dbfd39fc793c251da48585\"\u003e\u003ccode\u003e9c28cdf\u003c/code\u003e\u003c/a\u003e Set a deadline for the removal of pkg_resources later this year (December).\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/a3bfef95193bf0ff78ef6e0fb8c63a3728f443b0\"\u003e\u003ccode\u003ea3bfef9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5013\"\u003e#5013\u003c/a\u003e from DimitriPapadopoulos/ISC\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/64bf9d0ce88a09748f702bd7736d9ec2879aa6ef\"\u003e\u003ccode\u003e64bf9d0\u003c/code\u003e\u003c/a\u003e Enforce ruff/flake8-implicit-str-concat rules (ISC)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/3250c25197b299658cfd4d0db67770fc29b47277\"\u003e\u003ccode\u003e3250c25\u003c/code\u003e\u003c/a\u003e Fix broken link in docs (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4947\"\u003e#4947\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/5ccf50e01ab0d303f524c065f2cb51042b34bc55\"\u003e\u003ccode\u003e5ccf50e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5006\"\u003e#5006\u003c/a\u003e from pypa/feature/remove-more-pkg_resources\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/134e587c0ba0b59e1661f08a45e6d6d1ecd24329\"\u003e\u003ccode\u003e134e587\u003c/code\u003e\u003c/a\u003e Suppress nitpicky typecheck in pyright.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/0bf2663a19f2d947697997d125c3c880df2011b7\"\u003e\u003ccode\u003e0bf2663\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/setuptools/compare/v63.1.0...v80.9.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `types-freezegun` from 1.1.6 to 1.1.10\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/python/typeshed/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `types-pyyaml` from 6.0.3 to 6.0.12.20250915\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 `types-requests` from 2.28.1 to 2.32.4.20250913\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 `types-setuptools` from 62.6.1 to 80.9.0.20250822\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 `types-toml` from 0.10.8 to 0.10.8.20240310\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/python/typeshed/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `typing-extensions` to 4.15.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/typing_extensions/releases\"\u003etyping-extensions's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.15.0\u003c/h2\u003e\n\u003cp\u003eNo user-facing changes since 4.15.0rc1.\u003c/p\u003e\n\u003cp\u003eNew features since 4.14.1:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd the \u003ccode\u003e@typing_extensions.disjoint_base\u003c/code\u003e decorator, as specified\nin PEP 800. Patch by Jelle Zijlstra.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003etyping_extensions.type_repr\u003c/code\u003e, a backport of\n\u003ca href=\"https://docs.python.org/3.14/library/annotationlib.html#annotationlib.type_repr\"\u003e\u003ccode\u003eannotationlib.type_repr\u003c/code\u003e\u003c/a\u003e,\nintroduced in Python 3.14 (CPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/124551\"\u003e#124551\u003c/a\u003e,\noriginally by Jelle Zijlstra). Patch by Semyon Moroz.\u003c/li\u003e\n\u003cli\u003eFix behavior of type params in \u003ccode\u003etyping_extensions.evaluate_forward_ref\u003c/code\u003e. Backport of\nCPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/137227\"\u003e#137227\u003c/a\u003e by Jelle Zijlstra.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/typing_extensions/blob/main/CHANGELOG.md\"\u003etyping-extensions's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease 4.15.0 (August 25, 2025)\u003c/h1\u003e\n\u003cp\u003eNo user-facing changes since 4.15.0rc1.\u003c/p\u003e\n\u003ch1\u003eRelease 4.15.0rc1 (August 18, 2025)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd the \u003ccode\u003e@typing_extensions.disjoint_base\u003c/code\u003e decorator, as specified\nin PEP 800. Patch by Jelle Zijlstra.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003etyping_extensions.type_repr\u003c/code\u003e, a backport of\n\u003ca href=\"https://docs.python.org/3.14/library/annotationlib.html#annotationlib.type_repr\"\u003e\u003ccode\u003eannotationlib.type_repr\u003c/code\u003e\u003c/a\u003e,\nintroduced in Python 3.14 (CPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/124551\"\u003e#124551\u003c/a\u003e,\noriginally by Jelle Zijlstra). Patch by Semyon Moroz.\u003c/li\u003e\n\u003cli\u003eFix behavior of type params in \u003ccode\u003etyping_extensions.evaluate_forward_ref\u003c/code\u003e. Backport of\nCPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/137227\"\u003e#137227\u003c/a\u003e by Jelle Zijlstra.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eRelease 4.14.1 (July 4, 2025)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix usage of \u003ccode\u003etyping_extensions.TypedDict\u003c/code\u003e nested inside other types\n(e.g., \u003ccode\u003etyping.Type[typing_extensions.TypedDict]\u003c/code\u003e). This is not allowed by the\ntype system but worked on older versions, so we maintain support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eRelease 4.14.0 (June 2, 2025)\u003c/h1\u003e\n\u003cp\u003eChanges since 4.14.0rc1:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003e__or__\u003c/code\u003e and \u003ccode\u003e__ror__\u003c/code\u003e methods from \u003ccode\u003etyping_extensions.Sentinel\u003c/code\u003e\non Python versions \u0026lt;3.10. PEP 604 was introduced in Python 3.10, and\n\u003ccode\u003etyping_extensions\u003c/code\u003e does not generally attempt to backport PEP-604 methods\nto prior versions.\u003c/li\u003e\n\u003cli\u003eFurther update \u003ccode\u003etyping_extensions.evaluate_forward_ref\u003c/code\u003e with changes in Python 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eRelease 4.14.0rc1 (May 24, 2025)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8 (including PyPy-3.8). Patch by \u003ca href=\"https://github.com/Viicos\"\u003eVictorien Plot\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eDo not attempt to re-export names that have been removed from \u003ccode\u003etyping\u003c/code\u003e,\nanticipating the removal of \u003ccode\u003etyping.no_type_check_decorator\u003c/code\u003e in Python 3.15.\nPatch by Jelle Zijlstra.\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003etyping_extensions.Format\u003c/code\u003e, \u003ccode\u003etyping_extensions.evaluate_forward_ref\u003c/code\u003e, and\n\u003ccode\u003etyping_extensions.TypedDict\u003c/code\u003e to align\nwith changes in Python 3.14. Patches by Jelle Zijlstra.\u003c/li\u003e\n\u003cli\u003eFix tests for Python 3.14 and 3.15. Patches by Jelle Zijlstra.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eNew features:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for inline typed dictionaries (\u003ca href=\"https://peps.python.org/pep-0764/\"\u003ePEP 764\u003c/a\u003e).\nPatch by \u003ca href=\"https://github.com/Viicos\"\u003eVictorien Plot\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003etyping_extensions.Reader\u003c/code\u003e and \u003ccode\u003etyping_extensions.Writer\u003c/code\u003e. Patch by\nSebastian Rittau.\u003c/li\u003e\n\u003cli\u003eAdd support for sentinels (\u003ca href=\"https://peps.python.org/pep-0661/\"\u003ePEP 661\u003c/a\u003e). Patch by\n\u003ca href=\"https://github.com/Viicos\"\u003eVictorien Plot\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/9d1637e264b5c1a6b7acee3e907015f89b20c2c9\"\u003e\u003ccode\u003e9d1637e\u003c/code\u003e\u003c/a\u003e Prepare release 4.15.0 (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/658\"\u003e#658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/4bd67c5be5d9443c7d33c314d02a56ee125eb88d\"\u003e\u003ccode\u003e4bd67c5\u003c/code\u003e\u003c/a\u003e Coverage: exclude some noise (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/656\"\u003e#656\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/e589a26da73b075c5276bae40b86db1af0144f84\"\u003e\u003ccode\u003ee589a26\u003c/code\u003e\u003c/a\u003e Coverage: add detailed report to job summary (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/655\"\u003e#655\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/67d37fed1298e050f74d5acc95b2621bd37837ad\"\u003e\u003ccode\u003e67d37fe\u003c/code\u003e\u003c/a\u003e Coverage: Implement fail_under (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/654\"\u003e#654\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/e9ae26f5286edee9262727755ecb9ad16e999192\"\u003e\u003ccode\u003ee9ae26f\u003c/code\u003e\u003c/a\u003e Don't delete previous coverage comment (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/653\"\u003e#653\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/ac80bb728a3006fc88ef7373b92f0c25cfcc7895\"\u003e\u003ccode\u003eac80bb7\u003c/code\u003e\u003c/a\u003e Add Coverage workflow (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/623\"\u003e#623\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/abaaafd98c1cc7e5baf098ec287a3d22cb339670\"\u003e\u003ccode\u003eabaaafd\u003c/...\n\n_Description has been truncated_","html_url":"https://github.com/pantsbuild/pants/pull/22825","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/pantsbuild%2Fpants/issues/22825","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/22825/packages"},{"uuid":"3441650328","node_id":"PR_kwDOKoYLLM6p4T-h","number":170,"state":"open","title":"Bump the major-versions group across 1 directory with 16 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":"NONE","state_reason":null,"created_at":"2025-09-22T15:55:50.000Z","updated_at":"2025-09-29T16:21:16.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"major-versions","update_count":16,"packages":[{"name":"django","old_version":"4.2.6","new_version":"4.2.24"},{"name":"django-guardian","old_version":"2.4.0","new_version":"3.2.0","repository_url":"https://github.com/django-guardian/django-guardian"},{"name":"django-extensions","old_version":"3.2.3","new_version":"4.1","repository_url":"https://github.com/django-extensions/django-extensions"},{"name":"django-filter","old_version":"23.3","new_version":"25.1","repository_url":"https://github.com/carltongibson/django-filter"},{"name":"gunicorn","old_version":"21.2.0","new_version":"23.0.0","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"python-ipware","old_version":"2.0.0","new_version":"3.0.0","repository_url":"https://github.com/un33k/python-ipware"},{"name":"redis","old_version":"4.6.0","new_version":"5.2.1","repository_url":"https://github.com/redis/redis-py"},{"name":"watchdog","old_version":"3.0.0","new_version":"6.0.0","repository_url":"https://github.com/gorakhargosh/watchdog"},{"name":"ocrmypdf","old_version":"14.4.0","new_version":"15.4.4","repository_url":"https://github.com/ocrmypdf/OCRmyPDF"},{"name":"django-multiselectfield","old_version":"0.1.12","new_version":"1.0.1","repository_url":"https://github.com/goinnn/django-multiselectfield"},{"name":"django-auditlog","old_version":"2.3.0","new_version":"3.2.1","repository_url":"https://github.com/jazzband/django-auditlog"},{"name":"pre-commit","old_version":"3.4.0","new_version":"4.3.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pytest","old_version":"7.4.2","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-cov","old_version":"4.1.0","new_version":"7.0.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pytest-sugar","old_version":"0.9.7","new_version":"1.1.1","repository_url":"https://github.com/Teemu/pytest-sugar"},{"name":"pytest-rerunfailures","old_version":"12.0","new_version":"16.0.1","repository_url":"https://github.com/pytest-dev/pytest-rerunfailures"}],"path":null,"ecosystem":"conda"},"body":"[//]: # (dependabot-start)\n⚠️  **Dependabot is rebasing this PR** ⚠️ \n\nRebasing might not happen immediately, so don't worry if this takes some time.\n\nNote: if you make any changes to this PR yourself, they will take precedence over the rebase.\n\n---\n\n[//]: # (dependabot-end)\n\nBumps the major-versions group with 16 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| django | `4.2.6` | `4.2.24` |\n| [django-guardian](https://github.com/django-guardian/django-guardian) | `2.4.0` | `3.2.0` |\n| [django-extensions](https://github.com/django-extensions/django-extensions) | `3.2.3` | `4.1` |\n| [django-filter](https://github.com/carltongibson/django-filter) | `23.3` | `25.1` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `21.2.0` | `23.0.0` |\n| [python-ipware](https://github.com/un33k/python-ipware) | `2.0.0` | `3.0.0` |\n| [redis](https://github.com/redis/redis-py) | `4.6.0` | `5.2.1` |\n| [watchdog](https://github.com/gorakhargosh/watchdog) | `3.0.0` | `6.0.0` |\n| [ocrmypdf](https://github.com/ocrmypdf/OCRmyPDF) | `14.4.0` | `15.4.4` |\n| [django-multiselectfield](https://github.com/goinnn/django-multiselectfield) | `0.1.12` | `1.0.1` |\n| [django-auditlog](https://github.com/jazzband/django-auditlog) | `2.3.0` | `3.2.1` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `3.4.0` | `4.3.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `7.4.2` | `8.4.2` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `4.1.0` | `7.0.0` |\n| [pytest-sugar](https://github.com/Teemu/pytest-sugar) | `0.9.7` | `1.1.1` |\n| [pytest-rerunfailures](https://github.com/pytest-dev/pytest-rerunfailures) | `12.0` | `16.0.1` |\n\n\nUpdates `django` from 4.2.6 to 4.2.24\n\nUpdates `django-guardian` from 2.4.0 to 3.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-guardian/django-guardian/releases\"\u003edjango-guardian's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.2.0 The Bozkir progression\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate enforcement contact link in CODE_OF_CONDUCT.md by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/918\"\u003edjango-guardian/django-guardian#918\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptional cached anonymous user  - Pr 907 by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/912\"\u003edjango-guardian/django-guardian#912\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003egenerator warnings and logics are added for security purposes by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/920\"\u003edjango-guardian/django-guardian#920\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erollback compatible create anon user fix is developed by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/919\"\u003edjango-guardian/django-guardian#919\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e644 using inlines in django admin with guardian by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/921\"\u003edjango-guardian/django-guardian#921\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-guardian/django-guardian/compare/3.1.3...3.2.0\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.3...3.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edjango-packages badge is added by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/910\"\u003edjango-guardian/django-guardian#910\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate issue templates by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/909\"\u003edjango-guardian/django-guardian#909\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMakefile support by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/906\"\u003edjango-guardian/django-guardian#906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePR merging scenario is fixed by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/913\"\u003edjango-guardian/django-guardian#913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed issue causing prefetch_perms() to throw when passed an empty list by \u003ca href=\"https://github.com/keattang\"\u003e\u003ccode\u003e@​keattang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/904\"\u003edjango-guardian/django-guardian#904\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRe apply \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/812\"\u003e#812\u003c/a\u003e using correct lookup method by \u003ca href=\"https://github.com/sevdog\"\u003e\u003ccode\u003e@​sevdog\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/842\"\u003edjango-guardian/django-guardian#842\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOPS: Bump version for release by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/915\"\u003edjango-guardian/django-guardian#915\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-guardian/django-guardian/compare/3.1.2...3.1.3\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.2...3.1.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 in /.github/workflows by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/903\"\u003edjango-guardian/django-guardian#903\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix type and deprecate old name by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/902\"\u003edjango-guardian/django-guardian#902\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/django-guardian/django-guardian/pull/903\"\u003edjango-guardian/django-guardian#903\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-guardian/django-guardian/compare/3.1.1...3.1.2\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.1...3.1.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epre-commit checker step is added by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/901\"\u003edjango-guardian/django-guardian#901\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-guardian/django-guardian/compare/3.1.0...3.1.1\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.0...3.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eImproved indexing, tweaks and bugfixes\u003c/h2\u003e\n\u003ch2\u003eSaving the 🌳🌳🌳 and the 💰💰💰\u003c/h2\u003e\n\u003cp\u003e⚠️⚠️⚠️ \u003cstrong\u003eWARNING:\u003c/strong\u003e This release contains an update to database indexing which should yield \u003cstrong\u003econsiderable additional performance\u003c/strong\u003e, especially on large table permissions lookups (thanks \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e for such rigorous performance testing!!!). Following the migration that introduces these indexes, databases should reindex automatically in the background (typically within 0-30s even for large tables): this is unlikely to be noticeable but users may experience a short lived performance hit during this period.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow ignore_conflicts on bulk create by \u003ca href=\"https://github.com/pgiki\"\u003e\u003ccode\u003e@​pgiki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/814\"\u003edjango-guardian/django-guardian#814\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/4120d00c28c1b6d3bacb988f6db86bacf91ed0f1\"\u003e\u003ccode\u003e4120d00\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/921\"\u003e#921\u003c/a\u003e from django-guardian/644-using-inlines-in-django-admi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/c896b220bdf96783f1c25d730f12ebef95758c99\"\u003e\u003ccode\u003ec896b22\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/919\"\u003e#919\u003c/a\u003e from django-guardian/770-migration-rollback-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/3814e2383c69266350a3d885d445bdd79da8cb78\"\u003e\u003ccode\u003e3814e23\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 770-migration-rollback-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/94854899f4a030b42840837e08b42923a71c5b78\"\u003e\u003ccode\u003e9485489\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/920\"\u003e#920\u003c/a\u003e from django-guardian/666-permissionrequiredmixin-does...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/e01e2e1edeec60b2c79d561db56e0949ea3c4dad\"\u003e\u003ccode\u003ee01e2e1\u003c/code\u003e\u003c/a\u003e check only username field fixing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/e1ae3c5a7ab74a679ef1ccff2a480a88117df464\"\u003e\u003ccode\u003ee1ae3c5\u003c/code\u003e\u003c/a\u003e show warning instead of error for backward compatibility and giving time the ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/63c10f549dfe2b5ba67e9eec36095cf3e6a2bab8\"\u003e\u003ccode\u003e63c10f5\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 644-using-inlines-in-django-admin-with-guardian\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/b27ebbdcc7f9952d9d9aaaa879b5e202063ccaa8\"\u003e\u003ccode\u003eb27ebbd\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 666-permissionrequiredmixin-does-not-warn-against-us...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/d7ed4a3bccb730d3cdf16fdc404f25b94674c653\"\u003e\u003ccode\u003ed7ed4a3\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 770-migration-rollback-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/03fed6924e06fd13991d9e8ae1b4590addf5473e\"\u003e\u003ccode\u003e03fed69\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/912\"\u003e#912\u003c/a\u003e from django-guardian/pr-907\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-guardian/django-guardian/compare/v2.4.0...3.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-extensions` from 3.2.3 to 4.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-extensions/django-extensions/releases\"\u003edjango-extensions's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd: show_permissions command (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1920\"\u003e#1920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, style per app (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1848\"\u003e#1848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: JSONField, bulk_update's (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1924\"\u003e#1924\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/ahmad88me\"\u003e\u003ccode\u003e@​ahmad88me\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1848\"\u003edjango-extensions/django-extensions#1848\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-extensions/django-extensions/compare/4.0...4.1\"\u003ehttps://github.com/django-extensions/django-extensions/compare/4.0...4.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprovement: Support for Python 3.12 and 3.13\u003c/li\u003e\n\u003cli\u003eImprovement: Support for Django 5.x\u003c/li\u003e\n\u003cli\u003eImprovement: Switch from setup.{cfg,py} to pyproject.toml\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add option to display field choices in graph_models (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1854\"\u003e#1854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add webp support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1857\"\u003e#1857\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Support for ordering edges on pydot/dot/graphviz (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1914\"\u003e#1914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: mail_debug, Update mail_debug command to use aiosmtpd (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1880\"\u003e#1880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: shell_plus, Improve error message for missing import (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1898\"\u003e#1898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: reset_db, Add reset_db support for django_tenants (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1855\"\u003e#1855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: docs, various improvements (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1852\"\u003e#1852\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1888\"\u003e#1888\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1882\"\u003e#1882\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1901\"\u003e#1901\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1912\"\u003e#1912\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1913\"\u003e#1913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: jobs, Handle non-package modules when looking for job definitions (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1887\"\u003e#1887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Add django-prometheus DB backends support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1800\"\u003e#1800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Call post_command when the command raises an unhandled exception (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1837\"\u003e#1837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: sqldiff, do not consider ('serial', 'integer') nor ('bigserial', 'bigint') as a field-type-differ (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1867\"\u003e#1867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: shell_plus, Fix start up order and add history (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1869\"\u003e#1869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove pipchecker and associated tests (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1906\"\u003e#1906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFollowing Django's release numbering style more closely (see \u003ca href=\"https://docs.djangoproject.com/en/5.2/internals/release-process/\"\u003ehttps://docs.djangoproject.com/en/5.2/internals/release-process/\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/dimitrismistriotis\"\u003e\u003ccode\u003e@​dimitrismistriotis\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1859\"\u003edjango-extensions/django-extensions#1859\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/titouanc\"\u003e\u003ccode\u003e@​titouanc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1854\"\u003edjango-extensions/django-extensions#1854\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dmwyatt\"\u003e\u003ccode\u003e@​dmwyatt\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1872\"\u003edjango-extensions/django-extensions#1872\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stianjensen\"\u003e\u003ccode\u003e@​stianjensen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1898\"\u003edjango-extensions/django-extensions#1898\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PapaZ810\"\u003e\u003ccode\u003e@​PapaZ810\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1888\"\u003edjango-extensions/django-extensions#1888\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kviktor\"\u003e\u003ccode\u003e@​kviktor\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1857\"\u003edjango-extensions/django-extensions#1857\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aripollak\"\u003e\u003ccode\u003e@​aripollak\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1913\"\u003edjango-extensions/django-extensions#1913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/flowgunso\"\u003e\u003ccode\u003e@​flowgunso\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1914\"\u003edjango-extensions/django-extensions#1914\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anitahammer\"\u003e\u003ccode\u003e@​anitahammer\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1869\"\u003edjango-extensions/django-extensions#1869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nicolaspanel\"\u003e\u003ccode\u003e@​nicolaspanel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1867\"\u003edjango-extensions/django-extensions#1867\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yujinyuz\"\u003e\u003ccode\u003e@​yujinyuz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1855\"\u003edjango-extensions/django-extensions#1855\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/soof-golan\"\u003e\u003ccode\u003e@​soof-golan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1852\"\u003edjango-extensions/django-extensions#1852\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ghickman\"\u003e\u003ccode\u003e@​ghickman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1887\"\u003edjango-extensions/django-extensions#1887\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jrobichaud\"\u003e\u003ccode\u003e@​jrobichaud\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1837\"\u003edjango-extensions/django-extensions#1837\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-extensions/django-extensions/compare/3.2.3...4.0\"\u003ehttps://github.com/django-extensions/django-extensions/compare/3.2.3...4.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.2.4b1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-extensions/django-extensions/blob/main/CHANGELOG.md\"\u003edjango-extensions's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.1\u003c/h2\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd: show_permissions command (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1920\"\u003e#1920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, style per app (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1848\"\u003e#1848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: JSONField, bulk_update's (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1924\"\u003e#1924\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.0\u003c/h2\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eImprovement: Support for Python 3.12 and 3.13\u003c/li\u003e\n\u003cli\u003eImprovement: Support for Django 5.x\u003c/li\u003e\n\u003cli\u003eImprovement: Switch from setup.{cfg,py} to pyproject.toml\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add option to display field choices in graph_models (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1854\"\u003e#1854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add webp support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1857\"\u003e#1857\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Support for ordering edges on pydot/dot/graphviz (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1914\"\u003e#1914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: mail_debug, Update mail_debug command to use aiosmtpd (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1880\"\u003e#1880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: shell_plus, Improve error message for missing import (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1898\"\u003e#1898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: reset_db, Add reset_db support for django_tenants (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1855\"\u003e#1855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: docs, various improvements (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1852\"\u003e#1852\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1888\"\u003e#1888\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1882\"\u003e#1882\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1901\"\u003e#1901\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1912\"\u003e#1912\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1913\"\u003e#1913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: jobs, Handle non-package modules when looking for job definitions (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1887\"\u003e#1887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Add django-prometheus DB backends support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1800\"\u003e#1800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Call post_command when the command raises an unhandled exception (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1837\"\u003e#1837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: sqldiff, do not consider ('serial', 'integer') nor ('bigserial', 'bigint') as a \u003ccode\u003efield-type-differ\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1867\"\u003e#1867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: shell_plus, Fix start up order and add history (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1869\"\u003e#1869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove pipchecker and associated tests (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1906\"\u003e#1906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFollowing Django's release numbering style more closely (see \u003ca href=\"https://docs.djangoproject.com/en/5.2/internals/release-process/\"\u003ehttps://docs.djangoproject.com/en/5.2/internals/release-process/\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/django-extensions/django-extensions/commit/ad015513e5d8e8ee6ad748fca5f32ccf3fb3d5c5\"\u003e\u003ccode\u003ead01551\u003c/code\u003e\u003c/a\u003e v4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/2c3e914f1264c0a029b3b47b7425d0f68ce637ed\"\u003e\u003ccode\u003e2c3e914\u003c/code\u003e\u003c/a\u003e update CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/fb5b2af1b6595ee126237c299acf242fcfee817e\"\u003e\u003ccode\u003efb5b2af\u003c/code\u003e\u003c/a\u003e ruff format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/7e978d27b031843640f9204ff495738c46233d7f\"\u003e\u003ccode\u003e7e978d2\u003c/code\u003e\u003c/a\u003e graph_models style per app (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1848\"\u003e#1848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/067064ea0c6dec7cba1583447fe5fe1c706d5351\"\u003e\u003ccode\u003e067064e\u003c/code\u003e\u003c/a\u003e avoid trying to serialize expressions when serializing default values\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/a886068502474e70a2d68ff4634a15cc3366088d\"\u003e\u003ccode\u003ea886068\u003c/code\u003e\u003c/a\u003e update CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/d824501cbc6d04a24a43ff5756b496f84093b225\"\u003e\u003ccode\u003ed824501\u003c/code\u003e\u003c/a\u003e Add show_permissions management command (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1920\"\u003e#1920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/934f93f53bdf6c6271ae1ddaee71bc9bf3364a0e\"\u003e\u003ccode\u003e934f93f\u003c/code\u003e\u003c/a\u003e bumped version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/c4577df5b69ec1ebcbe6bc64d7a5c20362f3a8fa\"\u003e\u003ccode\u003ec4577df\u003c/code\u003e\u003c/a\u003e v4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/7cdb43ab56a3b610b47680d8a2fe86b09d5913aa\"\u003e\u003ccode\u003e7cdb43a\u003c/code\u003e\u003c/a\u003e pyproject formatting\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-extensions/django-extensions/compare/3.2.3...4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-filter` from 23.3 to 25.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/carltongibson/django-filter/blob/main/CHANGES.rst\"\u003edjango-filter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 25.1 (2025-02-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved the in-built API schema generation methods, which have been\ndeprecated since v23.2.\u003c/p\u003e\n\u003cp\u003eYou should use \u003ccode\u003edrf-spectacular \u0026lt;https://drf-spectacular.readthedocs.io/en/latest/\u0026gt;\u003c/code\u003e_\nfor generating OpenAPI schemas with DRF.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped support for EOL Python 3.8.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded testing against Python 3.13.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded official support for Django 5.2.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 24.3 (2024-08-02)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdds official support for Django 5.1.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow using dictionaries for grouped choices on Django 5.0+.\u003c/p\u003e\n\u003cp\u003eThanks to Sævar Öfjörð Magnússon.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdds \u003ccode\u003eunknown_field_behavior\u003c/code\u003e FilterSet option to allowing warning and\nignore behaviours for unknown field types during FilterSet generation.\u003c/p\u003e\n\u003cp\u003eThanks to Loes.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 24.2 (2024-03-27)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a regression in v23.4 where callable choices were incorrectly evaluated\nat filter instantiation, on Django versions prior to 5.0.\u003c/p\u003e\n\u003cp\u003eThanks to Craig de Stigter for the report and reproduce.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 24.1 (2024-03-08)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated supported Python and Django versions, and resolved upcoming Django\ndeprecations.\u003c/p\u003e\n\u003cp\u003eRequired versions are now at least Python 3.8 and Django 4.2.\u003c/p\u003e\n\u003cp\u003eThanks to Michael Manganiello.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllowed passing a FilterSet class to the filterset_factory().\u003c/p\u003e\n\u003cp\u003eThanks to Birger Schacht.\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/carltongibson/django-filter/commit/27dd67284405ee832701509b3515baa50c6e074d\"\u003e\u003ccode\u003e27dd672\u003c/code\u003e\u003c/a\u003e Updated Change notes for 25.1 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/2ea38174b010f378a9b57d90c566c2bab7b37bbb\"\u003e\u003ccode\u003e2ea3817\u003c/code\u003e\u003c/a\u003e Added Trove classifier for Django 5.2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/4d2306c211c1d86f85f04fb311b8b05bfefb08a8\"\u003e\u003ccode\u003e4d2306c\u003c/code\u003e\u003c/a\u003e Replaced hardcoded pks in tests (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1703\"\u003e#1703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/fbf5a76a4d97480d78779397b90d34fa8f13d141\"\u003e\u003ccode\u003efbf5a76\u003c/code\u003e\u003c/a\u003e Update tox after Django 5.2 alpha release. (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1700\"\u003e#1700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/1e76d6859e109ae34d5e2a657c66146a9d744c80\"\u003e\u003ccode\u003e1e76d68\u003c/code\u003e\u003c/a\u003e Use QueryDict for data default. (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1691\"\u003e#1691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/e709e5d43a4ad8b8e8ea62520669b88300c9c686\"\u003e\u003ccode\u003ee709e5d\u003c/code\u003e\u003c/a\u003e Add testing against Python 3.13.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/ccde000dfe74362b62301b248681e9505133e821\"\u003e\u003ccode\u003eccde000\u003c/code\u003e\u003c/a\u003e Dropped support for EOL Python 3.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/2a644e176634ec0ce99d9446d980501e9763e194\"\u003e\u003ccode\u003e2a644e1\u003c/code\u003e\u003c/a\u003e Removed deprecated schema generation methods from DRF backend. (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1698\"\u003e#1698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/2494df96c6387a9fa411fcb00b696b15dfd9216b\"\u003e\u003ccode\u003e2494df9\u003c/code\u003e\u003c/a\u003e fix typo in filterset.txt (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1695\"\u003e#1695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/3656174bd90d20f3d916fd98b6476c270013b681\"\u003e\u003ccode\u003e3656174\u003c/code\u003e\u003c/a\u003e Translated using Weblate (Czech) (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1687\"\u003e#1687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/carltongibson/django-filter/compare/23.3...25.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gunicorn` from 21.2.0 to 23.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/benoitc/gunicorn/releases\"\u003egunicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e23.0.0\u003c/h2\u003e\n\u003cp\u003eGunicorn 23.0.0 has been released. This version improve HTTP 1.1. support and  which improve safety\u003c/p\u003e\n\u003cp\u003eYou're invited to upgrade asap your own installation.\u003c/p\u003e\n\u003ch1\u003e23.0.0 - 2024-08-10\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eminor docs fixes (:pr:\u003ccode\u003e3217\u003c/code\u003e, :pr:\u003ccode\u003e3089\u003c/code\u003e, :pr:\u003ccode\u003e3167\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eworker_class parameter accepts a class (:pr:\u003ccode\u003e3079\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003efix deadlock if request terminated during chunked parsing (:pr:\u003ccode\u003e2688\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003epermit receiving Transfer-Encodings: compress, deflate, gzip (:pr:\u003ccode\u003e3261\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003epermit Transfer-Encoding headers specifying multiple encodings. note: no parameters, still (:pr:\u003ccode\u003e3261\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003esdist generation now explicitly excludes sphinx build folder (:pr:\u003ccode\u003e3257\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003edecode bytes-typed status (as can be passed by gevent) as utf-8 instead of raising \u003ccode\u003eTypeError\u003c/code\u003e (:pr:\u003ccode\u003e2336\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eraise correct Exception when encounting invalid chunked requests (:pr:\u003ccode\u003e3258\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ethe SCRIPT_NAME and PATH_INFO headers, when received from allowed forwarders, are no longer restricted for containing an underscore (:pr:\u003ccode\u003e3192\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003einclude IPv6 loopback address \u003ccode\u003e[::1]\u003c/code\u003e in default for :ref:\u003ccode\u003eforwarded-allow-ips\u003c/code\u003e and :ref:\u003ccode\u003eproxy-allow-ips\u003c/code\u003e (:pr:\u003ccode\u003e3192\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e** NOTE **\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SCRIPT_NAME change mitigates a regression that appeared first in the 22.0.0 release\u003c/li\u003e\n\u003cli\u003eReview your :ref:\u003ccode\u003eforwarded-allow-ips\u003c/code\u003e setting if you are still not seeing the SCRIPT_NAME transmitted\u003c/li\u003e\n\u003cli\u003eReview your :ref:\u003ccode\u003eforwarder-headers\u003c/code\u003e setting if you are missing headers after upgrading from a version prior to 22.0.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e** Breaking changes **\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003erefuse requests where the uri field is empty (:pr:\u003ccode\u003e3255\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003erefuse requests with invalid CR/LR/NUL in heade field values (:pr:\u003ccode\u003e3253\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eremove temporary \u003ccode\u003e--tolerate-dangerous-framing\u003c/code\u003e switch from 22.0 (:pr:\u003ccode\u003e3260\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eIf any of the breaking changes affect you, be aware that now refused requests can post a security problem, especially so in setups involving request pipe-lining and/or proxies.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFix CVE-2024-1135\u003c/p\u003e\n\u003ch2\u003eGunicorn 22.0 has been released\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eGunicorn 22.0.0 has been released.\u003c/strong\u003e This version fix the numerous security vulnerabilities. You're invited to upgrade asap your own installation.\u003c/p\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e22.0.0 - 2024-04-17\n===================\n\u003cul\u003e\n\u003cli\u003euse \u003ccode\u003eutime\u003c/code\u003e to notify workers liveness\u003c/li\u003e\n\u003cli\u003emigrate setup to pyproject.toml\u003c/li\u003e\n\u003cli\u003efix numerous security vulnerabilities in HTTP parser (closing some request smuggling vectors)\u003c/li\u003e\n\u003cli\u003eparsing additional requests is no longer attempted past unsupported request framing\u003c/li\u003e\n\u003cli\u003eon HTTP versions \u0026lt; 1.1 support for chunked transfer is refused (only used in exploits)\u003c/li\u003e\n\u003cli\u003erequests conflicting configured or passed SCRIPT_NAME now produce a verbose error\u003c/li\u003e\n\u003cli\u003eTrailer fields are no longer inspected for headers indicating secure scheme\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/411986d6191114dd1d1bbb9c72c948dbf0ef0425\"\u003e\u003ccode\u003e411986d\u003c/code\u003e\u003c/a\u003e fix doc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/334392e7795f2017e83f7054d372422512d6f4b6\"\u003e\u003ccode\u003e334392e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/2559\"\u003e#2559\u003c/a\u003e from laggardkernel/bugfix/reexec-env\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/e75c3533e32f91a9dceba9e8e1341fea5540ba81\"\u003e\u003ccode\u003ee75c353\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3189\"\u003e#3189\u003c/a\u003e from pajod/patch-py36\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/9357b28dd867950e33ca3864207cb35a1eb8ba6f\"\u003e\u003ccode\u003e9357b28\u003c/code\u003e\u003c/a\u003e keep document user in access_log_format setting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/79fdef0822cbfe7e16b659b07230af9be098d5fc\"\u003e\u003ccode\u003e79fdef0\u003c/code\u003e\u003c/a\u003e bump to 23.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/3acd9fbfd1159ca3cd80a8052ada89a0bf27f806\"\u003e\u003ccode\u003e3acd9fb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/2620\"\u003e#2620\u003c/a\u003e from talkerbox/improve-access-log-format-docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/3f56d76548e4ade034bf5e174737902970285d1f\"\u003e\u003ccode\u003e3f56d76\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3192\"\u003e#3192\u003c/a\u003e from pajod/patch-allowed-script-name\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/256d474a7910bd605f2cc8c082b79c1ae55215a9\"\u003e\u003ccode\u003e256d474\u003c/code\u003e\u003c/a\u003e docs: revert duped directive\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/ffa48b581dcaa75f17fd2df263515e4266feeef6\"\u003e\u003ccode\u003effa48b5\u003c/code\u003e\u003c/a\u003e test: default change was intentional\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/52538ca9070b5e7ead5d0fa731e82a622dc6f3ee\"\u003e\u003ccode\u003e52538ca\u003c/code\u003e\u003c/a\u003e docs: recommend SCRIPT_NAME=/subfolder\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/benoitc/gunicorn/compare/21.2.0...23.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-ipware` from 2.0.0 to 3.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/un33k/python-ipware/blob/main/CHANGELOG.md\"\u003epython-ipware's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.0.0\u003c/h2\u003e\n\u003cp\u003eFix:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRelease major version, as there is a possibility of api change causing minimal backward incompatibly\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.5\u003c/h2\u003e\n\u003cp\u003eEnhance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAI assisted clean up\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.4\u003c/h2\u003e\n\u003cp\u003eEnhance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eproxy_count=0\u003c/code\u003e as an option (\u003ca href=\"https://github.com/FraKraBa\"\u003e\u003ccode\u003e@​FraKraBa\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.3\u003c/h2\u003e\n\u003cp\u003eEnhance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eHTTP_CF_CONNECTING_IP\u003c/code\u003e to list of known ip headers (Adam M.)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.2\u003c/h2\u003e\n\u003cp\u003eEnhance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded logger name\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.1\u003c/h2\u003e\n\u003cp\u003eIssue:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003eHTTP_VIA\u003c/code\u003e header support (unreliable IP information) (\u003ca href=\"https://github.com/yourcelf\"\u003e\u003ccode\u003e@​yourcelf\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eEnhance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eInclude support for python 3.12\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/cab810ced72457abcc77ffd234be9cb0a75f7ec3\"\u003e\u003ccode\u003ecab810c\u003c/code\u003e\u003c/a\u003e version 3 major (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/21\"\u003e#21\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/5d01f1e6662f3de861d44006247fd5f0a3ae4a0b\"\u003e\u003ccode\u003e5d01f1e\u003c/code\u003e\u003c/a\u003e Feat/enhance (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/20\"\u003e#20\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/bd56bcd1d4ed2d2bbd690059e5a231d6b51bcd31\"\u003e\u003ccode\u003ebd56bcd\u003c/code\u003e\u003c/a\u003e Allow for proxy_count of exact 0 (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/19\"\u003e#19\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/ddfde3c6d4dee387a59287a2c0afc933f9773791\"\u003e\u003ccode\u003eddfde3c\u003c/code\u003e\u003c/a\u003e Update Readme (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/17\"\u003e#17\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/aab321baf9958ae128460c2279364926f6612dca\"\u003e\u003ccode\u003eaab321b\u003c/code\u003e\u003c/a\u003e Add HTTP_CF_CONNECTING_IP to ip Header list (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/16\"\u003e#16\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/e908cc321dc61e203033768f8d1072efc71f4556\"\u003e\u003ccode\u003ee908cc3\u003c/code\u003e\u003c/a\u003e Added logger name (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/15\"\u003e#15\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/ad1f01783279ecd8dfff91b3db8558f92b5bde0b\"\u003e\u003ccode\u003ead1f017\u003c/code\u003e\u003c/a\u003e Remove HTTP_VIA support, support for 3.12 (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/14\"\u003e#14\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/un33k/python-ipware/compare/v2.0.0...v3.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `redis` from 4.6.0 to 5.2.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/redis-py/releases\"\u003eredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.2.1\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed unsecured tempfile.mktemp() command usage (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3446\"\u003e#3446\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed bug with SLOWLOG GET response parsing on Redis Software (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3441\"\u003e#3441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed issue with invoking _close() on closed event loop (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3438\"\u003e#3438\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMigrate test infrastructure to new custom docker images (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3415\"\u003e#3415\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed flacky test with HEXPIREAT command (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3437\"\u003e#3437\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/IlianIliev\"\u003e\u003ccode\u003e@​IlianIliev\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/uglide\"\u003e\u003ccode\u003e@​uglide\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/vladvildanov\"\u003e\u003ccode\u003e@​vladvildanov\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/teodorfn\"\u003e\u003ccode\u003e@​teodorfn\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.2.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🚀 New Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExtend AggregateRequest with scorer argument (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3409\"\u003e#3409\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePin pytest-profiling version due to the bug (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3417\"\u003e#3417\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/uglide\"\u003e\u003ccode\u003e@​uglide\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/rbs333\"\u003e\u003ccode\u003e@​rbs333\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/vladvildanov\"\u003e\u003ccode\u003e@​vladvildanov\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/dwdougherty\"\u003e\u003ccode\u003e@​dwdougherty\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.1.1\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e5.1.1\u003c/h2\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed return type for Redis Set commands to be Set instead of List (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3399\"\u003e#3399\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed bug with partial Hiredis availability (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3400\"\u003e#3400\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed bug with async pipeline and cluster fails with some commands (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3402\"\u003e#3402\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.1.0\u003c/h2\u003e\n\u003ch3\u003e🚀 New Features\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/redis/redis-py/commit/a74fa6a3dc1996ff256d5b1849c3018a7ac05c99\"\u003e\u003ccode\u003ea74fa6a\u003c/code\u003e\u003c/a\u003e Release 5.2.1 (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3451\"\u003e#3451\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/166ae7bfd79a88cdfbd7959b2c28cd79aa0eaf0c\"\u003e\u003ccode\u003e166ae7b\u003c/code\u003e\u003c/a\u003e Updated package version (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3418\"\u003e#3418\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/00f5be420b397adfa1b9aa9c2761f7d8a27c0a9a\"\u003e\u003ccode\u003e00f5be4\u003c/code\u003e\u003c/a\u003e adds scorer to AggregateRequest (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3409\"\u003e#3409\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/4c4d4afd2b31b5c36a2d5e22419bcbf584265a17\"\u003e\u003ccode\u003e4c4d4af\u003c/code\u003e\u003c/a\u003e Pin pytest-profiling (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3417\"\u003e#3417\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/d6ddb0d66bc4bd28c99d9cf148c9085117cc8ce9\"\u003e\u003ccode\u003ed6ddb0d\u003c/code\u003e\u003c/a\u003e DOC-4199: add TCEs to the combined query page (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3380\"\u003e#3380\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/17db62e3c9ea796f5705d2857f49e52799057af7\"\u003e\u003ccode\u003e17db62e\u003c/code\u003e\u003c/a\u003e DOC-4200: add TCEs to the aggregation query page (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3381\"\u003e#3381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/700045c7a7db6d986df6610d61239375a2211053\"\u003e\u003ccode\u003e700045c\u003c/code\u003e\u003c/a\u003e Backport 5.1 changes into master (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3406\"\u003e#3406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/2e46613dcdf9db7f948f3258fee1c9199da8cbfa\"\u003e\u003ccode\u003e2e46613\u003c/code\u003e\u003c/a\u003e Client side caching refactoring (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3350\"\u003e#3350\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/7d73d742d6df4b3d6f6a1f0ec73e72d4a02add74\"\u003e\u003ccode\u003e7d73d74\u003c/code\u003e\u003c/a\u003e DOC-4197: add TCEs to the geospatial query page (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3378\"\u003e#3378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/c7483b3d63a2001508a2ff2c9952ad50d9252732\"\u003e\u003ccode\u003ec7483b3\u003c/code\u003e\u003c/a\u003e DOC-4196: add TCEs to the full-text query page (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3377\"\u003e#3377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/redis/redis-py/compare/v4.6.0...v5.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `watchdog` from 3.0.0 to 6.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/gorakhargosh/watchdog/releases\"\u003ewatchdog's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[inotify] Use of \u003ccode\u003eselect.poll()\u003c/code\u003e instead of deprecated \u003ccode\u003eselect.select()\u003c/code\u003e, if available. (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1078\"\u003e#1078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_class()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_instancemethod()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_module()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eis_class_private_name()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eis_classmethod()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eis_method(met()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003emethod_name()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003ename()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Removed the \u003ccode\u003e--trace\u003c/code\u003e CLI argument from the \u003ccode\u003ewatchmedo log\u003c/code\u003e command, useless since events are logged by default at the \u003ccode\u003eLoggerTrick\u003c/code\u003e class level.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePin test dependecies.\u003c/li\u003e\n\u003cli\u003e[docs] Add typing info to quick start. (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1082\"\u003e#1082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[inotify] Fix reading inotify file descriptor after closing it. (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1081\"\u003e#1081\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[utils] The \u003ccode\u003estop_signal\u003c/code\u003e keyword-argument type of the \u003ccode\u003eAutoRestartTrick\u003c/code\u003e class can now be either a \u003ccode\u003esignal.Signals\u003c/code\u003e or an \u003ccode\u003eint\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e[utils] Added the \u003ccode\u003e__repr__()\u003c/code\u003e method to the \u003ccode\u003eTrick\u003c/code\u003e class.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Fixed Mypy issues.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Added the \u003ccode\u003e__repr__()\u003c/code\u003e method to the \u003ccode\u003eHelpFormatter\u003c/code\u003e class.\u003c/li\u003e\n\u003cli\u003e[windows] Fixed Mypy issues.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e💟 Thanks to our beloved contributors: \u003ca href=\"https://github.com/g-pichler\"\u003e\u003ccode\u003e@​g-pichler\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ethan-vanderheijden\"\u003e\u003ccode\u003e@​ethan-vanderheijden\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/nhairs\"\u003e\u003ccode\u003e@​nhairs\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[inotify] Improve cleaning up \u003ccode\u003eInotify\u003c/code\u003e threads, and add \u003ccode\u003eeventlet\u003c/code\u003e test cases (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1070\"\u003e#1070\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e💟 Thanks to our beloved contributors: \u003ca href=\"https://github.com/ethan-vanderheijden\"\u003e\u003ccode\u003e@​ethan-vanderheijden\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEnable OS specific Mypy checks (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1064\"\u003e#1064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[watchmedo] Fix \u003ccode\u003etricks\u003c/code\u003e argument type of \u003ccode\u003eschedule_tricks()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1063\"\u003e#1063\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e💟 Thanks to our beloved contributors: \u003ca href=\"https://github.com/gnought\"\u003e\u003ccode\u003e@​gnought\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[kqueue] Fix \u003ccode\u003eTypeError: kqueue.control() only accepts positional parameters\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1062\"\u003e#1062\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e💟 Thanks to our beloved contributors: \u003ca href=\"https://github.com/apoirier\"\u003e\u003ccode\u003e@​apoirier\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8 (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[core] Enforced usage of proper keyword-arguments (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1057\"\u003e#1057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[core] Renamed the \u003ccode\u003eBaseObserverSubclassCallable\u003c/code\u003e class to \u003ccode\u003eObserverType\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[inotify] Renamed the \u003ccode\u003einotify_event_struct\u003c/code\u003e class to \u003ccode\u003eInotifyEventStruct\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1055\"\u003e#1055\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/gorakhargosh/watchdog/blob/master/changelog.rst\"\u003ewatchdog's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e6.0.0\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n2024-11-01 • `full history \u0026lt;https://github.com/gorakhargosh/watchdog/compare/v5.0.3...v6.0.0\u0026gt;`__\n\u003cul\u003e\n\u003cli\u003ePin test dependencies.\u003c/li\u003e\n\u003cli\u003e[docs] Add typing info to quick start. (\u003ccode\u003e[#1082](https://github.com/gorakhargosh/watchdog/issues/1082) \u0026amp;lt;https://github.com/gorakhargosh/watchdog/pull/1082\u0026amp;gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003e[inotify] Use of \u003ccode\u003eselect.poll()\u003c/code\u003e instead of deprecated \u003ccode\u003eselect.select()\u003c/code\u003e, if available. (\u003ccode\u003e[#1078](https://github.com/gorakhargosh/watchdog/issues/1078) \u0026amp;lt;https://github.com/gorakhargosh/watchdog/pull/1078\u0026amp;gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003e[inotify] Fix reading inotify file descriptor after closing it. (\u003ccode\u003e[#1081](https://github.com/gorakhargosh/watchdog/issues/1081) \u0026amp;lt;https://github.com/gorakhargosh/watchdog/pull/1081\u0026amp;gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003e[utils] The \u003ccode\u003estop_signal\u003c/code\u003e keyword-argument type of the \u003ccode\u003eAutoRestartTrick\u003c/code\u003e class can now be either a \u003ccode\u003esignal.Signals\u003c/code\u003e or an \u003ccode\u003eint\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e[utils] Added the \u003ccode\u003e__repr__()\u003c/code\u003e method to the \u003ccode\u003eTrick\u003c/code\u003e class.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_class()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_instancemethod()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_module()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eis_class_private_name()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eis_classmethod()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eic_method(met()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003emethod_name()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003ename()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Fixed Mypy issues.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Added the \u003ccode\u003e__repr__()\u003c/code\u003e method to the \u003ccode\u003eHelpFormatter\u003c/code\u003e class.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Removed the \u003ccode\u003e--trace\u003c/code\u003e CLI argument from the \u003ccode\u003ewatchmedo log\u003c/code\u003e command, useless since events are logged by default at the \u003ccode\u003eLoggerTrick\u003c/code\u003e class level.\u003c/li\u003e\n\u003cli\u003e[windows] Fixed Mypy issues.\u003c/li\u003e\n\u003cli\u003eThanks to our beloved contributors: \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/g-pichler\"\u003e\u003ccode\u003e@​g-pichler\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ethan-vanderheijden\"\u003e\u003ccode\u003e@​ethan-vanderheijden\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/nhairs\"\u003e\u003ccode\u003e@​nhairs\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e5.0.3\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e2024-09-27 • \u003ccode\u003efull history \u0026lt;https://github.com/gorakhargosh/watchdog/compare/v5.0.2...v5.0.3\u0026gt;\u003c/code\u003e__\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[inotify] Improve cleaning up \u003ccode\u003eInotify\u003c/code\u003e threads, and add \u003ccode\u003eeventlet\u003c/code\u003e test cases (\u003ccode\u003e[#1070](https://github.com/gorakhargosh/watchdog/issues/1070) \u0026lt;https://github.com/gorakhargosh/watchdog/pull/1070\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eThanks to our beloved contributors: \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ethan-vanderheijden\"\u003e\u003ccode\u003e@​ethan-vanderheijden\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e5.0.2\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n2024-09-03 • `full history \u0026lt;https://github.com/gorakhargosh/watchdog/compare/v5.0.1...v5.0.2\u0026gt;`__\n\u003cul\u003e\n\u003cli\u003eEnable OS specific Mypy checks (\u003ccode\u003e[#1064](https://github.com/gorakhargosh/watchdog/issues/1064) \u0026amp;lt;https://github.com/gorakhargosh/watchdog/pull/1064\u0026amp;gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003e[watchmedo] Fix \u003ccode\u003etricks\u003c/code\u003e argument type of \u003ccode\u003eschedule_tricks()\u003c/code\u003e (\u003ccode\u003e[#1063](https://github.com/gorakhargosh/watchdog/issues/1063) \u0026amp;lt;https://github.com/gorakhargosh/watchdog/pull/1063\u0026amp;gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eThanks to our beloved contributors: \u003ca href=\"https://github.com/gnought\"\u003e\u003ccode\u003e@​gnought\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e5.0.1\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e2024-09-02 • \u003ccode\u003efull history \u0026lt;https://github.com/gorakhargosh/watchdog/compare/v5.0.0...v5.0.1\u0026gt;\u003c/code\u003e__\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[kqueue] Fix \u003ccode\u003eTypeError: kqueue.control() only accepts positional parameters\u003c/code\u003e  (\u003ccode\u003e[#1062](https://github.com/gorakhargosh/watchdog/issues/1062) \u0026lt;https://github.com/gorakhargosh/watchdog/pull/1062\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eThanks to our beloved contributors: \u003ca href=\"https://github.com/apoirier\"\u003e\u003ccode\u003e@​apoirier\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\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/gorakhargosh/watchdog/commit/76c091dc8841de1d1a1cd6511bb509fe4f058de6\"\u003e\u003ccode\u003e76c091d\u003c/code\u003e\u003c/a\u003e Version 6.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/58386d88747259b8b3da5082e30f1c6e0aa3b31a\"\u003e\u003ccode\u003e58386d8\u003c/code\u003e\u003c/a\u003e Fixes, and clean-up (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1084\"\u003e#1084\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/db698a52bbb1eb8cc34e889a8afdac6f17a99e57\"\u003e\u003ccode\u003edb698a5\u003c/code\u003e\u003c/a\u003e fix: reading inotify file descriptor after closing it. (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1081\"\u003e#1081\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/73d561265b109f30cf76a280cdcc74aa9e6df391\"\u003e\u003ccode\u003e73d5612\u003c/code\u003e\u003c/a\u003e [docs] Add typing info to quick start (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1082\"\u003e#1082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/d774fec477a8f57d24b588164ebdd39b2d507bcd\"\u003e\u003ccode\u003ed774fec\u003c/code\u003e\u003c/a\u003e docs: Update README Badges (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1083\"\u003e#1083\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/6b74737501c85df9b9c2585faef4797a5250171b\"\u003e\u003ccode\u003e6b74737\u003c/code\u003e\u003c/a\u003e docs: funding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/3d1b888bccdd27a28f9f12a4e89288afe1ee493a\"\u003e\u003ccode\u003e3d1b888\u003c/code\u003e\u003c/a\u003e [inotify] Use of \u003ccode\u003eselect.poll()\u003c/code\u003e instead of deprecated \u003ccode\u003eselect.select()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1078\"\u003e#1078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/6a4f1cf846e03c8701fcc53b9e910077b5824e59\"\u003e\u003ccode\u003e6a4f1cf\u003c/code\u003e\u003c/a\u003e Bump the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/ad6df50908fca071ac8ad6558453bb28b522f794\"\u003e\u003ccode\u003ead6df50\u003c/code\u003e\u003c/a\u003e Version 5.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/59650f8fe72ac498374434a10a3dd49f3c3d1429\"\u003e\u003ccode\u003e59650f8\u003c/code\u003e\u003c/a\u003e fix: polish \u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1070\"\u003e#1070\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/gorakhargosh/watchdog/compare/v3.0.0...v6.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ocrmypdf` from 14.4.0 to 15.4.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/blob/main/docs/release_notes.md\"\u003eocrmypdf's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev15.4.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed documentation for installing Ghostscript on Windows. {issue}\u003ccode\u003e1198\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdded warning message about security issue in older versions of Ghostscript.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed deprecation warning in pikepdf older than 8.7.1; pikepdf \u0026gt;= 8.7.1 is\nnow required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWe now raise an exception on a certain class of PDFs that likely need an\nexplicit color conversion strategy selected to display correctly\nfor PDF/A conversion.\u003c/li\u003e\n\u003cli\u003eFixed an error that occurred while trying to write a log message after the\ndebug log handler was removed.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed misc/watcher.py regressions: accept \u003ccode\u003e--ocr-json-settings\u003c/code\u003e as either\nfilename or JSON string, as previously; and argument count mismatch.\n{issue}\u003ccode\u003e1183,1185\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eWe no longer attempt to set /ProcSet in the PDF output, since this is an\nobsolete PDF feature.\u003c/li\u003e\n\u003cli\u003eDocumentation improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded new experimental APIs to support offline editing of the final text.\nSpecifically, one can now generate hOCR files with OCRmyPDF, edit them with\nsome other tool, and then finalize the PDF. They are experimental and\nsubject to change, including details of how the working folder is used.\nThere is no command line interface.\u003c/li\u003e\n\u003cli\u003eCode reorganization: executors, progress bars, initialization and setup.\u003c/li\u003e\n\u003cli\u003eFixed test coverage in cases where the coverage tool did not properly trace\ninto threads or subprocesses. This code was still being tested but appeared\nas not covered.\u003c/li\u003e\n\u003cli\u003eIn the test suite, reduced use of subprocesses and other techniques that\ninterfere with coverage measurement.\u003c/li\u003e\n\u003cli\u003eImproved error check for when we appear to be running inside a snap container\nand files are not available.\u003c/li\u003e\n\u003cli\u003ePlugin specification now properly defines progress bars as a protocol rather\nthan defining them as \u0026quot;tqdm-like\u0026quot;.\u003c/li\u003e\n\u003cli\u003eWe now default to using \u0026quot;forkserver\u0026quot; process creation on POSIX platforms\nrather than fork, since this is method is more robust and avoids some\nissues when threads are present.\u003c/li\u003e\n\u003cli\u003eFixed an instance where the user's request to \u003ccode\u003e--no-use-threads\u003c/code\u003e was ignored.\u003c/li\u003e\n\u003cli\u003eIf a PDF does not have language metadata on its top level object, we add\nthe OCR language.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/c90d5cd84b0e27906310c28f0d78c3ded9106d65\"\u003e\u003ccode\u003ec90d5cd\u003c/code\u003e\u003c/a\u003e Fix Ghostscript installation instructions and add warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/9898904be70bf957154cc66cb5d6f57bac7c26b4\"\u003e\u003ccode\u003e9898904\u003c/code\u003e\u003c/a\u003e Fix pikepdf PdfMatrix deprecation warning; v15.4.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/27d52298420e785300e418bef4e4219ef97720e1\"\u003e\u003ccode\u003e27d5229\u003c/code\u003e\u003c/a\u003e Make logger names unique\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/4a9a575ef0f2cd7459538a43e802c8d8b3846168\"\u003e\u003ccode\u003e4a9a575\u003c/code\u003e\u003c/a\u003e ghostscript: better comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/52fd9a630d57ac7af91db423b17e6b0297fc1c66\"\u003e\u003ccode\u003e52fd9a6\u003c/code\u003e\u003c/a\u003e v15.4.2 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/a596ccf84469c81c6d19ab0eb59f53a5df0bc3c7\"\u003e\u003ccode\u003ea596ccf\u003c/code\u003e\u003c/a\u003e Raise exception if resulting PDF might appear blank in a known in some PDF vi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/e7fa97731f507c1d91e4289b9d5f3344533d7c4c\"\u003e\u003ccode\u003ee7fa977\u003c/code\u003e\u003c/a\u003e ghostscript duplicate filter: filter within a window of previous messages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/290aa2810868fb506a0ded2db8dabb580d5a2459\"\u003e\u003ccode\u003e290aa28\u003c/code\u003e\u003c/a\u003e Fix error on attempt to write to debug log after removing debug log handler\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/a95640ed9ec0a5caa360bd64b9ad6cc9f916fa61\"\u003e\u003ccode\u003ea95640e\u003c/code\u003e\u003c/a\u003e v15.4.1 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/f69267bb675c3261121b70451f6e673f433bc7ad\"\u003e\u003ccode\u003ef69267b\u003c/code\u003e\u003c/a\u003e watcher: restore ability to read json from file or command line string\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/compare/v14.4.0...v15.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-multiselectfield` from 0.1.12 to 1.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/goinnn/django-multiselectfield/releases\"\u003edjango-multiselectfield's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBadge image worked on GitHub but was broken on PyPI — fixed it.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.0\u003c/h2\u003e\n\u003cp\u003eThis release introduces multiple changes that are incompatible with previous versions.\u003c/p\u003e\n\u003cp\u003eThe major version number has been incremented following \u003ccode\u003eSemantic Versioning (SemVer) \u0026lt;https://semver.org/\u0026gt;\u003c/code\u003e_, as several components of the package have changed in ways that may require updates in client code.\u003c/p\u003e\n\u003cp\u003eThe internal codebase has been significantly cleaned up and reorganized, making it more maintainable and consistent.\u003c/p\u003e\n\u003cp\u003eThis version contains \u003cstrong\u003e40% fewer lines of code\u003c/strong\u003e compared to the previous release.\u003c/p\u003e\n\u003cp\u003eLess code means fewer bugs, easier maintenance, and better long-term sustainability.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFList (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\"\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2\u003c/a\u003e):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/50d3f785883e0a314f2dc89950e3fe1e88a7ede6\"\u003e50d3f785883e0a314f2dc89950e3fe1e88a7ede6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIt was created to support MultiSelectFields in admin.list_display, but it never actually worked. If you add a multiselect field to list_display, Django does not call to \u003cstrong\u003estr\u003c/strong\u003e method of MSGList (renamed to MSFList)\u003c/li\u003e\n\u003cli\u003eIt was created for integer choices too and it is a misconception. This is explained in the README file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFFlatchoices (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\"\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2\u003c/a\u003e):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/5638247c1d70670d4f81adf35143ef17a7d7575e\"\u003e5638247c1d70670d4f81adf35143ef17a7d7575e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIn list_display, labels for the choices are now shown (comma-separated) instead of the values of the choices (comma-separated).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn to_python method, value is a list or a string. (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/c4579138dda2833cbce26afbf57da5353aa45690\"\u003ec4579138dda2833cbce26afbf57da5353aa45690\u003c/a\u003e)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove set case and dict case\u003c/li\u003e\n\u003cli\u003eIf this breaks something, please create a test to help understand the use case.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoving integer choices:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIt was a mistake. MultiSelectField inherits of CharField, not IntegerField.\u003c/li\u003e\n\u003cli\u003eIt is impossible knows if original choice is (1, 'Item title 2.1') or ('1', 'Item title 2.1')\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: Form instance generated twice since Django  (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/168\"\u003e#168\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix CSS admin:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/173\"\u003e#173\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/7711f4aa755c81d00f07ce8a6ff0fd9240061f9c\"\u003e7711f4aa755c81d00f07ce8a6ff0fd9240061f9c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix Properly Display Categorized Choices in get_FOO_display (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/169\"\u003e#169\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSortMultiSelectField: (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/172\"\u003e#172\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/goinnn/django-multiselectfield/blob/master/CHANGES.rst\"\u003edjango-multiselectfield's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.0.1 (2025-06-12)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBadge image worked on GitHub but was broken on PyPI — fixed it.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.0.0 (2025-06-12)\u003c/h2\u003e\n\u003cp\u003eThis release introduces multiple changes that are incompatible with previous versions.\u003c/p\u003e\n\u003cp\u003eThe major version number has been incremented following \u003ccode\u003eSemantic Versioning (SemVer) \u0026lt;https://semver.org/\u0026gt;\u003c/code\u003e_, as several components of the package have changed in ways that may require updates in client code.\u003c/p\u003e\n\u003cp\u003eThe internal codebase has been significantly cleaned up and reorganized, making it more maintainable and consistent.\u003c/p\u003e\n\u003cp\u003eThis version contains \u003cstrong\u003e40% fewer lines of code\u003c/strong\u003e compared to the previous release.\u003c/p\u003e\n\u003cp\u003eLess code means fewer bugs, easier maintenance, and better long-term sustainability.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFList (\u003ccode\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\u0026gt;\u003c/code\u003e_):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ccode\u003e50d3f785883e0a314f2dc89950e3fe1e88a7ede6 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/50d3f785883e0a314f2dc89950e3fe1e88a7ede6\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eIt was created to support MultiSelectFields in admin.list_display, but it never actually worked. If you add a multiselect field to list_display, Django does not call to \u003cstrong\u003estr\u003c/strong\u003e method of MSGList (renamed to MSFList)\u003c/li\u003e\n\u003cli\u003eIt was created for integer choices too and it is a misconception. This is explained in the README file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFFlatchoices (\u003ccode\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\u0026gt;\u003c/code\u003e_):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ccode\u003e5638247c1d70670d4f81adf35143ef17a7d7575e \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/5638247c1d70670d4f81adf35143ef17a7d7575e\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eIn list_display, labels for the choices are now shown (comma-separated) instead of the values of the choices (comma-separated).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn to_python method, value is a list or a string. (\u003ccode\u003ec4579138dda2833cbce26afbf57da5353aa45690 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/c4579138dda2833cbce26afbf57da5353aa45690\u0026gt;\u003c/code\u003e_)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove set case and dict cas...\n\n_Description has been truncated_","html_url":"https://github.com/dsp-testing/paperless-ngx/pull/170","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/dsp-testing%2Fpaperless-ngx/issues/170","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/170/packages"},{"uuid":"3395404102","node_id":"PR_kwDOPVvo-c6ncq2P","number":14,"state":"open","title":"⬆ Bump the python-packages group across 1 directory with 6 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":"NONE","state_reason":null,"created_at":"2025-09-08T19:23:40.000Z","updated_at":"2025-09-22T19:19:25.036Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"⬆ Bump","group_name":"python-packages","update_count":6,"packages":[{"name":"feature-engine","old_version":"1.8.3","new_version":"1.9.3","repository_url":"https://github.com/feature-engine/feature_engine"},{"name":"matplotlib","old_version":"3.10.5","new_version":"3.10.6","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"pandas","old_version":"2.3.1","new_version":"2.3.2","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"pre-commit","old_version":"4.2.0","new_version":"4.3.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pytest","old_version":"8.4.1","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-cov","old_version":"6.2.1","new_version":"6.3.0","repository_url":"https://github.com/pytest-dev/pytest-cov"}],"path":null,"ecosystem":"conda"},"body":"Bumps the python-packages group with 6 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [feature-engine](https://github.com/feature-engine/feature_engine) | `1.8.3` | `1.9.3` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.10.5` | `3.10.6` |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.3.1` | `2.3.2` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.2.0` | `4.3.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.1` | `8.4.2` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `6.2.1` | `6.3.0` |\n\n\nUpdates `feature-engine` from 1.8.3 to 1.9.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/feature-engine/feature_engine/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `matplotlib` from 3.10.5 to 3.10.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/matplotlib/matplotlib/releases\"\u003ematplotlib's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eREL: v3.10.6\u003c/h2\u003e\n\u003cp\u003eThis is a bugfix release in the 3.10.x series.\u003c/p\u003e\n\u003cp\u003eHighlights from this release include:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e- Fix regression of hi-dpi support for Qt\n- Fix race condition in TexManager.make_dvi \u0026amp; make_png\n- Various documentation and other bugfixes\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/5cd38c3edcdf0792d0e6aded280a9b7a7de6146f\"\u003e\u003ccode\u003e5cd38c3\u003c/code\u003e\u003c/a\u003e REL: v3.10.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/b2358e7a537205b29ab0810b4bd94f036b3086dc\"\u003e\u003ccode\u003eb2358e7\u003c/code\u003e\u003c/a\u003e Release prep v3.10.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/2e04783c83e960261e18b8ccc5d0ebc3c1d117aa\"\u003e\u003ccode\u003e2e04783\u003c/code\u003e\u003c/a\u003e Merge branch 'v3.10.5-doc' into v3.10.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/d3365af7e461b3c4bebb0351a06809ad503a3db9\"\u003e\u003ccode\u003ed3365af\u003c/code\u003e\u003c/a\u003e Github stats v3.10.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/81ed6592f882b89e6d2baf02b544200c539c46d4\"\u003e\u003ccode\u003e81ed659\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30489\"\u003e#30489\u003c/a\u003e from meeseeksmachine/auto-backport-of-pr-30486-on-v...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/5351097b110c975767f2699f2335ecce7b99c1d8\"\u003e\u003ccode\u003e5351097\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30488\"\u003e#30488\u003c/a\u003e from meeseeksmachine/auto-backport-of-pr-30486-on-v...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/6b800b8c8b56a71d8780c8e1707a1ba0b2c338c6\"\u003e\u003ccode\u003e6b800b8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30487\"\u003e#30487\u003c/a\u003e from meeseeksmachine/auto-backport-of-pr-30484-on-v...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/25a97fd721edeee7ef2916cdbb79e050187f3d11\"\u003e\u003ccode\u003e25a97fd\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30486\"\u003e#30486\u003c/a\u003e: doc: Update warnings about python-build-standalone\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/4b794954750f7a1218c9d0c032ec30ba7a6088e6\"\u003e\u003ccode\u003e4b79495\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30486\"\u003e#30486\u003c/a\u003e: doc: Update warnings about python-build-standalone\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/a55b817f019c0b2a6550fa8d255a821605651ed7\"\u003e\u003ccode\u003ea55b817\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30484\"\u003e#30484\u003c/a\u003e: FIX: be more cautious about checking widget size\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/matplotlib/matplotlib/compare/v3.10.5...v3.10.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pandas` from 2.3.1 to 2.3.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pandas-dev/pandas/releases\"\u003epandas's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ePandas 2.3.2\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 2.3.2.\nThis release includes some improvements and fixes to the future string data type (preview feature for the upcoming pandas 3.0). We recommend that all users upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/pandas-docs/version/2.3/whatsnew/v2.3.2.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\nPandas 2.3.2 supports Python 3.9 and higher.\u003c/p\u003e\n\u003cp\u003eThe release will be available on the conda-forge channel:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install pandas --channel conda-forge\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr via PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython3 -m pip install --upgrade pandas\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\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/pandas-dev/pandas/commit/4665c10899bc413b639194f6fb8665a5c70f7db5\"\u003e\u003ccode\u003e4665c10\u003c/code\u003e\u003c/a\u003e RLS: 2.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/633c68b91808441eba7d73b630a82b713ba19da8\"\u003e\u003ccode\u003e633c68b\u003c/code\u003e\u003c/a\u003e DOC: fix syntax in whatsnew file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/456ad4702cb017aab36e2d09a4029b1b085198f5\"\u003e\u003ccode\u003e456ad47\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/62152\"\u003e#62152\u003c/a\u003e on branch 2.3.x (DOC: prepare 2.3.2 whatsnew notes for rel...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/6cae6444444ed7943ceffbd5990cd8249dd5b47c\"\u003e\u003ccode\u003e6cae644\u003c/code\u003e\u003c/a\u003e [backport 2.3.x] DOC: move and reword whatsnew note for replace fix (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/57865\"\u003eGH-57865\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/a91c50a58c372cddf104fd60241c7284bbf8fc80\"\u003e\u003ccode\u003ea91c50a\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/62147\"\u003e#62147\u003c/a\u003e on branch 2.3.x (DOC: correct and rewrite string migration...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/f7a2cfdf2ed08016167ae6c5e577c54949a849b2\"\u003e\u003ccode\u003ef7a2cfd\u003c/code\u003e\u003c/a\u003e [backport 2.3.x] BUG/DEPR: logical operation with bool and string (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/61995\"\u003e#61995\u003c/a\u003e) (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/7981a43db4339826a3ce5020e9b1b931e604e5bd\"\u003e\u003ccode\u003e7981a43\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/62124\"\u003e#62124\u003c/a\u003e on branch 2.3.x (CI/BLD: don't use strict xfail for '%m.%Y...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/fafbcbd03d1721830f4df8255abdab341db2a583\"\u003e\u003ccode\u003efafbcbd\u003c/code\u003e\u003c/a\u003e [backport 2.3.x] BUG(CoW): also raise for chained assignment for .at / .iat (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/3ac64a714886d917ca24ba637a85c4aaf563fc1b\"\u003e\u003ccode\u003e3ac64a7\u003c/code\u003e\u003c/a\u003e [backport 2.3.x] BUG: Fix Series.str.contains with compiled regex on Arrow st...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/1f2dc4fd8a2503773b6f90cb5e8cc5c3172c3c11\"\u003e\u003ccode\u003e1f2dc4f\u003c/code\u003e\u003c/a\u003e [backport 2.3.x] BUG: fix Series.str.fullmatch() and Series.str.match() with ...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pandas-dev/pandas/compare/v2.3.1...v2.3.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit` from 4.2.0 to 4.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.3.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elanguage: docker\u003c/code\u003e / \u003ccode\u003elanguage: docker_image\u003c/code\u003e: detect rootless docker.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3446\"\u003e#3446\u003c/a\u003e PR by \u003ca href=\"https://github.com/matthewhughes934\"\u003e\u003ccode\u003e@​matthewhughes934\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/1243\"\u003e#1243\u003c/a\u003e issue by \u003ca href=\"https://github.com/dkolepp\"\u003e\u003ccode\u003e@​dkolepp\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: julia\u003c/code\u003e: avoid \u003ccode\u003estartup.jl\u003c/code\u003e when executing hooks.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3496\"\u003e#3496\u003c/a\u003e PR by \u003ca href=\"https://github.com/ericphanson\"\u003e\u003ccode\u003e@​ericphanson\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: dart\u003c/code\u003e: support latest dart versions which require a higher sdk\nlower bound.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3507\"\u003e#3507\u003c/a\u003e PR by \u003ca href=\"https://github.com/bc-lee\"\u003e\u003ccode\u003e@​bc-lee\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.3.0 - 2025-08-09\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elanguage: docker\u003c/code\u003e / \u003ccode\u003elanguage: docker_image\u003c/code\u003e: detect rootless docker.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3446\"\u003e#3446\u003c/a\u003e PR by \u003ca href=\"https://github.com/matthewhughes934\"\u003e\u003ccode\u003e@​matthewhughes934\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/1243\"\u003e#1243\u003c/a\u003e issue by \u003ca href=\"https://github.com/dkolepp\"\u003e\u003ccode\u003e@​dkolepp\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: julia\u003c/code\u003e: avoid \u003ccode\u003estartup.jl\u003c/code\u003e when executing hooks.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3496\"\u003e#3496\u003c/a\u003e PR by \u003ca href=\"https://github.com/ericphanson\"\u003e\u003ccode\u003e@​ericphanson\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: dart\u003c/code\u003e: support latest dart versions which require a higher sdk\nlower bound.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3507\"\u003e#3507\u003c/a\u003e PR by \u003ca href=\"https://github.com/bc-lee\"\u003e\u003ccode\u003e@​bc-lee\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/b74a22d96cca546b8e0bb9f68f1d7d8565205b65\"\u003e\u003ccode\u003eb74a22d\u003c/code\u003e\u003c/a\u003e v4.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/cc899de192a5f5614633d86178568cc1c46d999d\"\u003e\u003ccode\u003ecc899de\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3507\"\u003e#3507\u003c/a\u003e from bc-lee/dart-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2a0bcea7570620416a550362d9b2d2b24eb80dd8\"\u003e\u003ccode\u003e2a0bcea\u003c/code\u003e\u003c/a\u003e Downgrade Dart SDK version installed in the CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/f1cc7a445f1adbfc9ea4072e180fbe3054af669b\"\u003e\u003ccode\u003ef1cc7a4\u003c/code\u003e\u003c/a\u003e Make Dart pre-commit hook compatible with the latest Dart SDKs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/72a3b71f0e7b89b78899739aeee2e962914ab649\"\u003e\u003ccode\u003e72a3b71\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3504\"\u003e#3504\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c8925a457afb1d6850c8f105671846bae408aae0\"\u003e\u003ccode\u003ec8925a4\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/a5fe6c500c2c7a17aaa21f0bb91ee7ceecf61968\"\u003e\u003ccode\u003ea5fe6c5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3496\"\u003e#3496\u003c/a\u003e from ericphanson/eph/jl-startup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/6f1f433a9cea94a70828ade95931a703c9a9c82b\"\u003e\u003ccode\u003e6f1f433\u003c/code\u003e\u003c/a\u003e Julia language: skip startup.jl file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c6817210b1cdbbfbd1b1ff2148edfa15bf4b3c97\"\u003e\u003ccode\u003ec681721\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3499\"\u003e#3499\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/4fd4537bc69e6804998d99e4851a9dbe43e91757\"\u003e\u003ccode\u003e4fd4537\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.2.0...v4.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.4.1 to 8.4.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.4.2\u003c/h2\u003e\n\u003ch1\u003epytest 8.4.2 (2025-09-03)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13478\"\u003e#13478\u003c/a\u003e: Fixed a crash when using \u003ccode\u003econsole_output_style\u003c/code\u003e{.interpreted-text role=\u0026quot;confval\u0026quot;} with \u003ccode\u003etimes\u003c/code\u003e and a module is skipped.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13530\"\u003e#13530\u003c/a\u003e: Fixed a crash when using \u003ccode\u003epytest.approx\u003c/code\u003e{.interpreted-text role=\u0026quot;func\u0026quot;} and \u003ccode\u003edecimal.Decimal\u003c/code\u003e{.interpreted-text role=\u0026quot;class\u0026quot;} instances with the \u003ccode\u003edecimal.FloatOperation\u003c/code\u003e{.interpreted-text role=\u0026quot;class\u0026quot;} trap set.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13549\"\u003e#13549\u003c/a\u003e: No longer evaluate type annotations in Python \u003ccode\u003e3.14\u003c/code\u003e when inspecting function signatures.\u003c/p\u003e\n\u003cp\u003eThis prevents crashes during module collection when modules do not explicitly use \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e and import types for annotations within a \u003ccode\u003eif TYPE_CHECKING:\u003c/code\u003e block.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13559\"\u003e#13559\u003c/a\u003e: Added missing [int]{.title-ref} and [float]{.title-ref} variants to the [Literal]{.title-ref} type annotation of the [type]{.title-ref} parameter in \u003ccode\u003epytest.Parser.addini\u003c/code\u003e{.interpreted-text role=\u0026quot;meth\u0026quot;}.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13563\"\u003e#13563\u003c/a\u003e: \u003ccode\u003epytest.approx\u003c/code\u003e{.interpreted-text role=\u0026quot;func\u0026quot;} now only imports \u003ccode\u003enumpy\u003c/code\u003e if NumPy is already in \u003ccode\u003esys.modules\u003c/code\u003e. This fixes unconditional import behavior introduced in [8.4.0]{.title-ref}.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13577\"\u003e#13577\u003c/a\u003e: Clarify that \u003ccode\u003epytest_generate_tests\u003c/code\u003e is discovered in test modules/classes; other hooks must be in \u003ccode\u003econftest.py\u003c/code\u003e or plugins.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13480\"\u003e#13480\u003c/a\u003e: Self-testing: fixed a few test failures when run with \u003ccode\u003e-Wdefault\u003c/code\u003e or a similar override.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13547\"\u003e#13547\u003c/a\u003e: Self-testing: corrected expected message for \u003ccode\u003etest_doctest_unexpected_exception\u003c/code\u003e in Python \u003ccode\u003e3.14\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13684\"\u003e#13684\u003c/a\u003e: Make pytest's own testsuite insensitive to the presence of the \u003ccode\u003eCI\u003c/code\u003e environment variable -- by \u003ccode\u003eogrisel\u003c/code\u003e{.interpreted-text role=\u0026quot;user\u0026quot;}.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bfae4224fd554d3d7f2c277a4cc092b6ec6af3ae\"\u003e\u003ccode\u003ebfae422\u003c/code\u003e\u003c/a\u003e Prepare release version 8.4.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/89905381a163be30ae87d62e5f750e902d750c5f\"\u003e\u003ccode\u003e8990538\u003c/code\u003e\u003c/a\u003e Fix passenv CI in tox ini and make tests insensitive to the presence of the C...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ca676bfe005aebcb12f4146d1b0f1d2772e2cd5d\"\u003e\u003ccode\u003eca676bf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13687\"\u003e#13687\u003c/a\u003e from pytest-dev/patchback/backports/8.4.x/e63f6e51c...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/975a60a63ce385a44655596e254c1899feaa53e4\"\u003e\u003ccode\u003e975a60a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13686\"\u003e#13686\u003c/a\u003e from pytest-dev/patchback/backports/8.4.x/12bde8af6...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7723ce84b87ab08f86ddafcb342acc28ba5ec99d\"\u003e\u003ccode\u003e7723ce8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13683\"\u003e#13683\u003c/a\u003e from even-even/fix_Exeption_to_Exception_in_errorMe...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7f05680d1301e0969b30bcb3c4b27433c9ee2b7\"\u003e\u003ccode\u003eb7f0568\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13685\"\u003e#13685\u003c/a\u003e from CoretexShadow/fix/docs-pytest-generate-tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/2c94c4a6948ba53440818389298157fa5d5f94cd\"\u003e\u003ccode\u003e2c94c4a\u003c/code\u003e\u003c/a\u003e add missing colon (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13640\"\u003e#13640\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13641\"\u003e#13641\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c3d7684bc01c8c48d05145a30c5211ca8656c68c\"\u003e\u003ccode\u003ec3d7684\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13606\"\u003e#13606\u003c/a\u003e from pytest-dev/patchback/backports/8.4.x/5f9938563...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/dc6e3be2ddc75a149b6d102d9b7c82ee47a00cfa\"\u003e\u003ccode\u003edc6e3be\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13605\"\u003e#13605\u003c/a\u003e from The-Compiler/training-update-2025-07\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f87289c36c8dbe7740e3020f5546b6f8b0861ff0\"\u003e\u003ccode\u003ef87289c\u003c/code\u003e\u003c/a\u003e Fix crash with \u003ccode\u003etimes\u003c/code\u003e output style and skipped module (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13573\"\u003e#13573\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13579\"\u003e#13579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.4.1...8.4.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-cov` from 6.2.1 to 6.3.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst\"\u003epytest-cov's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.3.0 (2025-09-06)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for markdown reports.\nContributed by Marcos Boger in \u003ccode\u003e[#712](https://github.com/pytest-dev/pytest-cov/issues/712) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/712\u0026gt;\u003c/code\u003e_\nand \u003ccode\u003e[#714](https://github.com/pytest-dev/pytest-cov/issues/714) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/714\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eFixed some formatting issues in docs.\nAnonymous contribution in \u003ccode\u003e[#706](https://github.com/pytest-dev/pytest-cov/issues/706) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/706\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/a69d1abfea81138099f7da6ad114a2357b994b86\"\u003e\u003ccode\u003ea69d1ab\u003c/code\u003e\u003c/a\u003e Bump version: 6.2.1 → 6.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/475bf32521d4a75646255369b766cfad55bab1fb\"\u003e\u003ccode\u003e475bf32\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/3834009b902adaad28fed0bd9aba3889b387df4b\"\u003e\u003ccode\u003e3834009\u003c/code\u003e\u003c/a\u003e Add GitHub Actions example and fix example to not break with default markdown...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/0824728a5ea0b779ab474d754951413995ce48bd\"\u003e\u003ccode\u003e0824728\u003c/code\u003e\u003c/a\u003e Small phrasing adustments in Markdown docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/474c1f4e38cda390a9abfa3c843a1fc179bfba0e\"\u003e\u003ccode\u003e474c1f4\u003c/code\u003e\u003c/a\u003e Move markdown dest files check to StoreReport for earlier error and parser.er...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/7b21833031fdbbdc8b383878788addb5dbc148c6\"\u003e\u003ccode\u003e7b21833\u003c/code\u003e\u003c/a\u003e Default markdown-append to coverage.md and raise warning if both markdown opt...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/3a15312a543c2f3822c244dccc1b2a4896b1578a\"\u003e\u003ccode\u003e3a15312\u003c/code\u003e\u003c/a\u003e Fix usage of Path.open() to write/append to files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/4b79449a98e6aaf4d99b99ca6323f9bc77c6bda6\"\u003e\u003ccode\u003e4b79449\u003c/code\u003e\u003c/a\u003e Change output file cov-append.md in md-append example\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/40e9e8e9a93edaa6d9aadbf2efa60d91f97b9dff\"\u003e\u003ccode\u003e40e9e8e\u003c/code\u003e\u003c/a\u003e Add docs and update AUTHORS.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/f5ca33aa6f873d03004e9dcc591a90e61f7676ac\"\u003e\u003ccode\u003ef5ca33a\u003c/code\u003e\u003c/a\u003e Add tests for markdown and markdown-append\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-cov/compare/v6.2.1...v6.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/1210lfo/prueba-tecnica-sc/pull/14","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/1210lfo%2Fprueba-tecnica-sc/issues/14","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/14/packages"},{"uuid":"2806383654","node_id":"PR_kwDOEkpJIs6nRgQm","number":191,"state":"closed","title":"Bump the dependencies group across 1 directory with 36 updates","user":"dependabot[bot]","labels":["skip-changelog","dependabot-deps-updates"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":"2025-09-14T22:11:52.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-07T22:14:26.000Z","updated_at":"2025-09-14T22:11:52.000Z","time_to_close":604646,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"dependencies","update_count":36,"packages":[{"name":"mkdocstrings","old_version":"0.29.1","new_version":"0.30.0","repository_url":"https://github.com/mkdocstrings/mkdocstrings"},{"name":"argparse-manpage","old_version":"4.6","new_version":"4.7","repository_url":"https://github.com/praiskup/argparse-manpage"},{"name":"backrefs","old_version":"5.8","new_version":"6.0.1","repository_url":"https://github.com/facelessuser/backrefs"},{"name":"bracex","old_version":"2.5.post1","new_version":"2.6","repository_url":"https://github.com/facelessuser/bracex"},{"name":"cachetools","old_version":"6.0.0","new_version":"6.2.0","repository_url":"https://github.com/tkem/cachetools"},{"name":"certifi","old_version":"2025.6.15","new_version":"2025.8.3","repository_url":"https://github.com/certifi/python-certifi"},{"name":"charset-normalizer","old_version":"3.4.2","new_version":"3.4.3","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"coverage","old_version":"7.9.1","new_version":"7.10.6","repository_url":"https://github.com/nedbat/coveragepy"},{"name":"cryptography","old_version":"45.0.4","new_version":"45.0.7","repository_url":"https://github.com/pyca/cryptography"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.0","repository_url":"https://github.com/pypa/distlib"},{"name":"executing","old_version":"2.2.0","new_version":"2.2.1","repository_url":"https://github.com/alexmojaki/executing"},{"name":"filelock","old_version":"3.18.0","new_version":"3.19.1","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"gitpython","old_version":"3.1.44","new_version":"3.1.45","repository_url":"https://github.com/gitpython-developers/GitPython"},{"name":"griffe","old_version":"1.7.3","new_version":"1.14.0","repository_url":"https://github.com/mkdocstrings/griffe"},{"name":"importlib-resources","old_version":"5.0.7","new_version":"6.5.2","repository_url":"https://github.com/python/importlib_resources"},{"name":"jsonschema","old_version":"4.24.0","new_version":"4.25.1","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"markdown","old_version":"3.8","new_version":"3.9","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"mkdocs-autorefs","old_version":"1.4.2","new_version":"1.4.3","repository_url":"https://github.com/mkdocstrings/autorefs"},{"name":"mkdocs-material","old_version":"9.6.14","new_version":"9.6.19","repository_url":"https://github.com/squidfunk/mkdocs-material"},{"name":"mkdocstrings-python","old_version":"1.16.12","new_version":"1.18.2","repository_url":"https://github.com/mkdocstrings/python"},{"name":"parso","old_version":"0.8.4","new_version":"0.8.5","repository_url":"https://github.com/davidhalter/parso"},{"name":"pbr","old_version":"6.1.1","new_version":"7.0.1"},{"name":"pillow","old_version":"11.2.1","new_version":"11.3.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"platformdirs","old_version":"4.3.8","new_version":"4.4.0","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"prompt-toolkit","old_version":"3.0.51","new_version":"3.0.52","repository_url":"https://github.com/prompt-toolkit/python-prompt-toolkit"},{"name":"pygments","old_version":"2.19.1","new_version":"2.19.2","repository_url":"https://github.com/pygments/pygments"},{"name":"pymdown-extensions","old_version":"10.15","new_version":"10.16.1","repository_url":"https://github.com/facelessuser/pymdown-extensions"},{"name":"pytest","old_version":"8.4.0","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-sugar","old_version":"1.0.0","new_version":"1.1.1","repository_url":"https://github.com/Teemu/pytest-sugar"},{"name":"pytest-xdist","old_version":"3.7.0","new_version":"3.8.0","repository_url":"https://github.com/pytest-dev/pytest-xdist"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"rich","old_version":"14.0.0","new_version":"14.1.0","repository_url":"https://github.com/Textualize/rich"},{"name":"rpds-py","old_version":"0.25.1","new_version":"0.27.1","repository_url":"https://github.com/crate-py/rpds"},{"name":"setproctitle","old_version":"1.3.6","new_version":"1.3.7","repository_url":"https://github.com/dvarrazzo/py-setproctitle"},{"name":"urllib3","old_version":"2.4.0","new_version":"2.5.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"wcmatch","old_version":"10.0","new_version":"10.1","repository_url":"https://github.com/facelessuser/wcmatch"}],"path":null,"ecosystem":"conda"},"body":"Bumps the dependencies group with 36 updates in the /.config directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [mkdocstrings](https://github.com/mkdocstrings/mkdocstrings) | `0.29.1` | `0.30.0` |\n| [argparse-manpage](https://github.com/praiskup/argparse-manpage) | `4.6` | `4.7` |\n| [backrefs](https://github.com/facelessuser/backrefs) | `5.8` | `6.0.1` |\n| [bracex](https://github.com/facelessuser/bracex) | `2.5.post1` | `2.6` |\n| [cachetools](https://github.com/tkem/cachetools) | `6.0.0` | `6.2.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.6.15` | `2025.8.3` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.2` | `3.4.3` |\n| [coverage](https://github.com/nedbat/coveragepy) | `7.9.1` | `7.10.6` |\n| [cryptography](https://github.com/pyca/cryptography) | `45.0.4` | `45.0.7` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.0` |\n| [executing](https://github.com/alexmojaki/executing) | `2.2.0` | `2.2.1` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.18.0` | `3.19.1` |\n| [gitpython](https://github.com/gitpython-developers/GitPython) | `3.1.44` | `3.1.45` |\n| [griffe](https://github.com/mkdocstrings/griffe) | `1.7.3` | `1.14.0` |\n| [importlib-resources](https://github.com/python/importlib_resources) | `5.0.7` | `6.5.2` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.24.0` | `4.25.1` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.8` | `3.9` |\n| [mkdocs-autorefs](https://github.com/mkdocstrings/autorefs) | `1.4.2` | `1.4.3` |\n| [mkdocs-material](https://github.com/squidfunk/mkdocs-material) | `9.6.14` | `9.6.19` |\n| [mkdocstrings-python](https://github.com/mkdocstrings/python) | `1.16.12` | `1.18.2` |\n| [parso](https://github.com/davidhalter/parso) | `0.8.4` | `0.8.5` |\n| [pbr](https://docs.openstack.org/pbr/latest/) | `6.1.1` | `7.0.1` |\n| [pillow](https://github.com/python-pillow/Pillow) | `11.2.1` | `11.3.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.8` | `4.4.0` |\n| [prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) | `3.0.51` | `3.0.52` |\n| [pygments](https://github.com/pygments/pygments) | `2.19.1` | `2.19.2` |\n| [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions) | `10.15` | `10.16.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.0` | `8.4.2` |\n| [pytest-sugar](https://github.com/Teemu/pytest-sugar) | `1.0.0` | `1.1.1` |\n| [pytest-xdist](https://github.com/pytest-dev/pytest-xdist) | `3.7.0` | `3.8.0` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [rich](https://github.com/Textualize/rich) | `14.0.0` | `14.1.0` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.25.1` | `0.27.1` |\n| [setproctitle](https://github.com/dvarrazzo/py-setproctitle) | `1.3.6` | `1.3.7` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.4.0` | `2.5.0` |\n| [wcmatch](https://github.com/facelessuser/wcmatch) | `10.0` | `10.1` |\n\n\nUpdates `mkdocstrings` from 0.29.1 to 0.30.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases\"\u003emkdocstrings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.30.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/0.30.0\"\u003e0.30.0\u003c/a\u003e - 2025-07-23\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/0.29.1...0.30.0\"\u003eCompare with 0.29.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003edata-skip-inventory\u003c/code\u003e boolean attribute for elements to skip registration in local inventory (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f856160b03b2c27e1d75fdf4f315c273cb9d9247\"\u003ef856160\u003c/a\u003e by Bartosz Sławecki). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/issues/671\"\u003eIssue-671\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/774\"\u003ePR-774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd I18N support (translations) (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/2b4ed541bc707e55d959092d950ebeecc4fbd136\"\u003e2b4ed54\u003c/a\u003e by Nyuan Zhang). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/645\"\u003ePR-645\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/blob/main/CHANGELOG.md\"\u003emkdocstrings's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/0.30.0\"\u003e0.30.0\u003c/a\u003e - 2025-07-23\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/0.29.1...0.30.0\"\u003eCompare with 0.29.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003edata-skip-inventory\u003c/code\u003e boolean attribute for elements to skip registration in local inventory (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f856160b03b2c27e1d75fdf4f315c273cb9d9247\"\u003ef856160\u003c/a\u003e by Bartosz Sławecki). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/issues/671\"\u003eIssue-671\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/774\"\u003ePR-774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd I18N support (translations) (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/2b4ed541bc707e55d959092d950ebeecc4fbd136\"\u003e2b4ed54\u003c/a\u003e by Nyuan Zhang). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/645\"\u003ePR-645\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/2be445f054c1191d308af7ee0cc881e359f5a4c7\"\u003e\u003ccode\u003e2be445f\u003c/code\u003e\u003c/a\u003e chore: Prepare release 0.30.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f856160b03b2c27e1d75fdf4f315c273cb9d9247\"\u003e\u003ccode\u003ef856160\u003c/code\u003e\u003c/a\u003e feat: Add \u003ccode\u003edata-skip-inventory\u003c/code\u003e boolean attribute for elements to skip regist...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/2b4ed541bc707e55d959092d950ebeecc4fbd136\"\u003e\u003ccode\u003e2b4ed54\u003c/code\u003e\u003c/a\u003e feat: Add I18N support (translations)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/51f217f38af9475415f758866697158d9010967d\"\u003e\u003ccode\u003e51f217f\u003c/code\u003e\u003c/a\u003e chore: Template upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/b1da3d02c4f432f603cbb0004bb35099327706db\"\u003e\u003ccode\u003eb1da3d0\u003c/code\u003e\u003c/a\u003e ci: Ignore Ruff warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/d5bf4e1ed0370853f968b210ad77913faf106eed\"\u003e\u003ccode\u003ed5bf4e1\u003c/code\u003e\u003c/a\u003e docs: Update link to YAML idiosyncrasies\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/0.29.1...0.30.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `argparse-manpage` from 4.6 to 4.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/praiskup/argparse-manpage/releases\"\u003eargparse-manpage's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eargparse-manpage v4.7\u003c/h2\u003e\n\u003cp\u003eNews in v4.7\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003esys.stdout used instead of /dev/stdout\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efixed build compatibility with newer setuptools\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efixed deprecation warnings for datetime and setuptools\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003enew compat method for handling SOURCE_DATE_EPOCH\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/praiskup/argparse-manpage/blob/main/NEWS\"\u003eargparse-manpage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cpre\u003e\u003ccode\u003e\nWARNING: The 'build_manpage' setup.py command will be removed v5\nWARNING: We'll drop the Python 2.7 support in v5\n\u003cp\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eNews in v4.7\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003esys.stdout used instead of /dev/stdout\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efixed build compatibility with newer setuptools\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efixed deprecation warnings for datetime and setuptools\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003enew compat method for handling SOURCE_DATE_EPOCH\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre\u003e\u003ccode\u003e\nNews in v4.6\n\u003cul\u003e\n\u003cli\u003eFix the build against Python 3.13\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eNews in v4.5\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWe newly provide \u003ccode\u003ebuild_manpages.build_py\u003c/code\u003e and \u003ccode\u003ebuild_manpages.install\u003c/code\u003e\ncommand classes that are re-usable from \u003ccode\u003epyproject.toml\u003c/code\u003e.  No need to\nprovide \u003ccode\u003esetup.py\u003c/code\u003e because of \u003ccode\u003eargparse-manpage\u003c/code\u003e.  Solved issue#85.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre\u003e\u003ccode\u003e\nNews in v4.4\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003eprog=\u003c/code\u003e specifier (in setup.py/setup.cfg/pyproject.toml) is now\u003cbr /\u003e\nbetter handled so it doesn't conflict with ArgumentParser(prog=..).\u003cbr /\u003e\nFixes \u003ca href=\"https://redirect.github.com/praiskup/argparse-manpage/issues/79\"\u003epraiskup/argparse-manpage#79\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eNews in v4.3\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe pyproject.toml parsing feature now depends on the python3-tomli library\u003cbr /\u003e\ninstead of python-toml for \u0026quot;python_environment \u0026gt;3, \u0026lt;=3.10\u0026quot;.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eNews in v4.2\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for pyproject.toml specification of manpages added.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/7883becca340aa3ea124143e032848a7b2bdf84b\"\u003e\u003ccode\u003e7883bec\u003c/code\u003e\u003c/a\u003e Release v4.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/765389ed4ee835c09451823d7fbfe22b0dc1674a\"\u003e\u003ccode\u003e765389e\u003c/code\u003e\u003c/a\u003e Move the SOURCE_DATE_EPOCH hack on one place\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/a06ed9c1f03360f8089819c8e845cd670687eb64\"\u003e\u003ccode\u003ea06ed9c\u003c/code\u003e\u003c/a\u003e ci: fix RPM build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/c985432ee15824c43c75548c7ec1bd6f105a7f22\"\u003e\u003ccode\u003ec985432\u003c/code\u003e\u003c/a\u003e Fix deprecation warnings for datetime and setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/306658941368ff0c2dfe2e4fa29b889fb5bbeb2b\"\u003e\u003ccode\u003e3066589\u003c/code\u003e\u003c/a\u003e ci: fedora-tox update list of environments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/b3a2c50e2abc47bd822d848864a80e35251a3147\"\u003e\u003ccode\u003eb3a2c50\u003c/code\u003e\u003c/a\u003e ci: enable ruff \u0026amp; bump deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/6dc54a5272e70b081af728958fd7554a6b0372f3\"\u003e\u003ccode\u003e6dc54a5\u003c/code\u003e\u003c/a\u003e Fix compatibility with newer setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/29f89bba536cf28f6ed66721367ff2ee3f6209b7\"\u003e\u003ccode\u003e29f89bb\u003c/code\u003e\u003c/a\u003e Fix some comments about sys.argv alteration for usage message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/ade76cc8ef49ec804955c6b4027dbae52d482034\"\u003e\u003ccode\u003eade76cc\u003c/code\u003e\u003c/a\u003e Use sys.stdout instead of /dev/stdout\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/praiskup/argparse-manpage/compare/v4.6...v4.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `backrefs` from 5.8 to 6.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facelessuser/backrefs/releases\"\u003ebackrefs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Fix a regression that created an ASCII binary property that would override the ASCII block property.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: POSIX character classes will now always use POSIX compatibility rules instead of Unicode standard rules,\nif any are specified in the Unicode specification. The affected character classes are: \u003ccode\u003e[[:alnum:]]\u003c/code\u003e, \u003ccode\u003e[[:digit:]]\u003c/code\u003e,\n\u003ccode\u003e[[:xdigit:]]\u003c/code\u003e, and  \u003ccode\u003e[[:punct:]]\u003c/code\u003e. To explicitly use standard Unicode rules for these compatibility properties, use\nthe Unicode property form instead: \u003ccode\u003e[\\p{Alnum}]\u003c/code\u003e, \u003ccode\u003e[\\p{Digit}]\u003c/code\u003e, \u003ccode\u003e[\\p{Punct}]\u003c/code\u003e, or \u003ccode\u003e[\\p{XDigit}]\u003c/code\u003e. This has changed\nto ensure no confusion for users expecting compatible POSIX style character class properties.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Scoped ASCII/Unicode flags (\u003ccode\u003e(?a:pattern)\u003c/code\u003e/\u003ccode\u003e(?u:pattern)\u003c/code\u003e) should be respected for Unicode properties in\n\u003ccode\u003ebre\u003c/code\u003e and will ensure ASCII or Unicode range if used.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Fix issues related to detecting disabled scoped flags.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Add support for Python 3.14.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eENHANCE\u003c/strong\u003e: Switch to deploying with PyPI's \u0026quot;Trusted Publisher\u0026quot;.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/63f8a4b14750828b7c1e385844fd36f6f89859e4\"\u003e\u003ccode\u003e63f8a4b\u003c/code\u003e\u003c/a\u003e Fix grammar\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/7f4bf611e6e7fcc2aa4e0eba2872b5f51b7fc908\"\u003e\u003ccode\u003e7f4bf61\u003c/code\u003e\u003c/a\u003e Rework POSIX alias\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/956df5f387f1958110e5a7cf2a98d42a8309d9b6\"\u003e\u003ccode\u003e956df5f\u003c/code\u003e\u003c/a\u003e Fix ASCII block regression\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/7a948f083c3c87114a8dd87c95dff1893f3af82a\"\u003e\u003ccode\u003e7a948f0\u003c/code\u003e\u003c/a\u003e Clean up code and add more comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/9b2e406be36c1e0fc72651adbc7d2d63c4151483\"\u003e\u003ccode\u003e9b2e406\u003c/code\u003e\u003c/a\u003e Add more flag tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/47d62b1270ca7f1717e7acdb56e8e6ed3e9e8f10\"\u003e\u003ccode\u003e47d62b1\u003c/code\u003e\u003c/a\u003e Handle enable/disable properly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/8e7596700b913e13f478da57e0ba0965f2d9ed3b\"\u003e\u003ccode\u003e8e75967\u003c/code\u003e\u003c/a\u003e Fix issues with scoped flags (\u003ca href=\"https://redirect.github.com/facelessuser/backrefs/issues/192\"\u003e#192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/0df8e7746d3ea31824af97ea4ed713a3facded5b\"\u003e\u003ccode\u003e0df8e77\u003c/code\u003e\u003c/a\u003e POSIX character classes should use POSIX compatibility rules by default (\u003ca href=\"https://redirect.github.com/facelessuser/backrefs/issues/191\"\u003e#191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/31fd8c5c0338eefe41452d52f99012c0fecfdd82\"\u003e\u003ccode\u003e31fd8c5\u003c/code\u003e\u003c/a\u003e Call mkdocs directly on deploy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/8b3a24bfc1cacde6fc9ab4edfaed0f5a9206c554\"\u003e\u003ccode\u003e8b3a24b\u003c/code\u003e\u003c/a\u003e Fix deploy logic\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/facelessuser/backrefs/compare/5.8...6.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bracex` from 2.5.post1 to 2.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facelessuser/bracex/releases\"\u003ebracex's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Drop support for Python 3.8.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Add support for Python 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/bracex/commit/6d109c55372f0d5086adb7cf84a951cc06391a69\"\u003e\u003ccode\u003e6d109c5\u003c/code\u003e\u003c/a\u003e Add trusted publishing and support for Python 3.14 (\u003ca href=\"https://redirect.github.com/facelessuser/bracex/issues/44\"\u003e#44\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/bracex/commit/c14d46fb495a8fdcd0ec51d4dd42aa587807407d\"\u003e\u003ccode\u003ec14d46f\u003c/code\u003e\u003c/a\u003e Add security policy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/bracex/commit/14645af4bf4de0e1abe4fd6c29bf98871f549273\"\u003e\u003ccode\u003e14645af\u003c/code\u003e\u003c/a\u003e Typos: remove duplicate words\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/facelessuser/bracex/compare/2.5.post1...2.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachetools` from 6.0.0 to 6.2.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev6.2.0 (2025-08-25)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove general \u003ccode\u003eRRCache\u003c/code\u003e performance by storing cache keys in an\nadditional sequence container.  Note that this will increase memory\nconsumption.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more unit tests.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.1.0 (2025-06-16)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove \u003ccode\u003eLFUCache\u003c/code\u003e insertion performance by switching to an\nimplementation based on the \u003ccode\u003ecacheing \u0026lt;https://pypi.org/project/cacheing/\u0026gt;\u003c/code\u003e_ library.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate CI environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/4a238adc490e81db58d843b011afdbe3dd9097a5\"\u003e\u003ccode\u003e4a238ad\u003c/code\u003e\u003c/a\u003e Release v6.2.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/9d511b769f8fb58981fb77fece846984aaaf49e6\"\u003e\u003ccode\u003e9d511b7\u003c/code\u003e\u003c/a\u003e Improve unit tests.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/79aa8c7c0eacd5d75e154bc23687ecdaf9ad1d75\"\u003e\u003ccode\u003e79aa8c7\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/356\"\u003e#356\u003c/a\u003e: Improve RRCache performance.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/bb6d71a745785429b14aae30b7752f4765dc35c3\"\u003e\u003ccode\u003ebb6d71a\u003c/code\u003e\u003c/a\u003e Release v6.1.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/77a9c59e3324496a79e6c4d5a7b5bfdb9a7f7f42\"\u003e\u003ccode\u003e77a9c59\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/260\"\u003e#260\u003c/a\u003e: Use LFUCache implementation based on Blake Reid's \u0026quot;cacheing\u0026quot; library.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/b1d4eb2972ca8f0ab49e22eae3bb47c1eb8b552c\"\u003e\u003ccode\u003eb1d4eb2\u003c/code\u003e\u003c/a\u003e Bump codecov/codecov-action from 5.4.2 to 5.4.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/820b154494e91aa5bfe63a3fa2033c63a9c84603\"\u003e\u003ccode\u003e820b154\u003c/code\u003e\u003c/a\u003e Refactor \u003ca href=\"https://github.com/cachedmethod\"\u003e\u003ccode\u003e@​cachedmethod\u003c/code\u003e\u003c/a\u003e unit tests.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tkem/cachetools/compare/v6.0.0...v6.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2025.6.15 to 2025.8.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/a97d9ad8f87c382378dddc0b0b33b9770932404e\"\u003e\u003ccode\u003ea97d9ad\u003c/code\u003e\u003c/a\u003e 2025.08.03 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ddd90c6d726f174c1e5820379dac0f2a8fc723a1\"\u003e\u003ccode\u003eddd90c6\u003c/code\u003e\u003c/a\u003e 2025.07.14 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/359\"\u003e#359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/d905221c916d51077f5c8071a0f7aa2df2a37c52\"\u003e\u003ccode\u003ed905221\u003c/code\u003e\u003c/a\u003e 2025.07.09 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.06.15...2025.08.03\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.4.2 to 3.4.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.4.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/46f662da20edeced520c8819965a37eefbbc85de\"\u003e\u003ccode\u003e46f662d\u003c/code\u003e\u003c/a\u003e Release 3.4.3 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/638\"\u003e#638\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/1a059b26c155dd5fca408b0e0145c930633c4bf2\"\u003e\u003ccode\u003e1a059b2\u003c/code\u003e\u003c/a\u003e :wrench: skip building on freethreaded as we're not confident it is stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/2275e3d3fea2bf6232661f1e9c21e7b81428e2a6\"\u003e\u003ccode\u003e2275e3d\u003c/code\u003e\u003c/a\u003e :pencil: final note in CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/c96acdfdb34b5b1deb6f70803167bae89b209832\"\u003e\u003ccode\u003ec96acdf\u003c/code\u003e\u003c/a\u003e :pencil: update release date on CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/43e5460518003df24ad1a3e7b5c0a34445395012\"\u003e\u003ccode\u003e43e5460\u003c/code\u003e\u003c/a\u003e :pencil: update README.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f277074e281a070cfa64fc91c46f8291043fc37c\"\u003e\u003ccode\u003ef277074\u003c/code\u003e\u003c/a\u003e :wrench: automatically lower confidence on small bytes str on non Unicode res...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/15ae2411072b5e026f2c9d6ec81b55f75af7dcf2\"\u003e\u003ccode\u003e15ae241\u003c/code\u003e\u003c/a\u003e :bug: automatically fallback on valid UTF-16 or UTF-32 even if the md says it...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/37397c1799a05454ab42fbbc94a7643cdb277924\"\u003e\u003ccode\u003e37397c1\u003c/code\u003e\u003c/a\u003e :wrench: enable 3.14 in nox test_mypyc session\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/cb82537ecad195f48383b92e330351cea1fc6bc8\"\u003e\u003ccode\u003ecb82537\u003c/code\u003e\u003c/a\u003e :rewind: revert license due to compat python 3.7 issue setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/6a2efeb4c6e205964b61008b0c36ddf88c321543\"\u003e\u003ccode\u003e6a2efeb\u003c/code\u003e\u003c/a\u003e :art: fix linter errors\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.2...3.4.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.9.1 to 7.10.6\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.10.6 — 2025-08-29\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003esource\u003c/code\u003e directories were not properly communicated to subprocesses\nthat ran in different directories, as reported in \u003ccode\u003eissue 1499\u003c/code\u003e_.  This is now\nfixed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance: \u003ccode\u003eAlex Gaynor continues fine-tuning \u0026lt;pull 2038_\u0026gt;\u003c/code\u003e_ the speed of\ncombination, especially with many contexts.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1499: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1499\"\u003enedbat/coveragepy#1499\u003c/a\u003e\n.. _pull 2038: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/2038\"\u003enedbat/coveragepy#2038\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-10-5:\u003c/p\u003e\n\u003ch2\u003eVersion 7.10.5 — 2025-08-23\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBig speed improvements for \u003ccode\u003ecoverage combine\u003c/code\u003e: it's now about twice as\nfast! Huge thanks to Alex Gaynor for pull requests \u003ccode\u003e2032 \u0026lt;pull 2032_\u0026gt;\u003c/code\u003e\u003cem\u003e,\n\u003ccode\u003e2033 \u0026lt;pull 2033_\u0026gt;\u003c/code\u003e\u003c/em\u003e, and \u003ccode\u003e2034 \u0026lt;pull 2034_\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _pull 2032: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/2032\"\u003enedbat/coveragepy#2032\u003c/a\u003e\n.. _pull 2033: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/2033\"\u003enedbat/coveragepy#2033\u003c/a\u003e\n.. _pull 2034: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/2034\"\u003enedbat/coveragepy#2034\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-10-4:\u003c/p\u003e\n\u003ch2\u003eVersion 7.10.4 — 2025-08-16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003epatch = fork\u003c/code\u003e for times when the built-in forking support is\ninsufficient.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003epatch = execv\u003c/code\u003e also inherits the entire coverage configuration now.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _changes_7-10-3:\u003c/p\u003e\n\u003ch2\u003eVersion 7.10.3 — 2025-08-10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixes for \u003ccode\u003epatch = subprocess\u003c/code\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eIf subprocesses spawned yet more subprocesses simultaneously, some coverage\ncould be missed.  This is now fixed, closing \u003ccode\u003eissue 2024\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIf subprocesses were created in other directories, their data files were\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/88c55ff87437f7e59b42d131d0e2b6ce413546bf\"\u003e\u003ccode\u003e88c55ff\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.10.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/01d89959bfa825f661121e0f8d173f3ae1ecedac\"\u003e\u003ccode\u003e01d8995\u003c/code\u003e\u003c/a\u003e docs: prep for 7.10.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/9b0c24ffc17840464c2343b702a6ee44e10fcadf\"\u003e\u003ccode\u003e9b0c24f\u003c/code\u003e\u003c/a\u003e docs: thanks Alex \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2038\"\u003e#2038\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/66d69108654f6fc1de916a37fc06ac898091aa2d\"\u003e\u003ccode\u003e66d6910\u003c/code\u003e\u003c/a\u003e fix: make \u003ccode\u003esource\u003c/code\u003e paths absolute where they exist. \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1499\"\u003e#1499\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/bb3382f50f2b91aebb046d665334a5d361e5ddc5\"\u003e\u003ccode\u003ebb3382f\u003c/code\u003e\u003c/a\u003e build: no need for the combine/html times now\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/9ea349a164527832a49faa3eeec628d59ef75c7c\"\u003e\u003ccode\u003e9ea349a\u003c/code\u003e\u003c/a\u003e lab: warn_executed.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/808c9b48af3ad7b567182d383eb31451615664e0\"\u003e\u003ccode\u003e808c9b4\u003c/code\u003e\u003c/a\u003e build: changing metacov.ini should trigger metacov\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/384f5f22bd1ef52000d80922de03922a58ff936c\"\u003e\u003ccode\u003e384f5f2\u003c/code\u003e\u003c/a\u003e build: oops, some 'if's are really line pragmas\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/a7224af73365ba2d217f0e0966c7873c5bac3a67\"\u003e\u003ccode\u003ea7224af\u003c/code\u003e\u003c/a\u003e perf: pre-compute the mapping between other_db.context and main.context (\u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2038\"\u003e#2038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/5c00c5ba4bcd4f7da6a9f0ccd0797e0944415e8a\"\u003e\u003ccode\u003e5c00c5b\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group with 3 updates (\u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2039\"\u003e#2039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nedbat/coveragepy/compare/7.9.1...7.10.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 45.0.4 to 45.0.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e45.0.7 - 2025-09-01\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Added a function to support an upcoming ``pyOpenSSL`` release.\n\u003cp\u003e.. _v45-0-6:\u003c/p\u003e\n\u003cp\u003e45.0.6 - 2025-08-05\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.2.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v45-0-5:\u003c/p\u003e\n\u003cp\u003e45.0.5 - 2025-07-02\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.1.\n\u003cp\u003e.. _v45-0-4:\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/f52a3e14965fa16d03813d3ac78cd050d607794a\"\u003e\u003ccode\u003ef52a3e1\u003c/code\u003e\u003c/a\u003e prep for a 45.0.7 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13378\"\u003e#13378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/66198c23c97c9594d64540e5a866e4b4121aec2d\"\u003e\u003ccode\u003e66198c2\u003c/code\u003e\u003c/a\u003e Bump for release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13249\"\u003e#13249\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/3e53a233b65123d2a836b58ccdc427ed5207f92b\"\u003e\u003ccode\u003e3e53a23\u003c/code\u003e\u003c/a\u003e Bump for 45.0.5 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13135\"\u003e#13135\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pyca/cryptography/compare/45.0.4...45.0.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `distlib` from 0.3.9 to 0.4.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/distlib/blob/master/CHANGES.rst\"\u003edistlib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.4.0\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nReleased: 2025-07-17\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003emarkers\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd the \u003ccode\u003einterpret_parsed\u003c/code\u003e function.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ewheel\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/238\"\u003e#238\u003c/a\u003e: Add build tag to wheel metadata if specified.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/243\"\u003e#243\u003c/a\u003e: Update to support free-threading version of Python (3.13t).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/246\"\u003e#246\u003c/a\u003e: Support subdirectories in the dist-info directory. Thanks to Pieter P for the patch.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/248\"\u003e#248\u003c/a\u003e: Fix path normalisation issue caused by the fix for \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/246\"\u003e#246\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMove import in script wrapper to \u0026quot;if \u003cstrong\u003ename\u003c/strong\u003e == 'main'\u0026quot; clause.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003etests\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/245\"\u003e#245\u003c/a\u003e: Skip test_package_data if a SKIP_EXT_PACKAGE_DATA environment variable is present.\n\u003c/code\u003e\u003c/pre\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/aff2cbbc4e8a87b9440cb93472789a213813dbd6\"\u003e\u003ccode\u003eaff2cbb\u003c/code\u003e\u003c/a\u003e Finalise version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/3716c4bcccac19d0c0f2ce0d1272dd33996381b5\"\u003e\u003ccode\u003e3716c4b\u003c/code\u003e\u003c/a\u003e Update change log, widen exception catching in test.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/660bd337bf3217a7bd907c2ba8a2f8dd291ac793\"\u003e\u003ccode\u003e660bd33\u003c/code\u003e\u003c/a\u003e Changes for 0.4.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/56b4ad938455048fc79e599d369e02a1414e9946\"\u003e\u003ccode\u003e56b4ad9\u003c/code\u003e\u003c/a\u003e Guard script wrapper entrypoint import with if \u003cstrong\u003emain\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/242\"\u003e#242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/fe573669087cb1109fb0cc249bf0e06a5461324c\"\u003e\u003ccode\u003efe57366\u003c/code\u003e\u003c/a\u003e docs: update coverage results link (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/250\"\u003e#250\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/c3286e508bb60cd2337408d88eb614a93b612d8c\"\u003e\u003ccode\u003ec3286e5\u003c/code\u003e\u003c/a\u003e Temporarily exclude 3.13t on windows-latest.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/e6b83d3b0eeb11d8e7b053f11139d15aab89d196\"\u003e\u003ccode\u003ee6b83d3\u003c/code\u003e\u003c/a\u003e Normalize archive paths in dist-info (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/248\"\u003e#248\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/93baffeaa1773796d802bb761607a6466790dcba\"\u003e\u003ccode\u003e93baffe\u003c/code\u003e\u003c/a\u003e Skip no-longer-relevant test.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/83f656836f4b6d8175172fcb8370fbee691f2bec\"\u003e\u003ccode\u003e83f6568\u003c/code\u003e\u003c/a\u003e Support subdirectories in .dist-info (fixes \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/246\"\u003e#246\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/247\"\u003e#247\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/f918abd5d20879041704f9d719533b213a55ad48\"\u003e\u003ccode\u003ef918abd\u003c/code\u003e\u003c/a\u003e Update \u003ccode\u003etest_wheel.WheelTestCase.test_abi\u003c/code\u003e for freethreading (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/244\"\u003e#244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/distlib/compare/0.3.9...0.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `executing` from 2.2.0 to 2.2.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/bafb305d96572bc8fb668b6564787bbb4fff2809\"\u003e\u003ccode\u003ebafb305\u003c/code\u003e\u003c/a\u003e Add 3.14 to classifiers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/5ed2ba36c2df94c91fefabd919880ffe061dc0f2\"\u003e\u003ccode\u003e5ed2ba3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/alexmojaki/executing/issues/97\"\u003e#97\u003c/a\u003e from alexmojaki/3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/28095d447af50c49e154de5a27b9423611462f3d\"\u003e\u003ccode\u003e28095d4\u003c/code\u003e\u003c/a\u003e refactor: review changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/bb09dc677da7988a2c9555878b3727afa995b2c0\"\u003e\u003ccode\u003ebb09dc6\u003c/code\u003e\u003c/a\u003e refactor: some cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/dabc70ef5cc9a45eb57432822cdcf674af2e1db8\"\u003e\u003ccode\u003edabc70e\u003c/code\u003e\u003c/a\u003e fix: inst.argval can be a tuple for sometimes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/0772f918c432d6451594bcb6ffccba62e32e794c\"\u003e\u003ccode\u003e0772f91\u003c/code\u003e\u003c/a\u003e fix: removed comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/bacc5b699405e6f27d882dd2a71bb0ec30167f37\"\u003e\u003ccode\u003ebacc5b6\u003c/code\u003e\u003c/a\u003e fix: moved verification for CALL_INTRINSIC_2 back to 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/ec090751a1645cd14bfcb20a79b02371ffd6172b\"\u003e\u003ccode\u003eec09075\u003c/code\u003e\u003c/a\u003e test: added sample_results for 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/9405fed0769af3ee22dd4f433249f6494688638e\"\u003e\u003ccode\u003e9405fed\u003c/code\u003e\u003c/a\u003e fix: handle synthetic code to store annotation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/f09e4cd194aa3480c12a9f5afab3524d2a7222f2\"\u003e\u003ccode\u003ef09e4cd\u003c/code\u003e\u003c/a\u003e fix: TypeVar defaults\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/alexmojaki/executing/compare/v2.2.0...v2.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `filelock` from 3.18.0 to 3.19.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/py-filelock/releases\"\u003efilelock's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.19.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd 3.14t (free threading) to matrix by \u003ca href=\"https://github.com/paultiq\"\u003e\u003ccode\u003e@​paultiq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/433\"\u003etox-dev/filelock#433\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIncrease test coverage by \u003ca href=\"https://github.com/paultiq\"\u003e\u003ccode\u003e@​paultiq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/434\"\u003etox-dev/filelock#434\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/paultiq\"\u003e\u003ccode\u003e@​paultiq\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/433\"\u003etox-dev/filelock#433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.19.0...3.19.1\"\u003ehttps://github.com/tox-dev/filelock/compare/3.19.0...3.19.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.19.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for 3.14 by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/432\"\u003etox-dev/filelock#432\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.18.0...3.19.0\"\u003ehttps://github.com/tox-dev/filelock/compare/3.18.0...3.19.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/8d1009f08a6a64624fad91d1079062ef31b8c2b4\"\u003e\u003ccode\u003e8d1009f\u003c/code\u003e\u003c/a\u003e Update release.yaml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/66a428e97a874b44b0310072f6c974226f55a472\"\u003e\u003ccode\u003e66a428e\u003c/code\u003e\u003c/a\u003e Increase test coverage (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/434\"\u003e#434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/0dfc86eebd2c76ae959a409bcbc3112cc1ec5890\"\u003e\u003ccode\u003e0dfc86e\u003c/code\u003e\u003c/a\u003e add 3.14 to matrix (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/433\"\u003e#433\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/0c54837e318ebe8a692b529722430cb38134bf7c\"\u003e\u003ccode\u003e0c54837\u003c/code\u003e\u003c/a\u003e Add support for 3.14 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/432\"\u003e#432\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/77d02f5ada3a1a92167b1beee35a7815cbde0fcf\"\u003e\u003ccode\u003e77d02f5\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/430\"\u003e#430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/bc972b33bf253bb9f08db32b19ffd4119a74706e\"\u003e\u003ccode\u003ebc972b3\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/429\"\u003e#429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/78d02cb5ff42b22a56ad1a36755361a6b4601765\"\u003e\u003ccode\u003e78d02cb\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/428\"\u003e#428\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/18cdb5d1c78a7a459463480303e9820f33cdf041\"\u003e\u003ccode\u003e18cdb5d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/427\"\u003e#427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/b198a096d2bae58596479497d18a82bbeec515c8\"\u003e\u003ccode\u003eb198a09\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/426\"\u003e#426\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/6b097e76de603d9be6a24c5058b6fe53ef003afd\"\u003e\u003ccode\u003e6b097e7\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/425\"\u003e#425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/py-filelock/compare/3.18.0...3.19.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gitpython` from 3.1.44 to 3.1.45\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/gitpython-developers/GitPython/releases\"\u003egitpython's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.1.45\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix various version-related CI breakages by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1987\"\u003egitpython-developers/GitPython#1987\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo some CI cleanup to make reports clearer and future changes easier by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1989\"\u003egitpython-developers/GitPython#1989\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAffirm that gitdb and smmap advisories can also be created by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1991\"\u003egitpython-developers/GitPython#1991\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix links to gitdb and smmap \u003ccode\u003eSECURITY.md\u003c/code\u003e files by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1992\"\u003egitpython-developers/GitPython#1992\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest Python 3.13 regularly on Ubuntu and macOS on CI by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1990\"\u003egitpython-developers/GitPython#1990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRepo.rev_parse: Handle \u003c!-- raw HTML omitted --\u003e^{commit} correctly by \u003ca href=\"https://github.com/flichtenheld\"\u003e\u003ccode\u003e@​flichtenheld\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1996\"\u003egitpython-developers/GitPython#1996\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFuzzing: Fix Broken Fuzz Test for Git Submodule Handling by \u003ca href=\"https://github.com/DaveLak\"\u003e\u003ccode\u003e@​DaveLak\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1997\"\u003egitpython-developers/GitPython#1997\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWork around Cygwin CI failure \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2004\"\u003e#2004\u003c/a\u003e, except for \u003ccode\u003etest_installation\u003c/code\u003e by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2007\"\u003egitpython-developers/GitPython#2007\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMark \u003ccode\u003etest_installation\u003c/code\u003e xfail on Cygwin CI by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2009\"\u003egitpython-developers/GitPython#2009\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eIndexFile._to_relative_path\u003c/code\u003e - fix case where absolute path gets stripped of trailing slash by \u003ca href=\"https://github.com/kamilkozik7\"\u003e\u003ccode\u003e@​kamilkozik7\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2012\"\u003egitpython-developers/GitPython#2012\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse WSL1 on CI by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2010\"\u003egitpython-developers/GitPython#2010\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest free-threaded Python (but only on Linux) by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2011\"\u003egitpython-developers/GitPython#2011\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse property decorator to support typing by \u003ca href=\"https://github.com/Andrej730\"\u003e\u003ccode\u003e@​Andrej730\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2015\"\u003egitpython-developers/GitPython#2015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix some incorrect sphinx markups in the docstrings by \u003ca href=\"https://github.com/koyuki7w\"\u003e\u003ccode\u003e@​koyuki7w\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2018\"\u003egitpython-developers/GitPython#2018\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ereplace quansight-labs/setup-python with actions/setup-python by \u003ca href=\"https://github.com/ngoldbaum\"\u003e\u003ccode\u003e@​ngoldbaum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2019\"\u003egitpython-developers/GitPython#2019\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eremove type assertions from util.py by \u003ca href=\"https://github.com/gcmarx\"\u003e\u003ccode\u003e@​gcmarx\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2028\"\u003egitpython-developers/GitPython#2028\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ecorrectly handle \u003ccode\u003euname-cmd\u003c/code\u003e that doesn't point to an executable file by \u003ca href=\"https://github.com/gcmarx\"\u003e\u003ccode\u003e@​gcmarx\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2026\"\u003egitpython-developers/GitPython#2026\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse newer ruff style by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2031\"\u003egitpython-developers/GitPython#2031\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHave CodeQL scan GitHub Actions workflows as well as Python code by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2032\"\u003egitpython-developers/GitPython#2032\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSpecify explicit \u003ccode\u003econtents: read\u003c/code\u003e workflow permissions by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2033\"\u003egitpython-developers/GitPython#2033\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix GitConfigParser not removing quotes from values by \u003ca href=\"https://github.com/betaboon\"\u003e\u003ccode\u003e@​betaboon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2035\"\u003egitpython-developers/GitPython#2035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreserve quoted leading and trailing single-line config var whitespace by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2036\"\u003egitpython-developers/GitPython#2036\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor Git.{AutoInterrupt,CatFileContentStream} nesting by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2037\"\u003egitpython-developers/GitPython#2037\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Git.{AutoInterrupt,CatFileContentStream} static typing by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2039\"\u003egitpython-developers/GitPython#2039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CI \u003ccode\u003emypy\u003c/code\u003e command on free-threaded Python by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2040\"\u003egitpython-developers/GitPython#2040\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSplit Cygwin CI into non-\u003ccode\u003eperformance\u003c/code\u003e and \u003ccode\u003eperformance\u003c/code\u003e test jobs by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2042\"\u003egitpython-developers/GitPython#2042\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpress conditional \u003ccode\u003esetuptools\u003c/code\u003e requirement statically by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2043\"\u003egitpython-developers/GitPython#2043\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix ambiguous \u003ccode\u003e_safer_popen_windows\u003c/code\u003e comment by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2044\"\u003egitpython-developers/GitPython#2044\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClarify \u003ccode\u003eUSE_SHELL\u003c/code\u003e warning helper signature by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2045\"\u003egitpython-developers/GitPython#2045\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest \u003ccode\u003eConfigParser\u003c/code\u003e with whitespace outside the value by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2046\"\u003egitpython-developers/GitPython#2046\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove explicit empty \u003ccode\u003e\u0026quot;\u0026quot;\u003c/code\u003e handling in ConfigParser by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2047\"\u003egitpython-developers/GitPython#2047\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVarious style improvements by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2049\"\u003egitpython-developers/GitPython#2049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't remove quotes if \u003ccode\u003e\\\u003c/code\u003e or \u003ccode\u003e\u0026quot;\u003c/code\u003e are present inside by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2048\"\u003egitpython-developers/GitPython#2048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix updating submodules with relative urls by \u003ca href=\"https://github.com/david0\"\u003e\u003ccode\u003e@​david0\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2051\"\u003egitpython-developers/GitPython#2051\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRun \u003ccode\u003ecat_file.py\u003c/code\u003e fixture without site customizations by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2052\"\u003egitpython-developers/GitPython#2052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Cygwin installation on CI for \u003ccode\u003epip\u003c/code\u003e by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2053\"\u003egitpython-developers/GitPython#2053\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFail \u003ccode\u003etest_installation\u003c/code\u003e on warnings, and remove deprecated license classifier by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2054\"\u003egitpython-developers/GitPython#2054\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd clearer error version for unsupported index error by \u003ca href=\"https://github.com/tombedor\"\u003e\u003ccode\u003e@​tombedor\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2055\"\u003egitpython-developers/GitPython#2055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix name collision by \u003ca href=\"https://github.com/NMertsch\"\u003e\u003ccode\u003e@​NMertsch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2060\"\u003egitpython-developers/GitPython#2060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow relative path url in submodules for submodule_update by \u003ca href=\"https://github.com/t-webber\"\u003e\u003ccode\u003e@​t-webber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2062\"\u003egitpython-developers/GitPython#2062\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/flichtenheld\"\u003e\u003ccode\u003e@​flichtenheld\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1996\"\u003egitpython-developers/GitPython#1996\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kamilkozik7\"\u003e\u003ccode\u003e@​kamilkozik7\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2012\"\u003egitpython-developers/GitPython#2012\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koyuki7w\"\u003e\u003ccode\u003e@​koyuki7w\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2018\"\u003egitpython-developers/GitPython#2018\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ngoldbaum\"\u003e\u003ccode\u003e@​ngoldbaum\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2019\"\u003egitpython-developers/GitPython#2019\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gcmarx\"\u003e\u003ccode\u003e@​gcmarx\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2028\"\u003egitpython-developers/GitPython#2028\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/betaboon\"\u003e\u003ccode\u003e@​betaboon\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2035\"\u003egitpython-developers/GitPython#2035\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/gitpython-developers/GitPython/commit/6ba2c0a2f9ee7feffd7e079621c4845820180c9a\"\u003e\u003ccode\u003e6ba2c0a\u003c/code\u003e\u003c/a\u003e Prepare a new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/bbb3d00ac431dc7966f9715fb813792d234eca81\"\u003e\u003ccode\u003ebbb3d00\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2062\"\u003e#2062\u003c/a\u003e from t-webber/relative_path_submodules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/1ee1e781929074afd66bff1eae007bbee41d117e\"\u003e\u003ccode\u003e1ee1e78\u003c/code\u003e\u003c/a\u003e Add test case for cloning submodules with relative path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/ec2e2c8b894512e7a2364774d77cdd9db73f0566\"\u003e\u003ccode\u003eec2e2c8\u003c/code\u003e\u003c/a\u003e Allow relative path url in submodules for submodule_update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/4d529b71905edae12e4699170f7d9e0a665801b5\"\u003e\u003ccode\u003e4d529b7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2060\"\u003e#2060\u003c/a\u003e from NMertsch/2023-fix-gitconfigparser-autodoc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/80fd2c16211738156e65258381a17cdc429ddd08\"\u003e\u003ccode\u003e80fd2c1\u003c/code\u003e\u003c/a\u003e Don't treat sphinx warnings as errors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/a4aadb0c04bd13af824c14dcc39f88345aa5c440\"\u003e\u003ccode\u003ea4aadb0\u003c/code\u003e\u003c/a\u003e Fix name collision\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/4c7778a93134364cfff7b1597f9eda00a88323af\"\u003e\u003ccode\u003e4c7778a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2057\"\u003e#2057\u003c/a\u003e from gitpython-developers/dependabot/github_actions/...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/5033c3ffd8917d835658c22e84bd86103a2ae52d\"\u003e\u003ccode\u003e5033c3f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2056\"\u003e#2056\u003c/a\u003e from gitpython-developers/dependabot/github_actions/...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/496392b9bf781904421cbd171c0c5395a6fe330c\"\u003e\u003ccode\u003e496392b\u003c/code\u003e\u003c/a\u003e Bump cygwin/cygwin-install-action from 5 to 6\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/gitpython-developers/GitPython/compare/3.1.44...3.1.45\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `griffe` from 1.7.3 to 1.14.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/griffe/releases\"\u003egriffe's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.14.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.14.0\"\u003e1.14.0\u003c/a\u003e - 2025-09-05\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.13.0...1.14.0\"\u003eCompare with 1.13.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eDeprecations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003eon_alias\u003c/code\u003e event's signature changed from \u003ccode\u003eon_alias(self, *, node: AST | ObjectNode, alias: Alias, agent: Visitor | Inspector, **kwargs)\u003c/code\u003e (an [analysis event][analysis-events]) to \u003ccode\u003eon_alias(self, *, alias: Alias, loader: GriffeLoader, **kwargs)\u003c/code\u003e ([a load event][load-events]). Use the new signature, or rename your method to \u003ccode\u003eon_alias_instance\u003c/code\u003e to keep the old signature (\u003ccode\u003eon_alias_instance\u003c/code\u003e is a new analysis event that replaces the old \u003ccode\u003eon_alias\u003c/code\u003e one). Backward compatibility is maintained until next major version.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003eon_wildcard_expansion\u003c/code\u003e event is deprecated. Instead, use the \u003ccode\u003eon_alias\u003c/code\u003e event, and check the [\u003ccode\u003ewildcard_imported\u003c/code\u003e][griffe.Alias.wildcard_imported] boolean attribute of aliases.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003eon_package_loaded\u003c/code\u003e event is renamed to \u003ccode\u003eon_package\u003c/code\u003e. Backward compatibility is maintained until next major version.\u003c/li\u003e\n\u003cli\u003eThe use of previously exposed Git-related utilities (\u003ccode\u003eassert_git_repo\u003c/code\u003e, \u003ccode\u003eget_repo_root\u003c/code\u003e, \u003ccode\u003eget_latest_tag\u003c/code\u003e and \u003ccode\u003etmp_worktree\u003c/code\u003e) is deprecated, as they are not a core part of the library's functionality. These utilities are now part of our internal API.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eanalysis\u003c/code\u003e attribute on objects and aliases, telling whether they were loaded through static or dynamic analysis, or created manually (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/d792a56fcecdf2003791356b857262cba8235f04\"\u003ed792a56\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eExpose Git info in objects, allowing to compute a new \u003ccode\u003esource_link\u003c/code\u003e property (see [Source information][source-information] in our docs) (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/2a8d824840b277d9941981583372abf36d3b17fe\"\u003e2a8d824\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/361\"\u003eIssue-361\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/python/issues/253\"\u003eIssue-mkdocstrings-python-253\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ewildcard_imported\u003c/code\u003e boolean attribute to aliases, deprecate \u003ccode\u003eon_wildcard_expansion\u003c/code\u003e event (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/821300db5d43af0ad7a4d82ff2df15a7fa5f63d6\"\u003e821300d\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eAdd load events that run once a tree is fully constructed, matching analysis events but safer to hook onto (see [Load events][load-events] in our docs) (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/77f928aeab857cb45564462a4f849c2df2cca99a\"\u003e77f928a\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/346\"\u003eIssue-346\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eProvide typed dicts for docstring options (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/945880a04dcbe6eae31afa5021766533c73edc91\"\u003e945880a\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/370\"\u003eIssue-370\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow parenthesized type to be glued (no space) to parameter name in Google-style docstrings (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/4b6f939e12540ce4fb6941f0c95253e3111e7f6f\"\u003e4b6f939\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/375\"\u003eIssue-375\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove deprecation warnings for \u003ccode\u003eon_alias\u003c/code\u003e and \u003ccode\u003eon_package_loaded\u003c/code\u003e (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/d3e50db055715d1a2b794d7e1cf47e6fdc1c305b\"\u003ed3e50db\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.13.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.13.0\"\u003e1.13.0\u003c/a\u003e - 2025-08-26\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.12.1...1.13.0\"\u003eCompare with 1.12.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eis_init_method\u003c/code\u003e property (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5417b7040f8061696c380d9cd4ed2852bf96adf3\"\u003e5417b70\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIncrease maximum recursion limit when calling as a CLI (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5f0d9e61fbac89247bcae06a7010e28e381a5656\"\u003e5f0d9e6\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/402\"\u003eIssue-402\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.12.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.12.1\"\u003e1.12.1\u003c/a\u003e - 2025-08-14\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.12.0...1.12.1\"\u003eCompare with 1.12.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReduce size of JSON dumps by removing keys with null values (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/58227eb377fee66ef66237d7cbed35156ff1fed1\"\u003e58227eb\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/403\"\u003eIssue-403\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd fields to aliases when serializing (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5c9fee2b0c6e4f4e63c7648fa41b2e540f2ecc7f\"\u003e5c9fee2\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eAlso add the option to ignore missing type to the Sphinx parser (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8c9f803e748a659905b06445a349a6cfea948c1c\"\u003e8c9f803\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.12.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/griffe/blob/main/CHANGELOG.md\"\u003egriffe's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.14.0\"\u003e1.14.0\u003c/a\u003e - 2025-09-05\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.13.0...1.14.0\"\u003eCompare with 1.13.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eDeprecations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003eon_alias\u003c/code\u003e event's signature changed from \u003ccode\u003eon_alias(self, *, node: AST | ObjectNode, alias: Alias, agent: Visitor | Inspector, **kwargs)\u003c/code\u003e (an [analysis event][analysis-events]) to \u003ccode\u003eon_alias(self, *, alias: Alias, loader: GriffeLoader, **kwargs)\u003c/code\u003e ([a load event][load-events]). Use the new signature, or rename your method to \u003ccode\u003eon_alias_instance\u003c/code\u003e to keep the old signature (\u003ccode\u003eon_alias_instance\u003c/code\u003e is a new analysis event that replaces the old \u003ccode\u003eon_alias\u003c/code\u003e one). Backward compatibility is maintained until next major version.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003eon_wildcard_expansion\u003c/code\u003e event is deprecated. Instead, use the \u003ccode\u003eon_alias\u003c/code\u003e event, and check the [\u003ccode\u003ewildcard_imported\u003c/code\u003e][griffe.Alias.wildcard_imported] boolean attribute of aliases.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003eon_package_loaded\u003c/code\u003e event is renamed to \u003ccode\u003eon_package\u003c/code\u003e. Backward compatibility is maintained until next major version.\u003c/li\u003e\n\u003cli\u003eThe use of previously exposed Git-related utilities (\u003ccode\u003eassert_git_repo\u003c/code\u003e, \u003ccode\u003eget_repo_root\u003c/code\u003e, \u003ccode\u003eget_latest_tag\u003c/code\u003e and \u003ccode\u003etmp_worktree\u003c/code\u003e) is deprecated, as they are not a core part of the library's functionality. These utilities are now part of our internal API.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eanalysis\u003c/code\u003e attribute on objects and aliases, telling whether they were loaded through static or dynamic analysis, or created manually (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/d792a56fcecdf2003791356b857262cba8235f04\"\u003ed792a56\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eExpose Git info in objects, allowing to compute a new \u003ccode\u003esource_link\u003c/code\u003e property (see [Source information][source-information] in our docs) (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/2a8d824840b277d9941981583372abf36d3b17fe\"\u003e2a8d824\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/361\"\u003eIssue-361\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/python/issues/253\"\u003eIssue-mkdocstrings-python-253\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ewildcard_imported\u003c/code\u003e boolean attribute to aliases, deprecate \u003ccode\u003eon_wildcard_expansion\u003c/code\u003e event (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/821300db5d43af0ad7a4d82ff2df15a7fa5f63d6\"\u003e821300d\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eAdd load events that run once a tree is fully constructed, matching analysis events but safer to hook onto (see [Load events][load-events] in our docs) (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/77f928aeab857cb45564462a4f849c2df2cca99a\"\u003e77f928a\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/346\"\u003eIssue-346\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eProvide typed dicts for docstring options (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/945880a04dcbe6eae31afa5021766533c73edc91\"\u003e945880a\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/370\"\u003eIssue-370\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow parenthesized type to be glued (no space) to parameter name in Google-style docstrings (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/4b6f939e12540ce4fb6941f0c95253e3111e7f6f\"\u003e4b6f939\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/375\"\u003eIssue-375\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove deprecation warnings for \u003ccode\u003eon_alias\u003c/code\u003e and \u003ccode\u003eon_package_loaded\u003c/code\u003e (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/d3e50db055715d1a2b794d7e1cf47e6fdc1c305b\"\u003ed3e50db\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.13.0\"\u003e1.13.0\u003c/a\u003e - 2025-08-26\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.12.1...1.13.0\"\u003eCompare with 1.12.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eis_init_method\u003c/code\u003e property (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5417b7040f8061696c380d9cd4ed2852bf96adf3\"\u003e5417b70\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eB...\n\n_Description has been truncated_","html_url":"https://github.com/pycontribs/subprocess-tee/pull/191","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/pycontribs%2Fsubprocess-tee/issues/191","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/191/packages"},{"uuid":"2788096128","node_id":"PR_kwDOEkpJIs6mLviA","number":189,"state":"open","title":"Bump the dependencies group across 1 directory with 34 updates","user":"dependabot[bot]","labels":["skip-changelog","dependabot-deps-updates"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-08-31T22:12:44.000Z","updated_at":"2025-08-31T22:12:45.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"dependencies","update_count":34,"packages":[{"name":"mkdocstrings","old_version":"0.29.1","new_version":"0.30.0","repository_url":"https://github.com/mkdocstrings/mkdocstrings"},{"name":"argparse-manpage","old_version":"4.6","new_version":"4.7","repository_url":"https://github.com/praiskup/argparse-manpage"},{"name":"backrefs","old_version":"5.8","new_version":"6.0.1","repository_url":"https://github.com/facelessuser/backrefs"},{"name":"bracex","old_version":"2.5.post1","new_version":"2.6","repository_url":"https://github.com/facelessuser/bracex"},{"name":"cachetools","old_version":"6.0.0","new_version":"6.2.0","repository_url":"https://github.com/tkem/cachetools"},{"name":"certifi","old_version":"2025.6.15","new_version":"2025.8.3","repository_url":"https://github.com/certifi/python-certifi"},{"name":"charset-normalizer","old_version":"3.4.2","new_version":"3.4.3","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"coverage","old_version":"7.9.1","new_version":"7.10.6","repository_url":"https://github.com/nedbat/coveragepy"},{"name":"cryptography","old_version":"45.0.4","new_version":"45.0.6","repository_url":"https://github.com/pyca/cryptography"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.0","repository_url":"https://github.com/pypa/distlib"},{"name":"filelock","old_version":"3.18.0","new_version":"3.19.1","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"gitpython","old_version":"3.1.44","new_version":"3.1.45","repository_url":"https://github.com/gitpython-developers/GitPython"},{"name":"griffe","old_version":"1.7.3","new_version":"1.13.0","repository_url":"https://github.com/mkdocstrings/griffe"},{"name":"importlib-resources","old_version":"5.0.7","new_version":"6.5.2","repository_url":"https://github.com/python/importlib_resources"},{"name":"jsonschema","old_version":"4.24.0","new_version":"4.25.1","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"markdown","old_version":"3.8","new_version":"3.8.2","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"mkdocs-autorefs","old_version":"1.4.2","new_version":"1.4.3","repository_url":"https://github.com/mkdocstrings/autorefs"},{"name":"mkdocs-material","old_version":"9.6.14","new_version":"9.6.18","repository_url":"https://github.com/squidfunk/mkdocs-material"},{"name":"mkdocstrings-python","old_version":"1.16.12","new_version":"1.18.2","repository_url":"https://github.com/mkdocstrings/python"},{"name":"parso","old_version":"0.8.4","new_version":"0.8.5","repository_url":"https://github.com/davidhalter/parso"},{"name":"pbr","old_version":"6.1.1","new_version":"7.0.1"},{"name":"pillow","old_version":"11.2.1","new_version":"11.3.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"platformdirs","old_version":"4.3.8","new_version":"4.4.0","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"prompt-toolkit","old_version":"3.0.51","new_version":"3.0.52","repository_url":"https://github.com/prompt-toolkit/python-prompt-toolkit"},{"name":"pygments","old_version":"2.19.1","new_version":"2.19.2","repository_url":"https://github.com/pygments/pygments"},{"name":"pymdown-extensions","old_version":"10.15","new_version":"10.16.1","repository_url":"https://github.com/facelessuser/pymdown-extensions"},{"name":"pytest","old_version":"8.4.0","new_version":"8.4.1","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-sugar","old_version":"1.0.0","new_version":"1.1.1","repository_url":"https://github.com/Teemu/pytest-sugar"},{"name":"pytest-xdist","old_version":"3.7.0","new_version":"3.8.0","repository_url":"https://github.com/pytest-dev/pytest-xdist"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"rich","old_version":"14.0.0","new_version":"14.1.0","repository_url":"https://github.com/Textualize/rich"},{"name":"rpds-py","old_version":"0.25.1","new_version":"0.27.1","repository_url":"https://github.com/crate-py/rpds"},{"name":"urllib3","old_version":"2.4.0","new_version":"2.5.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"wcmatch","old_version":"10.0","new_version":"10.1","repository_url":"https://github.com/facelessuser/wcmatch"}],"path":null,"ecosystem":"conda"},"body":"Bumps the dependencies group with 34 updates in the /.config directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [mkdocstrings](https://github.com/mkdocstrings/mkdocstrings) | `0.29.1` | `0.30.0` |\n| [argparse-manpage](https://github.com/praiskup/argparse-manpage) | `4.6` | `4.7` |\n| [backrefs](https://github.com/facelessuser/backrefs) | `5.8` | `6.0.1` |\n| [bracex](https://github.com/facelessuser/bracex) | `2.5.post1` | `2.6` |\n| [cachetools](https://github.com/tkem/cachetools) | `6.0.0` | `6.2.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.6.15` | `2025.8.3` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.2` | `3.4.3` |\n| [coverage](https://github.com/nedbat/coveragepy) | `7.9.1` | `7.10.6` |\n| [cryptography](https://github.com/pyca/cryptography) | `45.0.4` | `45.0.6` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.0` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.18.0` | `3.19.1` |\n| [gitpython](https://github.com/gitpython-developers/GitPython) | `3.1.44` | `3.1.45` |\n| [griffe](https://github.com/mkdocstrings/griffe) | `1.7.3` | `1.13.0` |\n| [importlib-resources](https://github.com/python/importlib_resources) | `5.0.7` | `6.5.2` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.24.0` | `4.25.1` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.8` | `3.8.2` |\n| [mkdocs-autorefs](https://github.com/mkdocstrings/autorefs) | `1.4.2` | `1.4.3` |\n| [mkdocs-material](https://github.com/squidfunk/mkdocs-material) | `9.6.14` | `9.6.18` |\n| [mkdocstrings-python](https://github.com/mkdocstrings/python) | `1.16.12` | `1.18.2` |\n| [parso](https://github.com/davidhalter/parso) | `0.8.4` | `0.8.5` |\n| [pbr](https://docs.openstack.org/pbr/latest/) | `6.1.1` | `7.0.1` |\n| [pillow](https://github.com/python-pillow/Pillow) | `11.2.1` | `11.3.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.8` | `4.4.0` |\n| [prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) | `3.0.51` | `3.0.52` |\n| [pygments](https://github.com/pygments/pygments) | `2.19.1` | `2.19.2` |\n| [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions) | `10.15` | `10.16.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.0` | `8.4.1` |\n| [pytest-sugar](https://github.com/Teemu/pytest-sugar) | `1.0.0` | `1.1.1` |\n| [pytest-xdist](https://github.com/pytest-dev/pytest-xdist) | `3.7.0` | `3.8.0` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [rich](https://github.com/Textualize/rich) | `14.0.0` | `14.1.0` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.25.1` | `0.27.1` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.4.0` | `2.5.0` |\n| [wcmatch](https://github.com/facelessuser/wcmatch) | `10.0` | `10.1` |\n\n\nUpdates `mkdocstrings` from 0.29.1 to 0.30.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases\"\u003emkdocstrings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.30.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/0.30.0\"\u003e0.30.0\u003c/a\u003e - 2025-07-23\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/0.29.1...0.30.0\"\u003eCompare with 0.29.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003edata-skip-inventory\u003c/code\u003e boolean attribute for elements to skip registration in local inventory (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f856160b03b2c27e1d75fdf4f315c273cb9d9247\"\u003ef856160\u003c/a\u003e by Bartosz Sławecki). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/issues/671\"\u003eIssue-671\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/774\"\u003ePR-774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd I18N support (translations) (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/2b4ed541bc707e55d959092d950ebeecc4fbd136\"\u003e2b4ed54\u003c/a\u003e by Nyuan Zhang). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/645\"\u003ePR-645\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/blob/main/CHANGELOG.md\"\u003emkdocstrings's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/0.30.0\"\u003e0.30.0\u003c/a\u003e - 2025-07-23\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/0.29.1...0.30.0\"\u003eCompare with 0.29.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003edata-skip-inventory\u003c/code\u003e boolean attribute for elements to skip registration in local inventory (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f856160b03b2c27e1d75fdf4f315c273cb9d9247\"\u003ef856160\u003c/a\u003e by Bartosz Sławecki). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/issues/671\"\u003eIssue-671\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/774\"\u003ePR-774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd I18N support (translations) (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/2b4ed541bc707e55d959092d950ebeecc4fbd136\"\u003e2b4ed54\u003c/a\u003e by Nyuan Zhang). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/645\"\u003ePR-645\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/2be445f054c1191d308af7ee0cc881e359f5a4c7\"\u003e\u003ccode\u003e2be445f\u003c/code\u003e\u003c/a\u003e chore: Prepare release 0.30.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f856160b03b2c27e1d75fdf4f315c273cb9d9247\"\u003e\u003ccode\u003ef856160\u003c/code\u003e\u003c/a\u003e feat: Add \u003ccode\u003edata-skip-inventory\u003c/code\u003e boolean attribute for elements to skip regist...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/2b4ed541bc707e55d959092d950ebeecc4fbd136\"\u003e\u003ccode\u003e2b4ed54\u003c/code\u003e\u003c/a\u003e feat: Add I18N support (translations)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/51f217f38af9475415f758866697158d9010967d\"\u003e\u003ccode\u003e51f217f\u003c/code\u003e\u003c/a\u003e chore: Template upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/b1da3d02c4f432f603cbb0004bb35099327706db\"\u003e\u003ccode\u003eb1da3d0\u003c/code\u003e\u003c/a\u003e ci: Ignore Ruff warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/d5bf4e1ed0370853f968b210ad77913faf106eed\"\u003e\u003ccode\u003ed5bf4e1\u003c/code\u003e\u003c/a\u003e docs: Update link to YAML idiosyncrasies\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/0.29.1...0.30.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `argparse-manpage` from 4.6 to 4.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/praiskup/argparse-manpage/releases\"\u003eargparse-manpage's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eargparse-manpage v4.7\u003c/h2\u003e\n\u003cp\u003eNews in v4.7\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003esys.stdout used instead of /dev/stdout\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efixed build compatibility with newer setuptools\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efixed deprecation warnings for datetime and setuptools\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003enew compat method for handling SOURCE_DATE_EPOCH\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/praiskup/argparse-manpage/blob/main/NEWS\"\u003eargparse-manpage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cpre\u003e\u003ccode\u003e\nWARNING: The 'build_manpage' setup.py command will be removed v5\nWARNING: We'll drop the Python 2.7 support in v5\n\u003cp\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eNews in v4.7\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003esys.stdout used instead of /dev/stdout\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efixed build compatibility with newer setuptools\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efixed deprecation warnings for datetime and setuptools\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003enew compat method for handling SOURCE_DATE_EPOCH\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre\u003e\u003ccode\u003e\nNews in v4.6\n\u003cul\u003e\n\u003cli\u003eFix the build against Python 3.13\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eNews in v4.5\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWe newly provide \u003ccode\u003ebuild_manpages.build_py\u003c/code\u003e and \u003ccode\u003ebuild_manpages.install\u003c/code\u003e\ncommand classes that are re-usable from \u003ccode\u003epyproject.toml\u003c/code\u003e.  No need to\nprovide \u003ccode\u003esetup.py\u003c/code\u003e because of \u003ccode\u003eargparse-manpage\u003c/code\u003e.  Solved issue#85.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre\u003e\u003ccode\u003e\nNews in v4.4\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003eprog=\u003c/code\u003e specifier (in setup.py/setup.cfg/pyproject.toml) is now\u003cbr /\u003e\nbetter handled so it doesn't conflict with ArgumentParser(prog=..).\u003cbr /\u003e\nFixes \u003ca href=\"https://redirect.github.com/praiskup/argparse-manpage/issues/79\"\u003epraiskup/argparse-manpage#79\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eNews in v4.3\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe pyproject.toml parsing feature now depends on the python3-tomli library\u003cbr /\u003e\ninstead of python-toml for \u0026quot;python_environment \u0026gt;3, \u0026lt;=3.10\u0026quot;.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eNews in v4.2\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for pyproject.toml specification of manpages added.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/7883becca340aa3ea124143e032848a7b2bdf84b\"\u003e\u003ccode\u003e7883bec\u003c/code\u003e\u003c/a\u003e Release v4.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/765389ed4ee835c09451823d7fbfe22b0dc1674a\"\u003e\u003ccode\u003e765389e\u003c/code\u003e\u003c/a\u003e Move the SOURCE_DATE_EPOCH hack on one place\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/a06ed9c1f03360f8089819c8e845cd670687eb64\"\u003e\u003ccode\u003ea06ed9c\u003c/code\u003e\u003c/a\u003e ci: fix RPM build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/c985432ee15824c43c75548c7ec1bd6f105a7f22\"\u003e\u003ccode\u003ec985432\u003c/code\u003e\u003c/a\u003e Fix deprecation warnings for datetime and setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/306658941368ff0c2dfe2e4fa29b889fb5bbeb2b\"\u003e\u003ccode\u003e3066589\u003c/code\u003e\u003c/a\u003e ci: fedora-tox update list of environments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/b3a2c50e2abc47bd822d848864a80e35251a3147\"\u003e\u003ccode\u003eb3a2c50\u003c/code\u003e\u003c/a\u003e ci: enable ruff \u0026amp; bump deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/6dc54a5272e70b081af728958fd7554a6b0372f3\"\u003e\u003ccode\u003e6dc54a5\u003c/code\u003e\u003c/a\u003e Fix compatibility with newer setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/29f89bba536cf28f6ed66721367ff2ee3f6209b7\"\u003e\u003ccode\u003e29f89bb\u003c/code\u003e\u003c/a\u003e Fix some comments about sys.argv alteration for usage message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/ade76cc8ef49ec804955c6b4027dbae52d482034\"\u003e\u003ccode\u003eade76cc\u003c/code\u003e\u003c/a\u003e Use sys.stdout instead of /dev/stdout\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/praiskup/argparse-manpage/compare/v4.6...v4.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `backrefs` from 5.8 to 6.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facelessuser/backrefs/releases\"\u003ebackrefs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Fix a regression that created an ASCII binary property that would override the ASCII block property.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: POSIX character classes will now always use POSIX compatibility rules instead of Unicode standard rules,\nif any are specified in the Unicode specification. The affected character classes are: \u003ccode\u003e[[:alnum:]]\u003c/code\u003e, \u003ccode\u003e[[:digit:]]\u003c/code\u003e,\n\u003ccode\u003e[[:xdigit:]]\u003c/code\u003e, and  \u003ccode\u003e[[:punct:]]\u003c/code\u003e. To explicitly use standard Unicode rules for these compatibility properties, use\nthe Unicode property form instead: \u003ccode\u003e[\\p{Alnum}]\u003c/code\u003e, \u003ccode\u003e[\\p{Digit}]\u003c/code\u003e, \u003ccode\u003e[\\p{Punct}]\u003c/code\u003e, or \u003ccode\u003e[\\p{XDigit}]\u003c/code\u003e. This has changed\nto ensure no confusion for users expecting compatible POSIX style character class properties.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Scoped ASCII/Unicode flags (\u003ccode\u003e(?a:pattern)\u003c/code\u003e/\u003ccode\u003e(?u:pattern)\u003c/code\u003e) should be respected for Unicode properties in\n\u003ccode\u003ebre\u003c/code\u003e and will ensure ASCII or Unicode range if used.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Fix issues related to detecting disabled scoped flags.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Add support for Python 3.14.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eENHANCE\u003c/strong\u003e: Switch to deploying with PyPI's \u0026quot;Trusted Publisher\u0026quot;.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/63f8a4b14750828b7c1e385844fd36f6f89859e4\"\u003e\u003ccode\u003e63f8a4b\u003c/code\u003e\u003c/a\u003e Fix grammar\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/7f4bf611e6e7fcc2aa4e0eba2872b5f51b7fc908\"\u003e\u003ccode\u003e7f4bf61\u003c/code\u003e\u003c/a\u003e Rework POSIX alias\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/956df5f387f1958110e5a7cf2a98d42a8309d9b6\"\u003e\u003ccode\u003e956df5f\u003c/code\u003e\u003c/a\u003e Fix ASCII block regression\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/7a948f083c3c87114a8dd87c95dff1893f3af82a\"\u003e\u003ccode\u003e7a948f0\u003c/code\u003e\u003c/a\u003e Clean up code and add more comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/9b2e406be36c1e0fc72651adbc7d2d63c4151483\"\u003e\u003ccode\u003e9b2e406\u003c/code\u003e\u003c/a\u003e Add more flag tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/47d62b1270ca7f1717e7acdb56e8e6ed3e9e8f10\"\u003e\u003ccode\u003e47d62b1\u003c/code\u003e\u003c/a\u003e Handle enable/disable properly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/8e7596700b913e13f478da57e0ba0965f2d9ed3b\"\u003e\u003ccode\u003e8e75967\u003c/code\u003e\u003c/a\u003e Fix issues with scoped flags (\u003ca href=\"https://redirect.github.com/facelessuser/backrefs/issues/192\"\u003e#192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/0df8e7746d3ea31824af97ea4ed713a3facded5b\"\u003e\u003ccode\u003e0df8e77\u003c/code\u003e\u003c/a\u003e POSIX character classes should use POSIX compatibility rules by default (\u003ca href=\"https://redirect.github.com/facelessuser/backrefs/issues/191\"\u003e#191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/31fd8c5c0338eefe41452d52f99012c0fecfdd82\"\u003e\u003ccode\u003e31fd8c5\u003c/code\u003e\u003c/a\u003e Call mkdocs directly on deploy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/8b3a24bfc1cacde6fc9ab4edfaed0f5a9206c554\"\u003e\u003ccode\u003e8b3a24b\u003c/code\u003e\u003c/a\u003e Fix deploy logic\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/facelessuser/backrefs/compare/5.8...6.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bracex` from 2.5.post1 to 2.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facelessuser/bracex/releases\"\u003ebracex's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Drop support for Python 3.8.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Add support for Python 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/bracex/commit/6d109c55372f0d5086adb7cf84a951cc06391a69\"\u003e\u003ccode\u003e6d109c5\u003c/code\u003e\u003c/a\u003e Add trusted publishing and support for Python 3.14 (\u003ca href=\"https://redirect.github.com/facelessuser/bracex/issues/44\"\u003e#44\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/bracex/commit/c14d46fb495a8fdcd0ec51d4dd42aa587807407d\"\u003e\u003ccode\u003ec14d46f\u003c/code\u003e\u003c/a\u003e Add security policy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/bracex/commit/14645af4bf4de0e1abe4fd6c29bf98871f549273\"\u003e\u003ccode\u003e14645af\u003c/code\u003e\u003c/a\u003e Typos: remove duplicate words\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/facelessuser/bracex/compare/2.5.post1...2.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachetools` from 6.0.0 to 6.2.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev6.2.0 (2025-08-25)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove general \u003ccode\u003eRRCache\u003c/code\u003e performance by storing cache keys in an\nadditional sequence container.  Note that this will increase memory\nconsumption.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more unit tests.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.1.0 (2025-06-16)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove \u003ccode\u003eLFUCache\u003c/code\u003e insertion performance by switching to an\nimplementation based on the \u003ccode\u003ecacheing \u0026lt;https://pypi.org/project/cacheing/\u0026gt;\u003c/code\u003e_ library.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate CI environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/4a238adc490e81db58d843b011afdbe3dd9097a5\"\u003e\u003ccode\u003e4a238ad\u003c/code\u003e\u003c/a\u003e Release v6.2.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/9d511b769f8fb58981fb77fece846984aaaf49e6\"\u003e\u003ccode\u003e9d511b7\u003c/code\u003e\u003c/a\u003e Improve unit tests.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/79aa8c7c0eacd5d75e154bc23687ecdaf9ad1d75\"\u003e\u003ccode\u003e79aa8c7\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/356\"\u003e#356\u003c/a\u003e: Improve RRCache performance.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/bb6d71a745785429b14aae30b7752f4765dc35c3\"\u003e\u003ccode\u003ebb6d71a\u003c/code\u003e\u003c/a\u003e Release v6.1.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/77a9c59e3324496a79e6c4d5a7b5bfdb9a7f7f42\"\u003e\u003ccode\u003e77a9c59\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/260\"\u003e#260\u003c/a\u003e: Use LFUCache implementation based on Blake Reid's \u0026quot;cacheing\u0026quot; library.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/b1d4eb2972ca8f0ab49e22eae3bb47c1eb8b552c\"\u003e\u003ccode\u003eb1d4eb2\u003c/code\u003e\u003c/a\u003e Bump codecov/codecov-action from 5.4.2 to 5.4.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/820b154494e91aa5bfe63a3fa2033c63a9c84603\"\u003e\u003ccode\u003e820b154\u003c/code\u003e\u003c/a\u003e Refactor \u003ca href=\"https://github.com/cachedmethod\"\u003e\u003ccode\u003e@​cachedmethod\u003c/code\u003e\u003c/a\u003e unit tests.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tkem/cachetools/compare/v6.0.0...v6.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2025.6.15 to 2025.8.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/a97d9ad8f87c382378dddc0b0b33b9770932404e\"\u003e\u003ccode\u003ea97d9ad\u003c/code\u003e\u003c/a\u003e 2025.08.03 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ddd90c6d726f174c1e5820379dac0f2a8fc723a1\"\u003e\u003ccode\u003eddd90c6\u003c/code\u003e\u003c/a\u003e 2025.07.14 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/359\"\u003e#359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/d905221c916d51077f5c8071a0f7aa2df2a37c52\"\u003e\u003ccode\u003ed905221\u003c/code\u003e\u003c/a\u003e 2025.07.09 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.06.15...2025.08.03\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.4.2 to 3.4.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.4.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/46f662da20edeced520c8819965a37eefbbc85de\"\u003e\u003ccode\u003e46f662d\u003c/code\u003e\u003c/a\u003e Release 3.4.3 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/638\"\u003e#638\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/1a059b26c155dd5fca408b0e0145c930633c4bf2\"\u003e\u003ccode\u003e1a059b2\u003c/code\u003e\u003c/a\u003e :wrench: skip building on freethreaded as we're not confident it is stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/2275e3d3fea2bf6232661f1e9c21e7b81428e2a6\"\u003e\u003ccode\u003e2275e3d\u003c/code\u003e\u003c/a\u003e :pencil: final note in CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/c96acdfdb34b5b1deb6f70803167bae89b209832\"\u003e\u003ccode\u003ec96acdf\u003c/code\u003e\u003c/a\u003e :pencil: update release date on CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/43e5460518003df24ad1a3e7b5c0a34445395012\"\u003e\u003ccode\u003e43e5460\u003c/code\u003e\u003c/a\u003e :pencil: update README.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f277074e281a070cfa64fc91c46f8291043fc37c\"\u003e\u003ccode\u003ef277074\u003c/code\u003e\u003c/a\u003e :wrench: automatically lower confidence on small bytes str on non Unicode res...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/15ae2411072b5e026f2c9d6ec81b55f75af7dcf2\"\u003e\u003ccode\u003e15ae241\u003c/code\u003e\u003c/a\u003e :bug: automatically fallback on valid UTF-16 or UTF-32 even if the md says it...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/37397c1799a05454ab42fbbc94a7643cdb277924\"\u003e\u003ccode\u003e37397c1\u003c/code\u003e\u003c/a\u003e :wrench: enable 3.14 in nox test_mypyc session\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/cb82537ecad195f48383b92e330351cea1fc6bc8\"\u003e\u003ccode\u003ecb82537\u003c/code\u003e\u003c/a\u003e :rewind: revert license due to compat python 3.7 issue setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/6a2efeb4c6e205964b61008b0c36ddf88c321543\"\u003e\u003ccode\u003e6a2efeb\u003c/code\u003e\u003c/a\u003e :art: fix linter errors\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.2...3.4.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.9.1 to 7.10.6\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.10.6 — 2025-08-29\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003esource\u003c/code\u003e directories were not properly communicated to subprocesses\nthat ran in different directories, as reported in \u003ccode\u003eissue 1499\u003c/code\u003e_.  This is now\nfixed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance: \u003ccode\u003eAlex Gaynor continues fine-tuning \u0026lt;pull 2038_\u0026gt;\u003c/code\u003e_ the speed of\ncombination, especially with many contexts.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1499: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1499\"\u003enedbat/coveragepy#1499\u003c/a\u003e\n.. _pull 2038: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/2038\"\u003enedbat/coveragepy#2038\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-10-5:\u003c/p\u003e\n\u003ch2\u003eVersion 7.10.5 — 2025-08-23\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBig speed improvements for \u003ccode\u003ecoverage combine\u003c/code\u003e: it's now about twice as\nfast! Huge thanks to Alex Gaynor for pull requests \u003ccode\u003e2032 \u0026lt;pull 2032_\u0026gt;\u003c/code\u003e\u003cem\u003e,\n\u003ccode\u003e2033 \u0026lt;pull 2033_\u0026gt;\u003c/code\u003e\u003c/em\u003e, and \u003ccode\u003e2034 \u0026lt;pull 2034_\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _pull 2032: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/2032\"\u003enedbat/coveragepy#2032\u003c/a\u003e\n.. _pull 2033: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/2033\"\u003enedbat/coveragepy#2033\u003c/a\u003e\n.. _pull 2034: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/2034\"\u003enedbat/coveragepy#2034\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-10-4:\u003c/p\u003e\n\u003ch2\u003eVersion 7.10.4 — 2025-08-16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003epatch = fork\u003c/code\u003e for times when the built-in forking support is\ninsufficient.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003epatch = execv\u003c/code\u003e also inherits the entire coverage configuration now.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _changes_7-10-3:\u003c/p\u003e\n\u003ch2\u003eVersion 7.10.3 — 2025-08-10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixes for \u003ccode\u003epatch = subprocess\u003c/code\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eIf subprocesses spawned yet more subprocesses simultaneously, some coverage\ncould be missed.  This is now fixed, closing \u003ccode\u003eissue 2024\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIf subprocesses were created in other directories, their data files were\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/88c55ff87437f7e59b42d131d0e2b6ce413546bf\"\u003e\u003ccode\u003e88c55ff\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.10.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/01d89959bfa825f661121e0f8d173f3ae1ecedac\"\u003e\u003ccode\u003e01d8995\u003c/code\u003e\u003c/a\u003e docs: prep for 7.10.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/9b0c24ffc17840464c2343b702a6ee44e10fcadf\"\u003e\u003ccode\u003e9b0c24f\u003c/code\u003e\u003c/a\u003e docs: thanks Alex \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2038\"\u003e#2038\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/66d69108654f6fc1de916a37fc06ac898091aa2d\"\u003e\u003ccode\u003e66d6910\u003c/code\u003e\u003c/a\u003e fix: make \u003ccode\u003esource\u003c/code\u003e paths absolute where they exist. \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1499\"\u003e#1499\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/bb3382f50f2b91aebb046d665334a5d361e5ddc5\"\u003e\u003ccode\u003ebb3382f\u003c/code\u003e\u003c/a\u003e build: no need for the combine/html times now\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/9ea349a164527832a49faa3eeec628d59ef75c7c\"\u003e\u003ccode\u003e9ea349a\u003c/code\u003e\u003c/a\u003e lab: warn_executed.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/808c9b48af3ad7b567182d383eb31451615664e0\"\u003e\u003ccode\u003e808c9b4\u003c/code\u003e\u003c/a\u003e build: changing metacov.ini should trigger metacov\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/384f5f22bd1ef52000d80922de03922a58ff936c\"\u003e\u003ccode\u003e384f5f2\u003c/code\u003e\u003c/a\u003e build: oops, some 'if's are really line pragmas\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/a7224af73365ba2d217f0e0966c7873c5bac3a67\"\u003e\u003ccode\u003ea7224af\u003c/code\u003e\u003c/a\u003e perf: pre-compute the mapping between other_db.context and main.context (\u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2038\"\u003e#2038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/5c00c5ba4bcd4f7da6a9f0ccd0797e0944415e8a\"\u003e\u003ccode\u003e5c00c5b\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group with 3 updates (\u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2039\"\u003e#2039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nedbat/coveragepy/compare/7.9.1...7.10.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 45.0.4 to 45.0.6\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e45.0.6 - 2025-08-05\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.2.\n\u003cp\u003e.. _v45-0-5:\u003c/p\u003e\n\u003cp\u003e45.0.5 - 2025-07-02\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.1.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v45-0-4:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/66198c23c97c9594d64540e5a866e4b4121aec2d\"\u003e\u003ccode\u003e66198c2\u003c/code\u003e\u003c/a\u003e Bump for release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13249\"\u003e#13249\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/3e53a233b65123d2a836b58ccdc427ed5207f92b\"\u003e\u003ccode\u003e3e53a23\u003c/code\u003e\u003c/a\u003e Bump for 45.0.5 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13135\"\u003e#13135\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pyca/cryptography/compare/45.0.4...45.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `distlib` from 0.3.9 to 0.4.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/distlib/blob/master/CHANGES.rst\"\u003edistlib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.4.0\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nReleased: 2025-07-17\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003emarkers\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd the \u003ccode\u003einterpret_parsed\u003c/code\u003e function.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ewheel\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/238\"\u003e#238\u003c/a\u003e: Add build tag to wheel metadata if specified.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/243\"\u003e#243\u003c/a\u003e: Update to support free-threading version of Python (3.13t).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/246\"\u003e#246\u003c/a\u003e: Support subdirectories in the dist-info directory. Thanks to Pieter P for the patch.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/248\"\u003e#248\u003c/a\u003e: Fix path normalisation issue caused by the fix for \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/246\"\u003e#246\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMove import in script wrapper to \u0026quot;if \u003cstrong\u003ename\u003c/strong\u003e == 'main'\u0026quot; clause.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003etests\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/245\"\u003e#245\u003c/a\u003e: Skip test_package_data if a SKIP_EXT_PACKAGE_DATA environment variable is present.\n\u003c/code\u003e\u003c/pre\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/aff2cbbc4e8a87b9440cb93472789a213813dbd6\"\u003e\u003ccode\u003eaff2cbb\u003c/code\u003e\u003c/a\u003e Finalise version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/3716c4bcccac19d0c0f2ce0d1272dd33996381b5\"\u003e\u003ccode\u003e3716c4b\u003c/code\u003e\u003c/a\u003e Update change log, widen exception catching in test.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/660bd337bf3217a7bd907c2ba8a2f8dd291ac793\"\u003e\u003ccode\u003e660bd33\u003c/code\u003e\u003c/a\u003e Changes for 0.4.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/56b4ad938455048fc79e599d369e02a1414e9946\"\u003e\u003ccode\u003e56b4ad9\u003c/code\u003e\u003c/a\u003e Guard script wrapper entrypoint import with if \u003cstrong\u003emain\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/242\"\u003e#242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/fe573669087cb1109fb0cc249bf0e06a5461324c\"\u003e\u003ccode\u003efe57366\u003c/code\u003e\u003c/a\u003e docs: update coverage results link (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/250\"\u003e#250\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/c3286e508bb60cd2337408d88eb614a93b612d8c\"\u003e\u003ccode\u003ec3286e5\u003c/code\u003e\u003c/a\u003e Temporarily exclude 3.13t on windows-latest.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/e6b83d3b0eeb11d8e7b053f11139d15aab89d196\"\u003e\u003ccode\u003ee6b83d3\u003c/code\u003e\u003c/a\u003e Normalize archive paths in dist-info (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/248\"\u003e#248\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/93baffeaa1773796d802bb761607a6466790dcba\"\u003e\u003ccode\u003e93baffe\u003c/code\u003e\u003c/a\u003e Skip no-longer-relevant test.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/83f656836f4b6d8175172fcb8370fbee691f2bec\"\u003e\u003ccode\u003e83f6568\u003c/code\u003e\u003c/a\u003e Support subdirectories in .dist-info (fixes \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/246\"\u003e#246\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/247\"\u003e#247\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/f918abd5d20879041704f9d719533b213a55ad48\"\u003e\u003ccode\u003ef918abd\u003c/code\u003e\u003c/a\u003e Update \u003ccode\u003etest_wheel.WheelTestCase.test_abi\u003c/code\u003e for freethreading (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/244\"\u003e#244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/distlib/compare/0.3.9...0.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `filelock` from 3.18.0 to 3.19.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/py-filelock/releases\"\u003efilelock's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.19.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd 3.14t (free threading) to matrix by \u003ca href=\"https://github.com/paultiq\"\u003e\u003ccode\u003e@​paultiq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/433\"\u003etox-dev/filelock#433\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIncrease test coverage by \u003ca href=\"https://github.com/paultiq\"\u003e\u003ccode\u003e@​paultiq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/434\"\u003etox-dev/filelock#434\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/paultiq\"\u003e\u003ccode\u003e@​paultiq\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/433\"\u003etox-dev/filelock#433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.19.0...3.19.1\"\u003ehttps://github.com/tox-dev/filelock/compare/3.19.0...3.19.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.19.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for 3.14 by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/432\"\u003etox-dev/filelock#432\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.18.0...3.19.0\"\u003ehttps://github.com/tox-dev/filelock/compare/3.18.0...3.19.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/8d1009f08a6a64624fad91d1079062ef31b8c2b4\"\u003e\u003ccode\u003e8d1009f\u003c/code\u003e\u003c/a\u003e Update release.yaml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/66a428e97a874b44b0310072f6c974226f55a472\"\u003e\u003ccode\u003e66a428e\u003c/code\u003e\u003c/a\u003e Increase test coverage (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/434\"\u003e#434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/0dfc86eebd2c76ae959a409bcbc3112cc1ec5890\"\u003e\u003ccode\u003e0dfc86e\u003c/code\u003e\u003c/a\u003e add 3.14 to matrix (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/433\"\u003e#433\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/0c54837e318ebe8a692b529722430cb38134bf7c\"\u003e\u003ccode\u003e0c54837\u003c/code\u003e\u003c/a\u003e Add support for 3.14 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/432\"\u003e#432\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/77d02f5ada3a1a92167b1beee35a7815cbde0fcf\"\u003e\u003ccode\u003e77d02f5\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/430\"\u003e#430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/bc972b33bf253bb9f08db32b19ffd4119a74706e\"\u003e\u003ccode\u003ebc972b3\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/429\"\u003e#429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/78d02cb5ff42b22a56ad1a36755361a6b4601765\"\u003e\u003ccode\u003e78d02cb\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/428\"\u003e#428\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/18cdb5d1c78a7a459463480303e9820f33cdf041\"\u003e\u003ccode\u003e18cdb5d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/427\"\u003e#427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/b198a096d2bae58596479497d18a82bbeec515c8\"\u003e\u003ccode\u003eb198a09\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/426\"\u003e#426\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/6b097e76de603d9be6a24c5058b6fe53ef003afd\"\u003e\u003ccode\u003e6b097e7\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/425\"\u003e#425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/py-filelock/compare/3.18.0...3.19.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gitpython` from 3.1.44 to 3.1.45\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/gitpython-developers/GitPython/releases\"\u003egitpython's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.1.45\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix various version-related CI breakages by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1987\"\u003egitpython-developers/GitPython#1987\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo some CI cleanup to make reports clearer and future changes easier by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1989\"\u003egitpython-developers/GitPython#1989\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAffirm that gitdb and smmap advisories can also be created by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1991\"\u003egitpython-developers/GitPython#1991\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix links to gitdb and smmap \u003ccode\u003eSECURITY.md\u003c/code\u003e files by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1992\"\u003egitpython-developers/GitPython#1992\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest Python 3.13 regularly on Ubuntu and macOS on CI by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1990\"\u003egitpython-developers/GitPython#1990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRepo.rev_parse: Handle \u003c!-- raw HTML omitted --\u003e^{commit} correctly by \u003ca href=\"https://github.com/flichtenheld\"\u003e\u003ccode\u003e@​flichtenheld\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1996\"\u003egitpython-developers/GitPython#1996\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFuzzing: Fix Broken Fuzz Test for Git Submodule Handling by \u003ca href=\"https://github.com/DaveLak\"\u003e\u003ccode\u003e@​DaveLak\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1997\"\u003egitpython-developers/GitPython#1997\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWork around Cygwin CI failure \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2004\"\u003e#2004\u003c/a\u003e, except for \u003ccode\u003etest_installation\u003c/code\u003e by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2007\"\u003egitpython-developers/GitPython#2007\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMark \u003ccode\u003etest_installation\u003c/code\u003e xfail on Cygwin CI by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2009\"\u003egitpython-developers/GitPython#2009\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eIndexFile._to_relative_path\u003c/code\u003e - fix case where absolute path gets stripped of trailing slash by \u003ca href=\"https://github.com/kamilkozik7\"\u003e\u003ccode\u003e@​kamilkozik7\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2012\"\u003egitpython-developers/GitPython#2012\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse WSL1 on CI by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2010\"\u003egitpython-developers/GitPython#2010\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest free-threaded Python (but only on Linux) by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2011\"\u003egitpython-developers/GitPython#2011\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse property decorator to support typing by \u003ca href=\"https://github.com/Andrej730\"\u003e\u003ccode\u003e@​Andrej730\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2015\"\u003egitpython-developers/GitPython#2015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix some incorrect sphinx markups in the docstrings by \u003ca href=\"https://github.com/koyuki7w\"\u003e\u003ccode\u003e@​koyuki7w\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2018\"\u003egitpython-developers/GitPython#2018\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ereplace quansight-labs/setup-python with actions/setup-python by \u003ca href=\"https://github.com/ngoldbaum\"\u003e\u003ccode\u003e@​ngoldbaum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2019\"\u003egitpython-developers/GitPython#2019\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eremove type assertions from util.py by \u003ca href=\"https://github.com/gcmarx\"\u003e\u003ccode\u003e@​gcmarx\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2028\"\u003egitpython-developers/GitPython#2028\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ecorrectly handle \u003ccode\u003euname-cmd\u003c/code\u003e that doesn't point to an executable file by \u003ca href=\"https://github.com/gcmarx\"\u003e\u003ccode\u003e@​gcmarx\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2026\"\u003egitpython-developers/GitPython#2026\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse newer ruff style by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2031\"\u003egitpython-developers/GitPython#2031\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHave CodeQL scan GitHub Actions workflows as well as Python code by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2032\"\u003egitpython-developers/GitPython#2032\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSpecify explicit \u003ccode\u003econtents: read\u003c/code\u003e workflow permissions by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2033\"\u003egitpython-developers/GitPython#2033\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix GitConfigParser not removing quotes from values by \u003ca href=\"https://github.com/betaboon\"\u003e\u003ccode\u003e@​betaboon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2035\"\u003egitpython-developers/GitPython#2035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreserve quoted leading and trailing single-line config var whitespace by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2036\"\u003egitpython-developers/GitPython#2036\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor Git.{AutoInterrupt,CatFileContentStream} nesting by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2037\"\u003egitpython-developers/GitPython#2037\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Git.{AutoInterrupt,CatFileContentStream} static typing by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2039\"\u003egitpython-developers/GitPython#2039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CI \u003ccode\u003emypy\u003c/code\u003e command on free-threaded Python by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2040\"\u003egitpython-developers/GitPython#2040\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSplit Cygwin CI into non-\u003ccode\u003eperformance\u003c/code\u003e and \u003ccode\u003eperformance\u003c/code\u003e test jobs by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2042\"\u003egitpython-developers/GitPython#2042\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpress conditional \u003ccode\u003esetuptools\u003c/code\u003e requirement statically by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2043\"\u003egitpython-developers/GitPython#2043\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix ambiguous \u003ccode\u003e_safer_popen_windows\u003c/code\u003e comment by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2044\"\u003egitpython-developers/GitPython#2044\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClarify \u003ccode\u003eUSE_SHELL\u003c/code\u003e warning helper signature by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2045\"\u003egitpython-developers/GitPython#2045\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest \u003ccode\u003eConfigParser\u003c/code\u003e with whitespace outside the value by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2046\"\u003egitpython-developers/GitPython#2046\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove explicit empty \u003ccode\u003e\u0026quot;\u0026quot;\u003c/code\u003e handling in ConfigParser by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2047\"\u003egitpython-developers/GitPython#2047\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVarious style improvements by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2049\"\u003egitpython-developers/GitPython#2049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't remove quotes if \u003ccode\u003e\\\u003c/code\u003e or \u003ccode\u003e\u0026quot;\u003c/code\u003e are present inside by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2048\"\u003egitpython-developers/GitPython#2048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix updating submodules with relative urls by \u003ca href=\"https://github.com/david0\"\u003e\u003ccode\u003e@​david0\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2051\"\u003egitpython-developers/GitPython#2051\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRun \u003ccode\u003ecat_file.py\u003c/code\u003e fixture without site customizations by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2052\"\u003egitpython-developers/GitPython#2052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Cygwin installation on CI for \u003ccode\u003epip\u003c/code\u003e by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2053\"\u003egitpython-developers/GitPython#2053\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFail \u003ccode\u003etest_installation\u003c/code\u003e on warnings, and remove deprecated license classifier by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2054\"\u003egitpython-developers/GitPython#2054\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd clearer error version for unsupported index error by \u003ca href=\"https://github.com/tombedor\"\u003e\u003ccode\u003e@​tombedor\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2055\"\u003egitpython-developers/GitPython#2055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix name collision by \u003ca href=\"https://github.com/NMertsch\"\u003e\u003ccode\u003e@​NMertsch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2060\"\u003egitpython-developers/GitPython#2060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow relative path url in submodules for submodule_update by \u003ca href=\"https://github.com/t-webber\"\u003e\u003ccode\u003e@​t-webber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2062\"\u003egitpython-developers/GitPython#2062\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/flichtenheld\"\u003e\u003ccode\u003e@​flichtenheld\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1996\"\u003egitpython-developers/GitPython#1996\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kamilkozik7\"\u003e\u003ccode\u003e@​kamilkozik7\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2012\"\u003egitpython-developers/GitPython#2012\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koyuki7w\"\u003e\u003ccode\u003e@​koyuki7w\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2018\"\u003egitpython-developers/GitPython#2018\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ngoldbaum\"\u003e\u003ccode\u003e@​ngoldbaum\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2019\"\u003egitpython-developers/GitPython#2019\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gcmarx\"\u003e\u003ccode\u003e@​gcmarx\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2028\"\u003egitpython-developers/GitPython#2028\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/betaboon\"\u003e\u003ccode\u003e@​betaboon\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2035\"\u003egitpython-developers/GitPython#2035\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/gitpython-developers/GitPython/commit/6ba2c0a2f9ee7feffd7e079621c4845820180c9a\"\u003e\u003ccode\u003e6ba2c0a\u003c/code\u003e\u003c/a\u003e Prepare a new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/bbb3d00ac431dc7966f9715fb813792d234eca81\"\u003e\u003ccode\u003ebbb3d00\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2062\"\u003e#2062\u003c/a\u003e from t-webber/relative_path_submodules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/1ee1e781929074afd66bff1eae007bbee41d117e\"\u003e\u003ccode\u003e1ee1e78\u003c/code\u003e\u003c/a\u003e Add test case for cloning submodules with relative path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/ec2e2c8b894512e7a2364774d77cdd9db73f0566\"\u003e\u003ccode\u003eec2e2c8\u003c/code\u003e\u003c/a\u003e Allow relative path url in submodules for submodule_update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/4d529b71905edae12e4699170f7d9e0a665801b5\"\u003e\u003ccode\u003e4d529b7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2060\"\u003e#2060\u003c/a\u003e from NMertsch/2023-fix-gitconfigparser-autodoc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/80fd2c16211738156e65258381a17cdc429ddd08\"\u003e\u003ccode\u003e80fd2c1\u003c/code\u003e\u003c/a\u003e Don't treat sphinx warnings as errors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/a4aadb0c04bd13af824c14dcc39f88345aa5c440\"\u003e\u003ccode\u003ea4aadb0\u003c/code\u003e\u003c/a\u003e Fix name collision\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/4c7778a93134364cfff7b1597f9eda00a88323af\"\u003e\u003ccode\u003e4c7778a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2057\"\u003e#2057\u003c/a\u003e from gitpython-developers/dependabot/github_actions/...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/5033c3ffd8917d835658c22e84bd86103a2ae52d\"\u003e\u003ccode\u003e5033c3f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2056\"\u003e#2056\u003c/a\u003e from gitpython-developers/dependabot/github_actions/...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/496392b9bf781904421cbd171c0c5395a6fe330c\"\u003e\u003ccode\u003e496392b\u003c/code\u003e\u003c/a\u003e Bump cygwin/cygwin-install-action from 5 to 6\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/gitpython-developers/GitPython/compare/3.1.44...3.1.45\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `griffe` from 1.7.3 to 1.13.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/griffe/releases\"\u003egriffe's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.13.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.13.0\"\u003e1.13.0\u003c/a\u003e - 2025-08-26\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.12.1...1.13.0\"\u003eCompare with 1.12.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eis_init_method\u003c/code\u003e property (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5417b7040f8061696c380d9cd4ed2852bf96adf3\"\u003e5417b70\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIncrease maximum recursion limit when calling as a CLI (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5f0d9e61fbac89247bcae06a7010e28e381a5656\"\u003e5f0d9e6\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/402\"\u003eIssue-402\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.12.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.12.1\"\u003e1.12.1\u003c/a\u003e - 2025-08-14\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.12.0...1.12.1\"\u003eCompare with 1.12.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReduce size of JSON dumps by removing keys with null values (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/58227eb377fee66ef66237d7cbed35156ff1fed1\"\u003e58227eb\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/403\"\u003eIssue-403\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd fields to aliases when serializing (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5c9fee2b0c6e4f4e63c7648fa41b2e540f2ecc7f\"\u003e5c9fee2\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eAlso add the option to ignore missing type to the Sphinx parser (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8c9f803e748a659905b06445a349a6cfea948c1c\"\u003e8c9f803\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.12.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.12.0\"\u003e1.12.0\u003c/a\u003e - 2025-08-14\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.11.1...1.12.0\"\u003eCompare with 1.11.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow disabling \u0026quot;missing type/annotation\u0026quot; warnings (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/07564b43524220342c3078ece406459c08b80a86\"\u003e07564b4\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/issues/437\"\u003eIssue-mkdocstrings-437\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.11.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.11.1\"\u003e1.11.1\u003c/a\u003e - 2025-08-11\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.11.0...1.11.1\"\u003eCompare with 1.11.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix type parameters loading (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/ce41279cc8b7abc45c7b94316b24e87d4a1edc40\"\u003ece41279\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMove private \u003ccode\u003e_griffe\u003c/code\u003e package under \u003ccode\u003egriffe._internal\u003c/code\u003e (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8f37158eb5617d2cf686f9a0a044f29c638598b2\"\u003e8f37158\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.11.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.11.0\"\u003e1.11.0\u003c/a\u003e - 2025-08-07\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.10.0...1.11.0\"\u003eCompare with 1.10.0\u003c/a\u003e\u003c!-- raw HTML omitted --\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/mkdocstrings/griffe/blob/main/CHANGELOG.md\"\u003egriffe's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.13.0\"\u003e1.13.0\u003c/a\u003e - 2025-08-26\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.12.1...1.13.0\"\u003eCompare with 1.12.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eis_init_method\u003c/code\u003e property (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5417b7040f8061696c380d9cd4ed2852bf96adf3\"\u003e5417b70\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIncrease maximum recursion limit when calling as a CLI (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5f0d9e61fbac89247bcae06a7010e28e381a5656\"\u003e5f0d9e6\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/402\"\u003eIssue-402\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.12.1\"\u003e1.12.1\u003c/a\u003e - 2025-08-14\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.12.0...1.12.1\"\u003eCompare with 1.12.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReduce size of JSON dumps by removing keys with null values (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/58227eb377fee66ef66237d7cbed35156ff1fed1\"\u003e58227eb\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/403\"\u003eIssue-403\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd fields to aliases when serializing (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5c9fee2b0c6e4f4e63c7648fa41b2e540f2ecc7f\"\u003e5c9fee2\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eAlso add the option to ignore missing type to the Sphinx parser (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8c9f803e748a659905b06445a349a6cfea948c1c\"\u003e8c9f803\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.12.0\"\u003e1.12.0\u003c/a\u003e - 2025-08-14\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.11.1...1.12.0\"\u003eCompare with 1.11.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow disabling \u0026quot;missing type/annotation\u0026quot; warnings (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/07564b43524220342c3078ece406459c08b80a86\"\u003e07564b4\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/issues/437\"\u003eIssue-mkdocstrings-437\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.11.1\"\u003e1.11.1\u003c/a\u003e - 2025-08-11\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.11.0...1.11.1\"\u003eCompare with 1.11.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix type parameters loading (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/ce41279cc8b7abc45c7b94316b24e87d4a1edc40\"\u003ece41279\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMove private \u003ccode\u003e_griffe\u003c/code\u003e package under \u003ccode\u003egriffe._internal\u003c/code\u003e (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8f37158eb5617d2cf686f9a0a044f29c638598b2\"\u003e8f37158\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.11.0\"\u003e1.11.0\u003c/a\u003e - 2025-08-07\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.10.0...1.11.0\"\u003eCompare with 1.10.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd data to dict/json output (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/9731afcbeab377e7f3f69a0d18d19677e790072e\"\u003e9731afc\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/e13f5edaba1ec16c2c20c2661eb81279e984dcea\"\u003e\u003ccode\u003ee13f5ed\u003c/code\u003e\u003c/a\u003e chore: Prepare release 1.13.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5417b7040f8061696c380d9cd4ed2852bf96adf3\"\u003e\u003ccode\u003e5417b70\u003c/code\u003e\u003c/a\u003e feat: Add \u003ccode\u003eis_init_method\u003c/code\u003e property\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/fa01ac0d3c4f70030a72e2395293f856d98eb69f\"\u003e\u003ccode\u003efa01ac0\u003c/code\u003e\u003c/a\u003e ci: Fix Pylance warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5f0d9e61fbac89247bcae06a7010e28e381a5656\"\u003e\u003ccode\u003e5f0d9e6\u003c/code\u003e\u003c/a\u003e fix: Increase maximum recursion limit when calling as a CLI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/266be2dd6ecca58baa3cf62f8500db33d6a7edf0\"\u003e\u003ccode\u003e266be2d\u003c/code\u003e\u003c/a\u003e ci: Improve typing fof callables in expression-building node map\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/edf81dfe012ca2972ded1d4788823c0a49fcab25\"\u003e\u003ccode\u003eedf81df\u003c/code\u003e\u003c/a\u003e chore: Fix \u003ccode\u003emake run\u003c/code\u003e command\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/2cb37a7ac5693f00939ff229eb20e310d2eef3e8\"\u003e\u003ccode\u003e2cb37a7\u003c/code\u003e\u003c/a\u003e docs: Fix link to API tests file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/179627221e97b82b574755465bff7efdbdf390d3\"\u003e\u003ccode\u003e1796272\u003c/code\u003e\u003c/a\u003e chore: Template upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5e79fbedb250520bbac3909a89f31677cd714de2\"\u003e\u003ccode\u003e5e79fbe\u003c/code\u003e\u003c/a\u003e docs: Add \u003ccode\u003erad clone\u003c/code\u003e badge in README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/72b44666f6e307d4a3ec6818391fca6af4afc105\"\u003e\u003ccode\u003e72b4466\u003c/code\u003e\u003c/a\u003e chore: Template upgrade\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.7.3...1.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `importlib-resources` from 5.0.7 to 6.5.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/importlib_resources/blob/main/NEWS.rst\"\u003eimportlib-resources's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev6.5.2\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplaced reference to typing_extensions with stdlib Literal. (\u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/323\"\u003e#323\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.5.1\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated \u003ccode\u003eTraversable.read_text()\u003c/code\u003e to reflect the \u003ccode\u003eerrors\u003c/code\u003e\u003ccode\u003epython/cpython#127012\u003c/code\u003e\u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/321\"\u003e#321\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.5.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd type annotations for Traversable.open. (\u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/317\"\u003e#317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequire Python 3.9 or later.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.4.5\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOmit sentinel values from a namespace path. (\u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/311\"\u003e#311\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.4.4\u003c/h1\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch1\u003ev6.4.3\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWhen inferring the caller in \u003ccode\u003efiles()\u003c/code\u003e\u003ccode\u003epython/cpython#123085\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/python/importlib_resources/commit/7d3b2bfa1d8c53ecb64246ba16d8c632f8fcb6bf\"\u003e\u003ccode\u003e7d3b2bf\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/14408098293bd6bc68eca7b5a53333729a567e57\"\u003e\u003ccode\u003e1440809\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/324\"\u003e#324\u003c/a\u003e from pstjohn/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/6569354ad2cf38b202fdeaf11b49e639b1a00fbc\"\u003e\u003ccode\u003e6569354\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/6c1bc3cdb8f8a7d29252becc201508712040facc\"\u003e\u003ccode\u003e6c1bc3c\u003c/code\u003e\u003c/a\u003e Rely on Literal from stdlib.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/883380a5fcc482b67014b90b9aa7250d868c795a\"\u003e\u003ccode\u003e883380a\u003c/code\u003e\u003c/a\u003e Update pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/a61a948b6293ed46972909652909e2540242f197\"\u003e\u003ccode\u003ea61a948\u003c/code\u003e\u003c/a\u003e Add typing-extensions as a dependency\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/78c4bda73c5d671cbbcfdf1430b6f2da03aeb04f\"\u003e\u003ccode\u003e78c4bda\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/10d87bf85a404e9fb9271f8f353ad0452c0cc631\"\u003e\u003ccode\u003e10d87bf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/321\"\u003e#321\u003c/a\u003e from kurtmckee/add-readtext-errors-parameter-cpython-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/9a872e5dbceff32260e8ff19d039236304ee150c\"\u003e\u003ccode\u003e9a872e5\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/cf269ce50f496671f3b7fbc5e6292946ecc70e7d\"\u003e\u003ccode\u003ecf269ce\u003c/code\u003e\u003c/a\u003e Replace unreachable block with simple assertion. Fixes diffcov failure.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/importlib_resources/compare/v5.0.7...v6.5.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jsonschema` from 4.24.0 to 4.25.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-jsonschema/jsonschema/releases\"\u003ejsonschema's releases\u003c/a\u003e.\u003c...\n\n_Description has been truncated_","html_url":"https://github.com/pycontribs/subprocess-tee/pull/189","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/pycontribs%2Fsubprocess-tee/issues/189","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/189/packages"},{"uuid":"2751575388","node_id":"PR_kwDOEkpJIs6kAbVc","number":187,"state":"open","title":"Bump the dependencies group across 1 directory with 29 updates","user":"dependabot[bot]","labels":["skip-changelog","dependabot-deps-updates"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-08-17T22:28:13.000Z","updated_at":"2025-08-17T22:28:14.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"dependencies","update_count":29,"packages":[{"name":"mkdocstrings","old_version":"0.29.1","new_version":"0.30.0","repository_url":"https://github.com/mkdocstrings/mkdocstrings"},{"name":"argparse-manpage","old_version":"4.6","new_version":"4.7","repository_url":"https://github.com/praiskup/argparse-manpage"},{"name":"backrefs","old_version":"5.8","new_version":"6.0.1","repository_url":"https://github.com/facelessuser/backrefs"},{"name":"bracex","old_version":"2.5.post1","new_version":"2.6","repository_url":"https://github.com/facelessuser/bracex"},{"name":"cachetools","old_version":"6.0.0","new_version":"6.1.0","repository_url":"https://github.com/tkem/cachetools"},{"name":"certifi","old_version":"2025.6.15","new_version":"2025.8.3","repository_url":"https://github.com/certifi/python-certifi"},{"name":"charset-normalizer","old_version":"3.4.2","new_version":"3.4.3","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"coverage","old_version":"7.9.1","new_version":"7.10.4","repository_url":"https://github.com/nedbat/coveragepy"},{"name":"cryptography","old_version":"45.0.4","new_version":"45.0.6","repository_url":"https://github.com/pyca/cryptography"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.0","repository_url":"https://github.com/pypa/distlib"},{"name":"filelock","old_version":"3.18.0","new_version":"3.19.1","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"gitpython","old_version":"3.1.44","new_version":"3.1.45","repository_url":"https://github.com/gitpython-developers/GitPython"},{"name":"griffe","old_version":"1.7.3","new_version":"1.12.1","repository_url":"https://github.com/mkdocstrings/griffe"},{"name":"importlib-resources","old_version":"5.0.7","new_version":"6.5.2","repository_url":"https://github.com/python/importlib_resources"},{"name":"jsonschema","old_version":"4.24.0","new_version":"4.25.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"markdown","old_version":"3.8","new_version":"3.8.2","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"mkdocs-material","old_version":"9.6.14","new_version":"9.6.17","repository_url":"https://github.com/squidfunk/mkdocs-material"},{"name":"mkdocstrings-python","old_version":"1.16.12","new_version":"1.17.0","repository_url":"https://github.com/mkdocstrings/python"},{"name":"pbr","old_version":"6.1.1","new_version":"7.0.0"},{"name":"pillow","old_version":"11.2.1","new_version":"11.3.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"pygments","old_version":"2.19.1","new_version":"2.19.2","repository_url":"https://github.com/pygments/pygments"},{"name":"pymdown-extensions","old_version":"10.15","new_version":"10.16.1","repository_url":"https://github.com/facelessuser/pymdown-extensions"},{"name":"pytest","old_version":"8.4.0","new_version":"8.4.1","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-sugar","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/Teemu/pytest-sugar"},{"name":"pytest-xdist","old_version":"3.7.0","new_version":"3.8.0","repository_url":"https://github.com/pytest-dev/pytest-xdist"},{"name":"rich","old_version":"14.0.0","new_version":"14.1.0","repository_url":"https://github.com/Textualize/rich"},{"name":"rpds-py","old_version":"0.25.1","new_version":"0.27.0","repository_url":"https://github.com/crate-py/rpds"},{"name":"urllib3","old_version":"2.4.0","new_version":"2.5.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"wcmatch","old_version":"10.0","new_version":"10.1","repository_url":"https://github.com/facelessuser/wcmatch"}],"path":null,"ecosystem":"conda"},"body":"Bumps the dependencies group with 29 updates in the /.config directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [mkdocstrings](https://github.com/mkdocstrings/mkdocstrings) | `0.29.1` | `0.30.0` |\n| [argparse-manpage](https://github.com/praiskup/argparse-manpage) | `4.6` | `4.7` |\n| [backrefs](https://github.com/facelessuser/backrefs) | `5.8` | `6.0.1` |\n| [bracex](https://github.com/facelessuser/bracex) | `2.5.post1` | `2.6` |\n| [cachetools](https://github.com/tkem/cachetools) | `6.0.0` | `6.1.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.6.15` | `2025.8.3` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.2` | `3.4.3` |\n| [coverage](https://github.com/nedbat/coveragepy) | `7.9.1` | `7.10.4` |\n| [cryptography](https://github.com/pyca/cryptography) | `45.0.4` | `45.0.6` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.0` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.18.0` | `3.19.1` |\n| [gitpython](https://github.com/gitpython-developers/GitPython) | `3.1.44` | `3.1.45` |\n| [griffe](https://github.com/mkdocstrings/griffe) | `1.7.3` | `1.12.1` |\n| [importlib-resources](https://github.com/python/importlib_resources) | `5.0.7` | `6.5.2` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.24.0` | `4.25.0` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.8` | `3.8.2` |\n| [mkdocs-material](https://github.com/squidfunk/mkdocs-material) | `9.6.14` | `9.6.17` |\n| [mkdocstrings-python](https://github.com/mkdocstrings/python) | `1.16.12` | `1.17.0` |\n| [pbr](https://docs.openstack.org/pbr/latest/) | `6.1.1` | `7.0.0` |\n| [pillow](https://github.com/python-pillow/Pillow) | `11.2.1` | `11.3.0` |\n| [pygments](https://github.com/pygments/pygments) | `2.19.1` | `2.19.2` |\n| [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions) | `10.15` | `10.16.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.0` | `8.4.1` |\n| [pytest-sugar](https://github.com/Teemu/pytest-sugar) | `1.0.0` | `1.1.0` |\n| [pytest-xdist](https://github.com/pytest-dev/pytest-xdist) | `3.7.0` | `3.8.0` |\n| [rich](https://github.com/Textualize/rich) | `14.0.0` | `14.1.0` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.25.1` | `0.27.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.4.0` | `2.5.0` |\n| [wcmatch](https://github.com/facelessuser/wcmatch) | `10.0` | `10.1` |\n\n\nUpdates `mkdocstrings` from 0.29.1 to 0.30.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases\"\u003emkdocstrings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.30.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/0.30.0\"\u003e0.30.0\u003c/a\u003e - 2025-07-23\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/0.29.1...0.30.0\"\u003eCompare with 0.29.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003edata-skip-inventory\u003c/code\u003e boolean attribute for elements to skip registration in local inventory (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f856160b03b2c27e1d75fdf4f315c273cb9d9247\"\u003ef856160\u003c/a\u003e by Bartosz Sławecki). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/issues/671\"\u003eIssue-671\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/774\"\u003ePR-774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd I18N support (translations) (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/2b4ed541bc707e55d959092d950ebeecc4fbd136\"\u003e2b4ed54\u003c/a\u003e by Nyuan Zhang). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/645\"\u003ePR-645\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/blob/main/CHANGELOG.md\"\u003emkdocstrings's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/0.30.0\"\u003e0.30.0\u003c/a\u003e - 2025-07-23\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/0.29.1...0.30.0\"\u003eCompare with 0.29.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003edata-skip-inventory\u003c/code\u003e boolean attribute for elements to skip registration in local inventory (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f856160b03b2c27e1d75fdf4f315c273cb9d9247\"\u003ef856160\u003c/a\u003e by Bartosz Sławecki). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/issues/671\"\u003eIssue-671\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/774\"\u003ePR-774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd I18N support (translations) (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/2b4ed541bc707e55d959092d950ebeecc4fbd136\"\u003e2b4ed54\u003c/a\u003e by Nyuan Zhang). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/645\"\u003ePR-645\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/2be445f054c1191d308af7ee0cc881e359f5a4c7\"\u003e\u003ccode\u003e2be445f\u003c/code\u003e\u003c/a\u003e chore: Prepare release 0.30.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f856160b03b2c27e1d75fdf4f315c273cb9d9247\"\u003e\u003ccode\u003ef856160\u003c/code\u003e\u003c/a\u003e feat: Add \u003ccode\u003edata-skip-inventory\u003c/code\u003e boolean attribute for elements to skip regist...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/2b4ed541bc707e55d959092d950ebeecc4fbd136\"\u003e\u003ccode\u003e2b4ed54\u003c/code\u003e\u003c/a\u003e feat: Add I18N support (translations)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/51f217f38af9475415f758866697158d9010967d\"\u003e\u003ccode\u003e51f217f\u003c/code\u003e\u003c/a\u003e chore: Template upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/b1da3d02c4f432f603cbb0004bb35099327706db\"\u003e\u003ccode\u003eb1da3d0\u003c/code\u003e\u003c/a\u003e ci: Ignore Ruff warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/d5bf4e1ed0370853f968b210ad77913faf106eed\"\u003e\u003ccode\u003ed5bf4e1\u003c/code\u003e\u003c/a\u003e docs: Update link to YAML idiosyncrasies\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/0.29.1...0.30.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `argparse-manpage` from 4.6 to 4.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/praiskup/argparse-manpage/releases\"\u003eargparse-manpage's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eargparse-manpage v4.7\u003c/h2\u003e\n\u003cp\u003eNews in v4.7\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003esys.stdout used instead of /dev/stdout\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efixed build compatibility with newer setuptools\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efixed deprecation warnings for datetime and setuptools\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003enew compat method for handling SOURCE_DATE_EPOCH\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/praiskup/argparse-manpage/blob/main/NEWS\"\u003eargparse-manpage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cpre\u003e\u003ccode\u003e\nWARNING: The 'build_manpage' setup.py command will be removed v5\nWARNING: We'll drop the Python 2.7 support in v5\n\u003cp\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eNews in v4.7\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003esys.stdout used instead of /dev/stdout\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efixed build compatibility with newer setuptools\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efixed deprecation warnings for datetime and setuptools\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003enew compat method for handling SOURCE_DATE_EPOCH\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre\u003e\u003ccode\u003e\nNews in v4.6\n\u003cul\u003e\n\u003cli\u003eFix the build against Python 3.13\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eNews in v4.5\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWe newly provide \u003ccode\u003ebuild_manpages.build_py\u003c/code\u003e and \u003ccode\u003ebuild_manpages.install\u003c/code\u003e\ncommand classes that are re-usable from \u003ccode\u003epyproject.toml\u003c/code\u003e.  No need to\nprovide \u003ccode\u003esetup.py\u003c/code\u003e because of \u003ccode\u003eargparse-manpage\u003c/code\u003e.  Solved issue#85.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre\u003e\u003ccode\u003e\nNews in v4.4\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003eprog=\u003c/code\u003e specifier (in setup.py/setup.cfg/pyproject.toml) is now\u003cbr /\u003e\nbetter handled so it doesn't conflict with ArgumentParser(prog=..).\u003cbr /\u003e\nFixes \u003ca href=\"https://redirect.github.com/praiskup/argparse-manpage/issues/79\"\u003epraiskup/argparse-manpage#79\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eNews in v4.3\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe pyproject.toml parsing feature now depends on the python3-tomli library\u003cbr /\u003e\ninstead of python-toml for \u0026quot;python_environment \u0026gt;3, \u0026lt;=3.10\u0026quot;.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eNews in v4.2\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for pyproject.toml specification of manpages added.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/7883becca340aa3ea124143e032848a7b2bdf84b\"\u003e\u003ccode\u003e7883bec\u003c/code\u003e\u003c/a\u003e Release v4.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/765389ed4ee835c09451823d7fbfe22b0dc1674a\"\u003e\u003ccode\u003e765389e\u003c/code\u003e\u003c/a\u003e Move the SOURCE_DATE_EPOCH hack on one place\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/a06ed9c1f03360f8089819c8e845cd670687eb64\"\u003e\u003ccode\u003ea06ed9c\u003c/code\u003e\u003c/a\u003e ci: fix RPM build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/c985432ee15824c43c75548c7ec1bd6f105a7f22\"\u003e\u003ccode\u003ec985432\u003c/code\u003e\u003c/a\u003e Fix deprecation warnings for datetime and setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/306658941368ff0c2dfe2e4fa29b889fb5bbeb2b\"\u003e\u003ccode\u003e3066589\u003c/code\u003e\u003c/a\u003e ci: fedora-tox update list of environments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/b3a2c50e2abc47bd822d848864a80e35251a3147\"\u003e\u003ccode\u003eb3a2c50\u003c/code\u003e\u003c/a\u003e ci: enable ruff \u0026amp; bump deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/6dc54a5272e70b081af728958fd7554a6b0372f3\"\u003e\u003ccode\u003e6dc54a5\u003c/code\u003e\u003c/a\u003e Fix compatibility with newer setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/29f89bba536cf28f6ed66721367ff2ee3f6209b7\"\u003e\u003ccode\u003e29f89bb\u003c/code\u003e\u003c/a\u003e Fix some comments about sys.argv alteration for usage message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/ade76cc8ef49ec804955c6b4027dbae52d482034\"\u003e\u003ccode\u003eade76cc\u003c/code\u003e\u003c/a\u003e Use sys.stdout instead of /dev/stdout\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/praiskup/argparse-manpage/compare/v4.6...v4.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `backrefs` from 5.8 to 6.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facelessuser/backrefs/releases\"\u003ebackrefs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Fix a regression that created an ASCII binary property that would override the ASCII block property.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: POSIX character classes will now always use POSIX compatibility rules instead of Unicode standard rules,\nif any are specified in the Unicode specification. The affected character classes are: \u003ccode\u003e[[:alnum:]]\u003c/code\u003e, \u003ccode\u003e[[:digit:]]\u003c/code\u003e,\n\u003ccode\u003e[[:xdigit:]]\u003c/code\u003e, and  \u003ccode\u003e[[:punct:]]\u003c/code\u003e. To explicitly use standard Unicode rules for these compatibility properties, use\nthe Unicode property form instead: \u003ccode\u003e[\\p{Alnum}]\u003c/code\u003e, \u003ccode\u003e[\\p{Digit}]\u003c/code\u003e, \u003ccode\u003e[\\p{Punct}]\u003c/code\u003e, or \u003ccode\u003e[\\p{XDigit}]\u003c/code\u003e. This has changed\nto ensure no confusion for users expecting compatible POSIX style character class properties.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Scoped ASCII/Unicode flags (\u003ccode\u003e(?a:pattern)\u003c/code\u003e/\u003ccode\u003e(?u:pattern)\u003c/code\u003e) should be respected for Unicode properties in\n\u003ccode\u003ebre\u003c/code\u003e and will ensure ASCII or Unicode range if used.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Fix issues related to detecting disabled scoped flags.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Add support for Python 3.14.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eENHANCE\u003c/strong\u003e: Switch to deploying with PyPI's \u0026quot;Trusted Publisher\u0026quot;.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/63f8a4b14750828b7c1e385844fd36f6f89859e4\"\u003e\u003ccode\u003e63f8a4b\u003c/code\u003e\u003c/a\u003e Fix grammar\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/7f4bf611e6e7fcc2aa4e0eba2872b5f51b7fc908\"\u003e\u003ccode\u003e7f4bf61\u003c/code\u003e\u003c/a\u003e Rework POSIX alias\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/956df5f387f1958110e5a7cf2a98d42a8309d9b6\"\u003e\u003ccode\u003e956df5f\u003c/code\u003e\u003c/a\u003e Fix ASCII block regression\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/7a948f083c3c87114a8dd87c95dff1893f3af82a\"\u003e\u003ccode\u003e7a948f0\u003c/code\u003e\u003c/a\u003e Clean up code and add more comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/9b2e406be36c1e0fc72651adbc7d2d63c4151483\"\u003e\u003ccode\u003e9b2e406\u003c/code\u003e\u003c/a\u003e Add more flag tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/47d62b1270ca7f1717e7acdb56e8e6ed3e9e8f10\"\u003e\u003ccode\u003e47d62b1\u003c/code\u003e\u003c/a\u003e Handle enable/disable properly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/8e7596700b913e13f478da57e0ba0965f2d9ed3b\"\u003e\u003ccode\u003e8e75967\u003c/code\u003e\u003c/a\u003e Fix issues with scoped flags (\u003ca href=\"https://redirect.github.com/facelessuser/backrefs/issues/192\"\u003e#192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/0df8e7746d3ea31824af97ea4ed713a3facded5b\"\u003e\u003ccode\u003e0df8e77\u003c/code\u003e\u003c/a\u003e POSIX character classes should use POSIX compatibility rules by default (\u003ca href=\"https://redirect.github.com/facelessuser/backrefs/issues/191\"\u003e#191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/31fd8c5c0338eefe41452d52f99012c0fecfdd82\"\u003e\u003ccode\u003e31fd8c5\u003c/code\u003e\u003c/a\u003e Call mkdocs directly on deploy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/8b3a24bfc1cacde6fc9ab4edfaed0f5a9206c554\"\u003e\u003ccode\u003e8b3a24b\u003c/code\u003e\u003c/a\u003e Fix deploy logic\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/facelessuser/backrefs/compare/5.8...6.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bracex` from 2.5.post1 to 2.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facelessuser/bracex/releases\"\u003ebracex's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Drop support for Python 3.8.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Add support for Python 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/bracex/commit/6d109c55372f0d5086adb7cf84a951cc06391a69\"\u003e\u003ccode\u003e6d109c5\u003c/code\u003e\u003c/a\u003e Add trusted publishing and support for Python 3.14 (\u003ca href=\"https://redirect.github.com/facelessuser/bracex/issues/44\"\u003e#44\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/bracex/commit/c14d46fb495a8fdcd0ec51d4dd42aa587807407d\"\u003e\u003ccode\u003ec14d46f\u003c/code\u003e\u003c/a\u003e Add security policy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/bracex/commit/14645af4bf4de0e1abe4fd6c29bf98871f549273\"\u003e\u003ccode\u003e14645af\u003c/code\u003e\u003c/a\u003e Typos: remove duplicate words\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/facelessuser/bracex/compare/2.5.post1...2.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachetools` from 6.0.0 to 6.1.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev6.1.0 (2025-06-16)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove \u003ccode\u003eLFUCache\u003c/code\u003e insertion performance by switching to an\nimplementation based on the \u003ccode\u003ecacheing \u0026lt;https://pypi.org/project/cacheing/\u0026gt;\u003c/code\u003e_ library.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate CI environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/bb6d71a745785429b14aae30b7752f4765dc35c3\"\u003e\u003ccode\u003ebb6d71a\u003c/code\u003e\u003c/a\u003e Release v6.1.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/77a9c59e3324496a79e6c4d5a7b5bfdb9a7f7f42\"\u003e\u003ccode\u003e77a9c59\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/260\"\u003e#260\u003c/a\u003e: Use LFUCache implementation based on Blake Reid's \u0026quot;cacheing\u0026quot; library.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/b1d4eb2972ca8f0ab49e22eae3bb47c1eb8b552c\"\u003e\u003ccode\u003eb1d4eb2\u003c/code\u003e\u003c/a\u003e Bump codecov/codecov-action from 5.4.2 to 5.4.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/820b154494e91aa5bfe63a3fa2033c63a9c84603\"\u003e\u003ccode\u003e820b154\u003c/code\u003e\u003c/a\u003e Refactor \u003ca href=\"https://github.com/cachedmethod\"\u003e\u003ccode\u003e@​cachedmethod\u003c/code\u003e\u003c/a\u003e unit tests.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tkem/cachetools/compare/v6.0.0...v6.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2025.6.15 to 2025.8.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/a97d9ad8f87c382378dddc0b0b33b9770932404e\"\u003e\u003ccode\u003ea97d9ad\u003c/code\u003e\u003c/a\u003e 2025.08.03 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ddd90c6d726f174c1e5820379dac0f2a8fc723a1\"\u003e\u003ccode\u003eddd90c6\u003c/code\u003e\u003c/a\u003e 2025.07.14 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/359\"\u003e#359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/d905221c916d51077f5c8071a0f7aa2df2a37c52\"\u003e\u003ccode\u003ed905221\u003c/code\u003e\u003c/a\u003e 2025.07.09 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.06.15...2025.08.03\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.4.2 to 3.4.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.4.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/46f662da20edeced520c8819965a37eefbbc85de\"\u003e\u003ccode\u003e46f662d\u003c/code\u003e\u003c/a\u003e Release 3.4.3 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/638\"\u003e#638\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/1a059b26c155dd5fca408b0e0145c930633c4bf2\"\u003e\u003ccode\u003e1a059b2\u003c/code\u003e\u003c/a\u003e :wrench: skip building on freethreaded as we're not confident it is stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/2275e3d3fea2bf6232661f1e9c21e7b81428e2a6\"\u003e\u003ccode\u003e2275e3d\u003c/code\u003e\u003c/a\u003e :pencil: final note in CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/c96acdfdb34b5b1deb6f70803167bae89b209832\"\u003e\u003ccode\u003ec96acdf\u003c/code\u003e\u003c/a\u003e :pencil: update release date on CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/43e5460518003df24ad1a3e7b5c0a34445395012\"\u003e\u003ccode\u003e43e5460\u003c/code\u003e\u003c/a\u003e :pencil: update README.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f277074e281a070cfa64fc91c46f8291043fc37c\"\u003e\u003ccode\u003ef277074\u003c/code\u003e\u003c/a\u003e :wrench: automatically lower confidence on small bytes str on non Unicode res...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/15ae2411072b5e026f2c9d6ec81b55f75af7dcf2\"\u003e\u003ccode\u003e15ae241\u003c/code\u003e\u003c/a\u003e :bug: automatically fallback on valid UTF-16 or UTF-32 even if the md says it...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/37397c1799a05454ab42fbbc94a7643cdb277924\"\u003e\u003ccode\u003e37397c1\u003c/code\u003e\u003c/a\u003e :wrench: enable 3.14 in nox test_mypyc session\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/cb82537ecad195f48383b92e330351cea1fc6bc8\"\u003e\u003ccode\u003ecb82537\u003c/code\u003e\u003c/a\u003e :rewind: revert license due to compat python 3.7 issue setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/6a2efeb4c6e205964b61008b0c36ddf88c321543\"\u003e\u003ccode\u003e6a2efeb\u003c/code\u003e\u003c/a\u003e :art: fix linter errors\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.2...3.4.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.9.1 to 7.10.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.10.4 — 2025-08-16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003epatch = fork\u003c/code\u003e for times when the built-in forking support is\ninsufficient.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003epatch = execv\u003c/code\u003e also inherits the entire coverage configuration now.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _changes_7-10-3:\u003c/p\u003e\n\u003ch2\u003eVersion 7.10.3 — 2025-08-10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixes for \u003ccode\u003epatch = subprocess\u003c/code\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eIf subprocesses spawned yet more subprocesses simultaneously, some coverage\ncould be missed.  This is now fixed, closing \u003ccode\u003eissue 2024\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIf subprocesses were created in other directories, their data files were\nstranded there and not combined into the totals, as described in \u003ccode\u003eissue 2025\u003c/code\u003e_.  This is now fixed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eOn Windows (or maybe only some Windows?) the patch would fail with a\n\u003ccode\u003eModuleNotFound\u003c/code\u003e error trying to import coverage.  This is now fixed,\nclosing \u003ccode\u003eissue 2022\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eOriginally only options set in the coverage configuration file would apply\nto subprocesses.  Options set on the \u003ccode\u003ecoverage run\u003c/code\u003e command line (such as\n\u003ccode\u003e--branch\u003c/code\u003e) wouldn't be communicated to the subprocesses.  This could\nlead to combining failures, as described in \u003ccode\u003eissue 2021\u003c/code\u003e_. Now the entire\nconfiguration is used in subprocesses, regardless of its origin.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003edebug=patch\u003c/code\u003e to help diagnose problems.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: really close all SQLite databases, even in-memory ones. Closes \u003ccode\u003eissue 2017\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 2017: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2017\"\u003enedbat/coveragepy#2017\u003c/a\u003e\n.. _issue 2021: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2021\"\u003enedbat/coveragepy#2021\u003c/a\u003e\n.. _issue 2022: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2022\"\u003enedbat/coveragepy#2022\u003c/a\u003e\n.. _issue 2024: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2024\"\u003enedbat/coveragepy#2024\u003c/a\u003e\n.. _issue 2025: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2025\"\u003enedbat/coveragepy#2025\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-10-2:\u003c/p\u003e\n\u003ch2\u003eVersion 7.10.2 — 2025-08-03\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/1cd29f24ce3859c9b2d824959031b9142c218904\"\u003e\u003ccode\u003e1cd29f2\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.10.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/92a91e9cbbde7ea05a960b4c85bfc9d16b4a8d33\"\u003e\u003ccode\u003e92a91e9\u003c/code\u003e\u003c/a\u003e docs: prep for 7.10.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/9ee6390200e1946ba5458e86d6e9f46adace4751\"\u003e\u003ccode\u003e9ee6390\u003c/code\u003e\u003c/a\u003e debug: more details in debug messages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/6af8a5d13314eba82c2c5974b2fbf133f09b51d0\"\u003e\u003ccode\u003e6af8a5d\u003c/code\u003e\u003c/a\u003e feat: patch=fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/0eb292d24d3790ec46f2961cd05136e9e5f5d0c6\"\u003e\u003ccode\u003e0eb292d\u003c/code\u003e\u003c/a\u003e refactor: a nicer way to inject config from the environment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/183cd9b5358d41fc67210c66df9169a9e495df0b\"\u003e\u003ccode\u003e183cd9b\u003c/code\u003e\u003c/a\u003e build: tweaks to how the python build is bannered for tox\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/6c2fb87e14e0d18859cac4763577ef4f717c2f38\"\u003e\u003ccode\u003e6c2fb87\u003c/code\u003e\u003c/a\u003e chore: make upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/a22436cb0e17397a79ae480be0ce6f19b98b3188\"\u003e\u003ccode\u003ea22436c\u003c/code\u003e\u003c/a\u003e test: since 62434e79 we don't need to account for .tox\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/4ab4bb04db299cee912d1f930dcab59f01317f54\"\u003e\u003ccode\u003e4ab4bb0\u003c/code\u003e\u003c/a\u003e test: add a test for env var truncation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/bf1a9706b3eb2a1c27743815e475ab6d966a6d6f\"\u003e\u003ccode\u003ebf1a970\u003c/code\u003e\u003c/a\u003e refactor: better style for constants\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nedbat/coveragepy/compare/7.9.1...7.10.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 45.0.4 to 45.0.6\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e45.0.6 - 2025-08-05\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.2.\n\u003cp\u003e.. _v45-0-5:\u003c/p\u003e\n\u003cp\u003e45.0.5 - 2025-07-02\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.1.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v45-0-4:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/66198c23c97c9594d64540e5a866e4b4121aec2d\"\u003e\u003ccode\u003e66198c2\u003c/code\u003e\u003c/a\u003e Bump for release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13249\"\u003e#13249\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/3e53a233b65123d2a836b58ccdc427ed5207f92b\"\u003e\u003ccode\u003e3e53a23\u003c/code\u003e\u003c/a\u003e Bump for 45.0.5 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13135\"\u003e#13135\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pyca/cryptography/compare/45.0.4...45.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `distlib` from 0.3.9 to 0.4.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/distlib/blob/master/CHANGES.rst\"\u003edistlib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.4.0\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nReleased: 2025-07-17\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003emarkers\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd the \u003ccode\u003einterpret_parsed\u003c/code\u003e function.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ewheel\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/238\"\u003e#238\u003c/a\u003e: Add build tag to wheel metadata if specified.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/243\"\u003e#243\u003c/a\u003e: Update to support free-threading version of Python (3.13t).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/246\"\u003e#246\u003c/a\u003e: Support subdirectories in the dist-info directory. Thanks to Pieter P for the patch.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/248\"\u003e#248\u003c/a\u003e: Fix path normalisation issue caused by the fix for \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/246\"\u003e#246\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMove import in script wrapper to \u0026quot;if \u003cstrong\u003ename\u003c/strong\u003e == 'main'\u0026quot; clause.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003etests\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/245\"\u003e#245\u003c/a\u003e: Skip test_package_data if a SKIP_EXT_PACKAGE_DATA environment variable is present.\n\u003c/code\u003e\u003c/pre\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/aff2cbbc4e8a87b9440cb93472789a213813dbd6\"\u003e\u003ccode\u003eaff2cbb\u003c/code\u003e\u003c/a\u003e Finalise version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/3716c4bcccac19d0c0f2ce0d1272dd33996381b5\"\u003e\u003ccode\u003e3716c4b\u003c/code\u003e\u003c/a\u003e Update change log, widen exception catching in test.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/660bd337bf3217a7bd907c2ba8a2f8dd291ac793\"\u003e\u003ccode\u003e660bd33\u003c/code\u003e\u003c/a\u003e Changes for 0.4.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/56b4ad938455048fc79e599d369e02a1414e9946\"\u003e\u003ccode\u003e56b4ad9\u003c/code\u003e\u003c/a\u003e Guard script wrapper entrypoint import with if \u003cstrong\u003emain\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/242\"\u003e#242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/fe573669087cb1109fb0cc249bf0e06a5461324c\"\u003e\u003ccode\u003efe57366\u003c/code\u003e\u003c/a\u003e docs: update coverage results link (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/250\"\u003e#250\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/c3286e508bb60cd2337408d88eb614a93b612d8c\"\u003e\u003ccode\u003ec3286e5\u003c/code\u003e\u003c/a\u003e Temporarily exclude 3.13t on windows-latest.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/e6b83d3b0eeb11d8e7b053f11139d15aab89d196\"\u003e\u003ccode\u003ee6b83d3\u003c/code\u003e\u003c/a\u003e Normalize archive paths in dist-info (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/248\"\u003e#248\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/93baffeaa1773796d802bb761607a6466790dcba\"\u003e\u003ccode\u003e93baffe\u003c/code\u003e\u003c/a\u003e Skip no-longer-relevant test.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/83f656836f4b6d8175172fcb8370fbee691f2bec\"\u003e\u003ccode\u003e83f6568\u003c/code\u003e\u003c/a\u003e Support subdirectories in .dist-info (fixes \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/246\"\u003e#246\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/247\"\u003e#247\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/f918abd5d20879041704f9d719533b213a55ad48\"\u003e\u003ccode\u003ef918abd\u003c/code\u003e\u003c/a\u003e Update \u003ccode\u003etest_wheel.WheelTestCase.test_abi\u003c/code\u003e for freethreading (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/244\"\u003e#244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/distlib/compare/0.3.9...0.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `filelock` from 3.18.0 to 3.19.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/py-filelock/releases\"\u003efilelock's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.19.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd 3.14t (free threading) to matrix by \u003ca href=\"https://github.com/paultiq\"\u003e\u003ccode\u003e@​paultiq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/433\"\u003etox-dev/filelock#433\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIncrease test coverage by \u003ca href=\"https://github.com/paultiq\"\u003e\u003ccode\u003e@​paultiq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/434\"\u003etox-dev/filelock#434\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/paultiq\"\u003e\u003ccode\u003e@​paultiq\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/433\"\u003etox-dev/filelock#433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.19.0...3.19.1\"\u003ehttps://github.com/tox-dev/filelock/compare/3.19.0...3.19.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.19.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for 3.14 by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/432\"\u003etox-dev/filelock#432\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.18.0...3.19.0\"\u003ehttps://github.com/tox-dev/filelock/compare/3.18.0...3.19.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/8d1009f08a6a64624fad91d1079062ef31b8c2b4\"\u003e\u003ccode\u003e8d1009f\u003c/code\u003e\u003c/a\u003e Update release.yaml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/66a428e97a874b44b0310072f6c974226f55a472\"\u003e\u003ccode\u003e66a428e\u003c/code\u003e\u003c/a\u003e Increase test coverage (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/434\"\u003e#434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/0dfc86eebd2c76ae959a409bcbc3112cc1ec5890\"\u003e\u003ccode\u003e0dfc86e\u003c/code\u003e\u003c/a\u003e add 3.14 to matrix (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/433\"\u003e#433\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/0c54837e318ebe8a692b529722430cb38134bf7c\"\u003e\u003ccode\u003e0c54837\u003c/code\u003e\u003c/a\u003e Add support for 3.14 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/432\"\u003e#432\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/77d02f5ada3a1a92167b1beee35a7815cbde0fcf\"\u003e\u003ccode\u003e77d02f5\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/430\"\u003e#430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/bc972b33bf253bb9f08db32b19ffd4119a74706e\"\u003e\u003ccode\u003ebc972b3\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/429\"\u003e#429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/78d02cb5ff42b22a56ad1a36755361a6b4601765\"\u003e\u003ccode\u003e78d02cb\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/428\"\u003e#428\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/18cdb5d1c78a7a459463480303e9820f33cdf041\"\u003e\u003ccode\u003e18cdb5d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/427\"\u003e#427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/b198a096d2bae58596479497d18a82bbeec515c8\"\u003e\u003ccode\u003eb198a09\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/426\"\u003e#426\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/6b097e76de603d9be6a24c5058b6fe53ef003afd\"\u003e\u003ccode\u003e6b097e7\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/425\"\u003e#425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/py-filelock/compare/3.18.0...3.19.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gitpython` from 3.1.44 to 3.1.45\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/gitpython-developers/GitPython/releases\"\u003egitpython's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.1.45\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix various version-related CI breakages by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1987\"\u003egitpython-developers/GitPython#1987\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo some CI cleanup to make reports clearer and future changes easier by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1989\"\u003egitpython-developers/GitPython#1989\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAffirm that gitdb and smmap advisories can also be created by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1991\"\u003egitpython-developers/GitPython#1991\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix links to gitdb and smmap \u003ccode\u003eSECURITY.md\u003c/code\u003e files by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1992\"\u003egitpython-developers/GitPython#1992\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest Python 3.13 regularly on Ubuntu and macOS on CI by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1990\"\u003egitpython-developers/GitPython#1990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRepo.rev_parse: Handle \u003c!-- raw HTML omitted --\u003e^{commit} correctly by \u003ca href=\"https://github.com/flichtenheld\"\u003e\u003ccode\u003e@​flichtenheld\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1996\"\u003egitpython-developers/GitPython#1996\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFuzzing: Fix Broken Fuzz Test for Git Submodule Handling by \u003ca href=\"https://github.com/DaveLak\"\u003e\u003ccode\u003e@​DaveLak\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1997\"\u003egitpython-developers/GitPython#1997\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWork around Cygwin CI failure \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2004\"\u003e#2004\u003c/a\u003e, except for \u003ccode\u003etest_installation\u003c/code\u003e by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2007\"\u003egitpython-developers/GitPython#2007\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMark \u003ccode\u003etest_installation\u003c/code\u003e xfail on Cygwin CI by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2009\"\u003egitpython-developers/GitPython#2009\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eIndexFile._to_relative_path\u003c/code\u003e - fix case where absolute path gets stripped of trailing slash by \u003ca href=\"https://github.com/kamilkozik7\"\u003e\u003ccode\u003e@​kamilkozik7\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2012\"\u003egitpython-developers/GitPython#2012\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse WSL1 on CI by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2010\"\u003egitpython-developers/GitPython#2010\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest free-threaded Python (but only on Linux) by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2011\"\u003egitpython-developers/GitPython#2011\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse property decorator to support typing by \u003ca href=\"https://github.com/Andrej730\"\u003e\u003ccode\u003e@​Andrej730\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2015\"\u003egitpython-developers/GitPython#2015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix some incorrect sphinx markups in the docstrings by \u003ca href=\"https://github.com/koyuki7w\"\u003e\u003ccode\u003e@​koyuki7w\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2018\"\u003egitpython-developers/GitPython#2018\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ereplace quansight-labs/setup-python with actions/setup-python by \u003ca href=\"https://github.com/ngoldbaum\"\u003e\u003ccode\u003e@​ngoldbaum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2019\"\u003egitpython-developers/GitPython#2019\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eremove type assertions from util.py by \u003ca href=\"https://github.com/gcmarx\"\u003e\u003ccode\u003e@​gcmarx\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2028\"\u003egitpython-developers/GitPython#2028\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ecorrectly handle \u003ccode\u003euname-cmd\u003c/code\u003e that doesn't point to an executable file by \u003ca href=\"https://github.com/gcmarx\"\u003e\u003ccode\u003e@​gcmarx\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2026\"\u003egitpython-developers/GitPython#2026\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse newer ruff style by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2031\"\u003egitpython-developers/GitPython#2031\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHave CodeQL scan GitHub Actions workflows as well as Python code by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2032\"\u003egitpython-developers/GitPython#2032\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSpecify explicit \u003ccode\u003econtents: read\u003c/code\u003e workflow permissions by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2033\"\u003egitpython-developers/GitPython#2033\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix GitConfigParser not removing quotes from values by \u003ca href=\"https://github.com/betaboon\"\u003e\u003ccode\u003e@​betaboon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2035\"\u003egitpython-developers/GitPython#2035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreserve quoted leading and trailing single-line config var whitespace by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2036\"\u003egitpython-developers/GitPython#2036\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor Git.{AutoInterrupt,CatFileContentStream} nesting by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2037\"\u003egitpython-developers/GitPython#2037\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Git.{AutoInterrupt,CatFileContentStream} static typing by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2039\"\u003egitpython-developers/GitPython#2039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CI \u003ccode\u003emypy\u003c/code\u003e command on free-threaded Python by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2040\"\u003egitpython-developers/GitPython#2040\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSplit Cygwin CI into non-\u003ccode\u003eperformance\u003c/code\u003e and \u003ccode\u003eperformance\u003c/code\u003e test jobs by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2042\"\u003egitpython-developers/GitPython#2042\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpress conditional \u003ccode\u003esetuptools\u003c/code\u003e requirement statically by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2043\"\u003egitpython-developers/GitPython#2043\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix ambiguous \u003ccode\u003e_safer_popen_windows\u003c/code\u003e comment by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2044\"\u003egitpython-developers/GitPython#2044\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClarify \u003ccode\u003eUSE_SHELL\u003c/code\u003e warning helper signature by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2045\"\u003egitpython-developers/GitPython#2045\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest \u003ccode\u003eConfigParser\u003c/code\u003e with whitespace outside the value by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2046\"\u003egitpython-developers/GitPython#2046\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove explicit empty \u003ccode\u003e\u0026quot;\u0026quot;\u003c/code\u003e handling in ConfigParser by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2047\"\u003egitpython-developers/GitPython#2047\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVarious style improvements by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2049\"\u003egitpython-developers/GitPython#2049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't remove quotes if \u003ccode\u003e\\\u003c/code\u003e or \u003ccode\u003e\u0026quot;\u003c/code\u003e are present inside by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2048\"\u003egitpython-developers/GitPython#2048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix updating submodules with relative urls by \u003ca href=\"https://github.com/david0\"\u003e\u003ccode\u003e@​david0\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2051\"\u003egitpython-developers/GitPython#2051\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRun \u003ccode\u003ecat_file.py\u003c/code\u003e fixture without site customizations by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2052\"\u003egitpython-developers/GitPython#2052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Cygwin installation on CI for \u003ccode\u003epip\u003c/code\u003e by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2053\"\u003egitpython-developers/GitPython#2053\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFail \u003ccode\u003etest_installation\u003c/code\u003e on warnings, and remove deprecated license classifier by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2054\"\u003egitpython-developers/GitPython#2054\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd clearer error version for unsupported index error by \u003ca href=\"https://github.com/tombedor\"\u003e\u003ccode\u003e@​tombedor\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2055\"\u003egitpython-developers/GitPython#2055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix name collision by \u003ca href=\"https://github.com/NMertsch\"\u003e\u003ccode\u003e@​NMertsch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2060\"\u003egitpython-developers/GitPython#2060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow relative path url in submodules for submodule_update by \u003ca href=\"https://github.com/t-webber\"\u003e\u003ccode\u003e@​t-webber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2062\"\u003egitpython-developers/GitPython#2062\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/flichtenheld\"\u003e\u003ccode\u003e@​flichtenheld\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1996\"\u003egitpython-developers/GitPython#1996\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kamilkozik7\"\u003e\u003ccode\u003e@​kamilkozik7\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2012\"\u003egitpython-developers/GitPython#2012\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koyuki7w\"\u003e\u003ccode\u003e@​koyuki7w\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2018\"\u003egitpython-developers/GitPython#2018\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ngoldbaum\"\u003e\u003ccode\u003e@​ngoldbaum\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2019\"\u003egitpython-developers/GitPython#2019\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gcmarx\"\u003e\u003ccode\u003e@​gcmarx\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2028\"\u003egitpython-developers/GitPython#2028\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/betaboon\"\u003e\u003ccode\u003e@​betaboon\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2035\"\u003egitpython-developers/GitPython#2035\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/gitpython-developers/GitPython/commit/6ba2c0a2f9ee7feffd7e079621c4845820180c9a\"\u003e\u003ccode\u003e6ba2c0a\u003c/code\u003e\u003c/a\u003e Prepare a new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/bbb3d00ac431dc7966f9715fb813792d234eca81\"\u003e\u003ccode\u003ebbb3d00\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2062\"\u003e#2062\u003c/a\u003e from t-webber/relative_path_submodules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/1ee1e781929074afd66bff1eae007bbee41d117e\"\u003e\u003ccode\u003e1ee1e78\u003c/code\u003e\u003c/a\u003e Add test case for cloning submodules with relative path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/ec2e2c8b894512e7a2364774d77cdd9db73f0566\"\u003e\u003ccode\u003eec2e2c8\u003c/code\u003e\u003c/a\u003e Allow relative path url in submodules for submodule_update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/4d529b71905edae12e4699170f7d9e0a665801b5\"\u003e\u003ccode\u003e4d529b7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2060\"\u003e#2060\u003c/a\u003e from NMertsch/2023-fix-gitconfigparser-autodoc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/80fd2c16211738156e65258381a17cdc429ddd08\"\u003e\u003ccode\u003e80fd2c1\u003c/code\u003e\u003c/a\u003e Don't treat sphinx warnings as errors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/a4aadb0c04bd13af824c14dcc39f88345aa5c440\"\u003e\u003ccode\u003ea4aadb0\u003c/code\u003e\u003c/a\u003e Fix name collision\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/4c7778a93134364cfff7b1597f9eda00a88323af\"\u003e\u003ccode\u003e4c7778a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2057\"\u003e#2057\u003c/a\u003e from gitpython-developers/dependabot/github_actions/...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/5033c3ffd8917d835658c22e84bd86103a2ae52d\"\u003e\u003ccode\u003e5033c3f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2056\"\u003e#2056\u003c/a\u003e from gitpython-developers/dependabot/github_actions/...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/496392b9bf781904421cbd171c0c5395a6fe330c\"\u003e\u003ccode\u003e496392b\u003c/code\u003e\u003c/a\u003e Bump cygwin/cygwin-install-action from 5 to 6\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/gitpython-developers/GitPython/compare/3.1.44...3.1.45\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `griffe` from 1.7.3 to 1.12.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/griffe/releases\"\u003egriffe's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.12.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.12.1\"\u003e1.12.1\u003c/a\u003e - 2025-08-14\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.12.0...1.12.1\"\u003eCompare with 1.12.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReduce size of JSON dumps by removing keys with null values (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/58227eb377fee66ef66237d7cbed35156ff1fed1\"\u003e58227eb\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/403\"\u003eIssue-403\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd fields to aliases when serializing (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5c9fee2b0c6e4f4e63c7648fa41b2e540f2ecc7f\"\u003e5c9fee2\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eAlso add the option to ignore missing type to the Sphinx parser (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8c9f803e748a659905b06445a349a6cfea948c1c\"\u003e8c9f803\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.12.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.12.0\"\u003e1.12.0\u003c/a\u003e - 2025-08-14\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.11.1...1.12.0\"\u003eCompare with 1.11.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow disabling \u0026quot;missing type/annotation\u0026quot; warnings (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/07564b43524220342c3078ece406459c08b80a86\"\u003e07564b4\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/issues/437\"\u003eIssue-mkdocstrings-437\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.11.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.11.1\"\u003e1.11.1\u003c/a\u003e - 2025-08-11\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.11.0...1.11.1\"\u003eCompare with 1.11.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix type parameters loading (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/ce41279cc8b7abc45c7b94316b24e87d4a1edc40\"\u003ece41279\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMove private \u003ccode\u003e_griffe\u003c/code\u003e package under \u003ccode\u003egriffe._internal\u003c/code\u003e (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8f37158eb5617d2cf686f9a0a044f29c638598b2\"\u003e8f37158\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.11.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.11.0\"\u003e1.11.0\u003c/a\u003e - 2025-08-07\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.10.0...1.11.0\"\u003eCompare with 1.10.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd data to dict/json output (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/9731afcbeab377e7f3f69a0d18d19677e790072e\"\u003e9731afc\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.10.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.10.0\"\u003e1.10.0\u003c/a\u003e - 2025-08-06\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.9.0...1.10.0\"\u003eCompare with 1.9.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow adding \u003ccode\u003esys.path\u003c/code\u003e to search paths when temporary visiting/inspecting package (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/42983bc843fd9a63883e9c50ad5043b0f737b450\"\u003e42983bc\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- 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/mkdocstrings/griffe/blob/main/CHANGELOG.md\"\u003egriffe's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.12.1\"\u003e1.12.1\u003c/a\u003e - 2025-08-14\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.12.0...1.12.1\"\u003eCompare with 1.12.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReduce size of JSON dumps by removing keys with null values (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/58227eb377fee66ef66237d7cbed35156ff1fed1\"\u003e58227eb\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/403\"\u003eIssue-403\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd fields to aliases when serializing (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5c9fee2b0c6e4f4e63c7648fa41b2e540f2ecc7f\"\u003e5c9fee2\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eAlso add the option to ignore missing type to the Sphinx parser (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8c9f803e748a659905b06445a349a6cfea948c1c\"\u003e8c9f803\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.12.0\"\u003e1.12.0\u003c/a\u003e - 2025-08-14\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.11.1...1.12.0\"\u003eCompare with 1.11.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow disabling \u0026quot;missing type/annotation\u0026quot; warnings (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/07564b43524220342c3078ece406459c08b80a86\"\u003e07564b4\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/issues/437\"\u003eIssue-mkdocstrings-437\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.11.1\"\u003e1.11.1\u003c/a\u003e - 2025-08-11\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.11.0...1.11.1\"\u003eCompare with 1.11.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix type parameters loading (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/ce41279cc8b7abc45c7b94316b24e87d4a1edc40\"\u003ece41279\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMove private \u003ccode\u003e_griffe\u003c/code\u003e package under \u003ccode\u003egriffe._internal\u003c/code\u003e (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8f37158eb5617d2cf686f9a0a044f29c638598b2\"\u003e8f37158\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.11.0\"\u003e1.11.0\u003c/a\u003e - 2025-08-07\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.10.0...1.11.0\"\u003eCompare with 1.10.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd data to dict/json output (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/9731afcbeab377e7f3f69a0d18d19677e790072e\"\u003e9731afc\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.10.0\"\u003e1.10.0\u003c/a\u003e - 2025-08-06\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.9.0...1.10.0\"\u003eCompare with 1.9.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow adding \u003ccode\u003esys.path\u003c/code\u003e to search paths when temporary visiting/inspecting package (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/42983bc843fd9a63883e9c50ad5043b0f737b450\"\u003e42983bc\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.9.0\"\u003e1.9.0\u003c/a\u003e - 2025-07-28\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.8.0...1.9.0\"\u003eCompare with 1.8.0\u003c/a\u003e\u003c!-- raw HTML omitted --\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/mkdocstrings/griffe/commit/d1899ecf00f823a75af80ea186b8a1ca30898b55\"\u003e\u003ccode\u003ed1899ec\u003c/code\u003e\u003c/a\u003e chore: Prepare release 1.12.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/58227eb377fee66ef66237d7cbed35156ff1fed1\"\u003e\u003ccode\u003e58227eb\u003c/code\u003e\u003c/a\u003e refactor: Reduce size of JSON dumps by removing keys with null values\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5c9fee2b0c6e4f4e63c7648fa41b2e540f2ecc7f\"\u003e\u003ccode\u003e5c9fee2\u003c/code\u003e\u003c/a\u003e refactor: Add fields to aliases when serializing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8c9f803e748a659905b06445a349a6cfea948c1c\"\u003e\u003ccode\u003e8c9f803\u003c/code\u003e\u003c/a\u003e refactor: Also add the option to ignore missing type to the Sphinx parser\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/41921c5609dfb67e8b5c6b59429676155d24309b\"\u003e\u003ccode\u003e41921c5\u003c/code\u003e\u003c/a\u003e chore: Prepare release 1.12.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/07564b43524220342c3078ece406459c08b80a86\"\u003e\u003ccode\u003e07564b4\u003c/code\u003e\u003c/a\u003e feat: Allow disabling \u0026quot;missing type/annotation\u0026quot; warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/34d80517db78550a49e4322c1c5f5194677779e1\"\u003e\u003ccode\u003e34d8051\u003c/code\u003e\u003c/a\u003e chore: Prepare release 1.11.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/937c7967f036d0fa452245c1aa0d0ccab0e685dd\"\u003e\u003ccode\u003e937c796\u003c/code\u003e\u003c/a\u003e docs: Don't hide navigation in Python API page\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/4da5cc570535c7bc9370635750583f6bf1925447\"\u003e\u003ccode\u003e4da5cc5\u003c/code\u003e\u003c/a\u003e docs: Lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/ce41279cc8b7abc45c7b94316b24e87d4a1edc40\"\u003e\u003ccode\u003ece41279\u003c/code\u003e\u003c/a\u003e fix: Fix type parameters loading\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.7.3...1.12.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `importlib-resources` from 5.0.7 to 6.5.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/importlib_resources/blob/main/NEWS.rst\"\u003eimportlib-resources's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev6.5.2\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplaced reference to typing_extensions with stdlib Literal. (\u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/323\"\u003e#323\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.5.1\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated \u003ccode\u003eTraversable.read_text()\u003c/code\u003e to reflect the \u003ccode\u003eerrors\u003c/code\u003e\u003ccode\u003epython/cpython#127012\u003c/code\u003e\u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/321\"\u003e#321\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.5.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd type annotations for Traversable.open. (\u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/317\"\u003e#317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequire Python 3.9 or later.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.4.5\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOmit sentinel values from a namespace path. (\u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/311\"\u003e#311\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.4.4\u003c/h1\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch1\u003ev6.4.3\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWhen inferring the caller in \u003ccode\u003efiles()\u003c/code\u003e\u003ccode\u003epython/cpython#123085\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/python/importlib_resources/commit/7d3b2bfa1d8c53ecb64246ba16d8c632f8fcb6bf\"\u003e\u003ccode\u003e7d3b2bf\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/14408098293bd6bc68eca7b5a53333729a567e57\"\u003e\u003ccode\u003e1440809\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/324\"\u003e#324\u003c/a\u003e from pstjohn/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/6569354ad2cf38b202fdeaf11b49e639b1a00fbc\"\u003e\u003ccode\u003e6569354\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/6c1bc3cdb8f8a7d29252becc201508712040facc\"\u003e\u003ccode\u003e6c1bc3c\u003c/code\u003e\u003c/a\u003e Rely on Literal from stdlib.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/883380a5fcc482b67014b90b9aa7250d868c795a\"\u003e\u003ccode\u003e883380a\u003c/code\u003e\u003c/a\u003e Update pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/a61a948b6293ed46972909652909e2540242f197\"\u003e\u003ccode\u003ea61a948\u003c/code\u003e\u003c/a\u003e Add typing-extensions as a dependency\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/78c4bda73c5d671cbbcfdf1430b6f2da03aeb04f\"\u003e\u003ccode\u003e78c4bda\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/10d87bf85a404e9fb9271f8f353ad0452c0cc631\"\u003e\u003ccode\u003e10d87bf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/321\"\u003e#321\u003c/a\u003e from kurtmckee/add-readtext-errors-parameter-cpython-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/9a872e5dbceff32260e8ff19d039236304ee150c\"\u003e\u003ccode\u003e9a872e5\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/cf269ce50f496671f3b7fbc5e6292946ecc70e7d\"\u003e\u003ccode\u003ecf269ce\u003c/code\u003e\u003c/a\u003e Replace unreachable block with simple assertion. Fixes diffcov failure.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/importlib_resources/compare/v5.0.7...v6.5.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jsonschema` from 4.24.0 to 4.25.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-jsonschema/jsonschema/releases\"\u003ejsonschema's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.25.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for the \u003ccode\u003eiri\u003c/code\u003e and \u003ccode\u003eiri-reference\u003c/code\u003e formats to the \u003ccode\u003eformat-nongpl\u003c/code\u003e extra by \u003ca href=\"https://github.com/jkowalleck\"\u003e\u003ccode\u003e@​jkowalleck\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1388\"\u003epython-jsonschema/jsonschema#1388\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/jkowalleck\"\u003e\u003ccode\u003e@​jkowalleck\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1388\"\u003epython-jsonschema/jsonschema#1388\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/python-jsonschema/jsonschema/compare/v4.24.1...v4.25.0\"\u003ehttps://github.com/python-jsonschema/jsonschema/compare/v4.24.1...v4.25.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.24.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUnambiguously quote and escape properties in JSON path rendering by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1390\"\u003epython-jsonschema/jsonschema#1390\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop python\u0026lt;3.9 backports by \u003ca href=\"https://github.com/hackowitz-af\"\u003e\u003ccode\u003e@​hackowitz-af\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-...\n\n_Description has been truncated_","html_url":"https://github.com/pycontribs/subprocess-tee/pull/187","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/pycontribs%2Fsubprocess-tee/issues/187","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/187/packages"}],"issue_packages":[{"old_version":"8.4.2","new_version":"9.0.3","update_type":"major","path":null,"pr_created_at":"2026-05-13T12:43:09.000Z","version_change":"8.4.2 → 9.0.3","issue":{"uuid":"4437947118","node_id":"PR_kwDOOFC0s87bHlb4","number":1,"state":"open","title":"Bump the uv group across 3 directories with 10 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-13T12:43:09.000Z","updated_at":"2026-05-13T12:43:36.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"uv","update_count":10,"packages":[{"name":"starlette","old_version":"0.47.3","new_version":"0.49.1","repository_url":"https://github.com/Kludex/starlette"},{"name":"python-multipart","old_version":"0.0.20","new_version":"0.0.27","repository_url":"https://github.com/Kludex/python-multipart"},{"name":"python-dotenv","old_version":"1.1.1","new_version":"1.2.2","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"black","old_version":"25.1.0","new_version":"26.3.1","repository_url":"https://github.com/psf/black"},{"name":"pillow","old_version":"11.3.0","new_version":"12.2.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"requests","old_version":"2.32.5","new_version":"2.33.0","repository_url":"https://github.com/psf/requests"},{"name":"urllib3","old_version":"2.5.0","new_version":"2.7.0","repository_url":"https://github.com/urllib3/urllib3"}],"path":null,"ecosystem":"conda"},"body":"Bumps the uv group with 8 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [starlette](https://github.com/Kludex/starlette) | `0.47.3` | `0.49.1` |\n| [python-multipart](https://github.com/Kludex/python-multipart) | `0.0.20` | `0.0.27` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.1.1` | `1.2.2` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.2` | `9.0.3` |\n| [black](https://github.com/psf/black) | `25.1.0` | `26.3.1` |\n| [pillow](https://github.com/python-pillow/Pillow) | `11.3.0` | `12.2.0` |\n| [requests](https://github.com/psf/requests) | `2.32.5` | `2.33.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.5.0` | `2.7.0` |\n\nBumps the uv group with 7 updates in the /examples/clients/simple-chatbot directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [starlette](https://github.com/Kludex/starlette) | `0.45.2` | `0.49.1` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.0.1` | `1.2.2` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.4` | `9.0.3` |\n| [mcp](https://github.com/modelcontextprotocol/python-sdk) | `1.2.0` | `1.23.0` |\n| [h11](https://github.com/python-hyper/h11) | `0.14.0` | `0.16.0` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.33.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.3.0` | `2.7.0` |\n\nBumps the uv group with 4 updates in the /examples/clients/simple-auth-client directory: [starlette](https://github.com/Kludex/starlette), [python-multipart](https://github.com/Kludex/python-multipart), [python-dotenv](https://github.com/theskumar/python-dotenv) and [pytest](https://github.com/pytest-dev/pytest).\n\nUpdates `starlette` from 0.47.3 to 0.49.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/releases\"\u003estarlette's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.49.1\u003c/h2\u003e\n\u003cp\u003eThis release fixes a security vulnerability in the parsing logic of the \u003ccode\u003eRange\u003c/code\u003e header in \u003ccode\u003eFileResponse\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eYou can view the full security advisory: \u003ca href=\"https://github.com/Kludex/starlette/security/advisories/GHSA-7f5h-v6xp-fcq8\"\u003eGHSA-7f5h-v6xp-fcq8\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize the HTTP ranges parsing logic \u003ca href=\"https://github.com/Kludex/starlette/commit/4ea6e22b489ec388d6004cfbca52dd5b147127c5\"\u003e4ea6e22b489ec388d6004cfbca52dd5b147127c5\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.49.0...0.49.1\"\u003ehttps://github.com/Kludex/starlette/compare/0.49.0...0.49.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.49.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eencoding\u003c/code\u003e parameter to \u003ccode\u003eConfig\u003c/code\u003e class \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2996\"\u003e#2996\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSupport multiple cookie headers in \u003ccode\u003eRequest.cookies\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3029\"\u003e#3029\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eLiteral\u003c/code\u003e type for \u003ccode\u003eWebSocketEndpoint\u003c/code\u003e encoding values \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3027\"\u003e#3027\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDo not pollute exception context in \u003ccode\u003eMiddleware\u003c/code\u003e when using \u003ccode\u003eBaseHTTPMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2976\"\u003e#2976\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TheWesDias\"\u003e\u003ccode\u003e@​TheWesDias\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3017\"\u003eKludex/starlette#3017\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gmos2104\"\u003e\u003ccode\u003e@​gmos2104\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3027\"\u003eKludex/starlette#3027\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/secrett2633\"\u003e\u003ccode\u003e@​secrett2633\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2996\"\u003eKludex/starlette#2996\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adam-sikora\"\u003e\u003ccode\u003e@​adam-sikora\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2976\"\u003eKludex/starlette#2976\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.48.0...0.49.0\"\u003ehttps://github.com/Kludex/starlette/compare/0.48.0...0.49.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.48.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd official Python 3.14 support \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3013\"\u003e#3013\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImplement \u003ca href=\"https://www.rfc-editor.org/rfc/rfc9110\"\u003eRFC9110\u003c/a\u003e http status names \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2939\"\u003e#2939\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yakimka\"\u003e\u003ccode\u003e@​yakimka\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2943\"\u003eKludex/starlette#2943\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mbeijen\"\u003e\u003ccode\u003e@​mbeijen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2939\"\u003eKludex/starlette#2939\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.47.3...0.48.0\"\u003ehttps://github.com/Kludex/starlette/compare/0.47.3...0.48.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/Kludex/starlette/blob/main/docs/release-notes.md\"\u003estarlette's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.49.1 (October 28, 2025)\u003c/h2\u003e\n\u003cp\u003eThis release fixes a security vulnerability in the parsing logic of the \u003ccode\u003eRange\u003c/code\u003e header in \u003ccode\u003eFileResponse\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eYou can view the full security advisory: \u003ca href=\"https://github.com/Kludex/starlette/security/advisories/GHSA-7f5h-v6xp-fcq8\"\u003eGHSA-7f5h-v6xp-fcq8\u003c/a\u003e\u003c/p\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize the HTTP ranges parsing logic \u003ca href=\"https://github.com/Kludex/starlette/commit/4ea6e22b489ec388d6004cfbca52dd5b147127c5\"\u003e4ea6e22b489ec388d6004cfbca52dd5b147127c5\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.49.0 (October 28, 2025)\u003c/h2\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eencoding\u003c/code\u003e parameter to \u003ccode\u003eConfig\u003c/code\u003e class \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2996\"\u003e#2996\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSupport multiple cookie headers in \u003ccode\u003eRequest.cookies\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3029\"\u003e#3029\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eLiteral\u003c/code\u003e type for \u003ccode\u003eWebSocketEndpoint\u003c/code\u003e encoding values \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3027\"\u003e#3027\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanged\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eDo not pollute exception context in \u003ccode\u003eMiddleware\u003c/code\u003e when using \u003ccode\u003eBaseHTTPMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2976\"\u003e#2976\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.48.0 (September 13, 2025)\u003c/h2\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd official Python 3.14 support \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3013\"\u003e#3013\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanged\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eImplement \u003ca href=\"https://www.rfc-editor.org/rfc/rfc9110\"\u003eRFC9110\u003c/a\u003e http status names \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2939\"\u003e#2939\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/7e4b7428f273dbdc875dcd036d20804bcfc7b2ee\"\u003e\u003ccode\u003e7e4b742\u003c/code\u003e\u003c/a\u003e Version 0.49.1 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3047\"\u003e#3047\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/4ea6e22b489ec388d6004cfbca52dd5b147127c5\"\u003e\u003ccode\u003e4ea6e22\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/7d88ea6f8ec8aa99cdb5fc7a10b88db5aadfdfee\"\u003e\u003ccode\u003e7d88ea6\u003c/code\u003e\u003c/a\u003e Version 0.49.0 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3046\"\u003e#3046\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/26d66bbfb05c7bbecbbb57106c65f33682f8174e\"\u003e\u003ccode\u003e26d66bb\u003c/code\u003e\u003c/a\u003e Do not pollute exception context in Middleware (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/2976\"\u003e#2976\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/a59397db889e3a96c4f34b1406957a3b92e1e8b5\"\u003e\u003ccode\u003ea59397d\u003c/code\u003e\u003c/a\u003e Set encodings when reading config files (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/2996\"\u003e#2996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/3b7f0cbf598be305528a498a35089ce723060372\"\u003e\u003ccode\u003e3b7f0cb\u003c/code\u003e\u003c/a\u003e test: add test for unknown status (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3035\"\u003e#3035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/b09ce1a99d352ee6f5b896597f03a1a57507afcd\"\u003e\u003ccode\u003eb09ce1a\u003c/code\u003e\u003c/a\u003e docs: fix legibility issues on sponsorship page (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3039\"\u003e#3039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/0f0edcf8007412d9536bf8714c5815ce8f5dba4b\"\u003e\u003ccode\u003e0f0edcf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Add Marcelo Trylesinski to the license (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3025\"\u003e#3025\u003c/a\u003e)\u0026quot; (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3044\"\u003e#3044\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/3912d6313730cc6004dfb4436e37dbc1a81db7c8\"\u003e\u003ccode\u003e3912d63\u003c/code\u003e\u003c/a\u003e docs: add social icons (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3038\"\u003e#3038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/4915a9309fcad58ac08b9fa550563d3287b531ad\"\u003e\u003ccode\u003e4915a93\u003c/code\u003e\u003c/a\u003e Add discord to README/docs (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3034\"\u003e#3034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/starlette/compare/0.47.3...0.49.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-multipart` from 0.0.20 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/Kludex/python-multipart/releases\"\u003epython-multipart's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.0.27\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePass parse offsets via constructors by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/268\"\u003eKludex/python-multipart#268\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd multipart header limits by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/267\"\u003eKludex/python-multipart#267\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.26...0.0.27\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.26...0.0.27\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.26\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSkip preamble before first multipart boundary by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/262\"\u003eKludex/python-multipart#262\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSilently discard epilogue data after the closing boundary by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/259\"\u003eKludex/python-multipart#259\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.25...0.0.26\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.25...0.0.26\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.25\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eApply Apache-2.0 properly by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/247\"\u003eKludex/python-multipart#247\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle multipart headers case-insensitively by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/252\"\u003eKludex/python-multipart#252\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEmit \u003ccode\u003efield_end\u003c/code\u003e for trailing bare field names on finalize by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/230\"\u003eKludex/python-multipart#230\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eUPLOAD_DELETE_TMP\u003c/code\u003e to \u003ccode\u003eFormParser\u003c/code\u003e config by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/254\"\u003eKludex/python-multipart#254\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove custom FormParser classes by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/257\"\u003eKludex/python-multipart#257\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle CTE values case-insensitively by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/258\"\u003eKludex/python-multipart#258\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd MIME content type info to File by \u003ca href=\"https://github.com/jhnstrk\"\u003e\u003ccode\u003e@​jhnstrk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/143\"\u003eKludex/python-multipart#143\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.24...0.0.25\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.24...0.0.25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.24\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate \u003ccode\u003echunk_size\u003c/code\u003e in \u003ccode\u003eparse_form()\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/244\"\u003eKludex/python-multipart#244\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.23...0.0.24\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.23...0.0.24\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.23\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove unused \u003ccode\u003etrust_x_headers\u003c/code\u003e parameter and \u003ccode\u003eX-File-Name\u003c/code\u003e fallback by \u003ca href=\"https://github.com/jhnstrk\"\u003e\u003ccode\u003e@​jhnstrk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/196\"\u003eKludex/python-multipart#196\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReturn processed length from \u003ccode\u003eQuerystringParser._internal_write\u003c/code\u003e by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/229\"\u003eKludex/python-multipart#229\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCleanup metadata dunders from \u003ccode\u003e__init__.py\u003c/code\u003e by \u003ca href=\"https://github.com/Chesars\"\u003e\u003ccode\u003e@​Chesars\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003eKludex/python-multipart#227\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/Chesars\"\u003e\u003ccode\u003e@​Chesars\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003eKludex/python-multipart#227\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/Kludex/python-multipart/pull/229\"\u003eKludex/python-multipart#229\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.22...0.0.23\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.22...0.0.23\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.22\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/python-multipart/blob/main/CHANGELOG.md\"\u003epython-multipart's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.27 (2026-04-27)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd multipart header limits \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/267\"\u003e#267\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003ePass parse offsets via constructors \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/268\"\u003e#268\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.26 (2026-04-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSkip preamble before the first multipart boundary more efficiently \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/262\"\u003e#262\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSilently discard epilogue data after the closing multipart boundary \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/259\"\u003e#259\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.25 (2026-04-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd MIME content type info to \u003ccode\u003eFile\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/143\"\u003e#143\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eHandle CTE values case-insensitively \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/258\"\u003e#258\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRemove custom \u003ccode\u003eFormParser\u003c/code\u003e classes \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/257\"\u003e#257\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eUPLOAD_DELETE_TMP\u003c/code\u003e to \u003ccode\u003eFormParser\u003c/code\u003e config \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/254\"\u003e#254\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEmit \u003ccode\u003efield_end\u003c/code\u003e for trailing bare field names on finalize \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/230\"\u003e#230\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eHandle multipart headers case-insensitively \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/252\"\u003e#252\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eApply Apache-2.0 properly \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/247\"\u003e#247\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.24 (2026-04-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate \u003ccode\u003echunk_size\u003c/code\u003e in \u003ccode\u003eparse_form()\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/244\"\u003e#244\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.23 (2026-04-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove unused \u003ccode\u003etrust_x_headers\u003c/code\u003e parameter and \u003ccode\u003eX-File-Name\u003c/code\u003e fallback \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/196\"\u003e#196\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eReturn processed length from \u003ccode\u003eQuerystringParser._internal_write\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/229\"\u003e#229\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCleanup metadata dunders from \u003ccode\u003e__init__.py\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003e#227\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.22 (2026-01-25)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop directory path from filename in \u003ccode\u003eFile\u003c/code\u003e \u003ca href=\"https://github.com/Kludex/python-multipart/commit/9433f4bbc9652bdde82bbe380984e32f8cfc89c4\"\u003e9433f4b\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.21 (2025-12-17)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14 and drop EOL 3.8 and 3.9 \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/216\"\u003e#216\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/6d1d6892a6b01b25da6f3e7b097e8e06c57fb250\"\u003e\u003ccode\u003e6d1d689\u003c/code\u003e\u003c/a\u003e Version 0.0.27 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/272\"\u003e#272\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/0b10220b1555af068a2bc8b198022b1ae238200f\"\u003e\u003ccode\u003e0b10220\u003c/code\u003e\u003c/a\u003e Run CI on main branch pull requests (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/271\"\u003e#271\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/3e64f5f8caba0e5d391b0c1ad0f1c2edf9e8f911\"\u003e\u003ccode\u003e3e64f5f\u003c/code\u003e\u003c/a\u003e Add multipart header limits (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/eb109cc4eb8174f2a7efc1ba894b1bf6425c0b14\"\u003e\u003ccode\u003eeb109cc\u003c/code\u003e\u003c/a\u003e Pass parse offsets via constructors (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/268\"\u003e#268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/78e29abb9a339598975beee093a770ec3033f76d\"\u003e\u003ccode\u003e78e29ab\u003c/code\u003e\u003c/a\u003e Bump pytest from 9.0.2 to 9.0.3 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/266\"\u003e#266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/b2ddd0982bdf0fe852e4f3baa12122d2827af46c\"\u003e\u003ccode\u003eb2ddd09\u003c/code\u003e\u003c/a\u003e fuzz: Enhance fuzzing capabilities with new chunked and boundary tests (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/28f47859b4a40c2e11e02dc514b2e9743ceedd2e\"\u003e\u003ccode\u003e28f4785\u003c/code\u003e\u003c/a\u003e Version 0.0.26 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/263\"\u003e#263\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/d4452a78bbde94995dd3c0d1b4aff3610a5c472f\"\u003e\u003ccode\u003ed4452a7\u003c/code\u003e\u003c/a\u003e Silently discard epilogue data after the closing boundary (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/259\"\u003e#259\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/6a7b76dd2653d99d8e5981d7ff09a4a047750b37\"\u003e\u003ccode\u003e6a7b76d\u003c/code\u003e\u003c/a\u003e Skip preamble before first multipart boundary (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/262\"\u003e#262\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/4addb60350fc843f77a1502f14247db91930b3bf\"\u003e\u003ccode\u003e4addb60\u003c/code\u003e\u003c/a\u003e Version 0.0.25 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.20...0.0.27\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-dotenv` from 1.1.1 to 1.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/releases\"\u003epython-dotenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.2\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14, including the free-threaded (3.14t) build. (#)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edotenv run\u003c/code\u003e command now forwards flags directly to the specified command by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/607\"\u003etheskumar/python-dotenv#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved documentation clarity regarding override behavior and the reference page.\u003c/li\u003e\n\u003cli\u003eUpdated PyPy support to version 3.11.\u003c/li\u003e\n\u003cli\u003eDocumentation for FIFO file support.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved \u003ccode\u003eset_key\u003c/code\u003e and \u003ccode\u003eunset_key\u003c/code\u003e behavior when interacting with symlinks by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/theskumar/python-dotenv/commit/790c5c02991100aa1bf41ee5330aca75edc51311\"\u003e#790c5\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrected the license specifier and added missing Python 3.14 classifiers in package metadata by \u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/590\"\u003etheskumar/python-dotenv#590\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e and \u003ccode\u003edotenv.unset_key\u003c/code\u003e used to follow symlinks in some\nsituations. This is no longer the case. For that behavior to be restored in\nall cases, \u003ccode\u003efollow_symlinks=True\u003c/code\u003e should be used.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn the CLI, \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e used to follow symlinks in some situations. This\nis no longer the case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e, \u003ccode\u003edotenv.unset_key\u003c/code\u003e and the CLI commands \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e\nused to reset the file mode of the modified .env file to \u003ccode\u003e0o600\u003c/code\u003e in some\nsituations. This is no longer the case: The original mode of the file is now\npreserved. Is the file needed to be created or wasn't a regular file, mode\n\u003ccode\u003e0o600\u003c/code\u003e is used.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eskip 000 permission tests for root user by \u003ca href=\"https://github.com/burnout-projects\"\u003e\u003ccode\u003e@​burnout-projects\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/561\"\u003etheskumar/python-dotenv#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 5 to 6 in the github-actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/593\"\u003etheskumar/python-dotenv#593\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Windows testing to CI by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/604\"\u003etheskumar/python-dotenv#604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove workflow efficiency with best practices by \u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/609\"\u003etheskumar/python-dotenv#609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove the use of \u003ccode\u003esh\u003c/code\u003e in tests by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/612\"\u003etheskumar/python-dotenv#612\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/590\"\u003etheskumar/python-dotenv#590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/burnout-projects\"\u003e\u003ccode\u003e@​burnout-projects\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/561\"\u003etheskumar/python-dotenv#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cpackham-atlnz\"\u003e\u003ccode\u003e@​cpackham-atlnz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/597\"\u003etheskumar/python-dotenv#597\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.2.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md\"\u003epython-dotenv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.2] - 2026-03-01\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14, including the free-threaded (3.14t) build. (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edotenv run\u003c/code\u003e command now forwards flags directly to the specified command by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/607\"\u003e#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved documentation clarity regarding override behavior and the reference page.\u003c/li\u003e\n\u003cli\u003eUpdated PyPy support to version 3.11.\u003c/li\u003e\n\u003cli\u003eDocumentation for FIFO file support.\u003c/li\u003e\n\u003cli\u003eDropped Support for Python 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved \u003ccode\u003eset_key\u003c/code\u003e and \u003ccode\u003eunset_key\u003c/code\u003e behavior when interacting with symlinks by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in [790c5c0]\u003c/li\u003e\n\u003cli\u003eCorrected the license specifier and added missing Python 3.14 classifiers in package metadata by [\u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/590\"\u003e#590\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e and \u003ccode\u003edotenv.unset_key\u003c/code\u003e used to follow symlinks in some\nsituations. This is no longer the case. For that behavior to be restored in\nall cases, \u003ccode\u003efollow_symlinks=True\u003c/code\u003e should be used.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn the CLI, \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e used to follow symlinks in some situations. This\nis no longer the case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e, \u003ccode\u003edotenv.unset_key\u003c/code\u003e and the CLI commands \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e\nused to reset the file mode of the modified .env file to \u003ccode\u003e0o600\u003c/code\u003e in some\nsituations. This is no longer the case: The original mode of the file is now\npreserved. Is the file needed to be created or wasn't a regular file, mode\n\u003ccode\u003e0o600\u003c/code\u003e is used.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.2.1] - 2025-10-26\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMove more config to \u003ccode\u003epyproject.toml\u003c/code\u003e, removed \u003ccode\u003esetup.cfg\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for reading \u003ccode\u003e.env\u003c/code\u003e from FIFOs (Unix) by [\u003ca href=\"https://github.com/sidharth-sudhir\"\u003e\u003ccode\u003e@​sidharth-sudhir\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/586\"\u003e#586\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.2.0] - 2025-10-26\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade build system to use PEP 517 \u0026amp; PEP 518 to use \u003ccode\u003ebuild\u003c/code\u003e and \u003ccode\u003epyproject.toml\u003c/code\u003e by [\u003ca href=\"https://github.com/EpicWink\"\u003e\u003ccode\u003e@​EpicWink\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/583\"\u003e#583\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14 by [\u003ca href=\"https://github.com/23f3001135\"\u003e\u003ccode\u003e@​23f3001135\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/579\"\u003e#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for disabling of \u003ccode\u003eload_dotenv()\u003c/code\u003e using \u003ccode\u003ePYTHON_DOTENV_DISABLED\u003c/code\u003e env var. by [\u003ca href=\"https://github.com/matthewfranglen\"\u003e\u003ccode\u003e@​matthewfranglen\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/569\"\u003e#569\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/36004e0e34be7665ff2b11a8a4005144f76f176d\"\u003e\u003ccode\u003e36004e0\u003c/code\u003e\u003c/a\u003e Bump version: 1.2.1 → 1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/eb202520e5933c9daf42501e1e42fdb0144002c8\"\u003e\u003ccode\u003eeb20252\u003c/code\u003e\u003c/a\u003e docs: update changelog for v1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/790c5c02991100aa1bf41ee5330aca75edc51311\"\u003e\u003ccode\u003e790c5c0\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/43340da220fb4ca4f95357bbe21a3c7f8f1278b1\"\u003e\u003ccode\u003e43340da\u003c/code\u003e\u003c/a\u003e Remove the use of \u003ccode\u003esh\u003c/code\u003e in tests (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/612\"\u003e#612\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/09d7cee32459e7abdcb5c9d8122a552589c06a9c\"\u003e\u003ccode\u003e09d7cee\u003c/code\u003e\u003c/a\u003e docs: clarify override behavior and document FIFO support (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/610\"\u003e#610\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/c8de2887c00198c22842c5ae5e92d1747467363c\"\u003e\u003ccode\u003ec8de288\u003c/code\u003e\u003c/a\u003e ci: improve workflow efficiency with best practices (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/609\"\u003e#609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/7bd9e3dbfedc0983ad7d56d5570013035242bdf4\"\u003e\u003ccode\u003e7bd9e3d\u003c/code\u003e\u003c/a\u003e Add Windows testing to CI (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/604\"\u003e#604\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/1baaf04f336072e0ee324d5df9563ec767f14f81\"\u003e\u003ccode\u003e1baaf04\u003c/code\u003e\u003c/a\u003e Drop Python 3.9 support and update to PyPy 3.11 (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/608\"\u003e#608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/4a22cf8993804aeede0c20b75bb1a29d3a99e9dc\"\u003e\u003ccode\u003e4a22cf8\u003c/code\u003e\u003c/a\u003e ci: enable testing on Python 3.14t (free-threaded) (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/e2e8e776b42e382ae38b44d3982dd649e7507dd4\"\u003e\u003ccode\u003ee2e8e77\u003c/code\u003e\u003c/a\u003e Fix license specifier (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/597\"\u003e#597\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.1.1...v1.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.4.2 to 9.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\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/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.4.2...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `black` from 25.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/25.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 `pillow` from 11.3.0 to 12.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003epillow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e12.2.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate 12.2.0 release notes \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd loader plugins: AMOS abk, Atari Degas, 40+ more obscure formats via Netpbm \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9482\"\u003e#9482\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Python versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9515\"\u003e#9515\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eJeffrey A. Clark -\u0026gt; Jeffrey 'Alex' Clark \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9513\"\u003e#9513\u003c/a\u003e [\u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9394\"\u003e#9394\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9419\"\u003e#9419\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9456\"\u003e#9456\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9467\"\u003e#9467\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd Amiga Workbench .info loader to 3rd party plugins list \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9459\"\u003e#9459\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMerge PFM documentation into PPM \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9434\"\u003e#9434\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix CVE number \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9430\"\u003e#9430\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate xz to 5.8.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9523\"\u003e#9523\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libjpeg-turbo to 3.1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9507\"\u003e#9507\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libpng to 1.6.56 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9499\"\u003e#9499\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9485\"\u003e#9485\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libavif to 1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9479\"\u003e#9479\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated harfbuzz to 13.2.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9461\"\u003e#9461\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate harfbuzz to 13.0.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9453\"\u003e#9453\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libavif to 1.4.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9460\"\u003e#9460\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9449\"\u003e#9449\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate actions/download-artifact action to v8 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9451\"\u003e#9451\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.55 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9425\"\u003e#9425\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTesting\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCleanup .spider extension in the same test where it is added \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9517\"\u003e#9517\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eRun tests in parallel via tox for 3.5x speedup \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9516\"\u003e#9516\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eEnable colour in CI logs \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9486\"\u003e#9486\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSimplify TGA test code \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9477\"\u003e#9477\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate tests to check for ValueError when encoding an empty image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9464\"\u003e#9464\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpgrade CI from \u003ccode\u003emacos-15-intel\u003c/code\u003e to \u003ccode\u003emacos-26-intel\u003c/code\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9454\"\u003e#9454\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd check-case-conflict hook \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9446\"\u003e#9446\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSpecify platform when pulling docker image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9440\"\u003e#9440\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eGHA: Cache libavif and webp builds for Ubuntu \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9437\"\u003e#9437\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCheck calloc return value \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9527\"\u003e#9527\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eCheck all allocs in the Arrow tree \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9488\"\u003e#9488\u003c/a\u003e [\u003ca href=\"https://github.com/wiredfool\"\u003e\u003ccode\u003e@​wiredfool\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eReject non-numeric elements inside list coords \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9526\"\u003e#9526\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMove variable declaration inside define \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9525\"\u003e#9525\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\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/python-pillow/Pillow/commit/3c41c095064200a02672d89cc5ff629eaf4b0d4f\"\u003e\u003ccode\u003e3c41c09\u003c/code\u003e\u003c/a\u003e 12.2.0 version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cdaa29eb520291c4f1fb50fb71ae46502d41e460\"\u003e\u003ccode\u003ecdaa29e\u003c/code\u003e\u003c/a\u003e Check calloc return value (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9527\"\u003e#9527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/585b2f5a780722c8a5bfffb3a40f7f42e8a205be\"\u003e\u003ccode\u003e585b2f5\u003c/code\u003e\u003c/a\u003e Check calloc return value\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/ecf011ea15991d4cebacd946e58270cc30b0f2c1\"\u003e\u003ccode\u003eecf011e\u003c/code\u003e\u003c/a\u003e Check all allocs in the Arrow tree (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9488\"\u003e#9488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cf6de8ca9b23e714aa5310e1c791eda66fc0b670\"\u003e\u003ccode\u003ecf6de8c\u003c/code\u003e\u003c/a\u003e Reject non-numeric elements inside list coords (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9526\"\u003e#9526\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/ffdcede6516b28d9667c92929854023d17048b64\"\u003e\u003ccode\u003effdcede\u003c/code\u003e\u003c/a\u003e Update 12.2.0 release notes (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/7929d7760fe5a307ba5ae6eabdf70ae4486b147c\"\u003e\u003ccode\u003e7929d77\u003c/code\u003e\u003c/a\u003e Added security release notes (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/149\"\u003e#149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/c4f7aa5dfb4dbd1242978ac235e01b9934ec6d3c\"\u003e\u003ccode\u003ec4f7aa5\u003c/code\u003e\u003c/a\u003e Added security release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/22cdb5f2e4b15250c06563b1124ac1667342712f\"\u003e\u003ccode\u003e22cdb5f\u003c/code\u003e\u003c/a\u003e Move variable declaration inside define (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9525\"\u003e#9525\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/fc15b3b01899408ec989d7804c5283e13802d057\"\u003e\u003ccode\u003efc15b3b\u003c/code\u003e\u003c/a\u003e Resize tall images vertically first (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9524\"\u003e#9524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-pillow/Pillow/compare/11.3.0...12.2.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.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/753fd08c5eacce0aa0df73fe47e49525c67e0a29\"\u003e\u003ccode\u003e753fd08\u003c/code\u003e\u003c/a\u003e docs: fix FAQ grammar in httplib2 example\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/774a0b837a194ee885d4fdd9ca947900cc3daf71\"\u003e\u003ccode\u003e774a0b8\u003c/code\u003e\u003c/a\u003e docs(socks): same block as other sections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/9c72a41bec8597f948c9d8caa5dc3f12273b3303\"\u003e\u003ccode\u003e9c72a41\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.33.0 to 4.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/ebf71906798ec82f34e07d3168f8b8aecaf8a3be\"\u003e\u003ccode\u003eebf7190\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.32.0 to 4.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0e4ae38f0c93d4f92a96c774bd52c069d12a4798\"\u003e\u003ccode\u003e0e4ae38\u003c/code\u003e\u003c/a\u003e docs: exclude Response.is_permanent_redirect from API docs (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7244\"\u003e#7244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d568f47278492e630cc990a259047c67991d007a\"\u003e\u003ccode\u003ed568f47\u003c/code\u003e\u003c/a\u003e docs: clarify Quickstart POST example (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6960\"\u003e#6960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.5...v2.33.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `urllib3` from 2.5.0 to 2.7.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/urllib3/urllib3/releases\"\u003eurllib3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.7.0\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cp\u003eAddressed high-severity security issues. Impact was limited to specific use cases detailed in the accompanying advisories; overall user exposure was estimated to be ma...\n\n_Description has been truncated_","html_url":"https://github.com/HarleyCoops/python-sdk/pull/1","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/HarleyCoops%2Fpython-sdk/issues/1","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1/packages"}},{"old_version":"9.0.2","new_version":"9.0.3","update_type":"patch","path":null,"pr_created_at":"2026-04-12T13:05:15.000Z","version_change":"9.0.2 → 9.0.3","issue":{"uuid":"4248106987","node_id":"PR_kwDORO5-Q87RxdLv","number":23,"state":"closed","title":"chore(deps): bump the minor-and-patch group across 1 directory with 21 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-04-19T13:03:59.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-12T13:05:15.000Z","updated_at":"2026-04-19T13:04:01.000Z","time_to_close":604724,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"minor-and-patch","update_count":21,"packages":[{"name":"yfinance","old_version":"1.1.0","new_version":"1.2.1","repository_url":"https://github.com/ranaroussi/yfinance"},{"name":"requests","old_version":"2.32.5","new_version":"2.33.1","repository_url":"https://github.com/psf/requests"},{"name":"python-dotenv","old_version":"1.2.1","new_version":"1.2.2","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"pandas","old_version":"3.0.1","new_version":"3.0.2","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"numpy","old_version":"2.4.2","new_version":"2.4.4","repository_url":"https://github.com/numpy/numpy"},{"name":"jaraco-context","old_version":"6.1.0","new_version":"6.1.2","repository_url":"https://github.com/jaraco/jaraco.context"},{"name":"pytest","old_version":"9.0.2","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-cov","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"coverage","old_version":"7.13.4","new_version":"7.13.5","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"lxml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/lxml/lxml"},{"name":"certifi","old_version":"2026.1.4","new_version":"2026.2.25","repository_url":"https://github.com/certifi/python-certifi"},{"name":"curl-cffi","old_version":"0.13.0","new_version":"0.15.0","repository_url":"https://github.com/lexiforest/curl_cffi"},{"name":"charset-normalizer","old_version":"3.4.4","new_version":"3.4.7","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"platformdirs","old_version":"4.9.2","new_version":"4.9.6","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pygments","old_version":"2.19.2","new_version":"2.20.0","repository_url":"https://github.com/pygments/pygments"},{"name":"fastapi","old_version":"0.128.0","new_version":"0.135.3","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.40.0","new_version":"0.44.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"tenacity","old_version":"9.1.2","new_version":"9.1.4","repository_url":"https://github.com/jd/tenacity"},{"name":"google-cloud-storage","old_version":"3.8.0","new_version":"3.10.1","repository_url":"https://github.com/googleapis/python-storage"},{"name":"google-cloud-secret-manager","old_version":"2.26.0","new_version":"2.27.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pytest-httpx","old_version":"0.36.0","new_version":"0.36.2","repository_url":"https://github.com/Colin-b/pytest_httpx"}],"path":null,"ecosystem":"conda"},"body":"Bumps the minor-and-patch group with 21 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [yfinance](https://github.com/ranaroussi/yfinance) | `1.1.0` | `1.2.1` |\n| [requests](https://github.com/psf/requests) | `2.32.5` | `2.33.1` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.2.1` | `1.2.2` |\n| [pandas](https://github.com/pandas-dev/pandas) | `3.0.1` | `3.0.2` |\n| [numpy](https://github.com/numpy/numpy) | `2.4.2` | `2.4.4` |\n| [jaraco-context](https://github.com/jaraco/jaraco.context) | `6.1.0` | `6.1.2` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.2` | `9.0.3` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `7.0.0` | `7.1.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.13.4` | `7.13.5` |\n| [lxml](https://github.com/lxml/lxml) | `6.0.2` | `6.0.3` |\n| [certifi](https://github.com/certifi/python-certifi) | `2026.1.4` | `2026.2.25` |\n| [curl-cffi](https://github.com/lexiforest/curl_cffi) | `0.13.0` | `0.15.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.4` | `3.4.7` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.9.2` | `4.9.6` |\n| [pygments](https://github.com/pygments/pygments) | `2.19.2` | `2.20.0` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.128.0` | `0.135.3` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.40.0` | `0.44.0` |\n| [tenacity](https://github.com/jd/tenacity) | `9.1.2` | `9.1.4` |\n| [google-cloud-storage](https://github.com/googleapis/python-storage) | `3.8.0` | `3.10.1` |\n| [google-cloud-secret-manager](https://github.com/googleapis/google-cloud-python) | `2.26.0` | `2.27.0` |\n| [pytest-httpx](https://github.com/Colin-b/pytest_httpx) | `0.36.0` | `0.36.2` |\n\n\nUpdates `yfinance` from 1.1.0 to 1.2.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ranaroussi/yfinance/releases\"\u003eyfinance's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.2.1\u003c/h2\u003e\n\u003ch3\u003ePatch updates:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eForce curl_cffi\u0026gt;=0.15 because CVE \u003ca href=\"https://redirect.github.com/ranaroussi/yfinance/issues/2743\"\u003e#2743\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreserve currency in dividends \u003ca href=\"https://redirect.github.com/ranaroussi/yfinance/issues/2695\"\u003e#2695\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove \u003ccode\u003edownload()\u003c/code\u003e thread-safety \u003ca href=\"https://redirect.github.com/ranaroussi/yfinance/issues/2718\"\u003e#2718\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks \u003ca href=\"https://github.com/david-belbeze\"\u003e\u003ccode\u003e@​david-belbeze\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/wavebyrd\"\u003e\u003ccode\u003e@​wavebyrd\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.2.0\u003c/h2\u003e\n\u003ch3\u003eMinor changes\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003eyf.history()\u003c/code\u003e dataframe is now \u003ca href=\"https://pandas.pydata.org/pandas-docs/version/0.19/generated/pandas.DataFrame.consolidate.html\"\u003econsolidated\u003c/a\u003e, might trigger read-only errors in your code.\u003c/p\u003e\n\u003ch3\u003ePatches\u003c/h3\u003e\n\u003cp\u003eScreener: lots more fund countries, some more equity exchanges\u003c/p\u003e\n\u003cp\u003ePrice repair: fix \u003ccode\u003eValueError: output array is read-only\u003c/code\u003e with Pandas 3\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003eChangelog \u003ca href=\"https://redirect.github.com/ranaroussi/yfinance/issues/2698\"\u003e#2698\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThanks \u003ca href=\"https://github.com/kbluck\"\u003e\u003ccode\u003e@​kbluck\u003c/code\u003e\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/ranaroussi/yfinance/blob/main/CHANGELOG.rst\"\u003eyfinance's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.2.1\u003c/h2\u003e\n\u003cp\u003eForce curl_cffi\u0026gt;=0.15, because CVE \u003ca href=\"https://redirect.github.com/ranaroussi/yfinance/issues/2743\"\u003e#2743\u003c/a\u003e\nPreserve currency in dividends \u003ca href=\"https://redirect.github.com/ranaroussi/yfinance/issues/2695\"\u003e#2695\u003c/a\u003e\nImprove download() thread-safety \u003ca href=\"https://redirect.github.com/ranaroussi/yfinance/issues/2718\"\u003e#2718\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.2.0\u003c/h2\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eupdate exchange maps for equities and mutual funds. \u003ca href=\"https://redirect.github.com/ranaroussi/yfinance/issues/2685\"\u003e#2685\u003c/a\u003e\nFixes:\u003c/li\u003e\n\u003cli\u003ehandle Pandas to_numpy() returning read-only \u003ca href=\"https://redirect.github.com/ranaroussi/yfinance/issues/2697\"\u003e#2697\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/ranaroussi/yfinance/commit/88072cf8356becefa6fb5d253ff3338467f4d7f9\"\u003e\u003ccode\u003e88072cf\u003c/code\u003e\u003c/a\u003e Version 1.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ranaroussi/yfinance/commit/8ba755a11f87e805919181e7fe5df3f0f27c671a\"\u003e\u003ccode\u003e8ba755a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ranaroussi/yfinance/issues/2743\"\u003e#2743\u003c/a\u003e from ranaroussi/fix/curl_cffi_cve\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ranaroussi/yfinance/commit/3b45e37f3e2ea674c9c0e2855dc97fdc1c85b78e\"\u003e\u003ccode\u003e3b45e37\u003c/code\u003e\u003c/a\u003e Force curl_cffi\u0026gt;=0.15, because CVE\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ranaroussi/yfinance/commit/621cc07a8690c9d3560e8d91faeafb541712ad42\"\u003e\u003ccode\u003e621cc07\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ranaroussi/yfinance/issues/2735\"\u003e#2735\u003c/a\u003e from ranaroussi/supply-chain-hardening\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ranaroussi/yfinance/commit/164efd59338806d5bee906e6cf5eeaba9e5b2f96\"\u003e\u003ccode\u003e164efd5\u003c/code\u003e\u003c/a\u003e Github actions: supply-chain hardening\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ranaroussi/yfinance/commit/4013a4fd745f6f3f324565eae685e7765b2a2714\"\u003e\u003ccode\u003e4013a4f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ranaroussi/yfinance/issues/2722\"\u003e#2722\u003c/a\u003e from tsinglua/main\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ranaroussi/yfinance/commit/7c41c76915bf03eb2450f531163acca82068a879\"\u003e\u003ccode\u003e7c41c76\u003c/code\u003e\u003c/a\u003e chore: remove repetitive word in multi_level_columns.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ranaroussi/yfinance/commit/81631009a20bf682dc3d6799e954fb49af770580\"\u003e\u003ccode\u003e8163100\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ranaroussi/yfinance/issues/2687\"\u003e#2687\u003c/a\u003e from KarthickKrishnasaisha/docs-logging-clarify\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ranaroussi/yfinance/commit/255b448a64a065650ca1cfc1fdbf26dd688ae1d6\"\u003e\u003ccode\u003e255b448\u003c/code\u003e\u003c/a\u003e Docs: clarify debug logging config and deprecate enable_debug_mode\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ranaroussi/yfinance/commit/f7e3a9287b6b63bd998dcd87a2557707e8f4b70f\"\u003e\u003ccode\u003ef7e3a92\u003c/code\u003e\u003c/a\u003e Version 1.2.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ranaroussi/yfinance/compare/1.1.0...1.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.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 `python-dotenv` from 1.2.1 to 1.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/releases\"\u003epython-dotenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.2\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14, including the free-threaded (3.14t) build. (#)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edotenv run\u003c/code\u003e command now forwards flags directly to the specified command by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/607\"\u003etheskumar/python-dotenv#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved documentation clarity regarding override behavior and the reference page.\u003c/li\u003e\n\u003cli\u003eUpdated PyPy support to version 3.11.\u003c/li\u003e\n\u003cli\u003eDocumentation for FIFO file support.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved \u003ccode\u003eset_key\u003c/code\u003e and \u003ccode\u003eunset_key\u003c/code\u003e behavior when interacting with symlinks by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/theskumar/python-dotenv/commit/790c5c02991100aa1bf41ee5330aca75edc51311\"\u003e#790c5\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrected the license specifier and added missing Python 3.14 classifiers in package metadata by \u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/590\"\u003etheskumar/python-dotenv#590\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e and \u003ccode\u003edotenv.unset_key\u003c/code\u003e used to follow symlinks in some\nsituations. This is no longer the case. For that behavior to be restored in\nall cases, \u003ccode\u003efollow_symlinks=True\u003c/code\u003e should be used.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn the CLI, \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e used to follow symlinks in some situations. This\nis no longer the case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e, \u003ccode\u003edotenv.unset_key\u003c/code\u003e and the CLI commands \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e\nused to reset the file mode of the modified .env file to \u003ccode\u003e0o600\u003c/code\u003e in some\nsituations. This is no longer the case: The original mode of the file is now\npreserved. Is the file needed to be created or wasn't a regular file, mode\n\u003ccode\u003e0o600\u003c/code\u003e is used.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eskip 000 permission tests for root user by \u003ca href=\"https://github.com/burnout-projects\"\u003e\u003ccode\u003e@​burnout-projects\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/561\"\u003etheskumar/python-dotenv#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 5 to 6 in the github-actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/593\"\u003etheskumar/python-dotenv#593\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Windows testing to CI by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/604\"\u003etheskumar/python-dotenv#604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove workflow efficiency with best practices by \u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/609\"\u003etheskumar/python-dotenv#609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove the use of \u003ccode\u003esh\u003c/code\u003e in tests by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/612\"\u003etheskumar/python-dotenv#612\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/590\"\u003etheskumar/python-dotenv#590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/burnout-projects\"\u003e\u003ccode\u003e@​burnout-projects\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/561\"\u003etheskumar/python-dotenv#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cpackham-atlnz\"\u003e\u003ccode\u003e@​cpackham-atlnz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/597\"\u003etheskumar/python-dotenv#597\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md\"\u003epython-dotenv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.2] - 2026-03-01\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14, including the free-threaded (3.14t) build. (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edotenv run\u003c/code\u003e command now forwards flags directly to the specified command by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/607\"\u003e#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved documentation clarity regarding override behavior and the reference page.\u003c/li\u003e\n\u003cli\u003eUpdated PyPy support to version 3.11.\u003c/li\u003e\n\u003cli\u003eDocumentation for FIFO file support.\u003c/li\u003e\n\u003cli\u003eDropped Support for Python 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved \u003ccode\u003eset_key\u003c/code\u003e and \u003ccode\u003eunset_key\u003c/code\u003e behavior when interacting with symlinks by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in [790c5c0]\u003c/li\u003e\n\u003cli\u003eCorrected the license specifier and added missing Python 3.14 classifiers in package metadata by [\u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/590\"\u003e#590\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e and \u003ccode\u003edotenv.unset_key\u003c/code\u003e used to follow symlinks in some\nsituations. This is no longer the case. For that behavior to be restored in\nall cases, \u003ccode\u003efollow_symlinks=True\u003c/code\u003e should be used.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn the CLI, \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e used to follow symlinks in some situations. This\nis no longer the case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e, \u003ccode\u003edotenv.unset_key\u003c/code\u003e and the CLI commands \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e\nused to reset the file mode of the modified .env file to \u003ccode\u003e0o600\u003c/code\u003e in some\nsituations. This is no longer the case: The original mode of the file is now\npreserved. Is the file needed to be created or wasn't a regular file, mode\n\u003ccode\u003e0o600\u003c/code\u003e is used.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/36004e0e34be7665ff2b11a8a4005144f76f176d\"\u003e\u003ccode\u003e36004e0\u003c/code\u003e\u003c/a\u003e Bump version: 1.2.1 → 1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/eb202520e5933c9daf42501e1e42fdb0144002c8\"\u003e\u003ccode\u003eeb20252\u003c/code\u003e\u003c/a\u003e docs: update changelog for v1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/790c5c02991100aa1bf41ee5330aca75edc51311\"\u003e\u003ccode\u003e790c5c0\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/43340da220fb4ca4f95357bbe21a3c7f8f1278b1\"\u003e\u003ccode\u003e43340da\u003c/code\u003e\u003c/a\u003e Remove the use of \u003ccode\u003esh\u003c/code\u003e in tests (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/612\"\u003e#612\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/09d7cee32459e7abdcb5c9d8122a552589c06a9c\"\u003e\u003ccode\u003e09d7cee\u003c/code\u003e\u003c/a\u003e docs: clarify override behavior and document FIFO support (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/610\"\u003e#610\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/c8de2887c00198c22842c5ae5e92d1747467363c\"\u003e\u003ccode\u003ec8de288\u003c/code\u003e\u003c/a\u003e ci: improve workflow efficiency with best practices (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/609\"\u003e#609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/7bd9e3dbfedc0983ad7d56d5570013035242bdf4\"\u003e\u003ccode\u003e7bd9e3d\u003c/code\u003e\u003c/a\u003e Add Windows testing to CI (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/604\"\u003e#604\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/1baaf04f336072e0ee324d5df9563ec767f14f81\"\u003e\u003ccode\u003e1baaf04\u003c/code\u003e\u003c/a\u003e Drop Python 3.9 support and update to PyPy 3.11 (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/608\"\u003e#608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/4a22cf8993804aeede0c20b75bb1a29d3a99e9dc\"\u003e\u003ccode\u003e4a22cf8\u003c/code\u003e\u003c/a\u003e ci: enable testing on Python 3.14t (free-threaded) (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/e2e8e776b42e382ae38b44d3982dd649e7507dd4\"\u003e\u003ccode\u003ee2e8e77\u003c/code\u003e\u003c/a\u003e Fix license specifier (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/597\"\u003e#597\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pandas` from 3.0.1 to 3.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pandas-dev/pandas/releases\"\u003epandas's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epandas 3.0.2\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.2.\nThis is a patch release in the 3.0.x series and includes some regression fixes and bug fixes. We recommend that all users of the 3.0.x series upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/docs/dev/whatsnew/v3.0.2.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge pandas=3.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\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/pandas-dev/pandas/commit/ab90747e3dae0e69b1bdbf083820b8075689b34b\"\u003e\u003ccode\u003eab90747\u003c/code\u003e\u003c/a\u003e RLS: 3.0.2 (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/64934\"\u003e#64934\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/6f270137a27f8de4bd1afd7d71220e0760429750\"\u003e\u003ccode\u003e6f27013\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/64931\"\u003e#64931\u003c/a\u003e on branch 3.0.x (DOC/BLD: temporary disable upload of docs...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/48ddc60d6efe8d942dbe1495dea725a9d7db15ef\"\u003e\u003ccode\u003e48ddc60\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/64664\"\u003e#64664\u003c/a\u003e on branch 3.0.x (BUG: DataFrame.sum() crashes on empty Dat...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/8774488df19d0859ddc05a24210783b66da27ef7\"\u003e\u003ccode\u003e8774488\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] PERF: fix slow python loop in validation for ArrowStringArra...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/33af6cc04ed6331c23a49655c4c7bb8f90351da3\"\u003e\u003ccode\u003e33af6cc\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/64133\"\u003e#64133\u003c/a\u003e on branch 3.0.x (BUG: str.find returns byte offset instead...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/4ef49d815aae99b6ba5627ab0a54ba0819336652\"\u003e\u003ccode\u003e4ef49d8\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: fix convert_dtypes dropping values from sliced mixed-dt...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/0668f3451120e5552cdc8cf5d85f6d1238ce4e12\"\u003e\u003ccode\u003e0668f34\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: Fix HDFStore.put with StringDtype columns and compressi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/23f2f442ea1af6deddfefef2a4a1e4cb44328c3d\"\u003e\u003ccode\u003e23f2f44\u003c/code\u003e\u003c/a\u003e [backport 3.0.x] BUG: Suppress unnecessary RuntimeWarning in to_datetime with...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/83ba804de35ec98798d31474d044cff7666bebd6\"\u003e\u003ccode\u003e83ba804\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/64886\"\u003e#64886\u003c/a\u003e: BUG: Compute Variance of Complex Numbers Correctly (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/64892\"\u003e#64892\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/bb5ca1a7a96130fa0e8e2a3987c051e4473f7792\"\u003e\u003ccode\u003ebb5ca1a\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/64386\"\u003e#64386\u003c/a\u003e on branch 3.0.x (BUG: fix sort_index AssertionError with R...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pandas-dev/pandas/compare/v3.0.1...v3.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `numpy` from 2.4.2 to 2.4.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/numpy/numpy/releases\"\u003enumpy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.4 (Mar 29, 2026)\u003c/h2\u003e\n\u003ch1\u003eNumPy 2.4.4 Release Notes\u003c/h1\u003e\n\u003cp\u003eThe NumPy 2.4.4 is a patch release that fixes bugs discovered after the 2.4.3\nrelease. It should finally close issue \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30816\"\u003e#30816\u003c/a\u003e, the OpenBLAS threading problem\non ARM.\u003c/p\u003e\n\u003cp\u003eThis release supports Python versions 3.11-3.14\u003c/p\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eA total of 8 people contributed to this release. People with a \u0026quot;+\u0026quot; by their\nnames contributed a patch for the first time.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCharles Harris\u003c/li\u003e\n\u003cli\u003eDaniel Haag +\u003c/li\u003e\n\u003cli\u003eDenis Prokopenko +\u003c/li\u003e\n\u003cli\u003eHarshith J +\u003c/li\u003e\n\u003cli\u003eKoki Watanabe\u003c/li\u003e\n\u003cli\u003eMarten van Kerkwijk\u003c/li\u003e\n\u003cli\u003eMatti Picus\u003c/li\u003e\n\u003cli\u003eNathan Goldbaum\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePull requests merged\u003c/h2\u003e\n\u003cp\u003eA total of 7 pull requests were merged for this release.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30978\"\u003e#30978\u003c/a\u003e: MAINT: Prepare 2.4.x for further development\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31049\"\u003e#31049\u003c/a\u003e: BUG: Add test to reproduce problem described in \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30816\"\u003e#30816\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30818\"\u003e#30818\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31052\"\u003e#31052\u003c/a\u003e: BUG: fix FNV-1a 64-bit selection by using NPY_SIZEOF_UINTP (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31035\"\u003e#31035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31053\"\u003e#31053\u003c/a\u003e: BUG: avoid warning on ufunc with where=True and no output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31058\"\u003e#31058\u003c/a\u003e: DOC: document caveats of ndarray.resize on 3.14 and newer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31079\"\u003e#31079\u003c/a\u003e: TST: fix POWER VSX feature mapping (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30801\"\u003e#30801\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31084\"\u003e#31084\u003c/a\u003e: MAINT: numpy.i: Replace deprecated \u003ccode\u003esprintf\u003c/code\u003e with \u003ccode\u003esnprintf\u003c/code\u003e...\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.4.3 (Mar 9, 2026)\u003c/h2\u003e\n\u003ch1\u003eNumPy 2.4.3 Release Notes\u003c/h1\u003e\n\u003cp\u003eThe NumPy 2.4.3 is a patch release that fixes bugs discovered after the\n2.4.2 release. The most user visible fix may be a threading fix for\nOpenBLAS on ARM, closing issue \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30816\"\u003e#30816\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis release supports Python versions 3.11-3.14\u003c/p\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eA total of 11 people contributed to this release. People with a \u0026quot;+\u0026quot; by their\nnames contributed a patch for the first time.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAntareep Sarkar +\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/be93fe2960dbf49b4647f5783c66d967fb2c65b5\"\u003e\u003ccode\u003ebe93fe2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31090\"\u003e#31090\u003c/a\u003e from charris/prepare-2.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/f5245dc7ea5c6279c59cb0d5de81113229841290\"\u003e\u003ccode\u003ef5245dc\u003c/code\u003e\u003c/a\u003e REL: Prepare for the NumPy 2.4.4 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/02e838ba270a5ca3dd8afc5a31c090cd34a56615\"\u003e\u003ccode\u003e02e838b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31084\"\u003e#31084\u003c/a\u003e from charris/backport-31056\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/fa74b2d05f8f7604bf6635d5280c3216c8ec667f\"\u003e\u003ccode\u003efa74b2d\u003c/code\u003e\u003c/a\u003e MAINT: numpy.i: Replace deprecated \u003ccode\u003esprintf\u003c/code\u003e with \u003ccode\u003esnprintf\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31056\"\u003e#31056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/533a6db96dfa2556a61102a58c35fd64eaf3fa2b\"\u003e\u003ccode\u003e533a6db\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31079\"\u003e#31079\u003c/a\u003e from charris/backport-20801\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/9e496cbd0a281195bd779ae1833f2a8f4a1d46a7\"\u003e\u003ccode\u003e9e496cb\u003c/code\u003e\u003c/a\u003e TST: fix POWER VSX feature mapping (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30801\"\u003e#30801\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/8052c4b69ef18e582709af946f93f9e58b848f39\"\u003e\u003ccode\u003e8052c4b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31058\"\u003e#31058\u003c/a\u003e from charris/backport-31021\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/7f13b5ad2b69fd6ea6aa3af7036b2dcf98e96486\"\u003e\u003ccode\u003e7f13b5a\u003c/code\u003e\u003c/a\u003e MAINT: Skip test on PyPy.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/4c5fdd66c8f379a1e2b3f40fa62bd0b87769d1c7\"\u003e\u003ccode\u003e4c5fdd6\u003c/code\u003e\u003c/a\u003e MAINT: Remove unused import of tracemalloc.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/a3ca5ed354b26e0fd6e35bf29765a24271ed7c3a\"\u003e\u003ccode\u003ea3ca5ed\u003c/code\u003e\u003c/a\u003e Update numpy/_core/src/multiarray/shape.c\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/numpy/numpy/compare/v2.4.2...v2.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jaraco-context` from 6.1.0 to 6.1.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jaraco/jaraco.context/blob/main/NEWS.rst\"\u003ejaraco-context's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev6.1.2\u003c/h1\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch1\u003ev6.1.1\u003c/h1\u003e\n\u003cp\u003eNo significant changes.\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/jaraco/jaraco.context/commit/098f39c911d4504b2c718f2ff483ae24f1c4d378\"\u003e\u003ccode\u003e098f39c\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/jaraco.context/commit/926a20e42307a2b5d87b058f2df42345fba61ad4\"\u003e\u003ccode\u003e926a20e\u003c/code\u003e\u003c/a\u003e Fix condition for skipping safety test on Python 3.12 (\u003ca href=\"https://redirect.github.com/jaraco/jaraco.context/issues/20\"\u003e#20\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/jaraco.context/commit/19f1cbbcf4811fec84c2fee47e51c1a823b7d368\"\u003e\u003ccode\u003e19f1cbb\u003c/code\u003e\u003c/a\u003e Strict type checking and re-enable mypy (\u003ca href=\"https://redirect.github.com/jaraco/jaraco.context/issues/16\"\u003e#16\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/jaraco.context/commit/256995fa4d2bcaf5513d7d14204045de94b4957d\"\u003e\u003ccode\u003e256995f\u003c/code\u003e\u003c/a\u003e Suppress coverage errors.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/jaraco.context/commit/0190667b24bd7b7f5f199ec36dc6e974fa31aab2\"\u003e\u003ccode\u003e0190667\u003c/code\u003e\u003c/a\u003e Suppress type errors in test_safety.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/jaraco.context/commit/bc0dc8a641a0ef9539bd7b193c961f8de05344e0\"\u003e\u003ccode\u003ebc0dc8a\u003c/code\u003e\u003c/a\u003e Suppress type errors with new property.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/jaraco.context/commit/8eee4d0bbf99ee75163865b150e638378e5a0b46\"\u003e\u003ccode\u003e8eee4d0\u003c/code\u003e\u003c/a\u003e Modernize with ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/jaraco.context/commit/825171649ef9d312b6f9740d235d206c0e927c3e\"\u003e\u003ccode\u003e8251716\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into Strict-type-checking-and-re-enable-mypy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/jaraco.context/commit/7df1443e0d81d0f7a781231ab05e00fc4173672e\"\u003e\u003ccode\u003e7df1443\u003c/code\u003e\u003c/a\u003e Restore expression algebra.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/jaraco.context/commit/616e2d6153eea558d0acf971adefc4d2c9dd6fc9\"\u003e\u003ccode\u003e616e2d6\u003c/code\u003e\u003c/a\u003e Merge \u003ca href=\"https://github.com/jaraco/skeleton\"\u003ehttps://github.com/jaraco/skeleton\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jaraco/jaraco.context/compare/v6.1.0...v6.1.2\"\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.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\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/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/9.0.2...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-cov` from 7.0.0 to 7.1.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst\"\u003epytest-cov's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.1.0 (2026-03-21)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed total coverage computation to always be consistent, regardless of reporting settings.\nPreviously some reports could produce different total counts, and consequently can make --cov-fail-under behave different depending on\nreporting options.\nSee \u003ccode\u003e[#641](https://github.com/pytest-dev/pytest-cov/issues/641) \u0026lt;https://github.com/pytest-dev/pytest-cov/issues/641\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove handling of ResourceWarning from sqlite3.\u003c/p\u003e\n\u003cp\u003eThe plugin adds warning filter for sqlite3 \u003ccode\u003eResourceWarning\u003c/code\u003e unclosed database (since 6.2.0).\nIt checks if there is already existing plugin for this message by comparing filter regular expression.\nWhen filter is specified on command line the message is escaped and does not match an expected message.\nA check for an escaped regular expression is added to handle this case.\u003c/p\u003e\n\u003cp\u003eWith this fix one can suppress \u003ccode\u003eResourceWarning\u003c/code\u003e from sqlite3 from command line::\u003c/p\u003e\n\u003cp\u003epytest -W \u0026quot;ignore:unclosed database in \u0026lt;sqlite3.Connection object at:ResourceWarning\u0026quot; ...\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eVarious improvements to documentation.\nContributed by Art Pelling in \u003ccode\u003e[#718](https://github.com/pytest-dev/pytest-cov/issues/718) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/718\u0026gt;\u003c/code\u003e_ and\n\u0026quot;vivodi\u0026quot; in \u003ccode\u003e[#738](https://github.com/pytest-dev/pytest-cov/issues/738) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/738\u0026gt;\u003c/code\u003e\u003cem\u003e.\nAlso closed \u003ccode\u003e[#736](https://github.com/pytest-dev/pytest-cov/issues/736) \u0026lt;https://github.com/pytest-dev/pytest-cov/issues/736\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed some assertions in tests.\nContributed by in Markéta Machová in \u003ccode\u003e[#722](https://github.com/pytest-dev/pytest-cov/issues/722) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/722\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved unnecessary coverage configuration copying (meant as a backup because reporting commands had configuration side-effects before coverage 5.0).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/66c8a526b1246b5eb8fb1bc218878131bc628622\"\u003e\u003ccode\u003e66c8a52\u003c/code\u003e\u003c/a\u003e Bump version: 7.0.0 → 7.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/f7076624784332594aa4cb3585d4757d295db15e\"\u003e\u003ccode\u003ef707662\u003c/code\u003e\u003c/a\u003e Make the examples use pypy 3.11.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/6049a7847872e3139e6c82e93787123df5dc8672\"\u003e\u003ccode\u003e6049a78\u003c/code\u003e\u003c/a\u003e Make context test use the old ctracer (seems the new sysmon tracer behaves di...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/8ebf20bbbc73478b3f8fd36d30237d9ea083f06b\"\u003e\u003ccode\u003e8ebf20b\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/861d30e60d571f97259c6b718b71c819d5dbc3b9\"\u003e\u003ccode\u003e861d30e\u003c/code\u003e\u003c/a\u003e Remove the backup context manager  - shouldn't be needed since coverage 5.0, ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/fd4c956014035527f0c3c8d7faef3f8cfdadac7f\"\u003e\u003ccode\u003efd4c956\u003c/code\u003e\u003c/a\u003e Pass the precision on the nulled total (seems that there's some caching goion...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/78c9c4ecb005faf4962fd86ff7bf9c9cce9554d6\"\u003e\u003ccode\u003e78c9c4e\u003c/code\u003e\u003c/a\u003e Only run the 3.9 on older deps.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/4849a922e8be725c662a3d9175da571ace6545dc\"\u003e\u003ccode\u003e4849a92\u003c/code\u003e\u003c/a\u003e Punctuation.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/197c35e2f37031fd1927715307ab6eed7cb3d2b7\"\u003e\u003ccode\u003e197c35e\u003c/code\u003e\u003c/a\u003e Update changelog and hopefully I don't forget to publish release again :))\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/14dc1c92d44108384e39803888635fdbfc578b7f\"\u003e\u003ccode\u003e14dc1c9\u003c/code\u003e\u003c/a\u003e Update examples to use 3.11 and make the adhoc layout example look a bit more...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-cov/compare/v7.0.0...v7.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.13.4 to 7.13.5\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.13.5 — 2026-03-17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003eissue 2138\u003c/code\u003e_ describes a memory leak that happened when repeatedly\nusing the Coverage API with in-memory data. This is now fixed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the markdown-formatted coverage report didn't fully escape special\ncharacters in file paths (\u003ccode\u003eissue 2141\u003c/code\u003e\u003cem\u003e). This would be very unlikely to\ncause a problem, but now it's done properly, thanks to \u003ccode\u003eEllie Ayla \u0026lt;pull 2142_\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the C extension wouldn't build on VS2019, but now it does (\u003ccode\u003eissue 2145\u003c/code\u003e_).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 2138: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2138\"\u003ecoveragepy/coveragepy#2138\u003c/a\u003e\n.. _issue 2141: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2141\"\u003ecoveragepy/coveragepy#2141\u003c/a\u003e\n.. _pull 2142: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2142\"\u003ecoveragepy/coveragepy#2142\u003c/a\u003e\n.. _issue 2145: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2145\"\u003ecoveragepy/coveragepy#2145\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-4:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/c88da144eef8cf78424331e5cbbde3e002eef43f\"\u003e\u003ccode\u003ec88da14\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.13.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/e2ac3e1ef644370101ff365acad3431d16076512\"\u003e\u003ccode\u003ee2ac3e1\u003c/code\u003e\u003c/a\u003e build: sample HTML shouldn't include the status.json file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/910f8f336541c2dcb4e9ec468144c7eb4a7779ac\"\u003e\u003ccode\u003e910f8f3\u003c/code\u003e\u003c/a\u003e docs: prep for 7.13.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/3a4819c24d3d20cb2670b99141517812ffa3fab0\"\u003e\u003ccode\u003e3a4819c\u003c/code\u003e\u003c/a\u003e style: make workflows more uniform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/2a53705f5fe588158b8a8d37ff3beee86388b9e4\"\u003e\u003ccode\u003e2a53705\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group across 1 directory with 4 updates (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/e7c878d201db819416b978150944d9a842d22b18\"\u003e\u003ccode\u003ee7c878d\u003c/code\u003e\u003c/a\u003e chore: make upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/ab4db406a9c35acf977cf3ddb94a78d696b77bc5\"\u003e\u003ccode\u003eab4db40\u003c/code\u003e\u003c/a\u003e build: use --generate-hashes when pinning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a438753eef870441044cef588e29ce4b9a28adf1\"\u003e\u003ccode\u003ea438753\u003c/code\u003e\u003c/a\u003e chore: make upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/7b33457d2c6367dfd5a563239998b3980444e090\"\u003e\u003ccode\u003e7b33457\u003c/code\u003e\u003c/a\u003e refactor: some leftover pyupgrade 3.10 bits\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/2ff968db91a7cdafe6f6569ac7659a3a93a2da07\"\u003e\u003ccode\u003e2ff968d\u003c/code\u003e\u003c/a\u003e refactor: this type wasn't used anywhere\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.13.4...7.13.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lxml` from 6.0.2 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lxml/lxml/blob/master/CHANGES.txt\"\u003elxml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e6.0.3 (2026-04-09)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eSeveral out of memory error cases now raise \u003ccode\u003eMemoryError\u003c/code\u003e that were not handled before.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSlicing with large step values (outside of \u003ccode\u003e+/- sys.maxsize\u003c/code\u003e) could trigger undefined C behaviour.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLP#2125399: Some failing tests were fixed or disabled in PyPy.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLP#2138421: Memory leak in error cases when setting the \u003ccode\u003epublic_id\u003c/code\u003e or \u003ccode\u003esystem_url\u003c/code\u003e of a document.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMemory leak in case of a memory allocation failure when copying document subtrees.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen mapping an XPath result to Python failed, the result memory could leak.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen preparing an XSLT transform failed, the XSLT parameter memory could leak.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBuilt using Cython 3.2.4.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBinary wheels use zlib 1.3.2.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/973d059449a66799f468b46f4b12c95e32cff5e9\"\u003e\u003ccode\u003e973d059\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/9044a52ce26a3ccf48b6cad8031234a0ddf7612b\"\u003e\u003ccode\u003e9044a52\u003c/code\u003e\u003c/a\u003e Build: Downgrade libiconv to 1.18 since 1.19 does not build reliably.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/a34dfdd593368fc444f6b66d03fd60d76966c9d2\"\u003e\u003ccode\u003ea34dfdd\u003c/code\u003e\u003c/a\u003e Build: Upgrade libiconv to 1.19.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/4cbf1df82c7ee89c1869786cd897f5938e0a5d4e\"\u003e\u003ccode\u003e4cbf1df\u003c/code\u003e\u003c/a\u003e Build: Validate hash digest of downloaded library archives.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/ab0e7751f5dd1d6a92a50a883012d7467f2a4bcf\"\u003e\u003ccode\u003eab0e775\u003c/code\u003e\u003c/a\u003e Prepare release of 6.0.3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/96844d203e86b12ef61e967cd508fc2b6d4ce4f6\"\u003e\u003ccode\u003e96844d2\u003c/code\u003e\u003c/a\u003e Fix typos and grammar errors across documentation (\u003ca href=\"https://redirect.github.com/lxml/lxml/issues/489\"\u003eGH-489\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/6a90cc65444946ffb29f46d99e1a0722e452c2d2\"\u003e\u003ccode\u003e6a90cc6\u003c/code\u003e\u003c/a\u003e More accurate instruction for pip install. (\u003ca href=\"https://redirect.github.com/lxml/lxml/issues/493\"\u003eGH-493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/b8b833789e0c192f3587e1813c4c2370c01846ae\"\u003e\u003ccode\u003eb8b8337\u003c/code\u003e\u003c/a\u003e Build: Upgrade Cython to 3.2.4.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/053a7f27df69f3ac8a0b85a69c34127bb5e798c3\"\u003e\u003ccode\u003e053a7f2\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/2fbda6d898a6b5d4a8a20e7a33db57a48cac25ac\"\u003e\u003ccode\u003e2fbda6d\u003c/code\u003e\u003c/a\u003e Build: Upgrade zlib from 1.3.1 to security fixed 1.3.2.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lxml/lxml/compare/lxml-6.0.2...lxml-6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2026.1.4 to 2026.2.25\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/8571a4ba5205675107f9026d0008ad2d7a2778bf\"\u003e\u003ccode\u003e8571a4b\u003c/code\u003e\u003c/a\u003e 2026.02.25 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/395\"\u003e#395\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/6f7de00579d292af565bbb8a947643219794eb6d\"\u003e\u003ccode\u003e6f7de00\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 8.0.0 to 8.1.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/390\"\u003e#390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/a1de59b15105cad768afed4f066b36171134f04a\"\u003e\u003ccode\u003ea1de59b\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 6.0.1 to 6.0.2 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/7f5ade5d8da615fd366e8de6a668271251c45d34\"\u003e\u003ccode\u003e7f5ade5\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 6.1.0 to 6.2.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/392\"\u003e#392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2026.01.04...2026.02.25\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `curl-cffi` from 0.13.0 to 0.15.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lexiforest/curl_cffi/releases\"\u003ecurl-cffi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.15.0\u003c/h2\u003e\n\u003cp\u003e🎉 Another release with significant changes!\u003c/p\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ehttp/3 fingerprints, added for Chrome 145, 146 and Firefox 147. To verify http3 fingerprints, visit \u003ca href=\"https://fp.impersonate.pro\"\u003ehttps://fp.impersonate.pro\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ehttp/3 proxy support with socks5 udp proxy server.\u003c/li\u003e\n\u003cli\u003eNew CLI tool, just called \u003ccode\u003ecurl-cffi\u003c/code\u003e, easier http debugging for both humans and agents. See \u003ca href=\"https://curl-cffi.readthedocs.io/en/latest/cli/_index.html\"\u003edocs\u003c/a\u003e. We also added a \u003ca href=\"https://github.com/lexiforest/curl_cffi/blob/main/skills/imp-fetch/SKILL.md\"\u003eskill\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCompatibility optimization, curl_cffi is now fully static. Especially for macOS, no dependencies needed and compatible with macOS since 11.0.\u003c/li\u003e\n\u003cli\u003e⚠️ Security improvement. If you are accepting urls from others and returning the response to them, you are vulnerable to redirection-based SSRF. Disable \u003ccode\u003eallow_redirects\u003c/code\u003e or at lease set \u003ccode\u003eallow_redirects=\u0026quot;safe\u0026quot;\u003c/code\u003e, see the \u003ca href=\"https://github.com/lexiforest/curl_cffi/security/advisories/GHSA-qw2m-4pqf-rmpp\"\u003eadvisory\u003c/a\u003e and the \u003ca href=\"https://curl-cffi.readthedocs.io/en/latest/security.html#ssrf-protection\"\u003edocs\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003ePerformance optimization: WebSocket improvement and free-threading support.\u003c/li\u003e\n\u003cli\u003eAndroid is officially supported, closing a 3-years-old issue.\u003c/li\u003e\n\u003cli\u003eNew impersonation behaviors, the cookie header behavior and POST boundary are now made exactly the same as browsers. These are not part of tls or http binary fingerprints, but are exploited by WAFs, too.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThe list of proxy vendors with udp sock5 support is very limited, so I set up 2 servers for testing. You can simply run:\u003c/p\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl-cffi get https://fp.impersonate.pro/api/http3 --proxy socks5://imp:curl-cffi@206.189.95.199:1080 --http3-only\r\ncurl-cffi get https://fp.impersonate.pro/api/http3 --proxy socks5://imp:curl-cffi@24.144.88.46:1080 --http3-only\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eIf you need more udp socks5 servers from us, click the 👀 emoji to vote.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix some of the extension values being overwritten caused by applying… by \u003ca href=\"https://github.com/enter-a-new-username3\"\u003e\u003ccode\u003e@​enter-a-new-username3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/680\"\u003elexiforest/curl_cffi#680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTypehint session return values and internal functions by \u003ca href=\"https://github.com/Vizonex\"\u003e\u003ccode\u003e@​Vizonex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/664\"\u003elexiforest/curl_cffi#664\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd free threaded builds by \u003ca href=\"https://github.com/lexiforest\"\u003e\u003ccode\u003e@​lexiforest\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/697\"\u003elexiforest/curl_cffi#697\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAsync WebSocket: Docs, Safety \u0026amp; Performance Improvements by \u003ca href=\"https://github.com/Sh3llcod3\"\u003e\u003ccode\u003e@​Sh3llcod3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/692\"\u003elexiforest/curl_cffi#692\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Android by \u003ca href=\"https://github.com/lexiforest\"\u003e\u003ccode\u003e@​lexiforest\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/699\"\u003elexiforest/curl_cffi#699\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd type hint for request responses by \u003ca href=\"https://github.com/MFTabriz\"\u003e\u003ccode\u003e@​MFTabriz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/690\"\u003elexiforest/curl_cffi#690\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eResponse hint fix for \u0026lt; 3.13 by \u003ca href=\"https://github.com/novitae\"\u003e\u003ccode\u003e@​novitae\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/546\"\u003elexiforest/curl_cffi#546\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix BufferError Crash by \u003ca href=\"https://github.com/Sh3llcod3\"\u003e\u003ccode\u003e@​Sh3llcod3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/700\"\u003elexiforest/curl_cffi#700\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWS: Small Optimizations by \u003ca href=\"https://github.com/Sh3llcod3\"\u003e\u003ccode\u003e@​Sh3llcod3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/702\"\u003elexiforest/curl_cffi#702\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for retrying by \u003ca href=\"https://github.com/lexiforest\"\u003e\u003ccode\u003e@​lexiforest\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/689\"\u003elexiforest/curl_cffi#689\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWS: Update Docs by \u003ca href=\"https://github.com/Sh3llcod3\"\u003e\u003ccode\u003e@​Sh3llcod3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/705\"\u003elexiforest/curl_cffi#705\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnable http3 fingerprints by \u003ca href=\"https://github.com/lexiforest\"\u003e\u003ccode\u003e@​lexiforest\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/712\"\u003elexiforest/curl_cffi#712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for loongarch64 by \u003ca href=\"https://github.com/wxpppp\"\u003e\u003ccode\u003e@​wxpppp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/716\"\u003elexiforest/curl_cffi#716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake the CLI more useful by \u003ca href=\"https://github.com/lexiforest\"\u003e\u003ccode\u003e@​lexiforest\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/726\"\u003elexiforest/curl_cffi#726\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd option to mitigate SSRF by \u003ca href=\"https://github.com/lexiforest\"\u003e\u003ccode\u003e@​lexiforest\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/727\"\u003elexiforest/curl_cffi#727\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpose http3 fingerprints customization by \u003ca href=\"https://github.com/lexiforest\"\u003e\u003ccode\u003e@​lexiforest\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/728\"\u003elexiforest/curl_cffi#728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd body to response.request by \u003ca href=\"https://github.com/lexiforest\"\u003e\u003ccode\u003e@​lexiforest\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/710\"\u003elexiforest/curl_cffi#710\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix Makefile issue by \u003ca href=\"https://github.com/p9s\"\u003e\u003ccode\u003e@​p9s\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/655\"\u003elexiforest/curl_cffi#655\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for READFUNCTION by \u003ca href=\"https://github.com/lexiforest\"\u003e\u003ccode\u003e@​lexiforest\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/698\"\u003elexiforest/curl_cffi#698\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/enter-a-new-username3\"\u003e\u003ccode\u003e@​enter-a-new-username3\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/680\"\u003elexiforest/curl_cffi#680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MFTabriz\"\u003e\u003ccode\u003e@​MFTabriz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/690\"\u003elexiforest/curl_cffi#690\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wxpppp\"\u003e\u003ccode\u003e@​wxpppp\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/716\"\u003elexiforest/curl_cffi#716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/p9s\"\u003e\u003ccode\u003e@​p9s\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/pull/655\"\u003elexiforest/curl_cffi#655\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lexiforest/curl_cffi/compare/v0.14.0...v0.15.0\"\u003ehttps://github.com/lexiforest/curl_cffi/compare/v0.14.0...v0.15.0\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lexiforest/curl_cffi/commit/0e219c43701f955436ef4a20486a7237a417dbc6\"\u003e\u003ccode\u003e0e219c4\u003c/code\u003e\u003c/a\u003e cli: add --http3-only\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lexiforest/curl_cffi/commit/21ca4f0e0fdc16401949dbd939c9e1c0973d6e85\"\u003e\u003ccode\u003e21ca4f0\u003c/code\u003e\u003c/a\u003e Optimize CLI output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lexiforest/curl_cffi/commit/884fffd752c1ac1890f74eb87ef682b7a17f486a\"\u003e\u003ccode\u003e884fffd\u003c/code\u003e\u003c/a\u003e Bump version to 0.15.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lexiforest/curl_cffi/commit/754b43d76ce07db943d656524ee8c2432e99b74e\"\u003e\u003ccode\u003e754b43d\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lexiforest/curl_cffi/commit/6e61a25d13edfe062554310913c1fd1c19b9e5af\"\u003e\u003ccode\u003e6e61a25\u003c/code\u003e\u003c/a\u003e Add support for READFUNCTION (\u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/issues/698\"\u003e#698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lexiforest/curl_cffi/commit/5eb13bc91f2a6f5014d163ea9c0b89a3b70c8cab\"\u003e\u003ccode\u003e5eb13bc\u003c/code\u003e\u003c/a\u003e fix Makefile issue (\u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/issues/655\"\u003e#655\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lexiforest/curl_cffi/commit/39c046c548a490c2f2fed8c9c82ed6a5ab39ad05\"\u003e\u003ccode\u003e39c046c\u003c/code\u003e\u003c/a\u003e Store request body (\u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/issues/710\"\u003e#710\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lexiforest/curl_cffi/commit/06237c9172815071678c920afb75dfd1ab6db32a\"\u003e\u003ccode\u003e06237c9\u003c/code\u003e\u003c/a\u003e Expose http3 fingerprints customization (\u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/issues/728\"\u003e#728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lexiforest/curl_cffi/commit/5686baf38d6d5128b80b83573158ee1241dff4da\"\u003e\u003ccode\u003e5686baf\u003c/code\u003e\u003c/a\u003e Add option to mitigate SSRF (\u003ca href=\"https://redirect.github.com/lexiforest/curl_cffi/issues/727\"\u003e#727\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lexiforest/curl_cffi/commit/73b2b1694324a426ba8ddc61a602867d1d764552\"\u003e\u003ccode\u003e73b2b16\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lexiforest/curl_cffi/compare/v0.13.0...v0.15.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.4.4 to 3.4.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...\n\n_Description has been truncated_","html_url":"https://github.com/pmak99/trading-desk-public/pull/23","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/pmak99%2Ftrading-desk-public/issues/23","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/23/packages"}},{"old_version":"9.0.2","new_version":"9.0.3","update_type":"patch","path":"/python/agents/RAG","pr_created_at":"2026-04-09T10:15:45.000Z","version_change":"9.0.2 → 9.0.3","issue":{"uuid":"4231366727","node_id":"PR_kwDOR99fb87RF3d8","number":10,"state":"open","title":"chore(deps): Bump the all-dependencies group in /python/agents/RAG with 3 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-09T10:15:45.000Z","updated_at":"2026-04-09T10:15:46.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): Bump","group_name":"all-dependencies","update_count":3,"packages":[{"name":"types-pyyaml","old_version":"6.0.12.20250915","new_version":"6.0.12.20260408","repository_url":"https://github.com/python/typeshed"},{"name":"types-requests","old_version":"2.33.0.20260402","new_version":"2.33.0.20260408","repository_url":"https://github.com/python/typeshed"},{"name":"pytest","old_version":"9.0.2","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"}],"path":"/python/agents/RAG","ecosystem":"conda"},"body":"Bumps the all-dependencies group in /python/agents/RAG with 3 updates: [types-pyyaml](https://github.com/python/typeshed), [types-requests](https://github.com/python/typeshed) and [pytest](https://github.com/pytest-dev/pytest).\n\nUpdates `types-pyyaml` from 6.0.12.20250915 to 6.0.12.20260408\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/python/typeshed/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `types-requests` from 2.33.0.20260402 to 2.33.0.20260408\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/python/typeshed/commits\"\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.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\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/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/9.0.2...9.0.3\"\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/giuliosalierno/adk-samples-sync-genmedia-20260407-165915/pull/10","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/giuliosalierno%2Fadk-samples-sync-genmedia-20260407-165915/issues/10","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/10/packages"}},{"old_version":"9.0.1","new_version":"9.0.2","update_type":"patch","path":null,"pr_created_at":"2026-02-25T12:25:38.000Z","version_change":"9.0.1 → 9.0.2","issue":{"uuid":"3989174822","node_id":"PR_kwDOCmWyEM7GNury","number":30,"state":"closed","title":"Bump the all-dependencies group with 15 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-03-03T15:23:57.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-25T12:25:38.000Z","updated_at":"2026-03-03T15:23:59.000Z","time_to_close":529099,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"all-dependencies","update_count":15,"packages":[{"name":"docutils","old_version":"0.22.3","new_version":"0.22.4","repository_url":"https://github.com/rtfd/recommonmark"},{"name":"babel","old_version":"2.17.0","new_version":"2.18.0","repository_url":"https://github.com/python-babel/babel"},{"name":"roman-numerals","old_version":"3.1.0","new_version":"4.1.0","repository_url":"https://github.com/AA-Turner/roman-numerals"},{"name":"packaging","old_version":"25.0","new_version":"26.0","repository_url":"https://github.com/pypa/packaging"},{"name":"ruff","old_version":"0.14.9","new_version":"0.15.2","repository_url":"https://github.com/astral-sh/ruff"},{"name":"build","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/pypa/build"},{"name":"pypi-attestations","old_version":"0.0.28","new_version":"0.0.29","repository_url":"https://github.com/pypi/pypi-attestations"},{"name":"pytest","old_version":"9.0.1","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"cython","old_version":"3.2.2","new_version":"3.2.4","repository_url":"https://github.com/cython/cython"},{"name":"setuptools","old_version":"80.9.0","new_version":"82.0.0","repository_url":"https://github.com/pypa/setuptools"},{"name":"pyrefly","old_version":"0.44.0","new_version":"0.54.0","repository_url":"https://github.com/facebook/pyrefly"},{"name":"pyright","old_version":"1.1.407","new_version":"1.1.408","repository_url":"https://github.com/RobertCraigie/pyright-python"},{"name":"ty","old_version":"0.0.1a30","new_version":"0.0.18","repository_url":"https://github.com/astral-sh/ty"},{"name":"types-docutils","old_version":"0.22.3.20251115","new_version":"0.22.3.20260223","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"types-requests","old_version":"2.32.4.20250913","new_version":"2.32.4.20260107","repository_url":"https://github.com/typeshed-internal/stub_uploader"}],"path":null,"ecosystem":"conda"},"body":"Bumps the all-dependencies group with 15 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [docutils](https://github.com/rtfd/recommonmark) | `0.22.3` | `0.22.4` |\n| [babel](https://github.com/python-babel/babel) | `2.17.0` | `2.18.0` |\n| [roman-numerals](https://github.com/AA-Turner/roman-numerals) | `3.1.0` | `4.1.0` |\n| [packaging](https://github.com/pypa/packaging) | `25.0` | `26.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.9` | `0.15.2` |\n| [build](https://github.com/pypa/build) | `1.3.0` | `1.4.0` |\n| [pypi-attestations](https://github.com/pypi/pypi-attestations) | `0.0.28` | `0.0.29` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.1` | `9.0.2` |\n| [cython](https://github.com/cython/cython) | `3.2.2` | `3.2.4` |\n| [setuptools](https://github.com/pypa/setuptools) | `80.9.0` | `82.0.0` |\n| [pyrefly](https://github.com/facebook/pyrefly) | `0.44.0` | `0.54.0` |\n| [pyright](https://github.com/RobertCraigie/pyright-python) | `1.1.407` | `1.1.408` |\n| [ty](https://github.com/astral-sh/ty) | `0.0.1a30` | `0.0.18` |\n| [types-docutils](https://github.com/typeshed-internal/stub_uploader) | `0.22.3.20251115` | `0.22.3.20260223` |\n| [types-requests](https://github.com/typeshed-internal/stub_uploader) | `2.32.4.20250913` | `2.32.4.20260107` |\n\nUpdates `docutils` from 0.22.3 to 0.22.4\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rtfd/recommonmark/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `babel` from 2.17.0 to 2.18.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-babel/babel/releases\"\u003ebabel's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.18.0\u003c/h2\u003e\n\u003cp\u003eHappy 2026! Like last year's release (ahem...), this one too is being made from FOSDEM 2026, in Brussels, Belgium. 🇧🇪\nWe'll aspire for a less glacial release cycle for 2.19. 😁\u003c/p\u003e\n\u003cp\u003ePlease see \u003ca href=\"https://github.com/python-babel/babel/blob/56c63caf50b18b152541b5dcafd51f645d867074/CHANGES.rst\"\u003eCHANGELOG.rst\u003c/a\u003e for the detailed change log.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/python-babel/babel/compare/v2.17.0...v2.18.0\"\u003ehttps://github.com/python-babel/babel/compare/v2.17.0...v2.18.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/python-babel/babel/blob/master/CHANGES.rst\"\u003ebabel's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 2.18.0\u003c/h2\u003e\n\u003cp\u003eHappy 2026! This release is, coincidentally, also being made from FOSDEM.\u003c/p\u003e\n\u003cp\u003eWe will aspire for a slightly less glacial release cadence in this year;\nthere are interesting features in the pipeline.\u003c/p\u003e\n\u003cp\u003eFeatures\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Core: Add `babel.core.get_cldr_version()` by @akx in :gh:`1242`\n* Core: Use CLDR 47 by @tomasr8 in :gh:`1210`\n* Core: Use canonical IANA zone names in zone_territories by @akx in :gh:`1220`\n* Messages: Improve extract performance via ignoring directories early during os.walk by @akx in :gh:`968`\n* Messages: Merge in per-format keywords and auto_comments by @akx in :gh:`1243`\n* Messages: Update keywords for extraction of dpgettext and dnpgettext by @mardiros in :gh:`1235`\n* Messages: Validate all plurals in Python format checker by @tomasr8 in :gh:`1188`\n* Time: Use standard library `timezone` instead of `FixedOffsetTimezone` by @akx in :gh:`1203`\n\u003cp\u003eBugfixes\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCore: Fix formatting for \u0026quot;Empty locale identifier\u0026quot; exception added in \u003ca href=\"https://redirect.github.com/python-babel/babel/issues/1164\"\u003e#1164\u003c/a\u003e by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in :gh:\u003ccode\u003e1184\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eCore: Improve handling of no-inheritance-marker in timezone data by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in :gh:\u003ccode\u003e1194\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eCore: Make the number pattern regular expression more efficient by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in :gh:\u003ccode\u003e1213\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eMessages: Keep translator comments next to the translation function call by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in :gh:\u003ccode\u003e1196\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eNumbers: Fix KeyError that occurred when formatting compact currencies of exactly one thousand in several locales  by \u003ca href=\"https://github.com/bartbroere\"\u003e\u003ccode\u003e@​bartbroere\u003c/code\u003e\u003c/a\u003e in :gh:\u003ccode\u003e1246\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOther improvements\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Core: Avoid unnecessary uses of `map()` by @akx in :gh:`1180`\n* Messages: Have init-catalog create directories too by @akx in :gh:`1244`\n* Messages: Optimizations for read_po by @akx in :gh:`1200`\n* Messages: Use pathlib.Path() in catalog frontend; improve test coverage by @akx in :gh:`1204`\n\u003cp\u003eInfrastructure and documentation\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCI: Renovate CI \u0026amp; lint tools by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in :gh:\u003ccode\u003e1228\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eCI: Tighten up CI with Zizmor by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in :gh:\u003ccode\u003e1230\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eCI: make job permissions explicit by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in :gh:\u003ccode\u003e1227\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Add SECURITY.md by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in :gh:\u003ccode\u003e1229\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Remove u string prefix from docs by \u003ca href=\"https://github.com/verhovsky\"\u003e\u003ccode\u003e@​verhovsky\u003c/code\u003e\u003c/a\u003e in :gh:\u003ccode\u003e1174\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Update dates.rst with current unicode.org tr35 link by \u003ca href=\"https://github.com/clach04\"\u003e\u003ccode\u003e@​clach04\u003c/code\u003e\u003c/a\u003e in :gh:\u003ccode\u003e1189\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGeneral: Add some PyPI classifiers by \u003ca href=\"https://github.com/tomasr8\"\u003e\u003ccode\u003e@​tomasr8\u003c/code\u003e\u003c/a\u003e in :gh:\u003ccode\u003e1186\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGeneral: Apply reformatting by hand and with Ruff by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in :gh:\u003ccode\u003e1202\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGeneral: Test on and declare support for Python 3.14 by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in :gh:\u003ccode\u003e1233\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/python-babel/babel/commit/56c63caf50b18b152541b5dcafd51f645d867074\"\u003e\u003ccode\u003e56c63ca\u003c/code\u003e\u003c/a\u003e Prepare for 2.18.0 (\u003ca href=\"https://redirect.github.com/python-babel/babel/issues/1248\"\u003e#1248\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/babel/commit/73015a1217b90398fe76dcdc3b6e110ce26eb6d3\"\u003e\u003ccode\u003e73015a1\u003c/code\u003e\u003c/a\u003e Add user-agent to CLDR downloader (\u003ca href=\"https://redirect.github.com/python-babel/babel/issues/1247\"\u003e#1247\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/babel/commit/29bd3624463f9b8694d09a308f67f353373c76af\"\u003e\u003ccode\u003e29bd362\u003c/code\u003e\u003c/a\u003e Fix formatting compact currencies of exactly one thousand in several locales ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/babel/commit/851db43b2b175c6bdf69ae6977cd6ad642506046\"\u003e\u003ccode\u003e851db43\u003c/code\u003e\u003c/a\u003e Reuse InitCatalog's guts in UpdateCatalog (\u003ca href=\"https://redirect.github.com/python-babel/babel/issues/1244\"\u003e#1244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/babel/commit/fd00e60adf7e0c74821a77ff2a8b564e9985fd8e\"\u003e\u003ccode\u003efd00e60\u003c/code\u003e\u003c/a\u003e Extract: Merge in per-format keywords and auto_comments (\u003ca href=\"https://redirect.github.com/python-babel/babel/issues/1243\"\u003e#1243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/babel/commit/12a14b6b3f09b6f5c8c745791dd4928f1d58fda0\"\u003e\u003ccode\u003e12a14b6\u003c/code\u003e\u003c/a\u003e Add dpgettext and dnpgettext support (\u003ca href=\"https://redirect.github.com/python-babel/babel/issues/1235\"\u003e#1235\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/babel/commit/7110e6206fd5ddc66db9613935fea8b8c668b7d5\"\u003e\u003ccode\u003e7110e62\u003c/code\u003e\u003c/a\u003e Use canonical IANA zone names in zone_territories (\u003ca href=\"https://redirect.github.com/python-babel/babel/issues/1220\"\u003e#1220\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/babel/commit/e91c3467b0f3bdc4433eab6820819fe69784c2bf\"\u003e\u003ccode\u003ee91c346\u003c/code\u003e\u003c/a\u003e Improve extract performance via ignoring directories early during os.walk (\u003ca href=\"https://redirect.github.com/python-babel/babel/issues/968\"\u003e#968\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/babel/commit/0c4f37838c3cb34cf527dd9890c1b69e98db1354\"\u003e\u003ccode\u003e0c4f378\u003c/code\u003e\u003c/a\u003e Convert Unittest testcases with setup/teardown to fixtures (\u003ca href=\"https://redirect.github.com/python-babel/babel/issues/1240\"\u003e#1240\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/babel/commit/218c96ee305aad95bccb6402af4b4be60ad17ab1\"\u003e\u003ccode\u003e218c96e\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003ebabel.core.get_cldr_version()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-babel/babel/issues/1242\"\u003e#1242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-babel/babel/compare/v2.17.0...v2.18.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `roman-numerals` from 3.1.0 to 4.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/AA-Turner/roman-numerals/releases\"\u003eroman-numerals's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.1.0\u003c/h2\u003e\n\u003cp\u003eroman-numerals 4.1.0\u003c/p\u003e\n\u003ch2\u003ev4.0.0\u003c/h2\u003e\n\u003cp\u003eroman-numerals 4.0.0\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/AA-Turner/roman-numerals/blob/master/CHANGES.rst\"\u003eroman-numerals's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease 4.1.0 (released 17 Dec 2025)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRestore LICENCE.rst in the roman-numerals-py meta-package\u003c/li\u003e\n\u003cli\u003eAdd some debug assertions for unsafe blocks\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eRelease 4.0.0 (released 16 Dec 2025)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRename Python package to \u003ccode\u003eroman-numerals\u003c/code\u003e on PyPI.\u003c/li\u003e\n\u003cli\u003ePublish \u003ccode\u003eroman-numerals-py\u003c/code\u003e as a meta-package that depends\non \u003ccode\u003eroman-numerals\u003c/code\u003e and installs no modules.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9.\u003c/li\u003e\n\u003cli\u003eDeclare support for Python 3.15.\u003c/li\u003e\n\u003cli\u003eIncrease the minimum supported Rust version (MSRV) to 1.81.0.\u003c/li\u003e\n\u003cli\u003eImplement the \u003ccode\u003ecore::error::Error\u003c/code\u003e trait for all error types.\u003c/li\u003e\n\u003cli\u003eImplement the \u003ccode\u003ecore::fmt\u003c/code\u003e traits in \u003ccode\u003eno-std\u003c/code\u003e mode.\u003c/li\u003e\n\u003cli\u003eImplement \u003ccode\u003eFrom\u0026lt;RomanNumeral\u0026gt;\u003c/code\u003e for most integer types.\u003c/li\u003e\n\u003cli\u003ePublish the \u003ccode\u003eroman-numerals-rs\u003c/code\u003e crate using \u003ccode\u003eTrusted Publishing \u0026lt;https://crates.io/docs/trusted-publishing\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/53c9c4eac63b91728fba3c26329163ee57654d21\"\u003e\u003ccode\u003e53c9c4e\u003c/code\u003e\u003c/a\u003e Release v4.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/a3793b83fab7064107ac56a482a6fa93bc9c5048\"\u003e\u003ccode\u003ea3793b8\u003c/code\u003e\u003c/a\u003e Add more SAFETY notes and debug assertions to unsafe blocks (\u003ca href=\"https://redirect.github.com/AA-Turner/roman-numerals/issues/106\"\u003e#106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/46d346e2d08b634856c79783e404616b65626ba7\"\u003e\u003ccode\u003e46d346e\u003c/code\u003e\u003c/a\u003e Adjust annotations in light of PEP 649\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/b8fae405d948415f7397ae4f64569c53cb623105\"\u003e\u003ccode\u003eb8fae40\u003c/code\u003e\u003c/a\u003e Adjust an example in the README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/a88464130711ad5e8d56e6ff747d17068ae17534\"\u003e\u003ccode\u003ea884641\u003c/code\u003e\u003c/a\u003e Restore LICENCE.rst in the roman-numerals-py meta-package\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/c3e1b6b4e6e02e5e19c26dc6f72bbb7b1060cca5\"\u003e\u003ccode\u003ec3e1b6b\u003c/code\u003e\u003c/a\u003e Release v4.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/c335cb63ed97e684a4e9453639bfc7e9f487bb41\"\u003e\u003ccode\u003ec335cb6\u003c/code\u003e\u003c/a\u003e Add publishing step for the \u003ccode\u003eroman-numerals-py\u003c/code\u003e meta-package (\u003ca href=\"https://redirect.github.com/AA-Turner/roman-numerals/issues/105\"\u003e#105\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/649f6e62e7bd24123d7dd489609ae47168aaeb1b\"\u003e\u003ccode\u003e649f6e6\u003c/code\u003e\u003c/a\u003e Add Trusted Publishing workflow for crates.io (\u003ca href=\"https://redirect.github.com/AA-Turner/roman-numerals/issues/104\"\u003e#104\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/ffa4dd1b33eae62f1bd1d44549e10a528b8f1f58\"\u003e\u003ccode\u003effa4dd1\u003c/code\u003e\u003c/a\u003e rust: Refactor tests (\u003ca href=\"https://redirect.github.com/AA-Turner/roman-numerals/issues/103\"\u003e#103\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AA-Turner/roman-numerals/commit/26b41561c1d9813104548777b5ed9622d7125b38\"\u003e\u003ccode\u003e26b4156\u003c/code\u003e\u003c/a\u003e Simplify ASCII detection closures (\u003ca href=\"https://redirect.github.com/AA-Turner/roman-numerals/issues/102\"\u003e#102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/AA-Turner/roman-numerals/compare/v3.1.0...v4.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `packaging` from 25.0 to 26.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/releases\"\u003epackaging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.0\u003c/h2\u003e\n\u003cp\u003eRead about the performance improvements here: \u003ca href=\"https://iscinumpy.dev/post/packaging-faster\"\u003ehttps://iscinumpy.dev/post/packaging-faster\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePEP 751: support pylock by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/900\"\u003epypa/packaging#900\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePEP 794: import name metadata by \u003ca href=\"https://github.com/brettcannon\"\u003e\u003ccode\u003e@​brettcannon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/948\"\u003epypa/packaging#948\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport writing metadata by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/846\"\u003epypa/packaging#846\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e__replace__\u003c/code\u003e for \u003ccode\u003eVersion\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1003\"\u003epypa/packaging#1003\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport positional pattern matching for \u003ccode\u003eVersion\u003c/code\u003e and \u003ccode\u003eSpecifier\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1004\"\u003epypa/packaging#1004\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePEP 440 handling of prereleases for \u003ccode\u003eSpecifier.contains\u003c/code\u003e, \u003ccode\u003eSpecifierSet.contains\u003c/code\u003e, and \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/897\"\u003epypa/packaging#897\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle PEP 440 edge case in \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/942\"\u003epypa/packaging#942\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdjust arbitrary equality intersection preservation in \u003ccode\u003eSpecifierSet\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/951\"\u003epypa/packaging#951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReturn \u003ccode\u003eFalse\u003c/code\u003e instead of raising for \u003ccode\u003e.contains\u003c/code\u003e with invalid version by \u003ca href=\"https://github.com/Liam-DeVoe\"\u003e\u003ccode\u003e@​Liam-DeVoe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/932\"\u003epypa/packaging#932\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport arbitrary equality on arbitrary strings for \u003ccode\u003eSpecifier\u003c/code\u003e and \u003ccode\u003eSpecifierSet\u003c/code\u003e's \u003ccode\u003efilter\u003c/code\u003e and \u003ccode\u003econtains\u003c/code\u003e method. by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/954\"\u003epypa/packaging#954\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly try to parse as \u003ccode\u003eVersion\u003c/code\u003e on certain marker keys, return \u003ccode\u003eFalse\u003c/code\u003e on unequal ordered comparsions by \u003ca href=\"https://github.com/JP-Ellis\"\u003e\u003ccode\u003e@​JP-Ellis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/939\"\u003epypa/packaging#939\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003e_hash\u003c/code\u003e when unpickling \u003ccode\u003eTag()\u003c/code\u003e by \u003ca href=\"https://github.com/dholth\"\u003e\u003ccode\u003e@​dholth\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/860\"\u003epypa/packaging#860\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrect comment and simplify implicit prerelease handling in \u003ccode\u003eSpecifier.prereleases\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/896\"\u003epypa/packaging#896\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse explicit \u003ccode\u003e_GLibCVersion\u003c/code\u003e \u003ccode\u003eNamedTuple\u003c/code\u003e in \u003ccode\u003e_manylinux\u003c/code\u003e by \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/868\"\u003epypa/packaging#868\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDetect invalid license expressions containing \u003ccode\u003e()\u003c/code\u003e by \u003ca href=\"https://github.com/bwoodsend\"\u003e\u003ccode\u003e@​bwoodsend\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/879\"\u003epypa/packaging#879\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrect regex for metadata \u003ccode\u003e'name'\u003c/code\u003e format by \u003ca href=\"https://github.com/di\"\u003e\u003ccode\u003e@​di\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/925\"\u003epypa/packaging#925\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove the message around expecting a semicolon by \u003ca href=\"https://github.com/pradyunsg\"\u003e\u003ccode\u003e@​pradyunsg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/833\"\u003epypa/packaging#833\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport nested parens in license expressions by \u003ca href=\"https://github.com/Liam-DeVoe\"\u003e\u003ccode\u003e@​Liam-DeVoe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/931\"\u003epypa/packaging#931\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd space before at symbol in \u003ccode\u003eRequirements\u003c/code\u003e string by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/953\"\u003epypa/packaging#953\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eA root logger use found by ruff LOG, use \u003ccode\u003epackaging\u003c/code\u003e logger instead by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/965\"\u003epypa/packaging#965\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter support for subclassing \u003ccode\u003eMarker\u003c/code\u003e and \u003ccode\u003eRequirement\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1022\"\u003epypa/packaging#1022\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize all extras, not just if it comes first by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1024\"\u003epypa/packaging#1024\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't produce a broken repr if \u003ccode\u003eMarker\u003c/code\u003e fails to construct by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1033\"\u003epypa/packaging#1033\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePerformance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid recompiling regexes in the tokenizer for a 3x speedup by \u003ca href=\"https://github.com/hauntsaninja\"\u003e\u003ccode\u003e@​hauntsaninja\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1019\"\u003epypa/packaging#1019\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove performance in \u003ccode\u003e_manylinux.py\u003c/code\u003e by \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/869\"\u003epypa/packaging#869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMinor cleanups to \u003ccode\u003eVersion\u003c/code\u003e by \u003ca href=\"https://github.com/bearomorphism\"\u003e\u003ccode\u003e@​bearomorphism\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/913\"\u003epypa/packaging#913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip redundant creation of \u003ccode\u003eVersion\u003c/code\u003es in specifier comparison by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/986\"\u003epypa/packaging#986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCache \u003ccode\u003eSpecifier\u003c/code\u003e's Version by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/985\"\u003epypa/packaging#985\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eVersion\u003c/code\u003e a little faster by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/987\"\u003epypa/packaging#987\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMinor \u003ccode\u003eVersion\u003c/code\u003e regex cleanup by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/990\"\u003epypa/packaging#990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFaster regex on Python 3.11.5+ by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/988\"\u003epypa/packaging#988\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1055\"\u003epypa/packaging#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLazily calculate \u003ccode\u003e_key\u003c/code\u003e in \u003ccode\u003eVersion\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/989\"\u003epypa/packaging#989\u003c/a\u003e and regression for \u003ccode\u003epackaging_legacy\u003c/code\u003e fixed by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1048\"\u003epypa/packaging#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFaster \u003ccode\u003ecanonicalize_version\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/993\"\u003epypa/packaging#993\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003efullmatch\u003c/code\u003e in a couple more places by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/992\"\u003epypa/packaging#992\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/blob/main/CHANGELOG.rst\"\u003epackaging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e26.0 - 2026-01-20\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nFeatures:\n\u003cul\u003e\n\u003cli\u003ePEP 751: support pylock (:pull:\u003ccode\u003e900\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePEP 794: import name metadata (:pull:\u003ccode\u003e948\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport for writing metadata to a file (:pull:\u003ccode\u003e846\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e__replace__\u003c/code\u003e on Version (:pull:\u003ccode\u003e1003\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport positional pattern matching for \u003ccode\u003eVersion\u003c/code\u003e and \u003ccode\u003eSpecifierSet\u003c/code\u003e (:pull:\u003ccode\u003e1004\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePEP 440 handling of prereleases for \u003ccode\u003eSpecifier.contains\u003c/code\u003e, \u003ccode\u003eSpecifierSet.contains\u003c/code\u003e, and \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e (:pull:\u003ccode\u003e897\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eHandle PEP 440 edge case in \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e (:pull:\u003ccode\u003e942\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdjust arbitrary equality intersection preservation in \u003ccode\u003eSpecifierSet\u003c/code\u003e (:pull:\u003ccode\u003e951\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eReturn \u003ccode\u003eFalse\u003c/code\u003e instead of raising for \u003ccode\u003e.contains\u003c/code\u003e with invalid version (:pull:\u003ccode\u003e932\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport arbitrary equality on arbitrary strings for \u003ccode\u003eSpecifier\u003c/code\u003e and \u003ccode\u003eSpecifierSet\u003c/code\u003e's \u003ccode\u003efilter\u003c/code\u003e and \u003ccode\u003econtains\u003c/code\u003e method. (:pull:\u003ccode\u003e954\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eOnly try to parse as \u003ccode\u003eVersion\u003c/code\u003e on certain marker keys, return \u003ccode\u003eFalse\u003c/code\u003e on unequal ordered comparisons (:pull:\u003ccode\u003e939\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003e_hash\u003c/code\u003e when unpickling \u003ccode\u003eTag()\u003c/code\u003e (:pull:\u003ccode\u003e860\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect comment and simplify implicit prerelease handling in \u003ccode\u003eSpecifier.prereleases\u003c/code\u003e (:pull:\u003ccode\u003e896\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse explicit \u003ccode\u003e_GLibCVersion\u003c/code\u003e \u003ccode\u003eNamedTuple\u003c/code\u003e in \u003ccode\u003e_manylinux\u003c/code\u003e (:pull:\u003ccode\u003e868\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDetect invalid license expressions containing \u003ccode\u003e()\u003c/code\u003e (:pull:\u003ccode\u003e879\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect regex for metadata \u003ccode\u003e'name'\u003c/code\u003e format (:pull:\u003ccode\u003e925\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eImprove the message around expecting a semicolon (:pull:\u003ccode\u003e833\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport nested parens in license expressions (:pull:\u003ccode\u003e931\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd space before at symbol in \u003ccode\u003eRequirements\u003c/code\u003e string (:pull:\u003ccode\u003e953\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eA root logger use found, use a \u003ccode\u003epackaging\u003c/code\u003e logger instead (:pull:\u003ccode\u003e965\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eBetter support for subclassing \u003ccode\u003eMarker\u003c/code\u003e and \u003ccode\u003eRequirement\u003c/code\u003e (:pull:\u003ccode\u003e1022\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eNormalize all extras, not just if it comes first (:pull:\u003ccode\u003e1024\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDon't produce a broken repr if \u003ccode\u003eMarker\u003c/code\u003e fails to construct (:pull:\u003ccode\u003e1033\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePerformance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid recompiling regexes in the tokenizer for a 3x speedup (:pull:\u003ccode\u003e1019\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eImprove performance in \u003ccode\u003e_manylinux.py\u003c/code\u003e (:pull:\u003ccode\u003e869\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMinor cleanups to \u003ccode\u003eVersion\u003c/code\u003e (:pull:\u003ccode\u003e913\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSkip redundant creation of \u003ccode\u003eVersion\u003c/code\u003e's in specifier comparison (:pull:\u003ccode\u003e986\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCache the \u003ccode\u003eSpecifier\u003c/code\u003e's \u003ccode\u003eVersion\u003c/code\u003e (:pull:\u003ccode\u003e985\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eVersion\u003c/code\u003e a little faster (:pull:\u003ccode\u003e987\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMinor \u003ccode\u003eVersion\u003c/code\u003e regex cleanup (:pull:\u003ccode\u003e990\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFaster regex on Python 3.11.5+ for \u003ccode\u003eVersion\u003c/code\u003e (:pull:\u003ccode\u003e988\u003c/code\u003e, :pull:\u003ccode\u003e1055\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eLazily calculate \u003ccode\u003e_key\u003c/code\u003e in \u003ccode\u003eVersion\u003c/code\u003e (:pull:\u003ccode\u003e989\u003c/code\u003e, :pull:\u003ccode\u003e1048\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFaster \u003ccode\u003ecanonicalize_version\u003c/code\u003e (:pull:\u003ccode\u003e993\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003ere.fullmatch\u003c/code\u003e in a couple more places (:pull:\u003ccode\u003e992\u003c/code\u003e, :pull:\u003ccode\u003e1029\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003emap\u003c/code\u003e instead of generator (:pull:\u003ccode\u003e996\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDeprecate \u003ccode\u003e._version\u003c/code\u003e (\u003ccode\u003e_Version\u003c/code\u003e, a \u003ccode\u003eNamedTuple\u003c/code\u003e) (:pull:\u003ccode\u003e995\u003c/code\u003e, :pull:\u003ccode\u003e1062\u003c/code\u003e)\u003cbr /\u003e\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/3b77a26f5a27473ad3b08194d773f325d018a2d0\"\u003e\u003ccode\u003e3b77a26\u003c/code\u003e\u003c/a\u003e Bump for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/31371cce593d2bde0dd8c436ecfb7d53cb91cfb6\"\u003e\u003ccode\u003e31371cc\u003c/code\u003e\u003c/a\u003e docs: prepare for 26.0 final (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1063\"\u003e#1063\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/9627a8821f09e4c55cd6e9daadb617b67c4741c2\"\u003e\u003ccode\u003e9627a88\u003c/code\u003e\u003c/a\u003e perf: dual replace (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1064\"\u003e#1064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/d5398b8bc19f3fad7b035ceb83023caf06d6e2da\"\u003e\u003ccode\u003ed5398b8\u003c/code\u003e\u003c/a\u003e fix: restore ._version as a compat shim (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1062\"\u003e#1062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/3a7b600a126d237b2ad3cd7e25d2cb5c176276af\"\u003e\u003ccode\u003e3a7b600\u003c/code\u003e\u003c/a\u003e Bump for development\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/d4eefdccf992e963c48011875301d93df6a7f2cc\"\u003e\u003ccode\u003ed4eefdc\u003c/code\u003e\u003c/a\u003e Bump for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/46189124fb43d8989d370902c80ab156eb83a45d\"\u003e\u003ccode\u003e4618912\u003c/code\u003e\u003c/a\u003e docs: prepare for 26.0rc3 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1060\"\u003e#1060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/0cf1b41b4b321ae08cad7d3e49cfaff5578fe813\"\u003e\u003ccode\u003e0cf1b41\u003c/code\u003e\u003c/a\u003e ci: test on first public release of CPythons (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1056\"\u003e#1056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/716beb1c0a5d7a398bf57fbd80bc2501811e616b\"\u003e\u003ccode\u003e716beb1\u003c/code\u003e\u003c/a\u003e perf:  10% faster stripping zeros (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1058\"\u003e#1058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/350a2306700b738f487f251efa278f532b263dee\"\u003e\u003ccode\u003e350a230\u003c/code\u003e\u003c/a\u003e fix: support CPython 3.11.0-3.11.4 and older PyPy3.11 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/packaging/compare/25.0...26.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.14.9 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.9...0.15.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `build` from 1.3.0 to 1.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/build/releases\"\u003ebuild's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--quiet\u003c/code\u003e flag (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/947\"\u003e#947\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd option to dump PEP 517 metadata with \u003ccode\u003e--metadata\u003c/code\u003e (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/940\"\u003e#940\u003c/a\u003e, PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/943\"\u003e#943\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003eUV\u003c/code\u003e environment variable (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/971\"\u003e#971\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove a workaround for 3.14b1 (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/960\"\u003e#960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIn 3.14 final release, \u003ccode\u003ecolor\u003c/code\u003e defaults to \u003ccode\u003eTrue\u003c/code\u003e already (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/962\"\u003e#962\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePass sp-repo-review (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/942\"\u003e#942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIn pytest configuration, \u003ccode\u003elog_level\u003c/code\u003e is better than \u003ccode\u003elog_cli_level\u003c/code\u003e (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/950\"\u003e#950\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSplit up typing and mypy (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/944\"\u003e#944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003etypes-colorama\u003c/code\u003e (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/945\"\u003e#945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIn docs, first argument for \u003ccode\u003e_has_dependency\u003c/code\u003e is a name (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/970\"\u003e#970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix test failure when \u003ccode\u003eflit-core\u003c/code\u003e is installed (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/921\"\u003e#921\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/build/blob/main/CHANGELOG.rst\"\u003ebuild's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.4.0 (2026-01-08)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--quiet\u003c/code\u003e flag\n(:pr:\u003ccode\u003e947\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd option to dump PEP 517 metadata with \u003ccode\u003e--metadata\u003c/code\u003e\n(:pr:\u003ccode\u003e940\u003c/code\u003e, :pr:\u003ccode\u003e943\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003eUV\u003c/code\u003e environment variable\n(:pr:\u003ccode\u003e971\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eRemove a workaround for 3.14b1\n(:pr:\u003ccode\u003e960\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eIn 3.14 final release, \u003ccode\u003ecolor\u003c/code\u003e defaults to \u003ccode\u003eTrue\u003c/code\u003e already\n(:pr:\u003ccode\u003e962\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePass sp-repo-review\n(:pr:\u003ccode\u003e942\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eIn pytest configuration, \u003ccode\u003elog_level\u003c/code\u003e is better than \u003ccode\u003elog_cli_level\u003c/code\u003e\n(:pr:\u003ccode\u003e950\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSplit up typing and mypy\n(:pr:\u003ccode\u003e944\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003etypes-colorama\u003c/code\u003e\n(:pr:\u003ccode\u003e945\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eIn docs, first argument for \u003ccode\u003e_has_dependency\u003c/code\u003e is a name\n(PR :pr:\u003ccode\u003e970\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix test failure when \u003ccode\u003eflit-core\u003c/code\u003e is installed\n(PR :pr:\u003ccode\u003e921\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/build/commit/54f238d1664124e06a68c6c22fd5b1418fa5feb2\"\u003e\u003ccode\u003e54f238d\u003c/code\u003e\u003c/a\u003e chore: prepare for 1.4.0 (\u003ca href=\"https://redirect.github.com/pypa/build/issues/972\"\u003e#972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/f219276a6e2c6c8222780ba518ce52444a91deaa\"\u003e\u003ccode\u003ef219276\u003c/code\u003e\u003c/a\u003e docs: first argument for _has_dependency is a name (\u003ca href=\"https://redirect.github.com/pypa/build/issues/970\"\u003e#970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/7adb29e69d2744acc5391d3c58d234388a9ac0ed\"\u003e\u003ccode\u003e7adb29e\u003c/code\u003e\u003c/a\u003e fix: support UV environment variable (\u003ca href=\"https://redirect.github.com/pypa/build/issues/971\"\u003e#971\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/a40623b20de5d29c80b569283191d65e630f4fc0\"\u003e\u003ccode\u003ea40623b\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/attest-build-provenance in the actions group (\u003ca href=\"https://redirect.github.com/pypa/build/issues/968\"\u003e#968\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/c8fae3459dbe4456d82d705c6a3f1869b0b26e5c\"\u003e\u003ccode\u003ec8fae34\u003c/code\u003e\u003c/a\u003e pre-commit: bump repositories (\u003ca href=\"https://redirect.github.com/pypa/build/issues/965\"\u003e#965\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/ed9c379f51abca7c0c0ae20bee66aa548d597dc3\"\u003e\u003ccode\u003eed9c379\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/download-artifact in the actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/0e44fd22f35c7b3c14d6410bbd8912dafba0e4a9\"\u003e\u003ccode\u003e0e44fd2\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003equiet\u003c/code\u003e flag (\u003ca href=\"https://redirect.github.com/pypa/build/issues/947\"\u003e#947\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/60e15ed4cb31209f0e07de750c831cdb3911c62c\"\u003e\u003ccode\u003e60e15ed\u003c/code\u003e\u003c/a\u003e chore: color defaults to True in 3.14 (\u003ca href=\"https://redirect.github.com/pypa/build/issues/962\"\u003e#962\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/0486d9df2e6caf7c04a3991824093eb6a16e7f29\"\u003e\u003ccode\u003e0486d9d\u003c/code\u003e\u003c/a\u003e pre-commit: bump repositories (\u003ca href=\"https://redirect.github.com/pypa/build/issues/961\"\u003e#961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/393b775480523247c1ad07b8da9bb8c23c5cd0fa\"\u003e\u003ccode\u003e393b775\u003c/code\u003e\u003c/a\u003e MNT: remove workaround for 3.14b1 (\u003ca href=\"https://redirect.github.com/pypa/build/issues/960\"\u003e#960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/build/compare/1.3.0...1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pypi-attestations` from 0.0.28 to 0.0.29\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypi/pypi-attestations/releases\"\u003epypi-attestations's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.0.29\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix lint and remove support for Python 3.9 by \u003ca href=\"https://github.com/facutuesca\"\u003e\u003ccode\u003e@​facutuesca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypi/pypi-attestations/pull/151\"\u003epypi/pypi-attestations#151\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd GCP support to CLI by \u003ca href=\"https://github.com/di\"\u003e\u003ccode\u003e@​di\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypi/pypi-attestations/pull/157\"\u003epypi/pypi-attestations#157\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pypi/pypi-attestations/compare/v0.0.28...v0.0.29\"\u003ehttps://github.com/pypi/pypi-attestations/compare/v0.0.28...v0.0.29\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/pypi/pypi-attestations/blob/main/CHANGELOG.md\"\u003epypi-attestations's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.0.29]\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for verifying Google Cloud attestations has been added to the CLI.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe minimum Python version required is now \u003ccode\u003e3.10\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/pypi/pypi-attestations/commit/fb35ffdce810566fdf7aa22f1b517f60be0c727f\"\u003e\u003ccode\u003efb35ffd\u003c/code\u003e\u003c/a\u003e chore: prep for release v0.0.29 (\u003ca href=\"https://redirect.github.com/pypi/pypi-attestations/issues/158\"\u003e#158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypi/pypi-attestations/commit/5afe2a125af6b2f8962dcf8326d2149f8dddc6f0\"\u003e\u003ccode\u003e5afe2a1\u003c/code\u003e\u003c/a\u003e Add GCP support to CLI (\u003ca href=\"https://redirect.github.com/pypi/pypi-attestations/issues/157\"\u003e#157\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypi/pypi-attestations/commit/0716b105c1c7b28a5bae1d8beca15a7f7e3c1a25\"\u003e\u003ccode\u003e0716b10\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python in the actions group (\u003ca href=\"https://redirect.github.com/pypi/pypi-attestations/issues/155\"\u003e#155\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypi/pypi-attestations/commit/34db665fba7f61aad1e4133cfff8b1a5b332cd60\"\u003e\u003ccode\u003e34db665\u003c/code\u003e\u003c/a\u003e build(deps): bump zizmorcore/zizmor-action in the actions group (\u003ca href=\"https://redirect.github.com/pypi/pypi-attestations/issues/154\"\u003e#154\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypi/pypi-attestations/commit/2a74c1e7f9882803692bea8924c9359ec8369933\"\u003e\u003ccode\u003e2a74c1e\u003c/code\u003e\u003c/a\u003e Remove unneeded permissions from zizmor workflow (\u003ca href=\"https://redirect.github.com/pypi/pypi-attestations/issues/153\"\u003e#153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypi/pypi-attestations/commit/d8d4ab106a76f107cd97b4ee041f1adfe1ff0cf6\"\u003e\u003ccode\u003ed8d4ab1\u003c/code\u003e\u003c/a\u003e Add zizmor to CI workflows\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypi/pypi-attestations/commit/26e8913b136b8166eac40ad9f9313a8affd656cf\"\u003e\u003ccode\u003e26e8913\u003c/code\u003e\u003c/a\u003e Update CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypi/pypi-attestations/commit/446816b7a16dc989da33b9f8dab989e640f8881a\"\u003e\u003ccode\u003e446816b\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout in the actions group (\u003ca href=\"https://redirect.github.com/pypi/pypi-attestations/issues/149\"\u003e#149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypi/pypi-attestations/commit/b8c452d338a6411e6d688f2498adbabf501680b3\"\u003e\u003ccode\u003eb8c452d\u003c/code\u003e\u003c/a\u003e Add cooldown to dependabot updates (\u003ca href=\"https://redirect.github.com/pypi/pypi-attestations/issues/150\"\u003e#150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypi/pypi-attestations/commit/2c8d48e78417f12869b89fcbad619f52f5656a4f\"\u003e\u003ccode\u003e2c8d48e\u003c/code\u003e\u003c/a\u003e Fix lint and remove support for Python 3.9 (\u003ca href=\"https://redirect.github.com/pypi/pypi-attestations/issues/151\"\u003e#151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypi/pypi-attestations/compare/v0.0.28...v0.0.29\"\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.1 to 9.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13965\"\u003e#13965\u003c/a\u003e: Fixed quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/4492\"\u003e#4492\u003c/a\u003e: The API Reference now contains cross-reference-able documentation of \u003ccode\u003epytest's command-line flags \u0026lt;command-line-flags\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/3d10b5148e03eb82b3ee29181dbdc73cf82699e2\"\u003e\u003ccode\u003e3d10b51\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/188750b725add8c3400eee6fbb6b80559c296d69\"\u003e\u003ccode\u003e188750b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14030\"\u003e#14030\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/1e4b01d1f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7d7bef90cb9a6db8ac1d3dd5b9ae0eb9abd6c58\"\u003e\u003ccode\u003eb7d7bef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14014\"\u003e#14014\u003c/a\u003e from bluetech/compat-note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bd08e85ac76614ff5ca9ae338aee8d8b06c8fae0\"\u003e\u003ccode\u003ebd08e85\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14013\"\u003e#14013\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/922b60377...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bc783862991241c442c9f9c068e51737ec15ea10\"\u003e\u003ccode\u003ebc78386\u003c/code\u003e\u003c/a\u003e Add CLI options reference documentation (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13930\"\u003e#13930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/5a4e398ce89bc23d2cf3fd98c042fdffb6fa8afa\"\u003e\u003ccode\u003e5a4e398\u003c/code\u003e\u003c/a\u003e Fix docs typo (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14005\"\u003e#14005\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14008\"\u003e#14008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/d7ae6df394398168bf9d926f803c26849c8f07ee\"\u003e\u003ccode\u003ed7ae6df\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14006\"\u003e#14006\u003c/a\u003e from pytest-dev/maintenance/update-plugin-list-tmpl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/556f6a22e12d13d1ffeceaf64424eb95d5e0fb87\"\u003e\u003ccode\u003e556f6a2\u003c/code\u003e\u003c/a\u003e pre-commit: fix rst-lint after new release (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13999\"\u003e#13999\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14001\"\u003e#14001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c60fbe63a26f64a42738e3f3527a8f79024fdf50\"\u003e\u003ccode\u003ec60fbe6\u003c/code\u003e\u003c/a\u003e Fix quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10 ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/73d9b011183d9a1c4a7007c1119d97a6e627788e\"\u003e\u003ccode\u003e73d9b01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13995\"\u003e#13995\u003c/a\u003e from nicoddemus/patchback/backports/9.0.x/1b5200c0f...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/9.0.1...9.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cython` from 3.2.2 to 3.2.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/cython/cython/blob/master/CHANGES.rst\"\u003ecython's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.2.4 (2026-01-04)\u003c/h1\u003e\n\u003ch2\u003eFeatures added\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eIn preparation of Cython 3.3, a new decorator \u003ccode\u003e@collection_type(tname)\u003c/code\u003e can be used\nto advertise an extension type as being a \u003ccode\u003e'sequence'\u003c/code\u003e or \u003ccode\u003e'mapping'\u003c/code\u003e.  This currently\nonly has the effect of setting the \u003ccode\u003ePy_TPFLAGS_SEQUENCE\u003c/code\u003e flag on the type or not, but\nis provided for convenience to allow using the new decorator already in Cython 3.2 code.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSeveral C++ exception declarations were added to \u003ccode\u003elibcpp.exceptions\u003c/code\u003e.\n(Github issue :issue:\u003ccode\u003e7389\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003ePseudo-literal default values of function arguments like \u003ccode\u003earg=str()\u003c/code\u003e could generate\ninvalid C code when internally converted into a real literal.\n(Github issue :issue:\u003ccode\u003e6192\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe pickle serialisation of extension types using the \u003ccode\u003eauto_pickle\u003c/code\u003e feature was\nlarger than necessary since 3.2.0 for types without Python object attributes.\nIt is now back to the state before 3.2.0 again.\n(Github issue :issue:\u003ccode\u003e7443\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eConstants are now only made immortal on freethreading Python if they are not shared.\n(Github issue :issue:\u003ccode\u003e7439\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003ePyDict_SetDefaultRef()\u003c/code\u003e is now used when available to avoid temporary borrowed references.\n(Github issue :issue:\u003ccode\u003e7347\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIncludes all fixes as of Cython 3.1.8.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e3.2.3 (2025-12-14)\u003c/h1\u003e\n\u003ch2\u003eFeatures added\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe C-API declarations were updated to include the new \u003ccode\u003ePyList_*()\u003c/code\u003e functions.\n(Github issue :issue:\u003ccode\u003e7291\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe \u003ccode\u003ePy_mod_gil\u003c/code\u003e module setting can now be changed with a C macro, overriding\nthe \u003ccode\u003efreethreading_compatible\u003c/code\u003e directive setting.\n(Github issue :issue:\u003ccode\u003e7404\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/21bda420d583bcf464fb9efb932b09c5f3db1efd\"\u003e\u003ccode\u003e21bda42\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/ea5e926e930fb50bd0b2be69717cb906f67ef18b\"\u003e\u003ccode\u003eea5e926\u003c/code\u003e\u003c/a\u003e Define missing C++ exception classes (\u003ca href=\"https://redirect.github.com/cython/cython/issues/7389\"\u003e#7389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/c533d67f2a9109111c4057b598d8d04698cfee3f\"\u003e\u003ccode\u003ec533d67\u003c/code\u003e\u003c/a\u003e Add sequence return type annotations in Parsing.py (\u003ca href=\"https://redirect.github.com/cython/cython/issues/7416\"\u003eGH-7416\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/d056a1808298ff6a569f950937b7ab3385b2f785\"\u003e\u003ccode\u003ed056a18\u003c/code\u003e\u003c/a\u003e Allow 'mapping' as \u003ca href=\"https://github.com/collection\"\u003e\u003ccode\u003e@​collection\u003c/code\u003e\u003c/a\u003e_type() in preparation of 3.3, but without actu...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/d347c82898f4e90139b63510d984860762c01f1c\"\u003e\u003ccode\u003ed347c82\u003c/code\u003e\u003c/a\u003e Remove exclusion of collection_type in test (\u003ca href=\"https://redirect.github.com/cython/cython/issues/7442\"\u003e#7442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/fd6e8253df013645fb028ea956175957dcff8e8b\"\u003e\u003ccode\u003efd6e825\u003c/code\u003e\u003c/a\u003e Merge branch '3.1.x' into 3.2.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/ce5c6cb05bdb5560937648558508241c681369ca\"\u003e\u003ccode\u003ece5c6cb\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/74b97f92075d2721abce7dfb246f426b0ab401ae\"\u003e\u003ccode\u003e74b97f9\u003c/code\u003e\u003c/a\u003e Fix arg=str() default argument (\u003ca href=\"https://redirect.github.com/cython/cython/issues/6193\"\u003eGH-6193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/9c9e5c7d31525672ad5b8ee703c719a33d98a118\"\u003e\u003ccode\u003e9c9e5c7\u003c/code\u003e\u003c/a\u003e Avoid immortalizing anything shared on freethreading (\u003ca href=\"https://redirect.github.com/cython/cython/issues/7439\"\u003eGH-7439\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/9d5507bf1cf713c314a9e37447463ad72ee9f8cd\"\u003e\u003ccode\u003e9d5507b\u003c/code\u003e\u003c/a\u003e Fix accidental inefficiency in auto-pickling that always stored the object st...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/cython/cython/compare/3.2.2...3.2.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `setuptools` from 80.9.0 to 82.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/setuptools/blob/main/NEWS.rst\"\u003esetuptools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev82.0.0\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epkg_resources\u003c/code\u003e has been removed from Setuptools. Most common uses of \u003ccode\u003epkg_resources\u003c/code\u003e have been superseded by the \u003ccode\u003eimportlib.resources \u0026lt;https://docs.python.org/3/library/importlib.resources.html\u0026gt;\u003c/code\u003e_ and \u003ccode\u003eimportlib.metadata \u0026lt;https://docs.python.org/3/library/importlib.metadata.html\u0026gt;\u003c/code\u003e_ projects. Projects and environments relying on \u003ccode\u003epkg_resources\u003c/code\u003e for namespace packages or other behavior should depend on older versions of \u003ccode\u003esetuptools\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/3085\"\u003e#3085\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev81.0.0\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved support for the --dry-run parameter to setup.py. This one feature by its nature threads through lots of core and ancillary functionality, adding complexity and friction. Removal of this parameter will help decouple the compiler functionality from distutils and thus the eventual full integration of distutils. These changes do affect some class and function signatures, so any derivative functionality may require some compatibility shims to support their expected interface. Please report any issues to the Setuptools project for investigation. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev80.10.2\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate vendored dependencies. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5159\"\u003e#5159\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5115\"\u003e#5115\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5128\"\u003e#5128\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev80.10.1\u003c/h1\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5152\"\u003e#5152\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev80.10.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove post-release tags on setuptools' own build. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4530\"\u003e#4530\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefreshed vendored dependencies. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5139\"\u003e#5139\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/pypa/setuptools/commit/03f3615362c4eb19c770b71be5bd58e38f235528\"\u003e\u003ccode\u003e03f3615\u003c/code\u003e\u003c/a\u003e Bump version: 81.0.0 → 82.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/530d11498af526c4210d8eeaa1ed6c63f44a390f\"\u003e\u003ccode\u003e530d114\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5007\"\u003e#5007\u003c/a\u003e from pypa/feature/remove-more-pkg_resources\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/11efe9f552290bf536515d458aa85752a0606aa8\"\u003e\u003ccode\u003e11efe9f\u003c/code\u003e\u003c/a\u003e Merge branch 'maint/75.3'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/118f129dd0fb319058bd05f382c50188fd60a60e\"\u003e\u003ccode\u003e118f129\u003c/code\u003e\u003c/a\u003e Bump version: 75.3.3 → 75.3.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/90561ffde1220a590b7644745f48b5837b1a130d\"\u003e\u003ccode\u003e90561ff\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5150\"\u003e#5150\u003c/a\u003e from UladzimirTrehubenka/backport_cve_47273\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/4595034db8aab4ea33035a47a068b04fd8aa00cc\"\u003e\u003ccode\u003e4595034\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/fc008006fc072af02eb7e0b601172c67eba395e3\"\u003e\u003ccode\u003efc00800\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5171\"\u003e#5171\u003c/a\u003e from cclauss/ruff-v0.15.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/127e561362a2b4e560faabe9e979ed848106b62d\"\u003e\u003ccode\u003e127e561\u003c/code\u003e\u003c/a\u003e Remove tests reliant on pkg_resources, rather than xfailing them.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/64bc21e10b5d749b1b75fa334caedb67cc7414c4\"\u003e\u003ccode\u003e64bc21e\u003c/code\u003e\u003c/a\u003e Reference the superseding libraries.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/cf1ff459ea997b615a75d99304f6c9aa1fc94c06\"\u003e\u003ccode\u003ecf1ff45\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into debt/pbr-without-pkg_resources\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/setuptools/compare/v80.9.0...v82.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyrefly` from 0.44.0 to 0.54.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facebook/pyrefly/releases\"\u003epyrefly's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ePyrefly v0.54.0\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eStatus: BETA\u003c/strong\u003e\u003cbr /\u003e\n\u003cem\u003e\u003cstrong\u003eRelease date:\u003c/strong\u003e February 23, 2026\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003ePyrefly 0.54.0 bundles \u003cstrong\u003e93 commits\u003c/strong\u003e from \u003cstrong\u003e18 contributors\u003c/strong\u003e.\u003c/p\u003e\n\u003ch2\u003e✨ New \u0026amp; Improved\u003c/h2\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth align=\"left\"\u003eArea\u003c/th\u003e\n\u003cth align=\"left\"\u003eWhat’s new\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd align=\"left\"\u003e\u003cstrong\u003eType checker\u003c/strong\u003e\u003c/td\u003e\n\u003ctd align=\"left\"\u003e- Pyrefly now supports using \u003ccode\u003etype(X)\u003c/code\u003e in base class lists, enabling compatibility with codebases that use metaclass expressions (e.g. those wrapping C extensions) \u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e- Added static evaluation support for more patterns of \u003ccode\u003esys.platform\u003c/code\u003e and \u003ccode\u003esys.version_info\u003c/code\u003e checks\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd align=\"left\"\u003e\u003cstrong\u003eLanguage Server\u003c/strong\u003e\u003c/td\u003e\n\u003ctd align=\"left\"\u003e- Autoimport and quickfix now surface explicit re-export paths, improving import suggestions for users working with re-exported symbols. \u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e- Diagnostics can now be controlled independently for each workspace folder in multi-root setups, allowing users to customize diagnostics per project \u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e- Enhanced  \u0026quot;Generate code\u0026quot; quick fix actions in Pyrefly's LSP, which will now infer parameter types and annotations from call-site arguments \u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e- Code completion and signature help now shows keyword argument and literal completions from all compatible overloads, not just the closest match\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2\u003e🐛 bug fixes\u003c/h2\u003e\n\u003cp\u003eWe closed 7 bug issues this release 👏\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/2273\"\u003e#2273\u003c/a\u003e - Adjusted overload-to-Callable subtyping so single-parameter overloads can satisfy a union-parameter Callable, fixing assignment errors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/2398\"\u003e#2398\u003c/a\u003e - When matching a value against a union containing both bare TypeVars and wrapped TypeVars, Pyrefly now tries wrapped vars first, producing better TypeVar solutions and satisfying bounds\u003c/li\u003e\n\u003cli\u003eAnd more! \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/2398\"\u003e#2398\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/949\"\u003e#949\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/2421\"\u003e#2421\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/2457\"\u003e#2457\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/1122\"\u003e#1122\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/2434\"\u003e#2434\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/787\"\u003e#787\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThank-you to all our contributors who found these bugs and reported them! Did you know this is one of the most helpful contributions you can make to an open-source project? If you find any bugs in Pyrefly we want to know about them! Please open a bug report issue \u003ca href=\"https://github.com/facebook/pyrefly/issues\"\u003ehere\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e📦 Upgrade\u003c/h2\u003e\n\u003cpre lang=\"shell\"\u003e\u003ccode\u003epip install --upgrade pyrefly==0.54.0\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eHow to safely upgrade your codebase\u003c/h3\u003e\n\u003cp\u003eUpgrading the version of Pyrefly you're using or a third-party library you depend on can reveal new type errors in your code. Fixing them all at once is often unrealistic. We've written scripts to help you temporarily silence them. After upgrading, follow ...\n\n_Description has been truncated_","html_url":"https://github.com/chrisjsewell/sphinx/pull/30","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisjsewell%2Fsphinx/issues/30","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/30/packages"}},{"old_version":"7.4.2","new_version":"8.4.2","update_type":"major","path":null,"pr_created_at":"2026-02-09T19:38:22.000Z","version_change":"7.4.2 → 8.4.2","issue":{"uuid":"3917820634","node_id":"PR_kwDOKoYLLM7CjqOH","number":195,"state":"open","title":"Bump the major-versions group across 1 directory with 16 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-02-09T19:38:22.000Z","updated_at":"2026-02-09T19:38:23.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"major-versions","update_count":16,"packages":[{"name":"django","old_version":"4.2.6","new_version":"4.2.28"},{"name":"django-guardian","old_version":"2.4.0","new_version":"3.2.0","repository_url":"https://github.com/django-guardian/django-guardian"},{"name":"django-extensions","old_version":"3.2.3","new_version":"4.1","repository_url":"https://github.com/django-extensions/django-extensions"},{"name":"django-filter","old_version":"23.3","new_version":"25.1","repository_url":"https://github.com/carltongibson/django-filter"},{"name":"gunicorn","old_version":"21.2.0","new_version":"23.0.0","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"redis","old_version":"4.6.0","new_version":"6.4.0","repository_url":"https://github.com/redis/redis-py"},{"name":"watchdog","old_version":"3.0.0","new_version":"6.0.0","repository_url":"https://github.com/gorakhargosh/watchdog"},{"name":"ocrmypdf","old_version":"14.4.0","new_version":"15.4.4","repository_url":"https://github.com/ocrmypdf/OCRmyPDF"},{"name":"django-multiselectfield","old_version":"0.1.12","new_version":"1.0.1","repository_url":"https://github.com/goinnn/django-multiselectfield"},{"name":"django-auditlog","old_version":"2.3.0","new_version":"3.3.0","repository_url":"https://github.com/jazzband/django-auditlog"},{"name":"black","old_version":"23.9.1","new_version":"25.11.0","repository_url":"https://github.com/psf/black"},{"name":"pre-commit","old_version":"3.4.0","new_version":"4.3.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pytest","old_version":"7.4.2","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-cov","old_version":"4.1.0","new_version":"7.0.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pytest-sugar","old_version":"0.9.7","new_version":"1.1.1","repository_url":"https://github.com/Teemu/pytest-sugar"},{"name":"pytest-rerunfailures","old_version":"12.0","new_version":"16.0.1","repository_url":"https://github.com/pytest-dev/pytest-rerunfailures"}],"path":null,"ecosystem":"conda"},"body":"Bumps the major-versions group with 16 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| django | `4.2.6` | `4.2.28` |\n| [django-guardian](https://github.com/django-guardian/django-guardian) | `2.4.0` | `3.2.0` |\n| [django-extensions](https://github.com/django-extensions/django-extensions) | `3.2.3` | `4.1` |\n| [django-filter](https://github.com/carltongibson/django-filter) | `23.3` | `25.1` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `21.2.0` | `23.0.0` |\n| [redis](https://github.com/redis/redis-py) | `4.6.0` | `6.4.0` |\n| [watchdog](https://github.com/gorakhargosh/watchdog) | `3.0.0` | `6.0.0` |\n| [ocrmypdf](https://github.com/ocrmypdf/OCRmyPDF) | `14.4.0` | `15.4.4` |\n| [django-multiselectfield](https://github.com/goinnn/django-multiselectfield) | `0.1.12` | `1.0.1` |\n| [django-auditlog](https://github.com/jazzband/django-auditlog) | `2.3.0` | `3.3.0` |\n| [black](https://github.com/psf/black) | `23.9.1` | `25.11.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `3.4.0` | `4.3.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `7.4.2` | `8.4.2` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `4.1.0` | `7.0.0` |\n| [pytest-sugar](https://github.com/Teemu/pytest-sugar) | `0.9.7` | `1.1.1` |\n| [pytest-rerunfailures](https://github.com/pytest-dev/pytest-rerunfailures) | `12.0` | `16.0.1` |\n\n\nUpdates `django` from 4.2.6 to 4.2.28\n\nUpdates `django-guardian` from 2.4.0 to 3.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-guardian/django-guardian/releases\"\u003edjango-guardian's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.2.0 The Bozkir progression\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate enforcement contact link in CODE_OF_CONDUCT.md by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/918\"\u003edjango-guardian/django-guardian#918\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptional cached anonymous user  - Pr 907 by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/912\"\u003edjango-guardian/django-guardian#912\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003egenerator warnings and logics are added for security purposes by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/920\"\u003edjango-guardian/django-guardian#920\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erollback compatible create anon user fix is developed by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/919\"\u003edjango-guardian/django-guardian#919\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e644 using inlines in django admin with guardian by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/921\"\u003edjango-guardian/django-guardian#921\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-guardian/django-guardian/compare/3.1.3...3.2.0\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.3...3.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edjango-packages badge is added by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/910\"\u003edjango-guardian/django-guardian#910\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate issue templates by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/909\"\u003edjango-guardian/django-guardian#909\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMakefile support by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/906\"\u003edjango-guardian/django-guardian#906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePR merging scenario is fixed by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/913\"\u003edjango-guardian/django-guardian#913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed issue causing prefetch_perms() to throw when passed an empty list by \u003ca href=\"https://github.com/keattang\"\u003e\u003ccode\u003e@​keattang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/904\"\u003edjango-guardian/django-guardian#904\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRe apply \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/812\"\u003e#812\u003c/a\u003e using correct lookup method by \u003ca href=\"https://github.com/sevdog\"\u003e\u003ccode\u003e@​sevdog\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/842\"\u003edjango-guardian/django-guardian#842\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOPS: Bump version for release by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/915\"\u003edjango-guardian/django-guardian#915\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-guardian/django-guardian/compare/3.1.2...3.1.3\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.2...3.1.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 in /.github/workflows by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/903\"\u003edjango-guardian/django-guardian#903\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix type and deprecate old name by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/902\"\u003edjango-guardian/django-guardian#902\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/django-guardian/django-guardian/pull/903\"\u003edjango-guardian/django-guardian#903\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-guardian/django-guardian/compare/3.1.1...3.1.2\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.1...3.1.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epre-commit checker step is added by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/901\"\u003edjango-guardian/django-guardian#901\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-guardian/django-guardian/compare/3.1.0...3.1.1\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.0...3.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eImproved indexing, tweaks and bugfixes\u003c/h2\u003e\n\u003ch2\u003eSaving the 🌳🌳🌳 and the 💰💰💰\u003c/h2\u003e\n\u003cp\u003e⚠️⚠️⚠️ \u003cstrong\u003eWARNING:\u003c/strong\u003e This release contains an update to database indexing which should yield \u003cstrong\u003econsiderable additional performance\u003c/strong\u003e, especially on large table permissions lookups (thanks \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e for such rigorous performance testing!!!). Following the migration that introduces these indexes, databases should reindex automatically in the background (typically within 0-30s even for large tables): this is unlikely to be noticeable but users may experience a short lived performance hit during this period.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow ignore_conflicts on bulk create by \u003ca href=\"https://github.com/pgiki\"\u003e\u003ccode\u003e@​pgiki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/814\"\u003edjango-guardian/django-guardian#814\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/4120d00c28c1b6d3bacb988f6db86bacf91ed0f1\"\u003e\u003ccode\u003e4120d00\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/921\"\u003e#921\u003c/a\u003e from django-guardian/644-using-inlines-in-django-admi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/c896b220bdf96783f1c25d730f12ebef95758c99\"\u003e\u003ccode\u003ec896b22\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/919\"\u003e#919\u003c/a\u003e from django-guardian/770-migration-rollback-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/3814e2383c69266350a3d885d445bdd79da8cb78\"\u003e\u003ccode\u003e3814e23\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 770-migration-rollback-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/94854899f4a030b42840837e08b42923a71c5b78\"\u003e\u003ccode\u003e9485489\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/920\"\u003e#920\u003c/a\u003e from django-guardian/666-permissionrequiredmixin-does...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/e01e2e1edeec60b2c79d561db56e0949ea3c4dad\"\u003e\u003ccode\u003ee01e2e1\u003c/code\u003e\u003c/a\u003e check only username field fixing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/e1ae3c5a7ab74a679ef1ccff2a480a88117df464\"\u003e\u003ccode\u003ee1ae3c5\u003c/code\u003e\u003c/a\u003e show warning instead of error for backward compatibility and giving time the ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/63c10f549dfe2b5ba67e9eec36095cf3e6a2bab8\"\u003e\u003ccode\u003e63c10f5\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 644-using-inlines-in-django-admin-with-guardian\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/b27ebbdcc7f9952d9d9aaaa879b5e202063ccaa8\"\u003e\u003ccode\u003eb27ebbd\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 666-permissionrequiredmixin-does-not-warn-against-us...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/d7ed4a3bccb730d3cdf16fdc404f25b94674c653\"\u003e\u003ccode\u003ed7ed4a3\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 770-migration-rollback-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/03fed6924e06fd13991d9e8ae1b4590addf5473e\"\u003e\u003ccode\u003e03fed69\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/912\"\u003e#912\u003c/a\u003e from django-guardian/pr-907\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-guardian/django-guardian/compare/v2.4.0...3.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-extensions` from 3.2.3 to 4.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-extensions/django-extensions/releases\"\u003edjango-extensions's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd: show_permissions command (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1920\"\u003e#1920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, style per app (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1848\"\u003e#1848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: JSONField, bulk_update's (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1924\"\u003e#1924\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/ahmad88me\"\u003e\u003ccode\u003e@​ahmad88me\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1848\"\u003edjango-extensions/django-extensions#1848\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-extensions/django-extensions/compare/4.0...4.1\"\u003ehttps://github.com/django-extensions/django-extensions/compare/4.0...4.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprovement: Support for Python 3.12 and 3.13\u003c/li\u003e\n\u003cli\u003eImprovement: Support for Django 5.x\u003c/li\u003e\n\u003cli\u003eImprovement: Switch from setup.{cfg,py} to pyproject.toml\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add option to display field choices in graph_models (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1854\"\u003e#1854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add webp support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1857\"\u003e#1857\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Support for ordering edges on pydot/dot/graphviz (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1914\"\u003e#1914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: mail_debug, Update mail_debug command to use aiosmtpd (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1880\"\u003e#1880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: shell_plus, Improve error message for missing import (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1898\"\u003e#1898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: reset_db, Add reset_db support for django_tenants (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1855\"\u003e#1855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: docs, various improvements (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1852\"\u003e#1852\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1888\"\u003e#1888\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1882\"\u003e#1882\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1901\"\u003e#1901\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1912\"\u003e#1912\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1913\"\u003e#1913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: jobs, Handle non-package modules when looking for job definitions (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1887\"\u003e#1887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Add django-prometheus DB backends support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1800\"\u003e#1800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Call post_command when the command raises an unhandled exception (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1837\"\u003e#1837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: sqldiff, do not consider ('serial', 'integer') nor ('bigserial', 'bigint') as a field-type-differ (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1867\"\u003e#1867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: shell_plus, Fix start up order and add history (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1869\"\u003e#1869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove pipchecker and associated tests (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1906\"\u003e#1906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFollowing Django's release numbering style more closely (see \u003ca href=\"https://docs.djangoproject.com/en/5.2/internals/release-process/\"\u003ehttps://docs.djangoproject.com/en/5.2/internals/release-process/\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/dimitrismistriotis\"\u003e\u003ccode\u003e@​dimitrismistriotis\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1859\"\u003edjango-extensions/django-extensions#1859\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/titouanc\"\u003e\u003ccode\u003e@​titouanc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1854\"\u003edjango-extensions/django-extensions#1854\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dmwyatt\"\u003e\u003ccode\u003e@​dmwyatt\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1872\"\u003edjango-extensions/django-extensions#1872\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stianjensen\"\u003e\u003ccode\u003e@​stianjensen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1898\"\u003edjango-extensions/django-extensions#1898\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PapaZ810\"\u003e\u003ccode\u003e@​PapaZ810\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1888\"\u003edjango-extensions/django-extensions#1888\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kviktor\"\u003e\u003ccode\u003e@​kviktor\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1857\"\u003edjango-extensions/django-extensions#1857\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aripollak\"\u003e\u003ccode\u003e@​aripollak\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1913\"\u003edjango-extensions/django-extensions#1913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/flowgunso\"\u003e\u003ccode\u003e@​flowgunso\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1914\"\u003edjango-extensions/django-extensions#1914\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anitahammer\"\u003e\u003ccode\u003e@​anitahammer\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1869\"\u003edjango-extensions/django-extensions#1869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nicolaspanel\"\u003e\u003ccode\u003e@​nicolaspanel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1867\"\u003edjango-extensions/django-extensions#1867\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yujinyuz\"\u003e\u003ccode\u003e@​yujinyuz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1855\"\u003edjango-extensions/django-extensions#1855\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/soof-golan\"\u003e\u003ccode\u003e@​soof-golan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1852\"\u003edjango-extensions/django-extensions#1852\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ghickman\"\u003e\u003ccode\u003e@​ghickman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1887\"\u003edjango-extensions/django-extensions#1887\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jrobichaud\"\u003e\u003ccode\u003e@​jrobichaud\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1837\"\u003edjango-extensions/django-extensions#1837\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-extensions/django-extensions/compare/3.2.3...4.0\"\u003ehttps://github.com/django-extensions/django-extensions/compare/3.2.3...4.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.2.4b1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-extensions/django-extensions/blob/main/CHANGELOG.md\"\u003edjango-extensions's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.1\u003c/h2\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd: show_permissions command (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1920\"\u003e#1920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, style per app (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1848\"\u003e#1848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: JSONField, bulk_update's (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1924\"\u003e#1924\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.0\u003c/h2\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eImprovement: Support for Python 3.12 and 3.13\u003c/li\u003e\n\u003cli\u003eImprovement: Support for Django 5.x\u003c/li\u003e\n\u003cli\u003eImprovement: Switch from setup.{cfg,py} to pyproject.toml\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add option to display field choices in graph_models (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1854\"\u003e#1854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add webp support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1857\"\u003e#1857\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Support for ordering edges on pydot/dot/graphviz (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1914\"\u003e#1914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: mail_debug, Update mail_debug command to use aiosmtpd (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1880\"\u003e#1880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: shell_plus, Improve error message for missing import (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1898\"\u003e#1898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: reset_db, Add reset_db support for django_tenants (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1855\"\u003e#1855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: docs, various improvements (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1852\"\u003e#1852\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1888\"\u003e#1888\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1882\"\u003e#1882\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1901\"\u003e#1901\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1912\"\u003e#1912\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1913\"\u003e#1913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: jobs, Handle non-package modules when looking for job definitions (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1887\"\u003e#1887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Add django-prometheus DB backends support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1800\"\u003e#1800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Call post_command when the command raises an unhandled exception (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1837\"\u003e#1837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: sqldiff, do not consider ('serial', 'integer') nor ('bigserial', 'bigint') as a \u003ccode\u003efield-type-differ\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1867\"\u003e#1867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: shell_plus, Fix start up order and add history (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1869\"\u003e#1869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove pipchecker and associated tests (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1906\"\u003e#1906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFollowing Django's release numbering style more closely (see \u003ca href=\"https://docs.djangoproject.com/en/5.2/internals/release-process/\"\u003ehttps://docs.djangoproject.com/en/5.2/internals/release-process/\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/django-extensions/django-extensions/commit/ad015513e5d8e8ee6ad748fca5f32ccf3fb3d5c5\"\u003e\u003ccode\u003ead01551\u003c/code\u003e\u003c/a\u003e v4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/2c3e914f1264c0a029b3b47b7425d0f68ce637ed\"\u003e\u003ccode\u003e2c3e914\u003c/code\u003e\u003c/a\u003e update CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/fb5b2af1b6595ee126237c299acf242fcfee817e\"\u003e\u003ccode\u003efb5b2af\u003c/code\u003e\u003c/a\u003e ruff format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/7e978d27b031843640f9204ff495738c46233d7f\"\u003e\u003ccode\u003e7e978d2\u003c/code\u003e\u003c/a\u003e graph_models style per app (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1848\"\u003e#1848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/067064ea0c6dec7cba1583447fe5fe1c706d5351\"\u003e\u003ccode\u003e067064e\u003c/code\u003e\u003c/a\u003e avoid trying to serialize expressions when serializing default values\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/a886068502474e70a2d68ff4634a15cc3366088d\"\u003e\u003ccode\u003ea886068\u003c/code\u003e\u003c/a\u003e update CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/d824501cbc6d04a24a43ff5756b496f84093b225\"\u003e\u003ccode\u003ed824501\u003c/code\u003e\u003c/a\u003e Add show_permissions management command (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1920\"\u003e#1920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/934f93f53bdf6c6271ae1ddaee71bc9bf3364a0e\"\u003e\u003ccode\u003e934f93f\u003c/code\u003e\u003c/a\u003e bumped version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/c4577df5b69ec1ebcbe6bc64d7a5c20362f3a8fa\"\u003e\u003ccode\u003ec4577df\u003c/code\u003e\u003c/a\u003e v4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/7cdb43ab56a3b610b47680d8a2fe86b09d5913aa\"\u003e\u003ccode\u003e7cdb43a\u003c/code\u003e\u003c/a\u003e pyproject formatting\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-extensions/django-extensions/compare/3.2.3...4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-filter` from 23.3 to 25.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/carltongibson/django-filter/blob/main/CHANGES.rst\"\u003edjango-filter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 25.1 (2025-02-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved the in-built API schema generation methods, which have been\ndeprecated since v23.2.\u003c/p\u003e\n\u003cp\u003eYou should use \u003ccode\u003edrf-spectacular \u0026lt;https://drf-spectacular.readthedocs.io/en/latest/\u0026gt;\u003c/code\u003e_\nfor generating OpenAPI schemas with DRF.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped support for EOL Python 3.8.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded testing against Python 3.13.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded official support for Django 5.2.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 24.3 (2024-08-02)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdds official support for Django 5.1.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow using dictionaries for grouped choices on Django 5.0+.\u003c/p\u003e\n\u003cp\u003eThanks to Sævar Öfjörð Magnússon.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdds \u003ccode\u003eunknown_field_behavior\u003c/code\u003e FilterSet option to allowing warning and\nignore behaviours for unknown field types during FilterSet generation.\u003c/p\u003e\n\u003cp\u003eThanks to Loes.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 24.2 (2024-03-27)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a regression in v23.4 where callable choices were incorrectly evaluated\nat filter instantiation, on Django versions prior to 5.0.\u003c/p\u003e\n\u003cp\u003eThanks to Craig de Stigter for the report and reproduce.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 24.1 (2024-03-08)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated supported Python and Django versions, and resolved upcoming Django\ndeprecations.\u003c/p\u003e\n\u003cp\u003eRequired versions are now at least Python 3.8 and Django 4.2.\u003c/p\u003e\n\u003cp\u003eThanks to Michael Manganiello.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllowed passing a FilterSet class to the filterset_factory().\u003c/p\u003e\n\u003cp\u003eThanks to Birger Schacht.\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/carltongibson/django-filter/commit/27dd67284405ee832701509b3515baa50c6e074d\"\u003e\u003ccode\u003e27dd672\u003c/code\u003e\u003c/a\u003e Updated Change notes for 25.1 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/2ea38174b010f378a9b57d90c566c2bab7b37bbb\"\u003e\u003ccode\u003e2ea3817\u003c/code\u003e\u003c/a\u003e Added Trove classifier for Django 5.2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/4d2306c211c1d86f85f04fb311b8b05bfefb08a8\"\u003e\u003ccode\u003e4d2306c\u003c/code\u003e\u003c/a\u003e Replaced hardcoded pks in tests (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1703\"\u003e#1703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/fbf5a76a4d97480d78779397b90d34fa8f13d141\"\u003e\u003ccode\u003efbf5a76\u003c/code\u003e\u003c/a\u003e Update tox after Django 5.2 alpha release. (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1700\"\u003e#1700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/1e76d6859e109ae34d5e2a657c66146a9d744c80\"\u003e\u003ccode\u003e1e76d68\u003c/code\u003e\u003c/a\u003e Use QueryDict for data default. (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1691\"\u003e#1691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/e709e5d43a4ad8b8e8ea62520669b88300c9c686\"\u003e\u003ccode\u003ee709e5d\u003c/code\u003e\u003c/a\u003e Add testing against Python 3.13.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/ccde000dfe74362b62301b248681e9505133e821\"\u003e\u003ccode\u003eccde000\u003c/code\u003e\u003c/a\u003e Dropped support for EOL Python 3.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/2a644e176634ec0ce99d9446d980501e9763e194\"\u003e\u003ccode\u003e2a644e1\u003c/code\u003e\u003c/a\u003e Removed deprecated schema generation methods from DRF backend. (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1698\"\u003e#1698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/2494df96c6387a9fa411fcb00b696b15dfd9216b\"\u003e\u003ccode\u003e2494df9\u003c/code\u003e\u003c/a\u003e fix typo in filterset.txt (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1695\"\u003e#1695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/3656174bd90d20f3d916fd98b6476c270013b681\"\u003e\u003ccode\u003e3656174\u003c/code\u003e\u003c/a\u003e Translated using Weblate (Czech) (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1687\"\u003e#1687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/carltongibson/django-filter/compare/23.3...25.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gunicorn` from 21.2.0 to 23.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/benoitc/gunicorn/releases\"\u003egunicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e23.0.0\u003c/h2\u003e\n\u003cp\u003eGunicorn 23.0.0 has been released. This version improve HTTP 1.1. support and  which improve safety\u003c/p\u003e\n\u003cp\u003eYou're invited to upgrade asap your own installation.\u003c/p\u003e\n\u003ch1\u003e23.0.0 - 2024-08-10\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eminor docs fixes (:pr:\u003ccode\u003e3217\u003c/code\u003e, :pr:\u003ccode\u003e3089\u003c/code\u003e, :pr:\u003ccode\u003e3167\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eworker_class parameter accepts a class (:pr:\u003ccode\u003e3079\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003efix deadlock if request terminated during chunked parsing (:pr:\u003ccode\u003e2688\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003epermit receiving Transfer-Encodings: compress, deflate, gzip (:pr:\u003ccode\u003e3261\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003epermit Transfer-Encoding headers specifying multiple encodings. note: no parameters, still (:pr:\u003ccode\u003e3261\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003esdist generation now explicitly excludes sphinx build folder (:pr:\u003ccode\u003e3257\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003edecode bytes-typed status (as can be passed by gevent) as utf-8 instead of raising \u003ccode\u003eTypeError\u003c/code\u003e (:pr:\u003ccode\u003e2336\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eraise correct Exception when encounting invalid chunked requests (:pr:\u003ccode\u003e3258\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ethe SCRIPT_NAME and PATH_INFO headers, when received from allowed forwarders, are no longer restricted for containing an underscore (:pr:\u003ccode\u003e3192\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003einclude IPv6 loopback address \u003ccode\u003e[::1]\u003c/code\u003e in default for :ref:\u003ccode\u003eforwarded-allow-ips\u003c/code\u003e and :ref:\u003ccode\u003eproxy-allow-ips\u003c/code\u003e (:pr:\u003ccode\u003e3192\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e** NOTE **\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SCRIPT_NAME change mitigates a regression that appeared first in the 22.0.0 release\u003c/li\u003e\n\u003cli\u003eReview your :ref:\u003ccode\u003eforwarded-allow-ips\u003c/code\u003e setting if you are still not seeing the SCRIPT_NAME transmitted\u003c/li\u003e\n\u003cli\u003eReview your :ref:\u003ccode\u003eforwarder-headers\u003c/code\u003e setting if you are missing headers after upgrading from a version prior to 22.0.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e** Breaking changes **\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003erefuse requests where the uri field is empty (:pr:\u003ccode\u003e3255\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003erefuse requests with invalid CR/LR/NUL in heade field values (:pr:\u003ccode\u003e3253\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eremove temporary \u003ccode\u003e--tolerate-dangerous-framing\u003c/code\u003e switch from 22.0 (:pr:\u003ccode\u003e3260\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eIf any of the breaking changes affect you, be aware that now refused requests can post a security problem, especially so in setups involving request pipe-lining and/or proxies.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFix CVE-2024-1135\u003c/p\u003e\n\u003ch2\u003eGunicorn 22.0 has been released\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eGunicorn 22.0.0 has been released.\u003c/strong\u003e This version fix the numerous security vulnerabilities. You're invited to upgrade asap your own installation.\u003c/p\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e22.0.0 - 2024-04-17\n===================\n\u003cul\u003e\n\u003cli\u003euse \u003ccode\u003eutime\u003c/code\u003e to notify workers liveness\u003c/li\u003e\n\u003cli\u003emigrate setup to pyproject.toml\u003c/li\u003e\n\u003cli\u003efix numerous security vulnerabilities in HTTP parser (closing some request smuggling vectors)\u003c/li\u003e\n\u003cli\u003eparsing additional requests is no longer attempted past unsupported request framing\u003c/li\u003e\n\u003cli\u003eon HTTP versions \u0026lt; 1.1 support for chunked transfer is refused (only used in exploits)\u003c/li\u003e\n\u003cli\u003erequests conflicting configured or passed SCRIPT_NAME now produce a verbose error\u003c/li\u003e\n\u003cli\u003eTrailer fields are no longer inspected for headers indicating secure scheme\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/411986d6191114dd1d1bbb9c72c948dbf0ef0425\"\u003e\u003ccode\u003e411986d\u003c/code\u003e\u003c/a\u003e fix doc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/334392e7795f2017e83f7054d372422512d6f4b6\"\u003e\u003ccode\u003e334392e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/2559\"\u003e#2559\u003c/a\u003e from laggardkernel/bugfix/reexec-env\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/e75c3533e32f91a9dceba9e8e1341fea5540ba81\"\u003e\u003ccode\u003ee75c353\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3189\"\u003e#3189\u003c/a\u003e from pajod/patch-py36\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/9357b28dd867950e33ca3864207cb35a1eb8ba6f\"\u003e\u003ccode\u003e9357b28\u003c/code\u003e\u003c/a\u003e keep document user in access_log_format setting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/79fdef0822cbfe7e16b659b07230af9be098d5fc\"\u003e\u003ccode\u003e79fdef0\u003c/code\u003e\u003c/a\u003e bump to 23.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/3acd9fbfd1159ca3cd80a8052ada89a0bf27f806\"\u003e\u003ccode\u003e3acd9fb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/2620\"\u003e#2620\u003c/a\u003e from talkerbox/improve-access-log-format-docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/3f56d76548e4ade034bf5e174737902970285d1f\"\u003e\u003ccode\u003e3f56d76\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3192\"\u003e#3192\u003c/a\u003e from pajod/patch-allowed-script-name\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/256d474a7910bd605f2cc8c082b79c1ae55215a9\"\u003e\u003ccode\u003e256d474\u003c/code\u003e\u003c/a\u003e docs: revert duped directive\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/ffa48b581dcaa75f17fd2df263515e4266feeef6\"\u003e\u003ccode\u003effa48b5\u003c/code\u003e\u003c/a\u003e test: default change was intentional\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/52538ca9070b5e7ead5d0fa731e82a622dc6f3ee\"\u003e\u003ccode\u003e52538ca\u003c/code\u003e\u003c/a\u003e docs: recommend SCRIPT_NAME=/subfolder\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/benoitc/gunicorn/compare/21.2.0...23.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `redis` from 4.6.0 to 6.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/redis-py/releases\"\u003eredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.4.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🚀 New Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded epsilon property to the vsim command (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3723\"\u003e#3723\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdating the latest Redis image for github pipeline testing (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3726\"\u003e#3726\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\n\u003ca href=\"https://github.com/htemelski-redis\"\u003e\u003ccode\u003e@​htemelski-redis\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/elena-kolevska\"\u003e\u003ccode\u003e@​elena-kolevska\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/petyaslavova\"\u003e\u003ccode\u003e@​petyaslavova\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/vladvildanov\"\u003e\u003ccode\u003e@​vladvildanov\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e6.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🚀 New Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for new BITOP operations: DIFF, DIFF1, ANDOR, ONE (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3690\"\u003e#3690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport new VAMANA vector index type (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3702\"\u003e#3702\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd new stream commands (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3711\"\u003e#3711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd async Retry \u003cstrong\u003eeq\u003c/strong\u003e and \u003cstrong\u003ehash\u003c/strong\u003e \u0026amp; fix ExponentialWithJitterBackoff \u003cstrong\u003eeq\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3668\"\u003e#3668\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixing sentinel command execution to allow returning of actual responses when meaningful - behaviour controlled by 'return_responses' argument. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3191\"\u003e#3191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAnnotate deprecated_args decorator to preserve wrapped function type signature (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3701\"\u003e#3701\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix ConnectionPool to raise MaxConnectionsError instead of Connection… (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3698\"\u003e#3698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd async Retry \u003cstrong\u003eeq\u003c/strong\u003e and \u003cstrong\u003ehash\u003c/strong\u003e \u0026amp; fix ExponentialWithJitterBackoff \u003cstrong\u003eeq\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3668\"\u003e#3668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSentinelManagedConnection searches for new master upon connection failure (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3560\"\u003e#3560\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3601\"\u003e#3601\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: avoid instantiating a connection on \u003cem\u003erepr\u003c/em\u003e_ (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3653\"\u003e#3653\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixing the return type hint for the transaction method in the standalone client. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3660\"\u003e#3660\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump rojopolis/spellcheck-github-actions from 0.48.0 to 0.49.0 (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3665\"\u003e#3665\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDropping integration tests with Redis 6.2 from pipeline actions. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3659\"\u003e#3659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove deprecated arg from call to ClusterPipeline (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3670\"\u003e#3670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTransactionStrategy reset: UNWATCH only when status is watching (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3671\"\u003e#3671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eKeyT for set operations (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3190\"\u003e#3190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoving references to old docs site '\u003ca href=\"https://redis-py.readthedocs.io/\"\u003ehttps://redis-py.readthedocs.io/\u003c/a\u003e' replaced by '\u003ca href=\"https://redis.readthedocs.io/\"\u003ehttps://redis.readthedocs.io/\u003c/a\u003e' (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3674\"\u003e#3674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoving unnecessary check for tests using AsyncMock (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3432\"\u003e#3432\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdating test images for github pipeline execution (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3678\"\u003e#3678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdating the latest Redis image for pipeline testing (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3695\"\u003e#3695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump rojopolis/spellcheck-github-actions from 0.49.0 to 0.51.0 (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3689\"\u003e#3689\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDOC-5225 testable probabilistic dt examples (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3691\"\u003e#3691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate README.md (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3699\"\u003e#3699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eConvert the value to int type only if it exists in CLIENT INFO (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3688\"\u003e#3688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix compatibility with latest pytest-asyncio version(1.1.0) (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3708\"\u003e#3708\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDOC-5424 time series examples (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3705\"\u003e#3705\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdding information in connection pool class doc string for available SSLConnection class, that can be used for SSL connections (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3710\"\u003e#3710\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/redis/redis-py/commit/fff669daaf43ae8092ea8ab7a2a3196a9b1b7e41\"\u003e\u003ccode\u003efff669d\u003c/code\u003e\u003c/a\u003e Updated package version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/43ce2a4025c020bd26e401371c16ca4920b470a5\"\u003e\u003ccode\u003e43ce2a4\u003c/code\u003e\u003c/a\u003e Updating the latest Redis image for github pipeline testing (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3726\"\u003e#3726\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/64426cbdd43153b70b0e29d9d7b3ab2c63760359\"\u003e\u003ccode\u003e64426cb\u003c/code\u003e\u003c/a\u003e Added epsilon property to the vsim command (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3723\"\u003e#3723\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/67ab74d705b4c1d00d600c500596af7a68abfd56\"\u003e\u003ccode\u003e67ab74d\u003c/code\u003e\u003c/a\u003e Add new stream commands (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3711\"\u003e#3711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/4c9512b1fe592dc9becebe9e5f053b0184b47f2c\"\u003e\u003ccode\u003e4c9512b\u003c/code\u003e\u003c/a\u003e Adding information in connection pool class doc string for available SSLConne...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/31399ed43588840bbbfdbbf0e8260d1b989b49ce\"\u003e\u003ccode\u003e31399ed\u003c/code\u003e\u003c/a\u003e SentinelManagedConnection searches for new master upon connection failure (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3\"\u003e#3\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/7291deb5eb8054a0dc915a8bf499a17498bc5968\"\u003e\u003ccode\u003e7291deb\u003c/code\u003e\u003c/a\u003e add async Retry \u003ccode\u003e__eq__\u003c/code\u003e and \u003ccode\u003e__hash__\u003c/code\u003e \u0026amp; fix ExponentialWithJitterBackof...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/4cf094fdd2c1f2ce335e671af3fad7ad0a48f309\"\u003e\u003ccode\u003e4cf094f\u003c/code\u003e\u003c/a\u003e Fix ConnectionPool to raise MaxConnectionsError instead of Connection… (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3698\"\u003e#3698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/a00141618572764821bbe6bd74e025536e061587\"\u003e\u003ccode\u003ea001416\u003c/code\u003e\u003c/a\u003e DOC-5424 time series examples (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3705\"\u003e#3705\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/2b1ff5363715c8ba0043314a8b4bcbbc1ba741f5\"\u003e\u003ccode\u003e2b1ff53\u003c/code\u003e\u003c/a\u003e Fix compatibility with latest pytest-asyncio version(1.1.0) (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3708\"\u003e#3708\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/redis/redis-py/compare/v4.6.0...v6.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `watchdog` from 3.0.0 to 6.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/gorakhargosh/watchdog/releases\"\u003ewatchdog's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[inotify] Use of \u003ccode\u003eselect.poll()\u003c/code\u003e instead of deprecated \u003ccode\u003eselect.select()\u003c/code\u003e, if available. (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1078\"\u003e#1078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_class()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_instancemethod()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_module()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eis_class_private_name()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eis_classmethod()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eis_method(met()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003emethod_name()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003ename()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Removed the \u003ccode\u003e--trace\u003c/code\u003e CLI argument from the \u003ccode\u003ewatchmedo log\u003c/code\u003e command, useless since events are logged by default at the \u003ccode\u003eLoggerTrick\u003c/code\u003e class level.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePin test dependecies.\u003c/li\u003e\n\u003cli\u003e[docs] Add typing info to quick start. (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1082\"\u003e#1082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[inotify] Fix reading inotify file descriptor after closing it. (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1081\"\u003e#1081\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[utils] The \u003ccode\u003estop_signal\u003c/code\u003e keyword-argument type of the \u003ccode\u003eAutoRestartTrick\u003c/code\u003e class can now be either a \u003ccode\u003esignal.Signals\u003c/code\u003e or an \u003ccode\u003eint\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e[utils] Added the \u003ccode\u003e__repr__()\u003c/code\u003e method to the \u003ccode\u003eTrick\u003c/code\u003e class.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Fixed Mypy issues.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Added the \u003ccode\u003e__repr__()\u003c/code\u003e method to the \u003ccode\u003eHelpFormatter\u003c/code\u003e class.\u003c/li\u003e\n\u003cli\u003e[windows] Fixed Mypy issues.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e💟 Thanks to our beloved contributors: \u003ca href=\"https://github.com/g-pichler\"\u003e\u003ccode\u003e@​g-pichler\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ethan-vanderheijden\"\u003e\u003ccode\u003e@​ethan-vanderheijden\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/nhairs\"\u003e\u003ccode\u003e@​nhairs\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[inotify] Improve cleaning up \u003ccode\u003eInotify\u003c/code\u003e threads, and add \u003ccode\u003eeventlet\u003c/code\u003e test cases (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1070\"\u003e#1070\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e💟 Thanks to our beloved contributors: \u003ca href=\"https://github.com/ethan-vanderheijden\"\u003e\u003ccode\u003e@​ethan-vanderheijden\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEnable OS specific Mypy checks (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1064\"\u003e#1064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[watchmedo] Fix \u003ccode\u003etricks\u003c/code\u003e argument type of \u003ccode\u003eschedule_tricks()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1063\"\u003e#1063\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e💟 Thanks to our beloved contributors: \u003ca href=\"https://github.com/gnought\"\u003e\u003ccode\u003e@​gnought\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[kqueue] Fix \u003ccode\u003eTypeError: kqueue.control() only accepts positional parameters\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1062\"\u003e#1062\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e💟 Thanks to our beloved contributors: \u003ca href=\"https://github.com/apoirier\"\u003e\u003ccode\u003e@​apoirier\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8 (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[core] Enforced usage of proper keyword-arguments (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1057\"\u003e#1057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[core] Renamed the \u003ccode\u003eBaseObserverSubclassCallable\u003c/code\u003e class to \u003ccode\u003eObserverType\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[inotify] Renamed the \u003ccode\u003einotify_event_struct\u003c/code\u003e class to \u003ccode\u003eInotifyEventStruct\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1055\"\u003e#1055\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/gorakhargosh/watchdog/blob/master/changelog.rst\"\u003ewatchdog's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e6.0.0\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n2024-11-01 • `full history \u0026lt;https://github.com/gorakhargosh/watchdog/compare/v5.0.3...v6.0.0\u0026gt;`__\n\u003cul\u003e\n\u003cli\u003ePin test dependencies.\u003c/li\u003e\n\u003cli\u003e[docs] Add typing info to quick start. (\u003ccode\u003e[#1082](https://github.com/gorakhargosh/watchdog/issues/1082) \u0026amp;lt;https://github.com/gorakhargosh/watchdog/pull/1082\u0026amp;gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003e[inotify] Use of \u003ccode\u003eselect.poll()\u003c/code\u003e instead of deprecated \u003ccode\u003eselect.select()\u003c/code\u003e, if available. (\u003ccode\u003e[#1078](https://github.com/gorakhargosh/watchdog/issues/1078) \u0026amp;lt;https://github.com/gorakhargosh/watchdog/pull/1078\u0026amp;gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003e[inotify] Fix reading inotify file descriptor after closing it. (\u003ccode\u003e[#1081](https://github.com/gorakhargosh/watchdog/issues/1081) \u0026amp;lt;https://github.com/gorakhargosh/watchdog/pull/1081\u0026amp;gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003e[utils] The \u003ccode\u003estop_signal\u003c/code\u003e keyword-argument type of the \u003ccode\u003eAutoRestartTrick\u003c/code\u003e class can now be either a \u003ccode\u003esignal.Signals\u003c/code\u003e or an \u003ccode\u003eint\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e[utils] Added the \u003ccode\u003e__repr__()\u003c/code\u003e method to the \u003ccode\u003eTrick\u003c/code\u003e class.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_class()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_instancemethod()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_module()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eis_class_private_name()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eis_classmethod()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eic_method(met()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003emethod_name()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003ename()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Fixed Mypy issues.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Added the \u003ccode\u003e__repr__()\u003c/code\u003e method to the \u003ccode\u003eHelpFormatter\u003c/code\u003e class.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Removed the \u003ccode\u003e--trace\u003c/code\u003e CLI argument from the \u003ccode\u003ewatchmedo log\u003c/code\u003e command, useless since events are logged by default at the \u003ccode\u003eLoggerTrick\u003c/code\u003e class level.\u003c/li\u003e\n\u003cli\u003e[windows] Fixed Mypy issues.\u003c/li\u003e\n\u003cli\u003eThanks to our beloved contributors: \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/g-pichler\"\u003e\u003ccode\u003e@​g-pichler\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ethan-vanderheijden\"\u003e\u003ccode\u003e@​ethan-vanderheijden\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/nhairs\"\u003e\u003ccode\u003e@​nhairs\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e5.0.3\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e2024-09-27 • \u003ccode\u003efull history \u0026lt;https://github.com/gorakhargosh/watchdog/compare/v5.0.2...v5.0.3\u0026gt;\u003c/code\u003e__\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[inotify] Improve cleaning up \u003ccode\u003eInotify\u003c/code\u003e threads, and add \u003ccode\u003eeventlet\u003c/code\u003e test cases (\u003ccode\u003e[#1070](https://github.com/gorakhargosh/watchdog/issues/1070) \u0026lt;https://github.com/gorakhargosh/watchdog/pull/1070\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eThanks to our beloved contributors: \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ethan-vanderheijden\"\u003e\u003ccode\u003e@​ethan-vanderheijden\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e5.0.2\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n2024-09-03 • `full history \u0026lt;https://github.com/gorakhargosh/watchdog/compare/v5.0.1...v5.0.2\u0026gt;`__\n\u003cul\u003e\n\u003cli\u003eEnable OS specific Mypy checks (\u003ccode\u003e[#1064](https://github.com/gorakhargosh/watchdog/issues/1064) \u0026amp;lt;https://github.com/gorakhargosh/watchdog/pull/1064\u0026amp;gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003e[watchmedo] Fix \u003ccode\u003etricks\u003c/code\u003e argument type of \u003ccode\u003eschedule_tricks()\u003c/code\u003e (\u003ccode\u003e[#1063](https://github.com/gorakhargosh/watchdog/issues/1063) \u0026amp;lt;https://github.com/gorakhargosh/watchdog/pull/1063\u0026amp;gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eThanks to our beloved contributors: \u003ca href=\"https://github.com/gnought\"\u003e\u003ccode\u003e@​gnought\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e5.0.1\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e2024-09-02 • \u003ccode\u003efull history \u0026lt;https://github.com/gorakhargosh/watchdog/compare/v5.0.0...v5.0.1\u0026gt;\u003c/code\u003e__\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[kqueue] Fix \u003ccode\u003eTypeError: kqueue.control() only accepts positional parameters\u003c/code\u003e  (\u003ccode\u003e[#1062](https://github.com/gorakhargosh/watchdog/issues/1062) \u0026lt;https://github.com/gorakhargosh/watchdog/pull/1062\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eThanks to our beloved contributors: \u003ca href=\"https://github.com/apoirier\"\u003e\u003ccode\u003e@​apoirier\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\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/gorakhargosh/watchdog/commit/76c091dc8841de1d1a1cd6511bb509fe4f058de6\"\u003e\u003ccode\u003e76c091d\u003c/code\u003e\u003c/a\u003e Version 6.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/58386d88747259b8b3da5082e30f1c6e0aa3b31a\"\u003e\u003ccode\u003e58386d8\u003c/code\u003e\u003c/a\u003e Fixes, and clean-up (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1084\"\u003e#1084\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/db698a52bbb1eb8cc34e889a8afdac6f17a99e57\"\u003e\u003ccode\u003edb698a5\u003c/code\u003e\u003c/a\u003e fix: reading inotify file descriptor after closing it. (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1081\"\u003e#1081\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/73d561265b109f30cf76a280cdcc74aa9e6df391\"\u003e\u003ccode\u003e73d5612\u003c/code\u003e\u003c/a\u003e [docs] Add typing info to quick start (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1082\"\u003e#1082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/d774fec477a8f57d24b588164ebdd39b2d507bcd\"\u003e\u003ccode\u003ed774fec\u003c/code\u003e\u003c/a\u003e docs: Update README Badges (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1083\"\u003e#1083\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/6b74737501c85df9b9c2585faef4797a5250171b\"\u003e\u003ccode\u003e6b74737\u003c/code\u003e\u003c/a\u003e docs: funding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/3d1b888bccdd27a28f9f12a4e89288afe1ee493a\"\u003e\u003ccode\u003e3d1b888\u003c/code\u003e\u003c/a\u003e [inotify] Use of \u003ccode\u003eselect.poll()\u003c/code\u003e instead of deprecated \u003ccode\u003eselect.select()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1078\"\u003e#1078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/6a4f1cf846e03c8701fcc53b9e910077b5824e59\"\u003e\u003ccode\u003e6a4f1cf\u003c/code\u003e\u003c/a\u003e Bump the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/ad6df50908fca071ac8ad6558453bb28b522f794\"\u003e\u003ccode\u003ead6df50\u003c/code\u003e\u003c/a\u003e Version 5.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/59650f8fe72ac498374434a10a3dd49f3c3d1429\"\u003e\u003ccode\u003e59650f8\u003c/code\u003e\u003c/a\u003e fix: polish \u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1070\"\u003e#1070\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/gorakhargosh/watchdog/compare/v3.0.0...v6.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ocrmypdf` from 14.4.0 to 15.4.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/blob/main/docs/release_notes.md\"\u003eocrmypdf's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev15.4.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed documentation for installing Ghostscript on Windows. {issue}\u003ccode\u003e1198\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdded warning message about security issue in older versions of Ghostscript.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed deprecation warning in pikepdf older than 8.7.1; pikepdf \u0026gt;= 8.7.1 is\nnow required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWe now raise an exception on a certain class of PDFs that likely need an\nexplicit color conversion strategy selected to display correctly\nfor PDF/A conversion.\u003c/li\u003e\n\u003cli\u003eFixed an error that occurred while trying to write a log message after the\ndebug log handler was removed.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed misc/watcher.py regressions: accept \u003ccode\u003e--ocr-json-settings\u003c/code\u003e as either\nfilename or JSON string, as previously; and argument count mismatch.\n{issue}\u003ccode\u003e1183,1185\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eWe no longer attempt to set /ProcSet in the PDF output, since this is an\nobsolete PDF feature.\u003c/li\u003e\n\u003cli\u003eDocumentation improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded new experimental APIs to support offline editing of the final text.\nSpecifically, one can now generate hOCR files with OCRmyPDF, edit them with\nsome other tool, and then finalize the PDF. They are experimental and\nsubject to change, including details of how the working folder is used.\nThere is no command line interface.\u003c/li\u003e\n\u003cli\u003eCode reorganization: executors, progress bars, initialization and setup.\u003c/li\u003e\n\u003cli\u003eFixed test coverage in cases where the coverage tool did not properly trace\ninto threads or subprocesses. This code was still being tested but appeared\nas not covered.\u003c/li\u003e\n\u003cli\u003eIn the test suite, reduced use of subprocesses and other techniques that\ninterfere with coverage measurement.\u003c/li\u003e\n\u003cli\u003eImproved error check for when we appear to be running inside a snap container\nand files are not available.\u003c/li\u003e\n\u003cli\u003ePlugin specification now properly defines progress bars as a protocol rather\nthan defining them as \u0026quot;tqdm-like\u0026quot;.\u003c/li\u003e\n\u003cli\u003eWe now default to using \u0026quot;forkserver\u0026quot; process creation on POSIX platforms\nrather than fork, since this is method is more robust and avoids some\nissues when threads are present.\u003c/li\u003e\n\u003cli\u003eFixed an instance where the user's request to \u003ccode\u003e--no-use-threads\u003c/code\u003e was ignored.\u003c/li\u003e\n\u003cli\u003eIf a PDF does not have language metadata on its top level object, we add\nthe OCR language.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/c90d5cd84b0e27906310c28f0d78c3ded9106d65\"\u003e\u003ccode\u003ec90d5cd\u003c/code\u003e\u003c/a\u003e Fix Ghostscript installation instructions and add warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/9898904be70bf957154cc66cb5d6f57bac7c26b4\"\u003e\u003ccode\u003e9898904\u003c/code\u003e\u003c/a\u003e Fix pikepdf PdfMatrix deprecation warning; v15.4.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/27d52298420e785300e418bef4e4219ef97720e1\"\u003e\u003ccode\u003e27d5229\u003c/code\u003e\u003c/a\u003e Make logger names unique\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/4a9a575ef0f2cd7459538a43e802c8d8b3846168\"\u003e\u003ccode\u003e4a9a575\u003c/code\u003e\u003c/a\u003e ghostscript: better comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/52fd9a630d57ac7af91db423b17e6b0297fc1c66\"\u003e\u003ccode\u003e52fd9a6\u003c/code\u003e\u003c/a\u003e v15.4.2 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/a596ccf84469c81c6d19ab0eb59f53a5df0bc3c7\"\u003e\u003ccode\u003ea596ccf\u003c/code\u003e\u003c/a\u003e Raise exception if resulting PDF might appear blank in a known in some PDF vi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/e7fa97731f507c1d91e4289b9d5f3344533d7c4c\"\u003e\u003ccode\u003ee7fa977\u003c/code\u003e\u003c/a\u003e ghostscript duplicate filter: filter within a window of previous messages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/290aa2810868fb506a0ded2db8dabb580d5a2459\"\u003e\u003ccode\u003e290aa28\u003c/code\u003e\u003c/a\u003e Fix error on attempt to write to debug log after removing debug log handler\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/a95640ed9ec0a5caa360bd64b9ad6cc9f916fa61\"\u003e\u003ccode\u003ea95640e\u003c/code\u003e\u003c/a\u003e v15.4.1 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/f69267bb675c3261121b70451f6e673f433bc7ad\"\u003e\u003ccode\u003ef69267b\u003c/code\u003e\u003c/a\u003e watcher: restore ability to read json from file or command line string\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/compare/v14.4.0...v15.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-multiselectfield` from 0.1.12 to 1.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/goinnn/django-multiselectfield/releases\"\u003edjango-multiselectfield's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBadge image worked on GitHub but was broken on PyPI — fixed it.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.0\u003c/h2\u003e\n\u003cp\u003eThis release introduces multiple changes that are incompatible with previous versions.\u003c/p\u003e\n\u003cp\u003eThe major version number has been incremented following \u003ccode\u003eSemantic Versioning (SemVer) \u0026lt;https://semver.org/\u0026gt;\u003c/code\u003e_, as several components of the package have changed in ways that may require updates in client code.\u003c/p\u003e\n\u003cp\u003eThe internal codebase has been significantly cleaned up and reorganized, making it more maintainable and consistent.\u003c/p\u003e\n\u003cp\u003eThis version contains \u003cstrong\u003e40% fewer lines of code\u003c/strong\u003e compared to the previous release.\u003c/p\u003e\n\u003cp\u003eLess code means fewer bugs, easier maintenance, and better long-term sustainability.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFList (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\"\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2\u003c/a\u003e):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/50d3f785883e0a314f2dc89950e3fe1e88a7ede6\"\u003e50d3f785883e0a314f2dc89950e3fe1e88a7ede6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIt was created to support MultiSelectFields in admin.list_display, but it never actually worked. If you add a multiselect field to list_display, Django does not call to \u003cstrong\u003estr\u003c/strong\u003e method of MSGList (renamed to MSFList)\u003c/li\u003e\n\u003cli\u003eIt was created for integer choices too and it is a misconception. This is explained in the README file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFFlatchoices (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\"\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2\u003c/a\u003e):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/5638247c1d70670d4f81adf35143ef17a7d7575e\"\u003e5638247c1d70670d4f81adf35143ef17a7d7575e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIn list_display, labels for the choices are now shown (comma-separated) instead of the values of the choices (comma-separated).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn to_python method, value is a list or a string. (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/c4579138dda2833cbce26afbf57da5353aa45690\"\u003ec4579138dda2833cbce26afbf57da5353aa45690\u003c/a\u003e)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove set case and dict case\u003c/li\u003e\n\u003cli\u003eIf this breaks something, please create a test to help understand the use case.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoving integer choices:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIt was a mistake. MultiSelectField inherits of CharField, not IntegerField.\u003c/li\u003e\n\u003cli\u003eIt is impossible knows if original choice is (1, 'Item title 2.1') or ('1', 'Item title 2.1')\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: Form instance generated twice since Django  (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/168\"\u003e#168\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix CSS admin:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/173\"\u003e#173\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/7711f4aa755c81d00f07ce8a6ff0fd9240061f9c\"\u003e7711f4aa755c81d00f07ce8a6ff0fd9240061f9c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix Properly Display Categorized Choices in get_FOO_display (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/169\"\u003e#169\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSortMultiSelectField: (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/172\"\u003e#172\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/goinnn/django-multiselectfield/blob/master/CHANGES.rst\"\u003edjango-multiselectfield's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.0.1 (2025-06-12)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBadge image worked on GitHub but was broken on PyPI — fixed it.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.0.0 (2025-06-12)\u003c/h2\u003e\n\u003cp\u003eThis release introduces multiple changes that are incompatible with previous versions.\u003c/p\u003e\n\u003cp\u003eThe major version number has been incremented following \u003ccode\u003eSemantic Versioning (SemVer) \u0026lt;https://semver.org/\u0026gt;\u003c/code\u003e_, as several components of the package have changed in ways that may require updates in client code.\u003c/p\u003e\n\u003cp\u003eThe internal codebase has been significantly cleaned up and reorganized, making it more maintainable and consistent.\u003c/p\u003e\n\u003cp\u003eThis version contains \u003cstrong\u003e40% fewer lines of code\u003c/strong\u003e compared to the previous release.\u003c/p\u003e\n\u003cp\u003eLess code means fewer bugs, easier maintenance, and better long-term sustainability.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFList (\u003ccode\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\u0026gt;\u003c/code\u003e_):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ccode\u003e50d3f785883e0a314f2dc89950e3fe1e88a7ede6 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/50d3f785883e0a314f2dc89950e3fe1e88a7ede6\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eIt was created to support MultiSelectFields in admin.list_display, but it never actually worked. If you add a multiselect field to list_display, Django does not call to \u003cstrong\u003estr\u003c/strong\u003e method of MSGList (renamed to MSFList)\u003c/li\u003e\n\u003cli\u003eIt was created for integer choices too and it is a misconception. This is explained in the README file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFFlatchoices (\u003ccode\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\u0026gt;\u003c/code\u003e_):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ccode\u003e5638247c1d70670d4f81adf35143ef17a7d7575e \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/5638247c1d70670d4f81adf35143ef17a7d7575e\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eIn list_display, labels for the choices are now shown (comma-separated) instead of the values of the choices (comma-separated).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn to_python method, value is a list or a string. (\u003ccode\u003ec4579138dda2833cbce26afbf57da5353aa45690 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/c4579138dda2833cbce26afbf57da5353aa45690\u0026gt;\u003c/code\u003e_)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove set case and dict case\u003c/li\u003e\n\u003cli\u003eIf this breaks something, please create a test to help understand the use case.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoving integer choices:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIt was a mistake. MultiSelectField inherits of CharField, not IntegerField.\u003c/li\u003e\n\u003cli\u003eIt is impossibl...\n\n_Description has been truncated_","html_url":"https://github.com/dsp-testing/paperless-ngx/pull/195","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/dsp-testing%2Fpaperless-ngx/issues/195","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/195/packages"}},{"old_version":"9.0.1","new_version":"9.0.2","update_type":"patch","path":null,"pr_created_at":"2026-01-29T09:33:47.000Z","version_change":"9.0.1 → 9.0.2","issue":{"uuid":"3869701884","node_id":"PR_kwDOHzc07s7AFGzs","number":1350,"state":"open","title":"Bump the patch group across 1 directory with 5 updates","user":"dependabot[bot]","labels":["part:tooling","type:tech-debt"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-01-29T09:33:47.000Z","updated_at":"2026-02-02T13:25:24.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"patch","update_count":5,"packages":[{"name":"markdown","old_version":"3.10","new_version":"3.10.1","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"mkdocs-material","old_version":"9.7.0","new_version":"9.7.1","repository_url":"https://github.com/squidfunk/mkdocs-material"},{"name":"mkdocstrings","old_version":"1.0.0","new_version":"1.0.2"},{"name":"mypy","old_version":"1.19.0","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"pytest","old_version":"9.0.1","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"}],"path":null,"ecosystem":"conda"},"body":"[//]: # (dependabot-start)\n⚠️  **Dependabot is rebasing this PR** ⚠️ \n\nRebasing might not happen immediately, so don't worry if this takes some time.\n\nNote: if you make any changes to this PR yourself, they will take precedence over the rebase.\n\n---\n\n[//]: # (dependabot-end)\n\nBumps the patch group with 5 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.10` | `3.10.1` |\n| [mkdocs-material](https://github.com/squidfunk/mkdocs-material) | `9.7.0` | `9.7.1` |\n| [mkdocstrings[python]](https://github.com/mkdocstrings/mkdocstrings) | `1.0.0` | `1.0.2` |\n| [mypy](https://github.com/python/mypy) | `1.19.0` | `1.19.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.1` | `9.0.2` |\n\n\nUpdates `markdown` from 3.10 to 3.10.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/releases\"\u003emarkdown's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.10.1\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure nested elements inside inline comments are properly unescaped (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1571\"\u003e#1571\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eMake the docs build successfully with mkdocstrings-python 2.0 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1575\"\u003e#1575\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix infinite loop when multiple bogus or unclosed HTML comments appear in input (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1578\"\u003e#1578\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix another infinite loop when handling bad comments (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1586\"\u003e#1586\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/blob/master/docs/changelog.md\"\u003emarkdown's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[3.10.1] - 2026-01-21\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure nested elements inside inline comments are properly unescaped (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1571\"\u003e#1571\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eMake the docs build successfully with mkdocstrings-python 2.0 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1575\"\u003e#1575\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix infinite loop when multiple bogus or unclosed HTML comments appear in input (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1578\"\u003e#1578\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix another infinite loop when handling bad comments (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1586\"\u003e#1586\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.10.0] - 2025-11-03\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficially support Python 3.14 and PyPy 3.11 and drop support for Python 3.9\nand PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix an HTML comment parsing case in some Python versions that can cause an\ninfinite loop (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1554\"\u003e#1554\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRevert the default behavior of \u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e (to \u003ccode\u003eTrue\u003c/code\u003e). The new\nbehavior introduced in 3.9.0 is experimental and results are inconsistent.\nIt should not have been made the default behavior (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1561\"\u003e#1561\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.9.0] - 2025-09-04\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFootnotes are now ordered by the occurrence of their references in the\ndocument. A new configuration option for the footnotes extension,\n\u003ccode\u003eUSE_DEFINITION_ORDER\u003c/code\u003e, has been added to support restoring the previous\nbehavior of ordering footnotes by the occurrence of definitions (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1367\"\u003e#1367\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure inline processing iterates through elements in document order (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1546\"\u003e#1546\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix handling of incomplete HTML tags in code spans in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1547\"\u003e#1547\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.8.2] - 2025-06-19\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003ecodecs\u003c/code\u003e deprecation in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed comment parsing in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed declarations in Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed HTML tag \u003ccode\u003e\u0026lt;foo\u003c/code\u003e and Python 3.14 (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1537\"\u003e#1537\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.8.1] - 2025-06-18\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/e5fa5b86e8ec380cbc520cfc637d72c779e5c601\"\u003e\u003ccode\u003ee5fa5b8\u003c/code\u003e\u003c/a\u003e Bump version to 3.10.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/f9253495f5d9919f2fdd5e147832b5fc21330f65\"\u003e\u003ccode\u003ef925349\u003c/code\u003e\u003c/a\u003e More HTML fixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/9933a0a4699f3dea91f46528a2bf54863f531c08\"\u003e\u003ccode\u003e9933a0a\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Allow reference links with backticks\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/07dfa4eb43f7a2ab3181b4f842a960a03a6c1221\"\u003e\u003ccode\u003e07dfa4e\u003c/code\u003e\u003c/a\u003e Allow reference links with backticks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/fb6b27a6ff90980b5bcb0cd51528a7c9dc3a93ca\"\u003e\u003ccode\u003efb6b27a\u003c/code\u003e\u003c/a\u003e Fix infinite loop when text contains multiple unclosed comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/89112c293f7b399ae8808f3a06306f46601e9684\"\u003e\u003ccode\u003e89112c2\u003c/code\u003e\u003c/a\u003e Make the docs build successfully with mkdocstrings-python 2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/961856ceb30623b929d8b7abdf5ed7074db7184c\"\u003e\u003ccode\u003e961856c\u003c/code\u003e\u003c/a\u003e Update link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/2b49115b1002142afbd84b3002f13c0e98a0f487\"\u003e\u003ccode\u003e2b49115\u003c/code\u003e\u003c/a\u003e Ensure nested elements inside inline comments are properly unescaped.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Python-Markdown/markdown/compare/3.10.0...3.10.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-material` from 9.7.0 to 9.7.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/squidfunk/mkdocs-material/releases\"\u003emkdocs-material's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003emkdocs-material-9.7.1\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!WARNING]\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMaterial for MkDocs is in maintenance mode\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eGoing forward, the Material for MkDocs team focuses on \u003ca href=\"https://zensical.org\"\u003eZensical\u003c/a\u003e, a next-gen static site generator built from first principles. We will provide critical bug fixes and security updates for Material for MkDocs until November 2026.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003eRead the full announcement on our blog\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated requests to 2.30+ to mitigate CVE in urllib\u003c/li\u003e\n\u003cli\u003eFixed privacy plugin not picking up protocol-relative URLs\u003c/li\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8542\"\u003e#8542\u003c/a\u003e: false positives and negatives captured in privacy plugin\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG\"\u003emkdocs-material's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003emkdocs-material-9.7.1 (2025-12-18)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated requests to 2.30+ to mitigate CVE in urllib\u003c/li\u003e\n\u003cli\u003eFixed privacy plugin not picking up protocol-relative URLs\u003c/li\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8542\"\u003e#8542\u003c/a\u003e: false positives and negatives captured in privacy plugin\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.0 (2025-11-11)\u003c/p\u003e\n\u003cp\u003e⚠️ Material for MkDocs is now in maintenance mode\u003c/p\u003e\n\u003cp\u003eThis is the last release of Material for MkDocs that will receive new features.\nGoing forward, the Material for MkDocs team focuses on Zensical, a next-gen\nstatic site generator built from first principles. We will provide critical\nbug fixes and security updates for Material for MkDocs for 12 months at least.\u003c/p\u003e\n\u003cp\u003eRead the full announcement on our blog:\n\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003ehttps://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis release includes all features that were previously exclusive to the\nInsiders edition. These features are now freely available to everyone.\u003c/p\u003e\n\u003cp\u003eNote on deprecated plugins: The projects and typeset plugins are included in\nthis release, but must be considered deprecated. Both plugins proved\nunsustainable to maintain and represent architectural dead ends. They are\nprovided as-is without ongoing support.\u003c/p\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for pinned blog posts and author profiles\u003c/li\u003e\n\u003cli\u003eAdded support for customizing pagination for blog index pages\u003c/li\u003e\n\u003cli\u003eAdded support for customizing blog category sort order\u003c/li\u003e\n\u003cli\u003eAdded support for staying on page when switching languages\u003c/li\u003e\n\u003cli\u003eAdded support for disabling tags in table of contents\u003c/li\u003e\n\u003cli\u003eAdded support for nested tags and shadow tags\u003c/li\u003e\n\u003cli\u003eAdded support for footnote tooltips\u003c/li\u003e\n\u003cli\u003eAdded support for instant previews\u003c/li\u003e\n\u003cli\u003eAdded support for instant prefetching\u003c/li\u003e\n\u003cli\u003eAdded support for custom social card layouts\u003c/li\u003e\n\u003cli\u003eAdded support for custom social card background images\u003c/li\u003e\n\u003cli\u003eAdded support for selectable rangs in code blocks\u003c/li\u003e\n\u003cli\u003eAdded support for custom selectors for code annotations\u003c/li\u003e\n\u003cli\u003eAdded support for configurable log level in privacy plugin\u003c/li\u003e\n\u003cli\u003eAdded support for processing of external links in privacy plugin\u003c/li\u003e\n\u003cli\u003eAdded support for automatic image optimization via optimize plugin\u003c/li\u003e\n\u003cli\u003eAdded support for navigation paths (breadcrumbs)\u003c/li\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8519\"\u003e#8519\u003c/a\u003e: Vector accents do not render when using KaTeX\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.6.23 (2025-11-01)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated Burmese translation\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/7e236f6866b73aa080cd4d209752f6440bf67440\"\u003e\u003ccode\u003e7e236f6\u003c/code\u003e\u003c/a\u003e Temporarily disable publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/394149152dc10fc5383c956cd133a665c22fa907\"\u003e\u003ccode\u003e3941491\u003c/code\u003e\u003c/a\u003e Fixed CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/034eaf7b0b7a0a4d2e66179de0dcaded4c923f76\"\u003e\u003ccode\u003e034eaf7\u003c/code\u003e\u003c/a\u003e Prepare 9.7.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/79ba428abebf9b365d4930fb9b147255edd10b88\"\u003e\u003ccode\u003e79ba428\u003c/code\u003e\u003c/a\u003e Fixed privacy plugin not picking up protocol-relative URLs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/61cad249b6eec5727bcf245ca2dea3ef6c98790f\"\u003e\u003ccode\u003e61cad24\u003c/code\u003e\u003c/a\u003e Updated dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/dde13ceb9bb49be3b84bc8c1e59b313250ea8516\"\u003e\u003ccode\u003edde13ce\u003c/code\u003e\u003c/a\u003e Fixed false positives and negatives captured in privacy plugin  (\u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8542\"\u003e#8542\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/291012dcf5aff75a32a6fe9e9a6be4d769da12ac\"\u003e\u003ccode\u003e291012d\u003c/code\u003e\u003c/a\u003e Updated requests to 2.30+ to mitigate CVE in urllib\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/673d8ca986c37ddeabe25c7e7b7299ec644910ed\"\u003e\u003ccode\u003e673d8ca\u003c/code\u003e\u003c/a\u003e Fixed links\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/17227844dce216bf172c9e5de69809765a0b5ab7\"\u003e\u003ccode\u003e1722784\u003c/code\u003e\u003c/a\u003e Documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/aee925f5a0ae3e343ff310e35c667d24eeaff7df\"\u003e\u003ccode\u003eaee925f\u003c/code\u003e\u003c/a\u003e Fixed links\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/squidfunk/mkdocs-material/compare/9.7.0...9.7.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocstrings[python]` from 1.0.0 to 1.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases\"\u003emkdocstrings[python]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.0.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/1.0.2\"\u003e1.0.2\u003c/a\u003e - 2026-01-24\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/1.0.1...1.0.2\"\u003eCompare with 1.0.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse global instances for handlers and autorefs (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/9f79141d7eb35aba0c89a43795df0ee22a25a61e\"\u003e9f79141\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.0.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/1.0.1\"\u003e1.0.1\u003c/a\u003e - 2026-01-19\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/1.0.0...1.0.1\"\u003eCompare with 1.0.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport manual cross-references in Zensical too (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/d37d9079e5381350b2e3ffc5f698e28a5b572d36\"\u003ed37d907\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eSupport cross-references in Zensical (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f43f1ee2cd38a0dba64fc7d0db3c5ffb037bf7f7\"\u003ef43f1ee\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/812\"\u003ePR-812\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/blob/main/CHANGELOG.md\"\u003emkdocstrings[python]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/1.0.2\"\u003e1.0.2\u003c/a\u003e - 2026-01-24\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/1.0.1...1.0.2\"\u003eCompare with 1.0.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse global instances for handlers and autorefs (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/9f79141d7eb35aba0c89a43795df0ee22a25a61e\"\u003e9f79141\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/1.0.1\"\u003e1.0.1\u003c/a\u003e - 2026-01-19\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/1.0.0...1.0.1\"\u003eCompare with 1.0.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport manual cross-references in Zensical too (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/d37d9079e5381350b2e3ffc5f698e28a5b572d36\"\u003ed37d907\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eSupport cross-references in Zensical (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f43f1ee2cd38a0dba64fc7d0db3c5ffb037bf7f7\"\u003ef43f1ee\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/812\"\u003ePR-812\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/4e66617fbe26636f86117c26b2482c21892166fe\"\u003e\u003ccode\u003e4e66617\u003c/code\u003e\u003c/a\u003e chore: Prepare release 1.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/9f79141d7eb35aba0c89a43795df0ee22a25a61e\"\u003e\u003ccode\u003e9f79141\u003c/code\u003e\u003c/a\u003e refactor: Use global instances for handlers and autorefs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/cb8a3c781674b8e23cf0048955d70358d7bab49e\"\u003e\u003ccode\u003ecb8a3c7\u003c/code\u003e\u003c/a\u003e chore: Prepare release 1.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/d37d9079e5381350b2e3ffc5f698e28a5b572d36\"\u003e\u003ccode\u003ed37d907\u003c/code\u003e\u003c/a\u003e refactor: Support manual cross-references in Zensical too\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/0edd18af00fa5907bb31e8309ecf5ad4309da552\"\u003e\u003ccode\u003e0edd18a\u003c/code\u003e\u003c/a\u003e chore: Clean up after v1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f43f1ee2cd38a0dba64fc7d0db3c5ffb037bf7f7\"\u003e\u003ccode\u003ef43f1ee\u003c/code\u003e\u003c/a\u003e refactor: Support cross-references in Zensical\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/b6a33e23ba411159253ee44d1b1fa63b9a9a7b7a\"\u003e\u003ccode\u003eb6a33e2\u003c/code\u003e\u003c/a\u003e chore: Update sponsors section in README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/afefc0fbccc09f7b6f0c92cf3446434d241f1658\"\u003e\u003ccode\u003eafefc0f\u003c/code\u003e\u003c/a\u003e chore: Fix docs-deploy duty\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/cc54d77f63ecb97c4bcc6fb1b447eddad6e842ce\"\u003e\u003ccode\u003ecc54d77\u003c/code\u003e\u003c/a\u003e chore: Template upgrade\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/1.0.0...1.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.19.0 to 1.19.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.19.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix noncommutative joins with bounded TypeVars (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20345\"\u003e20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect output format for cached runs by serializing raw errors in cache metas (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20372\"\u003e20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (A5rocks, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20383\"\u003e20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mypyc generator regression with empty tuple (BobTheBuidler, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20371\"\u003e20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash involving Unpack-ed TypeVarTuple (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20323\"\u003e20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on star import of redefinition (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20333\"\u003e20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on typevar with forward ref used in other module (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20334\"\u003e20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFail with an explicit error on PyPy (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20389\"\u003e20389\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChainfire\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eDavid Foster\u003c/li\u003e\n\u003cli\u003eFrank Dana\u003c/li\u003e\n\u003cli\u003eGuo Ci\u003c/li\u003e\n\u003cli\u003eiap\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilton-Balfe\u003c/li\u003e\n\u003cli\u003ejhance\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eJukka Lehtosalo\u003c/li\u003e\n\u003cli\u003eKarelKenens\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael Carlstrom\u003c/li\u003e\n\u003cli\u003eMichael J. Sullivan\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003cli\u003eRandolf Scholz\u003c/li\u003e\n\u003cli\u003eShantanu\u003c/li\u003e\n\u003cli\u003eSigve Sebastian Farstad\u003c/li\u003e\n\u003cli\u003esobolevn\u003c/li\u003e\n\u003cli\u003eStanislav Terliakov\u003c/li\u003e\n\u003cli\u003eStephen Morton\u003c/li\u003e\n\u003cli\u003eTheodore Ando\u003c/li\u003e\n\u003cli\u003eThiago J. Barbalho\u003c/li\u003e\n\u003cli\u003ewyattscarpenter\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI’d also like to thank my employer, Dropbox, for supporting mypy development.\u003c/p\u003e\n\u003ch2\u003eMypy 1.18\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.18.1 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/412c19a6bde31e7afa7f41afdf8356664689ae80\"\u003e\u003ccode\u003e412c19a\u003c/code\u003e\u003c/a\u003e Bump version to 1.19.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/20aea0a6ca0710f5427239bdd2fd8e8bf1caf634\"\u003e\u003ccode\u003e20aea0a\u003c/code\u003e\u003c/a\u003e Update changelog for 1.19.1 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20414\"\u003e#20414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2b23b507524bf1bd7513eea6f2a16fb91e072cb6\"\u003e\u003ccode\u003e2b23b50\u003c/code\u003e\u003c/a\u003e Serialize raw errors in cache metas (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20372\"\u003e#20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f60f90fb8872bf722e32aefd548daaf6d8560e05\"\u003e\u003ccode\u003ef60f90f\u003c/code\u003e\u003c/a\u003e Fail on PyPy in main instead of setup.py (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20389\"\u003e#20389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/58d485b4ea4776e0b9d4045b306cb0818ecc2aa6\"\u003e\u003ccode\u003e58d485b\u003c/code\u003e\u003c/a\u003e Fail with an explicit error on PyPy (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20384\"\u003e#20384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4b31a26788b70c4a2a19adbafa2bbda43dc2e8b\"\u003e\u003ccode\u003ea4b31a2\u003c/code\u003e\u003c/a\u003e Allow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20383\"\u003e#20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8a6eff478416cd3ed3931a6ed77ce61c88ab69e9\"\u003e\u003ccode\u003e8a6eff4\u003c/code\u003e\u003c/a\u003e [mypyc] fix generator regression with empty tuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20371\"\u003e#20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/70eceea682c041c0d8e8462dffef9c7bb252e014\"\u003e\u003ccode\u003e70eceea\u003c/code\u003e\u003c/a\u003e Fix noncommutative joins with bounded TypeVars (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20345\"\u003e#20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/3890fc49bf7cc02db04b1e63eb2540aaacdeecc0\"\u003e\u003ccode\u003e3890fc4\u003c/code\u003e\u003c/a\u003e Fix crash involving Unpack-ed TypeVarTuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20323\"\u003e#20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c93d917a86993e06dcc88e508f28f4f5199ce1c8\"\u003e\u003ccode\u003ec93d917\u003c/code\u003e\u003c/a\u003e Fix crash on star import of redefinition (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20333\"\u003e#20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.19.0...v1.19.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 9.0.1 to 9.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13965\"\u003e#13965\u003c/a\u003e: Fixed quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/4492\"\u003e#4492\u003c/a\u003e: The API Reference now contains cross-reference-able documentation of \u003ccode\u003epytest's command-line flags \u0026lt;command-line-flags\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/3d10b5148e03eb82b3ee29181dbdc73cf82699e2\"\u003e\u003ccode\u003e3d10b51\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/188750b725add8c3400eee6fbb6b80559c296d69\"\u003e\u003ccode\u003e188750b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14030\"\u003e#14030\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/1e4b01d1f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7d7bef90cb9a6db8ac1d3dd5b9ae0eb9abd6c58\"\u003e\u003ccode\u003eb7d7bef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14014\"\u003e#14014\u003c/a\u003e from bluetech/compat-note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bd08e85ac76614ff5ca9ae338aee8d8b06c8fae0\"\u003e\u003ccode\u003ebd08e85\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14013\"\u003e#14013\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/922b60377...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bc783862991241c442c9f9c068e51737ec15ea10\"\u003e\u003ccode\u003ebc78386\u003c/code\u003e\u003c/a\u003e Add CLI options reference documentation (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13930\"\u003e#13930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/5a4e398ce89bc23d2cf3fd98c042fdffb6fa8afa\"\u003e\u003ccode\u003e5a4e398\u003c/code\u003e\u003c/a\u003e Fix docs typo (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14005\"\u003e#14005\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14008\"\u003e#14008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/d7ae6df394398168bf9d926f803c26849c8f07ee\"\u003e\u003ccode\u003ed7ae6df\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14006\"\u003e#14006\u003c/a\u003e from pytest-dev/maintenance/update-plugin-list-tmpl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/556f6a22e12d13d1ffeceaf64424eb95d5e0fb87\"\u003e\u003ccode\u003e556f6a2\u003c/code\u003e\u003c/a\u003e pre-commit: fix rst-lint after new release (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13999\"\u003e#13999\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14001\"\u003e#14001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c60fbe63a26f64a42738e3f3527a8f79024fdf50\"\u003e\u003ccode\u003ec60fbe6\u003c/code\u003e\u003c/a\u003e Fix quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10 ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/73d9b011183d9a1c4a7007c1119d97a6e627788e\"\u003e\u003ccode\u003e73d9b01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13995\"\u003e#13995\u003c/a\u003e from nicoddemus/patchback/backports/9.0.x/1b5200c0f...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/9.0.1...9.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/frequenz-floss/frequenz-sdk-python/pull/1350","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/frequenz-floss%2Ffrequenz-sdk-python/issues/1350","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1350/packages"}},{"old_version":"8.4.2","new_version":"9.0.2","update_type":"major","path":null,"pr_created_at":"2026-01-19T21:03:27.000Z","version_change":"8.4.2 → 9.0.2","issue":{"uuid":"3831199331","node_id":"PR_kwDOQE992c6-FeL8","number":6,"state":"open","title":"⬆ Bump the python-packages group across 1 directory with 6 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-01-19T21:03:27.000Z","updated_at":"2026-01-19T21:03:27.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"⬆ Bump","group_name":"python-packages","update_count":6,"packages":[{"name":"fastparquet","old_version":"2024.11.0","new_version":"2025.12.0","repository_url":"https://github.com/dask/fastparquet"},{"name":"pyarrow","old_version":"22.0.0","new_version":"23.0.0","repository_url":"https://github.com/apache/arrow"},{"name":"scikit-learn","old_version":"1.7.2","new_version":"1.8.0","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"watermark","old_version":"2.5.0","new_version":"2.6.0","repository_url":"https://github.com/rasbt/watermark"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"}],"path":null,"ecosystem":"conda"},"body":"Bumps the python-packages group with 6 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastparquet](https://github.com/dask/fastparquet) | `2024.11.0` | `2025.12.0` |\n| [pyarrow](https://github.com/apache/arrow) | `22.0.0` | `23.0.0` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.7.2` | `1.8.0` |\n| [watermark](https://github.com/rasbt/watermark) | `2.5.0` | `2.6.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.5.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.2` | `9.0.2` |\n\n\nUpdates `fastparquet` from 2024.11.0 to 2025.12.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/c2942b13e08b97022c0964af08f7b17d32b969e5\"\u003e\u003ccode\u003ec2942b1\u003c/code\u003e\u003c/a\u003e remove win selectors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/b94076c40095607f20be6a1aeb683569c0302027\"\u003e\u003ccode\u003eb94076c\u003c/code\u003e\u003c/a\u003e build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/7630de8795465c0b42610fadf736bd5441c38714\"\u003e\u003ccode\u003e7630de8\u003c/code\u003e\u003c/a\u003e build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/e4bd5e69b8bf3d5836948e13d2e0ce139060d9be\"\u003e\u003ccode\u003ee4bd5e6\u003c/code\u003e\u003c/a\u003e update wheel GHA versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/af08bab65df254e0483e8e66eb0b42b246d89fd3\"\u003e\u003ccode\u003eaf08bab\u003c/code\u003e\u003c/a\u003e changelog (\u003ca href=\"https://redirect.github.com/dask/fastparquet/issues/969\"\u003e#969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/f4524139b64322dff2822e18182cdf4f52b7a51a\"\u003e\u003ccode\u003ef452413\u003c/code\u003e\u003c/a\u003e Add CoC (\u003ca href=\"https://redirect.github.com/dask/fastparquet/issues/967\"\u003e#967\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/66b1044d1265c828298b605605e2f7070bc7897d\"\u003e\u003ccode\u003e66b1044\u003c/code\u003e\u003c/a\u003e CI: fix pandas build (\u003ca href=\"https://redirect.github.com/dask/fastparquet/issues/964\"\u003e#964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/e975b92a9c47253fac71e7fcec074331e26fc001\"\u003e\u003ccode\u003ee975b92\u003c/code\u003e\u003c/a\u003e Modernise cython (\u003ca href=\"https://redirect.github.com/dask/fastparquet/issues/966\"\u003e#966\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/83b3f1d22bfd2fd6345c07c7985fd9e4c4d8843f\"\u003e\u003ccode\u003e83b3f1d\u003c/code\u003e\u003c/a\u003e Test: makes tests fail on xpass (\u003ca href=\"https://redirect.github.com/dask/fastparquet/issues/965\"\u003e#965\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/230909717272c9e9257a4e321a66d071ece4ef4d\"\u003e\u003ccode\u003e2309097\u003c/code\u003e\u003c/a\u003e add goat link (\u003ca href=\"https://redirect.github.com/dask/fastparquet/issues/963\"\u003e#963\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/dask/fastparquet/compare/2024.11.0...2025.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyarrow` from 22.0.0 to 23.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/apache/arrow/releases\"\u003epyarrow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eApache Arrow 23.0.0\u003c/h2\u003e\n\u003cp\u003eRelease Notes URL: \u003ca href=\"https://arrow.apache.org/release/23.0.0.html\"\u003ehttps://arrow.apache.org/release/23.0.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eApache Arrow 23.0.0 RC2\u003c/h2\u003e\n\u003cp\u003eRelease Notes: Release Candidate: 23.0.0 RC2\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/eafe3a9e620cf94683dee2347f370c35156dc965\"\u003e\u003ccode\u003eeafe3a9\u003c/code\u003e\u003c/a\u003e MINOR: [Release] Update versions for 23.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/45781e854cc9248013349decc4639644871d9f5f\"\u003e\u003ccode\u003e45781e8\u003c/code\u003e\u003c/a\u003e MINOR: [Release] Update .deb/.rpm changelogs for 23.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/365e5aca5a1ae2cdc31e6bd4ed640bfba00d5cc5\"\u003e\u003ccode\u003e365e5ac\u003c/code\u003e\u003c/a\u003e MINOR: [Release] Update CHANGELOG.md for 23.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/e33512d1d82c28e753004d0d7a76c1dca542b1cd\"\u003e\u003ccode\u003ee33512d\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/48841\"\u003eGH-48841\u003c/a\u003e: [Release][Package] Add GH_TOKEN to rake build step on Linux Packagi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/86d28e9d55f8d0f11634b4a2a19233fa843d9261\"\u003e\u003ccode\u003e86d28e9\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/48838\"\u003eGH-48838\u003c/a\u003e: [Release] Use gh cli to download sources for Linux packages and pub...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/b6362d09204136dbf2167fee8ec8ec2af0efe42d\"\u003e\u003ccode\u003eb6362d0\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/48582\"\u003eGH-48582\u003c/a\u003e: [CI][GPU][C++][Python] Add new CUDA jobs using the new self-hosted ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/8fb7a53f0e2d0fa85ccdc6dd7ccda44dec6ee0d9\"\u003e\u003ccode\u003e8fb7a53\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/48827\"\u003eGH-48827\u003c/a\u003e: [CI][Python] Add required xz dependency to emscripten dockerfile (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/342c5d563005709eab03dde332e44bcb237385fc\"\u003e\u003ccode\u003e342c5d5\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/48809\"\u003eGH-48809\u003c/a\u003e: [CI] Fix homebrew-cpp with Mac by using formula-based dependency re...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/8955bbf7b266d7e293f5037bd20c3e2e983e004c\"\u003e\u003ccode\u003e8955bbf\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/48631\"\u003eGH-48631\u003c/a\u003e: [R] Non-API calls: 'ATTRIB', 'SET_ATTRIB' (\u003ca href=\"https://redirect.github.com/apache/arrow/issues/48634\"\u003e#48634\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/b90a2b82d85b1479470b7f1bdd941c9a59ecd3d4\"\u003e\u003ccode\u003eb90a2b8\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/48314\"\u003eGH-48314\u003c/a\u003e: [Python] Compat with pandas 3.0 changed default datetime unit (\u003ca href=\"https://redirect.github.com/apache/arrow/issues/48319\"\u003e#48319\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/apache/arrow/compare/apache-arrow-22.0.0...apache-arrow-23.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `scikit-learn` from 1.7.2 to 1.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/scikit-learn/scikit-learn/releases\"\u003escikit-learn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 1.8.0\u003c/h2\u003e\n\u003cp\u003eWe're happy to announce the 1.8.0 release.\u003c/p\u003e\n\u003cp\u003eYou can read the release highlights under \u003ca href=\"https://scikit-learn.org/stable/auto_examples/release_highlights/plot_release_highlights_1_8_0.html\"\u003ehttps://scikit-learn.org/stable/auto_examples/release_highlights/plot_release_highlights_1_8_0.html\u003c/a\u003e and the long version of the change log under \u003ca href=\"https://scikit-learn.org/stable/whats_new/v1.8.html\"\u003ehttps://scikit-learn.org/stable/whats_new/v1.8.html\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis version supports Python versions 3.11 to 3.14 and features support of free-threaded CPython.\u003c/p\u003e\n\u003cp\u003eYou can upgrade with pip as usual:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epip install -U scikit-learn\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThe conda-forge builds can be installed using:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge scikit-learn\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/646da0f072a8afef6a980aa427a710311e67eb9d\"\u003e\u003ccode\u003e646da0f\u003c/code\u003e\u003c/a\u003e [cd build]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/4f4f2831de348859efc5d8298cbf37e212a1efac\"\u003e\u003ccode\u003e4f4f283\u003c/code\u003e\u003c/a\u003e Generate changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/967dcde6dae92a6f9eafa804b5d93e8fdfd08f26\"\u003e\u003ccode\u003e967dcde\u003c/code\u003e\u003c/a\u003e Set version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/cb1424bf0d548d6fa9fdef2f91bb00636f484f10\"\u003e\u003ccode\u003ecb1424b\u003c/code\u003e\u003c/a\u003e DOC Release highlights for 1.8 (\u003ca href=\"https://redirect.github.com/scikit-learn/scikit-learn/issues/32809\"\u003e#32809\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/5645b27b985486d6b75bb75e4929faa4da574173\"\u003e\u003ccode\u003e5645b27\u003c/code\u003e\u003c/a\u003e :lock: :robot: CI Update lock files for main CI build(s) :lock: :robot: (\u003ca href=\"https://redirect.github.com/scikit-learn/scikit-learn/issues/32859\"\u003e#32859\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/6b9fb1189957962cd0e4988d137af312ad09008f\"\u003e\u003ccode\u003e6b9fb11\u003c/code\u003e\u003c/a\u003e :lock: :robot: CI Update lock files for free-threaded CI build(s) :lock: :rob...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/a0f6d88d05d52594785455b570ed142c912568e7\"\u003e\u003ccode\u003ea0f6d88\u003c/code\u003e\u003c/a\u003e :lock: :robot: CI Update lock files for array-api CI build(s) :lock: :robot: ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/c1de8fc595fce930c5ce1792faeab8d80a4fecc2\"\u003e\u003ccode\u003ec1de8fc\u003c/code\u003e\u003c/a\u003e FIX Make \u003ccode\u003eget_namespace\u003c/code\u003e handle pandas dataframe input (\u003ca href=\"https://redirect.github.com/scikit-learn/scikit-learn/issues/32838\"\u003e#32838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/764249a255ba4110685a772836f06477c40cf8a3\"\u003e\u003ccode\u003e764249a\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e_safe_indexing\u003c/code\u003e with non integer arrays on array API inputs (\u003ca href=\"https://redirect.github.com/scikit-learn/scikit-learn/issues/32840\"\u003e#32840\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/eca5e0ab2a16844c57fff675c2d017af2d8a570b\"\u003e\u003ccode\u003eeca5e0a\u003c/code\u003e\u003c/a\u003e FIX Add new default max_samples=None in Bagging estimators (\u003ca href=\"https://redirect.github.com/scikit-learn/scikit-learn/issues/32825\"\u003e#32825\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/scikit-learn/scikit-learn/compare/1.7.2...1.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `watermark` from 2.5.0 to 2.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rasbt/watermark/releases\"\u003ewatermark's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.6.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdds a new \u003ccode\u003e--check_jupyter\u003c/code\u003e flag to report which notebook environment is used (e.g., Colab, Jupyter Notebook, JupyterLab, VS Code). (\u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/99\"\u003e#102\u003c/a\u003e, contributed by \u003ca href=\"https://github.com/mariam851\"\u003eMariam Zakaria\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdds a new \u003ccode\u003e--check_latest\u003c/code\u003e flag to check whether newer package versions are available. (\u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/99\"\u003e#102\u003c/a\u003e, contributed by \u003ca href=\"https://github.com/mariam851\"\u003eMariam Zakaria\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdds a new \u003ccode\u003e--python_installation\u003c/code\u003e flag to provide information about how Python was installed. (\u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/99\"\u003e#102\u003c/a\u003e, contributed by \u003ca href=\"https://github.com/mariam851\"\u003eMariam Zakaria\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeat check latest 87 by \u003ca href=\"https://github.com/mariam851\"\u003e\u003ccode\u003e@​mariam851\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/110\"\u003erasbt/watermark#110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Add --filename (-fn) option to display notebook path. Closes \u003ca href=\"https://redirect.github.com/rasbt/watermark/issues/25\"\u003e#25\u003c/a\u003e by \u003ca href=\"https://github.com/mariam851\"\u003e\u003ccode\u003e@​mariam851\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/103\"\u003erasbt/watermark#103\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix KeyError in version lookup and implement fallback  by \u003ca href=\"https://github.com/mariam851\"\u003e\u003ccode\u003e@​mariam851\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/106\"\u003erasbt/watermark#106\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix timezone space 73 by \u003ca href=\"https://github.com/mariam851\"\u003e\u003ccode\u003e@​mariam851\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/107\"\u003erasbt/watermark#107\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat jupyter env 93 by \u003ca href=\"https://github.com/mariam851\"\u003e\u003ccode\u003e@​mariam851\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/108\"\u003erasbt/watermark#108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat python install 89 by \u003ca href=\"https://github.com/mariam851\"\u003e\u003ccode\u003e@​mariam851\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/109\"\u003erasbt/watermark#109\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/mariam851\"\u003e\u003ccode\u003e@​mariam851\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/110\"\u003erasbt/watermark#110\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rasbt/watermark/compare/v2.5.1...v2.6.0\"\u003ehttps://github.com/rasbt/watermark/compare/v2.5.1...v2.6.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.5.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efixed typo by \u003ca href=\"https://github.com/d-kleine\"\u003e\u003ccode\u003e@​d-kleine\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/96\"\u003erasbt/watermark#96\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump version to 2.5.1.dev by \u003ca href=\"https://github.com/rasbt\"\u003e\u003ccode\u003e@​rasbt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/97\"\u003erasbt/watermark#97\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump to 2.5.1.dev1 for build testing by \u003ca href=\"https://github.com/rasbt\"\u003e\u003ccode\u003e@​rasbt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/98\"\u003erasbt/watermark#98\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixed -d and -t flags by \u003ca href=\"https://github.com/d-kleine\"\u003e\u003ccode\u003e@​d-kleine\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/99\"\u003erasbt/watermark#99\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eList imported packages in alphabetical order. by \u003ca href=\"https://github.com/vlulla\"\u003e\u003ccode\u003e@​vlulla\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/102\"\u003erasbt/watermark#102\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd auto deployment workflow by \u003ca href=\"https://github.com/rasbt\"\u003e\u003ccode\u003e@​rasbt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/105\"\u003erasbt/watermark#105\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/vlulla\"\u003e\u003ccode\u003e@​vlulla\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/102\"\u003erasbt/watermark#102\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rasbt/watermark/compare/v2.5.0...v2.5.1\"\u003ehttps://github.com/rasbt/watermark/compare/v2.5.0...v2.5.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rasbt/watermark/commit/b857ecf279a350dc6b6f96de2d5d3073b063b32d\"\u003e\u003ccode\u003eb857ecf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rasbt/watermark/issues/110\"\u003e#110\u003c/a\u003e from mariam851/feat-check-latest-87\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rasbt/watermark/commit/2691f7f2295e9f4b351acaa86616bcb57977ad30\"\u003e\u003ccode\u003e2691f7f\u003c/code\u003e\u003c/a\u003e improvements and docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rasbt/watermark/commit/972c9736e7ecfea40d23d58e0732e0371848479c\"\u003e\u003ccode\u003e972c973\u003c/code\u003e\u003c/a\u003e Feat \u003ca href=\"https://redirect.github.com/rasbt/watermark/issues/87\"\u003e#87\u003c/a\u003e: Add --check_latest flag to check package updates via PyPI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rasbt/watermark/commit/8ad19fc154a0e3cafe20e0c682531b4dec715993\"\u003e\u003ccode\u003e8ad19fc\u003c/code\u003e\u003c/a\u003e Feat \u003ca href=\"https://redirect.github.com/rasbt/watermark/issues/89\"\u003e#89\u003c/a\u003e: Add --python_installation flag\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rasbt/watermark/commit/a4e8c123678898a90480cee23b0f377e88233fd5\"\u003e\u003ccode\u003ea4e8c12\u003c/code\u003e\u003c/a\u003e Feat \u003ca href=\"https://redirect.github.com/rasbt/watermark/issues/93\"\u003e#93\u003c/a\u003e: Add --jupyter_env flag to detect environment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rasbt/watermark/commit/0b4948416de7fcc534c83ce7ff6053a6cab600ca\"\u003e\u003ccode\u003e0b49484\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/rasbt/watermark/issues/73\"\u003e#73\u003c/a\u003e: Add space before timezone and update date format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rasbt/watermark/commit/a19ec2a5320cb9d59c7029c557b97da3b2b83a91\"\u003e\u003ccode\u003ea19ec2a\u003c/code\u003e\u003c/a\u003e Fix KeyError in version lookup and implement fallback (\u003ca href=\"https://redirect.github.com/rasbt/watermark/issues/100\"\u003e#100\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rasbt/watermark/commit/3ec302e077c533844e094040bad6a07669026c64\"\u003e\u003ccode\u003e3ec302e\u003c/code\u003e\u003c/a\u003e Update publish workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rasbt/watermark/commit/e7567da961065076e9fa56476ac4f22b483f83cf\"\u003e\u003ccode\u003ee7567da\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rasbt/watermark/issues/105\"\u003e#105\u003c/a\u003e from rasbt/autodeploy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rasbt/watermark/commit/9a3d0c4dc53170e9d6f5983adf340177b1ce6154\"\u003e\u003ccode\u003e9a3d0c4\u003c/code\u003e\u003c/a\u003e update\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rasbt/watermark/compare/v2.5.0...v2.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit` from 4.3.0 to 4.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.5.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.5.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.4.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases for \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be deprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.5.1 - 2025-12-16\u003c/h1\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.5.0 - 2025-11-22\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.4.0 - 2025-11-08\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases\nfor \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be\ndeprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/8a0630ca1aa7f6d5665effe674ebe2022af17919\"\u003e\u003ccode\u003e8a0630c\u003c/code\u003e\u003c/a\u003e v4.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fcbc745744377ef2c9fe6a7e1a21c67d797933dc\"\u003e\u003ccode\u003efcbc745\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e from pre-commit/empty-setup-py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/51592eececd13b99c40ec477ad8f810799147227\"\u003e\u003ccode\u003e51592ee\u003c/code\u003e\u003c/a\u003e fix python local template when artifact dirs are present\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/67e8faf80baffcb4b79c31b89ca9a413a1cd6776\"\u003e\u003ccode\u003e67e8faf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3596\"\u003e#3596\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c251e6b6d011b3b262339dc8e109de29b0ff8db1\"\u003e\u003ccode\u003ec251e6b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/98ccafa3ce42b846b9a9be9ed73fbbec7415496d\"\u003e\u003ccode\u003e98ccafa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3593\"\u003e#3593\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/48953556d06f8cdb4248002c1a0044e69e0916b3\"\u003e\u003ccode\u003e4895355\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2cedd58e691f4d3bc6ab266c7d7c28464c3502be\"\u003e\u003ccode\u003e2cedd58\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3588\"\u003e#3588\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/465192d7de58d569776eaaa818c94cb2b962d436\"\u003e\u003ccode\u003e465192d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fd42f96874279c4f65363bfea5238714419e54d7\"\u003e\u003ccode\u003efd42f96\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3586\"\u003e#3586\u003c/a\u003e from pre-commit/zipapp-sha256-file-not-needed\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.3.0...v4.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.4.2 to 9.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13965\"\u003e#13965\u003c/a\u003e: Fixed quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/4492\"\u003e#4492\u003c/a\u003e: The API Reference now contains cross-reference-able documentation of \u003ccode\u003epytest's command-line flags \u0026lt;command-line-flags\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e9.0.1\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.1 (2025-11-12)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13895\"\u003e#13895\u003c/a\u003e: Restore support for skipping tests via \u003ccode\u003eraise unittest.SkipTest\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress plugin added in pytest 9.0 is now automatically disabled when iTerm2 is detected, it generated desktop notifications instead of the desired functionality.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the verbosity settings in the API reference from number to string.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13910\"\u003e#13910\u003c/a\u003e: Fixed \u003c!-- raw HTML omitted --\u003eUserWarning: Do not expect file_or_dir\u003c!-- raw HTML omitted --\u003e on some earlier Python 3.12 and 3.13 point versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePackaging updates and notes for downstreams\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13891\"\u003e#13891\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13942\"\u003e#13942\u003c/a\u003e: The CI/CD part of the release automation is now capable of\ncreating GitHub Releases without having a Git checkout on\ndisk -- by \u003ccode\u003ebluetech\u003c/code\u003e and \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/3d10b5148e03eb82b3ee29181dbdc73cf82699e2\"\u003e\u003ccode\u003e3d10b51\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/188750b725add8c3400eee6fbb6b80559c296d69\"\u003e\u003ccode\u003e188750b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14030\"\u003e#14030\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/1e4b01d1f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7d7bef90cb9a6db8ac1d3dd5b9ae0eb9abd6c58\"\u003e\u003ccode\u003eb7d7bef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14014\"\u003e#14014\u003c/a\u003e from bluetech/compat-note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bd08e85ac76614ff5ca9ae338aee8d8b06c8fae0\"\u003e\u003ccode\u003ebd08e85\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14013\"\u003e#14013\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/922b60377...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bc783862991241c442c9f9c068e51737ec15ea10\"\u003e\u003ccode\u003ebc78386\u003c/code\u003e\u003c/a\u003e Add CLI options reference documentation (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13930\"\u003e#13930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/5a4e398ce89bc23d2cf3fd98c042fdffb6fa8afa\"\u003e\u003ccode\u003e5a4e398\u003c/code\u003e\u003c/a\u003e Fix docs typo (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14005\"\u003e#14005\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14008\"\u003e#14008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/d7ae6df394398168bf9d926f803c26849c8f07ee\"\u003e\u003ccode\u003ed7ae6df\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14006\"\u003e#14006\u003c/a\u003e from pytest-dev/maintenance/update-plugin-list-tmpl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/556f6a22e12d13d1ffeceaf64424eb95d5e0fb87\"\u003e\u003ccode\u003e556f6a2\u003c/code\u003e\u003c/a\u003e pre-commit: fix rst-lint after new release (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13999\"\u003e#13999\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14001\"\u003e#14001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c60fbe63a26f64a42738e3f3527a8f79024fdf50\"\u003e\u003ccode\u003ec60fbe6\u003c/code\u003e\u003c/a\u003e Fix quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10 ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/73d9b011183d9a1c4a7007c1119d97a6e627788e\"\u003e\u003ccode\u003e73d9b01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13995\"\u003e#13995\u003c/a\u003e from nicoddemus/patchback/backports/9.0.x/1b5200c0f...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.4.2...9.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/anasperezhoyos/nlp-upb_ana_sofia/pull/6","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/anasperezhoyos%2Fnlp-upb_ana_sofia/issues/6","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/6/packages"}},{"old_version":"8.4.2","new_version":"9.0.2","update_type":"major","path":null,"pr_created_at":"2026-01-19T18:31:20.000Z","version_change":"8.4.2 → 9.0.2","issue":{"uuid":"3830796074","node_id":"PR_kwDOQE-B0c6-EHY-","number":6,"state":"open","title":"⬆ Bump the python-packages group across 1 directory with 5 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-01-19T18:31:20.000Z","updated_at":"2026-01-19T18:31:21.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"⬆ Bump","group_name":"python-packages","update_count":5,"packages":[{"name":"fastparquet","old_version":"2024.11.0","new_version":"2025.12.0","repository_url":"https://github.com/dask/fastparquet"},{"name":"pyarrow","old_version":"22.0.0","new_version":"23.0.0","repository_url":"https://github.com/apache/arrow"},{"name":"scikit-learn","old_version":"1.7.2","new_version":"1.8.0","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"}],"path":null,"ecosystem":"conda"},"body":"Bumps the python-packages group with 5 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastparquet](https://github.com/dask/fastparquet) | `2024.11.0` | `2025.12.0` |\n| [pyarrow](https://github.com/apache/arrow) | `22.0.0` | `23.0.0` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.7.2` | `1.8.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.5.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.2` | `9.0.2` |\n\n\nUpdates `fastparquet` from 2024.11.0 to 2025.12.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/c2942b13e08b97022c0964af08f7b17d32b969e5\"\u003e\u003ccode\u003ec2942b1\u003c/code\u003e\u003c/a\u003e remove win selectors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/b94076c40095607f20be6a1aeb683569c0302027\"\u003e\u003ccode\u003eb94076c\u003c/code\u003e\u003c/a\u003e build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/7630de8795465c0b42610fadf736bd5441c38714\"\u003e\u003ccode\u003e7630de8\u003c/code\u003e\u003c/a\u003e build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/e4bd5e69b8bf3d5836948e13d2e0ce139060d9be\"\u003e\u003ccode\u003ee4bd5e6\u003c/code\u003e\u003c/a\u003e update wheel GHA versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/af08bab65df254e0483e8e66eb0b42b246d89fd3\"\u003e\u003ccode\u003eaf08bab\u003c/code\u003e\u003c/a\u003e changelog (\u003ca href=\"https://redirect.github.com/dask/fastparquet/issues/969\"\u003e#969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/f4524139b64322dff2822e18182cdf4f52b7a51a\"\u003e\u003ccode\u003ef452413\u003c/code\u003e\u003c/a\u003e Add CoC (\u003ca href=\"https://redirect.github.com/dask/fastparquet/issues/967\"\u003e#967\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/66b1044d1265c828298b605605e2f7070bc7897d\"\u003e\u003ccode\u003e66b1044\u003c/code\u003e\u003c/a\u003e CI: fix pandas build (\u003ca href=\"https://redirect.github.com/dask/fastparquet/issues/964\"\u003e#964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/e975b92a9c47253fac71e7fcec074331e26fc001\"\u003e\u003ccode\u003ee975b92\u003c/code\u003e\u003c/a\u003e Modernise cython (\u003ca href=\"https://redirect.github.com/dask/fastparquet/issues/966\"\u003e#966\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/83b3f1d22bfd2fd6345c07c7985fd9e4c4d8843f\"\u003e\u003ccode\u003e83b3f1d\u003c/code\u003e\u003c/a\u003e Test: makes tests fail on xpass (\u003ca href=\"https://redirect.github.com/dask/fastparquet/issues/965\"\u003e#965\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/230909717272c9e9257a4e321a66d071ece4ef4d\"\u003e\u003ccode\u003e2309097\u003c/code\u003e\u003c/a\u003e add goat link (\u003ca href=\"https://redirect.github.com/dask/fastparquet/issues/963\"\u003e#963\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/dask/fastparquet/compare/2024.11.0...2025.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyarrow` from 22.0.0 to 23.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/apache/arrow/releases\"\u003epyarrow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eApache Arrow 23.0.0\u003c/h2\u003e\n\u003cp\u003eRelease Notes URL: \u003ca href=\"https://arrow.apache.org/release/23.0.0.html\"\u003ehttps://arrow.apache.org/release/23.0.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eApache Arrow 23.0.0 RC2\u003c/h2\u003e\n\u003cp\u003eRelease Notes: Release Candidate: 23.0.0 RC2\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/eafe3a9e620cf94683dee2347f370c35156dc965\"\u003e\u003ccode\u003eeafe3a9\u003c/code\u003e\u003c/a\u003e MINOR: [Release] Update versions for 23.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/45781e854cc9248013349decc4639644871d9f5f\"\u003e\u003ccode\u003e45781e8\u003c/code\u003e\u003c/a\u003e MINOR: [Release] Update .deb/.rpm changelogs for 23.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/365e5aca5a1ae2cdc31e6bd4ed640bfba00d5cc5\"\u003e\u003ccode\u003e365e5ac\u003c/code\u003e\u003c/a\u003e MINOR: [Release] Update CHANGELOG.md for 23.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/e33512d1d82c28e753004d0d7a76c1dca542b1cd\"\u003e\u003ccode\u003ee33512d\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/48841\"\u003eGH-48841\u003c/a\u003e: [Release][Package] Add GH_TOKEN to rake build step on Linux Packagi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/86d28e9d55f8d0f11634b4a2a19233fa843d9261\"\u003e\u003ccode\u003e86d28e9\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/48838\"\u003eGH-48838\u003c/a\u003e: [Release] Use gh cli to download sources for Linux packages and pub...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/b6362d09204136dbf2167fee8ec8ec2af0efe42d\"\u003e\u003ccode\u003eb6362d0\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/48582\"\u003eGH-48582\u003c/a\u003e: [CI][GPU][C++][Python] Add new CUDA jobs using the new self-hosted ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/8fb7a53f0e2d0fa85ccdc6dd7ccda44dec6ee0d9\"\u003e\u003ccode\u003e8fb7a53\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/48827\"\u003eGH-48827\u003c/a\u003e: [CI][Python] Add required xz dependency to emscripten dockerfile (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/342c5d563005709eab03dde332e44bcb237385fc\"\u003e\u003ccode\u003e342c5d5\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/48809\"\u003eGH-48809\u003c/a\u003e: [CI] Fix homebrew-cpp with Mac by using formula-based dependency re...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/8955bbf7b266d7e293f5037bd20c3e2e983e004c\"\u003e\u003ccode\u003e8955bbf\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/48631\"\u003eGH-48631\u003c/a\u003e: [R] Non-API calls: 'ATTRIB', 'SET_ATTRIB' (\u003ca href=\"https://redirect.github.com/apache/arrow/issues/48634\"\u003e#48634\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/b90a2b82d85b1479470b7f1bdd941c9a59ecd3d4\"\u003e\u003ccode\u003eb90a2b8\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/48314\"\u003eGH-48314\u003c/a\u003e: [Python] Compat with pandas 3.0 changed default datetime unit (\u003ca href=\"https://redirect.github.com/apache/arrow/issues/48319\"\u003e#48319\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/apache/arrow/compare/apache-arrow-22.0.0...apache-arrow-23.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `scikit-learn` from 1.7.2 to 1.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/scikit-learn/scikit-learn/releases\"\u003escikit-learn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 1.8.0\u003c/h2\u003e\n\u003cp\u003eWe're happy to announce the 1.8.0 release.\u003c/p\u003e\n\u003cp\u003eYou can read the release highlights under \u003ca href=\"https://scikit-learn.org/stable/auto_examples/release_highlights/plot_release_highlights_1_8_0.html\"\u003ehttps://scikit-learn.org/stable/auto_examples/release_highlights/plot_release_highlights_1_8_0.html\u003c/a\u003e and the long version of the change log under \u003ca href=\"https://scikit-learn.org/stable/whats_new/v1.8.html\"\u003ehttps://scikit-learn.org/stable/whats_new/v1.8.html\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis version supports Python versions 3.11 to 3.14 and features support of free-threaded CPython.\u003c/p\u003e\n\u003cp\u003eYou can upgrade with pip as usual:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epip install -U scikit-learn\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThe conda-forge builds can be installed using:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge scikit-learn\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/646da0f072a8afef6a980aa427a710311e67eb9d\"\u003e\u003ccode\u003e646da0f\u003c/code\u003e\u003c/a\u003e [cd build]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/4f4f2831de348859efc5d8298cbf37e212a1efac\"\u003e\u003ccode\u003e4f4f283\u003c/code\u003e\u003c/a\u003e Generate changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/967dcde6dae92a6f9eafa804b5d93e8fdfd08f26\"\u003e\u003ccode\u003e967dcde\u003c/code\u003e\u003c/a\u003e Set version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/cb1424bf0d548d6fa9fdef2f91bb00636f484f10\"\u003e\u003ccode\u003ecb1424b\u003c/code\u003e\u003c/a\u003e DOC Release highlights for 1.8 (\u003ca href=\"https://redirect.github.com/scikit-learn/scikit-learn/issues/32809\"\u003e#32809\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/5645b27b985486d6b75bb75e4929faa4da574173\"\u003e\u003ccode\u003e5645b27\u003c/code\u003e\u003c/a\u003e :lock: :robot: CI Update lock files for main CI build(s) :lock: :robot: (\u003ca href=\"https://redirect.github.com/scikit-learn/scikit-learn/issues/32859\"\u003e#32859\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/6b9fb1189957962cd0e4988d137af312ad09008f\"\u003e\u003ccode\u003e6b9fb11\u003c/code\u003e\u003c/a\u003e :lock: :robot: CI Update lock files for free-threaded CI build(s) :lock: :rob...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/a0f6d88d05d52594785455b570ed142c912568e7\"\u003e\u003ccode\u003ea0f6d88\u003c/code\u003e\u003c/a\u003e :lock: :robot: CI Update lock files for array-api CI build(s) :lock: :robot: ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/c1de8fc595fce930c5ce1792faeab8d80a4fecc2\"\u003e\u003ccode\u003ec1de8fc\u003c/code\u003e\u003c/a\u003e FIX Make \u003ccode\u003eget_namespace\u003c/code\u003e handle pandas dataframe input (\u003ca href=\"https://redirect.github.com/scikit-learn/scikit-learn/issues/32838\"\u003e#32838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/764249a255ba4110685a772836f06477c40cf8a3\"\u003e\u003ccode\u003e764249a\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e_safe_indexing\u003c/code\u003e with non integer arrays on array API inputs (\u003ca href=\"https://redirect.github.com/scikit-learn/scikit-learn/issues/32840\"\u003e#32840\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/eca5e0ab2a16844c57fff675c2d017af2d8a570b\"\u003e\u003ccode\u003eeca5e0a\u003c/code\u003e\u003c/a\u003e FIX Add new default max_samples=None in Bagging estimators (\u003ca href=\"https://redirect.github.com/scikit-learn/scikit-learn/issues/32825\"\u003e#32825\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/scikit-learn/scikit-learn/compare/1.7.2...1.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit` from 4.3.0 to 4.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.5.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.5.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.4.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases for \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be deprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.5.1 - 2025-12-16\u003c/h1\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.5.0 - 2025-11-22\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.4.0 - 2025-11-08\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases\nfor \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be\ndeprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/8a0630ca1aa7f6d5665effe674ebe2022af17919\"\u003e\u003ccode\u003e8a0630c\u003c/code\u003e\u003c/a\u003e v4.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fcbc745744377ef2c9fe6a7e1a21c67d797933dc\"\u003e\u003ccode\u003efcbc745\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e from pre-commit/empty-setup-py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/51592eececd13b99c40ec477ad8f810799147227\"\u003e\u003ccode\u003e51592ee\u003c/code\u003e\u003c/a\u003e fix python local template when artifact dirs are present\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/67e8faf80baffcb4b79c31b89ca9a413a1cd6776\"\u003e\u003ccode\u003e67e8faf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3596\"\u003e#3596\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c251e6b6d011b3b262339dc8e109de29b0ff8db1\"\u003e\u003ccode\u003ec251e6b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/98ccafa3ce42b846b9a9be9ed73fbbec7415496d\"\u003e\u003ccode\u003e98ccafa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3593\"\u003e#3593\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/48953556d06f8cdb4248002c1a0044e69e0916b3\"\u003e\u003ccode\u003e4895355\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2cedd58e691f4d3bc6ab266c7d7c28464c3502be\"\u003e\u003ccode\u003e2cedd58\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3588\"\u003e#3588\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/465192d7de58d569776eaaa818c94cb2b962d436\"\u003e\u003ccode\u003e465192d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fd42f96874279c4f65363bfea5238714419e54d7\"\u003e\u003ccode\u003efd42f96\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3586\"\u003e#3586\u003c/a\u003e from pre-commit/zipapp-sha256-file-not-needed\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.3.0...v4.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.4.2 to 9.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13965\"\u003e#13965\u003c/a\u003e: Fixed quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/4492\"\u003e#4492\u003c/a\u003e: The API Reference now contains cross-reference-able documentation of \u003ccode\u003epytest's command-line flags \u0026lt;command-line-flags\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e9.0.1\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.1 (2025-11-12)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13895\"\u003e#13895\u003c/a\u003e: Restore support for skipping tests via \u003ccode\u003eraise unittest.SkipTest\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress plugin added in pytest 9.0 is now automatically disabled when iTerm2 is detected, it generated desktop notifications instead of the desired functionality.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the verbosity settings in the API reference from number to string.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13910\"\u003e#13910\u003c/a\u003e: Fixed \u003c!-- raw HTML omitted --\u003eUserWarning: Do not expect file_or_dir\u003c!-- raw HTML omitted --\u003e on some earlier Python 3.12 and 3.13 point versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePackaging updates and notes for downstreams\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13891\"\u003e#13891\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13942\"\u003e#13942\u003c/a\u003e: The CI/CD part of the release automation is now capable of\ncreating GitHub Releases without having a Git checkout on\ndisk -- by \u003ccode\u003ebluetech\u003c/code\u003e and \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/3d10b5148e03eb82b3ee29181dbdc73cf82699e2\"\u003e\u003ccode\u003e3d10b51\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/188750b725add8c3400eee6fbb6b80559c296d69\"\u003e\u003ccode\u003e188750b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14030\"\u003e#14030\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/1e4b01d1f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7d7bef90cb9a6db8ac1d3dd5b9ae0eb9abd6c58\"\u003e\u003ccode\u003eb7d7bef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14014\"\u003e#14014\u003c/a\u003e from bluetech/compat-note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bd08e85ac76614ff5ca9ae338aee8d8b06c8fae0\"\u003e\u003ccode\u003ebd08e85\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14013\"\u003e#14013\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/922b60377...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bc783862991241c442c9f9c068e51737ec15ea10\"\u003e\u003ccode\u003ebc78386\u003c/code\u003e\u003c/a\u003e Add CLI options reference documentation (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13930\"\u003e#13930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/5a4e398ce89bc23d2cf3fd98c042fdffb6fa8afa\"\u003e\u003ccode\u003e5a4e398\u003c/code\u003e\u003c/a\u003e Fix docs typo (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14005\"\u003e#14005\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14008\"\u003e#14008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/d7ae6df394398168bf9d926f803c26849c8f07ee\"\u003e\u003ccode\u003ed7ae6df\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14006\"\u003e#14006\u003c/a\u003e from pytest-dev/maintenance/update-plugin-list-tmpl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/556f6a22e12d13d1ffeceaf64424eb95d5e0fb87\"\u003e\u003ccode\u003e556f6a2\u003c/code\u003e\u003c/a\u003e pre-commit: fix rst-lint after new release (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13999\"\u003e#13999\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14001\"\u003e#14001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c60fbe63a26f64a42738e3f3527a8f79024fdf50\"\u003e\u003ccode\u003ec60fbe6\u003c/code\u003e\u003c/a\u003e Fix quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10 ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/73d9b011183d9a1c4a7007c1119d97a6e627788e\"\u003e\u003ccode\u003e73d9b01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13995\"\u003e#13995\u003c/a\u003e from nicoddemus/patchback/backports/9.0.x/1b5200c0f...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.4.2...9.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/TatanMP/PrimerNLP/pull/6","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/TatanMP%2FPrimerNLP/issues/6","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/6/packages"}},{"old_version":"8.4.2","new_version":"9.0.2","update_type":"major","path":null,"pr_created_at":"2025-12-22T19:22:12.000Z","version_change":"8.4.2 → 9.0.2","issue":{"uuid":"3754936775","node_id":"PR_kwDOQE992c66M9yt","number":5,"state":"closed","title":"⬆ Bump the python-packages group across 1 directory with 5 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-01-19T21:03:09.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-22T19:22:12.000Z","updated_at":"2026-01-19T21:03:10.000Z","time_to_close":2425257,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"⬆ Bump","group_name":"python-packages","update_count":5,"packages":[{"name":"fastparquet","old_version":"2024.11.0","new_version":"2025.12.0","repository_url":"https://github.com/dask/fastparquet"},{"name":"scikit-learn","old_version":"1.7.2","new_version":"1.8.0","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"watermark","old_version":"2.5.0","new_version":"2.6.0","repository_url":"https://github.com/rasbt/watermark"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"}],"path":null,"ecosystem":"conda"},"body":"Bumps the python-packages group with 5 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastparquet](https://github.com/dask/fastparquet) | `2024.11.0` | `2025.12.0` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.7.2` | `1.8.0` |\n| [watermark](https://github.com/rasbt/watermark) | `2.5.0` | `2.6.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.5.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.2` | `9.0.2` |\n\n\nUpdates `fastparquet` from 2024.11.0 to 2025.12.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/b94076c40095607f20be6a1aeb683569c0302027\"\u003e\u003ccode\u003eb94076c\u003c/code\u003e\u003c/a\u003e build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/7630de8795465c0b42610fadf736bd5441c38714\"\u003e\u003ccode\u003e7630de8\u003c/code\u003e\u003c/a\u003e build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/e4bd5e69b8bf3d5836948e13d2e0ce139060d9be\"\u003e\u003ccode\u003ee4bd5e6\u003c/code\u003e\u003c/a\u003e update wheel GHA versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/af08bab65df254e0483e8e66eb0b42b246d89fd3\"\u003e\u003ccode\u003eaf08bab\u003c/code\u003e\u003c/a\u003e changelog (\u003ca href=\"https://redirect.github.com/dask/fastparquet/issues/969\"\u003e#969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/f4524139b64322dff2822e18182cdf4f52b7a51a\"\u003e\u003ccode\u003ef452413\u003c/code\u003e\u003c/a\u003e Add CoC (\u003ca href=\"https://redirect.github.com/dask/fastparquet/issues/967\"\u003e#967\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/66b1044d1265c828298b605605e2f7070bc7897d\"\u003e\u003ccode\u003e66b1044\u003c/code\u003e\u003c/a\u003e CI: fix pandas build (\u003ca href=\"https://redirect.github.com/dask/fastparquet/issues/964\"\u003e#964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/e975b92a9c47253fac71e7fcec074331e26fc001\"\u003e\u003ccode\u003ee975b92\u003c/code\u003e\u003c/a\u003e Modernise cython (\u003ca href=\"https://redirect.github.com/dask/fastparquet/issues/966\"\u003e#966\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/83b3f1d22bfd2fd6345c07c7985fd9e4c4d8843f\"\u003e\u003ccode\u003e83b3f1d\u003c/code\u003e\u003c/a\u003e Test: makes tests fail on xpass (\u003ca href=\"https://redirect.github.com/dask/fastparquet/issues/965\"\u003e#965\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/230909717272c9e9257a4e321a66d071ece4ef4d\"\u003e\u003ccode\u003e2309097\u003c/code\u003e\u003c/a\u003e add goat link (\u003ca href=\"https://redirect.github.com/dask/fastparquet/issues/963\"\u003e#963\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/f34291409d359522578d7bf5ebd8bf0d10fa304b\"\u003e\u003ccode\u003ef342914\u003c/code\u003e\u003c/a\u003e Fix timestamp conversion factor (\u003ca href=\"https://redirect.github.com/dask/fastparquet/issues/960\"\u003e#960\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/dask/fastparquet/issues/961\"\u003e#961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/dask/fastparquet/compare/2024.11.0...2025.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `scikit-learn` from 1.7.2 to 1.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/scikit-learn/scikit-learn/releases\"\u003escikit-learn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 1.8.0\u003c/h2\u003e\n\u003cp\u003eWe're happy to announce the 1.8.0 release.\u003c/p\u003e\n\u003cp\u003eYou can read the release highlights under \u003ca href=\"https://scikit-learn.org/stable/auto_examples/release_highlights/plot_release_highlights_1_8_0.html\"\u003ehttps://scikit-learn.org/stable/auto_examples/release_highlights/plot_release_highlights_1_8_0.html\u003c/a\u003e and the long version of the change log under \u003ca href=\"https://scikit-learn.org/stable/whats_new/v1.8.html\"\u003ehttps://scikit-learn.org/stable/whats_new/v1.8.html\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis version supports Python versions 3.11 to 3.14 and features support of free-threaded CPython.\u003c/p\u003e\n\u003cp\u003eYou can upgrade with pip as usual:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epip install -U scikit-learn\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThe conda-forge builds can be installed using:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge scikit-learn\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/646da0f072a8afef6a980aa427a710311e67eb9d\"\u003e\u003ccode\u003e646da0f\u003c/code\u003e\u003c/a\u003e [cd build]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/4f4f2831de348859efc5d8298cbf37e212a1efac\"\u003e\u003ccode\u003e4f4f283\u003c/code\u003e\u003c/a\u003e Generate changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/967dcde6dae92a6f9eafa804b5d93e8fdfd08f26\"\u003e\u003ccode\u003e967dcde\u003c/code\u003e\u003c/a\u003e Set version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/cb1424bf0d548d6fa9fdef2f91bb00636f484f10\"\u003e\u003ccode\u003ecb1424b\u003c/code\u003e\u003c/a\u003e DOC Release highlights for 1.8 (\u003ca href=\"https://redirect.github.com/scikit-learn/scikit-learn/issues/32809\"\u003e#32809\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/5645b27b985486d6b75bb75e4929faa4da574173\"\u003e\u003ccode\u003e5645b27\u003c/code\u003e\u003c/a\u003e :lock: :robot: CI Update lock files for main CI build(s) :lock: :robot: (\u003ca href=\"https://redirect.github.com/scikit-learn/scikit-learn/issues/32859\"\u003e#32859\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/6b9fb1189957962cd0e4988d137af312ad09008f\"\u003e\u003ccode\u003e6b9fb11\u003c/code\u003e\u003c/a\u003e :lock: :robot: CI Update lock files for free-threaded CI build(s) :lock: :rob...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/a0f6d88d05d52594785455b570ed142c912568e7\"\u003e\u003ccode\u003ea0f6d88\u003c/code\u003e\u003c/a\u003e :lock: :robot: CI Update lock files for array-api CI build(s) :lock: :robot: ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/c1de8fc595fce930c5ce1792faeab8d80a4fecc2\"\u003e\u003ccode\u003ec1de8fc\u003c/code\u003e\u003c/a\u003e FIX Make \u003ccode\u003eget_namespace\u003c/code\u003e handle pandas dataframe input (\u003ca href=\"https://redirect.github.com/scikit-learn/scikit-learn/issues/32838\"\u003e#32838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/764249a255ba4110685a772836f06477c40cf8a3\"\u003e\u003ccode\u003e764249a\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e_safe_indexing\u003c/code\u003e with non integer arrays on array API inputs (\u003ca href=\"https://redirect.github.com/scikit-learn/scikit-learn/issues/32840\"\u003e#32840\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/eca5e0ab2a16844c57fff675c2d017af2d8a570b\"\u003e\u003ccode\u003eeca5e0a\u003c/code\u003e\u003c/a\u003e FIX Add new default max_samples=None in Bagging estimators (\u003ca href=\"https://redirect.github.com/scikit-learn/scikit-learn/issues/32825\"\u003e#32825\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/scikit-learn/scikit-learn/compare/1.7.2...1.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `watermark` from 2.5.0 to 2.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rasbt/watermark/releases\"\u003ewatermark's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.6.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdds a new \u003ccode\u003e--check_jupyter\u003c/code\u003e flag to report which notebook environment is used (e.g., Colab, Jupyter Notebook, JupyterLab, VS Code). (\u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/99\"\u003e#102\u003c/a\u003e, contributed by \u003ca href=\"https://github.com/mariam851\"\u003eMariam Zakaria\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdds a new \u003ccode\u003e--check_latest\u003c/code\u003e flag to check whether newer package versions are available. (\u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/99\"\u003e#102\u003c/a\u003e, contributed by \u003ca href=\"https://github.com/mariam851\"\u003eMariam Zakaria\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdds a new \u003ccode\u003e--python_installation\u003c/code\u003e flag to provide information about how Python was installed. (\u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/99\"\u003e#102\u003c/a\u003e, contributed by \u003ca href=\"https://github.com/mariam851\"\u003eMariam Zakaria\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeat check latest 87 by \u003ca href=\"https://github.com/mariam851\"\u003e\u003ccode\u003e@​mariam851\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/110\"\u003erasbt/watermark#110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Add --filename (-fn) option to display notebook path. Closes \u003ca href=\"https://redirect.github.com/rasbt/watermark/issues/25\"\u003e#25\u003c/a\u003e by \u003ca href=\"https://github.com/mariam851\"\u003e\u003ccode\u003e@​mariam851\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/103\"\u003erasbt/watermark#103\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix KeyError in version lookup and implement fallback  by \u003ca href=\"https://github.com/mariam851\"\u003e\u003ccode\u003e@​mariam851\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/106\"\u003erasbt/watermark#106\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix timezone space 73 by \u003ca href=\"https://github.com/mariam851\"\u003e\u003ccode\u003e@​mariam851\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/107\"\u003erasbt/watermark#107\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat jupyter env 93 by \u003ca href=\"https://github.com/mariam851\"\u003e\u003ccode\u003e@​mariam851\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/108\"\u003erasbt/watermark#108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat python install 89 by \u003ca href=\"https://github.com/mariam851\"\u003e\u003ccode\u003e@​mariam851\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/109\"\u003erasbt/watermark#109\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/mariam851\"\u003e\u003ccode\u003e@​mariam851\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/110\"\u003erasbt/watermark#110\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rasbt/watermark/compare/v2.5.1...v2.6.0\"\u003ehttps://github.com/rasbt/watermark/compare/v2.5.1...v2.6.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.5.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efixed typo by \u003ca href=\"https://github.com/d-kleine\"\u003e\u003ccode\u003e@​d-kleine\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/96\"\u003erasbt/watermark#96\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump version to 2.5.1.dev by \u003ca href=\"https://github.com/rasbt\"\u003e\u003ccode\u003e@​rasbt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/97\"\u003erasbt/watermark#97\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump to 2.5.1.dev1 for build testing by \u003ca href=\"https://github.com/rasbt\"\u003e\u003ccode\u003e@​rasbt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/98\"\u003erasbt/watermark#98\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixed -d and -t flags by \u003ca href=\"https://github.com/d-kleine\"\u003e\u003ccode\u003e@​d-kleine\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/99\"\u003erasbt/watermark#99\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eList imported packages in alphabetical order. by \u003ca href=\"https://github.com/vlulla\"\u003e\u003ccode\u003e@​vlulla\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/102\"\u003erasbt/watermark#102\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd auto deployment workflow by \u003ca href=\"https://github.com/rasbt\"\u003e\u003ccode\u003e@​rasbt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/105\"\u003erasbt/watermark#105\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/vlulla\"\u003e\u003ccode\u003e@​vlulla\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/102\"\u003erasbt/watermark#102\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rasbt/watermark/compare/v2.5.0...v2.5.1\"\u003ehttps://github.com/rasbt/watermark/compare/v2.5.0...v2.5.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rasbt/watermark/commit/b857ecf279a350dc6b6f96de2d5d3073b063b32d\"\u003e\u003ccode\u003eb857ecf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rasbt/watermark/issues/110\"\u003e#110\u003c/a\u003e from mariam851/feat-check-latest-87\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rasbt/watermark/commit/2691f7f2295e9f4b351acaa86616bcb57977ad30\"\u003e\u003ccode\u003e2691f7f\u003c/code\u003e\u003c/a\u003e improvements and docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rasbt/watermark/commit/972c9736e7ecfea40d23d58e0732e0371848479c\"\u003e\u003ccode\u003e972c973\u003c/code\u003e\u003c/a\u003e Feat \u003ca href=\"https://redirect.github.com/rasbt/watermark/issues/87\"\u003e#87\u003c/a\u003e: Add --check_latest flag to check package updates via PyPI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rasbt/watermark/commit/8ad19fc154a0e3cafe20e0c682531b4dec715993\"\u003e\u003ccode\u003e8ad19fc\u003c/code\u003e\u003c/a\u003e Feat \u003ca href=\"https://redirect.github.com/rasbt/watermark/issues/89\"\u003e#89\u003c/a\u003e: Add --python_installation flag\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rasbt/watermark/commit/a4e8c123678898a90480cee23b0f377e88233fd5\"\u003e\u003ccode\u003ea4e8c12\u003c/code\u003e\u003c/a\u003e Feat \u003ca href=\"https://redirect.github.com/rasbt/watermark/issues/93\"\u003e#93\u003c/a\u003e: Add --jupyter_env flag to detect environment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rasbt/watermark/commit/0b4948416de7fcc534c83ce7ff6053a6cab600ca\"\u003e\u003ccode\u003e0b49484\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/rasbt/watermark/issues/73\"\u003e#73\u003c/a\u003e: Add space before timezone and update date format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rasbt/watermark/commit/a19ec2a5320cb9d59c7029c557b97da3b2b83a91\"\u003e\u003ccode\u003ea19ec2a\u003c/code\u003e\u003c/a\u003e Fix KeyError in version lookup and implement fallback (\u003ca href=\"https://redirect.github.com/rasbt/watermark/issues/100\"\u003e#100\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rasbt/watermark/commit/3ec302e077c533844e094040bad6a07669026c64\"\u003e\u003ccode\u003e3ec302e\u003c/code\u003e\u003c/a\u003e Update publish workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rasbt/watermark/commit/e7567da961065076e9fa56476ac4f22b483f83cf\"\u003e\u003ccode\u003ee7567da\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rasbt/watermark/issues/105\"\u003e#105\u003c/a\u003e from rasbt/autodeploy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rasbt/watermark/commit/9a3d0c4dc53170e9d6f5983adf340177b1ce6154\"\u003e\u003ccode\u003e9a3d0c4\u003c/code\u003e\u003c/a\u003e update\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rasbt/watermark/compare/v2.5.0...v2.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit` from 4.3.0 to 4.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.5.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.5.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.4.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases for \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be deprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.5.1 - 2025-12-16\u003c/h1\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.5.0 - 2025-11-22\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.4.0 - 2025-11-08\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases\nfor \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be\ndeprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/8a0630ca1aa7f6d5665effe674ebe2022af17919\"\u003e\u003ccode\u003e8a0630c\u003c/code\u003e\u003c/a\u003e v4.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fcbc745744377ef2c9fe6a7e1a21c67d797933dc\"\u003e\u003ccode\u003efcbc745\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e from pre-commit/empty-setup-py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/51592eececd13b99c40ec477ad8f810799147227\"\u003e\u003ccode\u003e51592ee\u003c/code\u003e\u003c/a\u003e fix python local template when artifact dirs are present\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/67e8faf80baffcb4b79c31b89ca9a413a1cd6776\"\u003e\u003ccode\u003e67e8faf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3596\"\u003e#3596\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c251e6b6d011b3b262339dc8e109de29b0ff8db1\"\u003e\u003ccode\u003ec251e6b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/98ccafa3ce42b846b9a9be9ed73fbbec7415496d\"\u003e\u003ccode\u003e98ccafa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3593\"\u003e#3593\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/48953556d06f8cdb4248002c1a0044e69e0916b3\"\u003e\u003ccode\u003e4895355\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2cedd58e691f4d3bc6ab266c7d7c28464c3502be\"\u003e\u003ccode\u003e2cedd58\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3588\"\u003e#3588\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/465192d7de58d569776eaaa818c94cb2b962d436\"\u003e\u003ccode\u003e465192d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fd42f96874279c4f65363bfea5238714419e54d7\"\u003e\u003ccode\u003efd42f96\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3586\"\u003e#3586\u003c/a\u003e from pre-commit/zipapp-sha256-file-not-needed\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.3.0...v4.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.4.2 to 9.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13965\"\u003e#13965\u003c/a\u003e: Fixed quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/4492\"\u003e#4492\u003c/a\u003e: The API Reference now contains cross-reference-able documentation of \u003ccode\u003epytest's command-line flags \u0026lt;command-line-flags\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e9.0.1\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.1 (2025-11-12)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13895\"\u003e#13895\u003c/a\u003e: Restore support for skipping tests via \u003ccode\u003eraise unittest.SkipTest\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress plugin added in pytest 9.0 is now automatically disabled when iTerm2 is detected, it generated desktop notifications instead of the desired functionality.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the verbosity settings in the API reference from number to string.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13910\"\u003e#13910\u003c/a\u003e: Fixed \u003c!-- raw HTML omitted --\u003eUserWarning: Do not expect file_or_dir\u003c!-- raw HTML omitted --\u003e on some earlier Python 3.12 and 3.13 point versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePackaging updates and notes for downstreams\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13891\"\u003e#13891\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13942\"\u003e#13942\u003c/a\u003e: The CI/CD part of the release automation is now capable of\ncreating GitHub Releases without having a Git checkout on\ndisk -- by \u003ccode\u003ebluetech\u003c/code\u003e and \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/3d10b5148e03eb82b3ee29181dbdc73cf82699e2\"\u003e\u003ccode\u003e3d10b51\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/188750b725add8c3400eee6fbb6b80559c296d69\"\u003e\u003ccode\u003e188750b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14030\"\u003e#14030\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/1e4b01d1f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7d7bef90cb9a6db8ac1d3dd5b9ae0eb9abd6c58\"\u003e\u003ccode\u003eb7d7bef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14014\"\u003e#14014\u003c/a\u003e from bluetech/compat-note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bd08e85ac76614ff5ca9ae338aee8d8b06c8fae0\"\u003e\u003ccode\u003ebd08e85\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14013\"\u003e#14013\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/922b60377...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bc783862991241c442c9f9c068e51737ec15ea10\"\u003e\u003ccode\u003ebc78386\u003c/code\u003e\u003c/a\u003e Add CLI options reference documentation (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13930\"\u003e#13930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/5a4e398ce89bc23d2cf3fd98c042fdffb6fa8afa\"\u003e\u003ccode\u003e5a4e398\u003c/code\u003e\u003c/a\u003e Fix docs typo (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14005\"\u003e#14005\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14008\"\u003e#14008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/d7ae6df394398168bf9d926f803c26849c8f07ee\"\u003e\u003ccode\u003ed7ae6df\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14006\"\u003e#14006\u003c/a\u003e from pytest-dev/maintenance/update-plugin-list-tmpl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/556f6a22e12d13d1ffeceaf64424eb95d5e0fb87\"\u003e\u003ccode\u003e556f6a2\u003c/code\u003e\u003c/a\u003e pre-commit: fix rst-lint after new release (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13999\"\u003e#13999\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14001\"\u003e#14001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c60fbe63a26f64a42738e3f3527a8f79024fdf50\"\u003e\u003ccode\u003ec60fbe6\u003c/code\u003e\u003c/a\u003e Fix quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10 ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/73d9b011183d9a1c4a7007c1119d97a6e627788e\"\u003e\u003ccode\u003e73d9b01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13995\"\u003e#13995\u003c/a\u003e from nicoddemus/patchback/backports/9.0.x/1b5200c0f...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.4.2...9.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/anasperezhoyos/nlp-upb_ana_sofia/pull/5","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/anasperezhoyos%2Fnlp-upb_ana_sofia/issues/5","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/5/packages"}},{"old_version":"8.4.2","new_version":"9.0.2","update_type":"major","path":null,"pr_created_at":"2025-12-22T16:26:37.000Z","version_change":"8.4.2 → 9.0.2","issue":{"uuid":"3754395150","node_id":"PR_kwDOQE961866LJOG","number":6,"state":"open","title":"⬆ Bump the python-packages group across 1 directory with 7 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-12-22T16:26:37.000Z","updated_at":"2025-12-22T16:26:38.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"⬆ Bump","group_name":"python-packages","update_count":7,"packages":[{"name":"fastparquet","old_version":"2024.11.0","new_version":"2025.12.0","repository_url":"https://github.com/dask/fastparquet"},{"name":"numpy","old_version":"2.3.4","new_version":"2.4.0","repository_url":"https://github.com/numpy/numpy"},{"name":"regex","old_version":"2025.10.23","new_version":"2025.11.3","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"scikit-learn","old_version":"1.7.2","new_version":"1.8.0","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"watermark","old_version":"2.5.0","new_version":"2.6.0","repository_url":"https://github.com/rasbt/watermark"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"}],"path":null,"ecosystem":"conda"},"body":"Bumps the python-packages group with 7 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastparquet](https://github.com/dask/fastparquet) | `2024.11.0` | `2025.12.0` |\n| [numpy](https://github.com/numpy/numpy) | `2.3.4` | `2.4.0` |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2025.10.23` | `2025.11.3` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.7.2` | `1.8.0` |\n| [watermark](https://github.com/rasbt/watermark) | `2.5.0` | `2.6.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.5.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.2` | `9.0.2` |\n\n\nUpdates `fastparquet` from 2024.11.0 to 2025.12.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/b94076c40095607f20be6a1aeb683569c0302027\"\u003e\u003ccode\u003eb94076c\u003c/code\u003e\u003c/a\u003e build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/7630de8795465c0b42610fadf736bd5441c38714\"\u003e\u003ccode\u003e7630de8\u003c/code\u003e\u003c/a\u003e build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/e4bd5e69b8bf3d5836948e13d2e0ce139060d9be\"\u003e\u003ccode\u003ee4bd5e6\u003c/code\u003e\u003c/a\u003e update wheel GHA versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/af08bab65df254e0483e8e66eb0b42b246d89fd3\"\u003e\u003ccode\u003eaf08bab\u003c/code\u003e\u003c/a\u003e changelog (\u003ca href=\"https://redirect.github.com/dask/fastparquet/issues/969\"\u003e#969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/f4524139b64322dff2822e18182cdf4f52b7a51a\"\u003e\u003ccode\u003ef452413\u003c/code\u003e\u003c/a\u003e Add CoC (\u003ca href=\"https://redirect.github.com/dask/fastparquet/issues/967\"\u003e#967\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/66b1044d1265c828298b605605e2f7070bc7897d\"\u003e\u003ccode\u003e66b1044\u003c/code\u003e\u003c/a\u003e CI: fix pandas build (\u003ca href=\"https://redirect.github.com/dask/fastparquet/issues/964\"\u003e#964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/e975b92a9c47253fac71e7fcec074331e26fc001\"\u003e\u003ccode\u003ee975b92\u003c/code\u003e\u003c/a\u003e Modernise cython (\u003ca href=\"https://redirect.github.com/dask/fastparquet/issues/966\"\u003e#966\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/83b3f1d22bfd2fd6345c07c7985fd9e4c4d8843f\"\u003e\u003ccode\u003e83b3f1d\u003c/code\u003e\u003c/a\u003e Test: makes tests fail on xpass (\u003ca href=\"https://redirect.github.com/dask/fastparquet/issues/965\"\u003e#965\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/230909717272c9e9257a4e321a66d071ece4ef4d\"\u003e\u003ccode\u003e2309097\u003c/code\u003e\u003c/a\u003e add goat link (\u003ca href=\"https://redirect.github.com/dask/fastparquet/issues/963\"\u003e#963\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dask/fastparquet/commit/f34291409d359522578d7bf5ebd8bf0d10fa304b\"\u003e\u003ccode\u003ef342914\u003c/code\u003e\u003c/a\u003e Fix timestamp conversion factor (\u003ca href=\"https://redirect.github.com/dask/fastparquet/issues/960\"\u003e#960\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/dask/fastparquet/issues/961\"\u003e#961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/dask/fastparquet/compare/2024.11.0...2025.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `numpy` from 2.3.4 to 2.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/numpy/numpy/releases\"\u003enumpy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.0 (Dec 20, 2025)\u003c/h2\u003e\n\u003ch1\u003eNumPy 2.4.0 Release Notes\u003c/h1\u003e\n\u003cp\u003eThe NumPy 2.4.0 release continues the work to improve free threaded Python\nsupport, user dtypes implementation, and annotations. There are many expired\ndeprecations and bug fixes as well.\u003c/p\u003e\n\u003cp\u003eThis release supports Python versions 3.11-3.14\u003c/p\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cp\u003eApart from annotations and \u003ccode\u003esame_value\u003c/code\u003e kwarg, the 2.4 highlights are mostly\nof interest to downstream developers. They should help in implementing new user\ndtypes.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMany annotation improvements. In particular, runtime signature introspection.\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003ecasting\u003c/code\u003e kwarg \u003ccode\u003e'same_value'\u003c/code\u003e for casting by value.\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003ePyUFunc_AddLoopsFromSpec\u003c/code\u003e function that can be used to add user sort\nloops using the \u003ccode\u003eArrayMethod\u003c/code\u003e API.\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003e__numpy_dtype__\u003c/code\u003e protocol.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations\u003c/h2\u003e\n\u003ch3\u003eSetting the \u003ccode\u003estrides\u003c/code\u003e attribute is deprecated\u003c/h3\u003e\n\u003cp\u003eSetting the strides attribute is now deprecated since mutating\nan array is unsafe if an array is shared, especially by multiple\nthreads. As an alternative, you can create a new view (no copy) via:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003enp.lib.stride_tricks.strided_window_view\u003c/code\u003e if applicable,\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003enp.lib.stride_tricks.as_strided\u003c/code\u003e for the general case,\u003c/li\u003e\n\u003cli\u003eor the \u003ccode\u003enp.ndarray\u003c/code\u003e constructor (\u003ccode\u003ebuffer\u003c/code\u003e is the original array) for a\nlight-weight version.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e(\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/28925\"\u003egh-28925\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003ePositional \u003ccode\u003eout\u003c/code\u003e argument to \u003ccode\u003enp.maximum\u003c/code\u003e, \u003ccode\u003enp.minimum\u003c/code\u003e is deprecated\u003c/h3\u003e\n\u003cp\u003ePassing the output array \u003ccode\u003eout\u003c/code\u003e positionally to \u003ccode\u003enumpy.maximum\u003c/code\u003e and\n\u003ccode\u003enumpy.minimum\u003c/code\u003e is deprecated. For example, \u003ccode\u003enp.maximum(a, b, c)\u003c/code\u003e will emit\na deprecation warning, since \u003ccode\u003ec\u003c/code\u003e is treated as the output buffer rather than\na third input.\u003c/p\u003e\n\u003cp\u003eAlways pass the output with the keyword form, e.g. \u003ccode\u003enp.maximum(a, b, out=c)\u003c/code\u003e.\nThis makes intent clear and simplifies type annotations.\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/29052\"\u003egh-29052\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003e\u003ccode\u003ealign=\u003c/code\u003e must be passed as boolean to \u003ccode\u003enp.dtype()\u003c/code\u003e\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/numpy/numpy/blob/main/doc/RELEASE_WALKTHROUGH.rst\"\u003enumpy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eUpdate 2.4.0 milestones\u003c/h2\u003e\n\u003cp\u003eLook at the issues/prs with 2.4.0 milestones and either push them off to a\nlater version, or maybe remove the milestone. You may need to add a milestone.\u003c/p\u003e\n\u003ch2\u003eCheck the numpy-release repo\u003c/h2\u003e\n\u003cp\u003eThe things to check are the \u003ccode\u003ecibuildwheel\u003c/code\u003e version in\n\u003ccode\u003e.github/workflows/wheels.yml\u003c/code\u003e and the \u003ccode\u003eopenblas\u003c/code\u003e versions in\n\u003ccode\u003eopenblas_requirements.txt\u003c/code\u003e.\u003c/p\u003e\n\u003ch1\u003eMake a release PR\u003c/h1\u003e\n\u003cp\u003eFour documents usually need to be updated or created for the release PR:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe changelog\u003c/li\u003e\n\u003cli\u003eThe release notes\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003e.mailmap\u003c/code\u003e file\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003epyproject.toml\u003c/code\u003e file\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThese changes should be made in an ordinary PR against the maintenance branch.\nOther small, miscellaneous fixes may be part of this PR. The commit message\nmight be something like::\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eREL: Prepare for the NumPy 2.4.0 release\n\u003cul\u003e\n\u003cli\u003eCreate 2.4.0-changelog.rst.\u003c/li\u003e\n\u003cli\u003eUpdate 2.4.0-notes.rst.\u003c/li\u003e\n\u003cli\u003eUpdate .mailmap.\u003c/li\u003e\n\u003cli\u003eUpdate pyproject.toml\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSet the release version\u003c/h2\u003e\n\u003cp\u003eCheck the \u003ccode\u003epyproject.toml\u003c/code\u003e file and set the release version and update the\nclassifier if needed::\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e$ gvim pyproject.toml\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003eCheck the \u003ccode\u003edoc/source/release.rst\u003c/code\u003e file\u003c/h2\u003e\n\u003cp\u003emake sure that the release notes have an entry in the \u003ccode\u003erelease.rst\u003c/code\u003e file::\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/numpy/numpy/commit/c5ab79c14c98bfda1e60770ffa23a6130f8267b7\"\u003e\u003ccode\u003ec5ab79c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30487\"\u003e#30487\u003c/a\u003e from charris/prepare-2.4.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/05e379a9c925dbeca59851b881c64ba098c5abab\"\u003e\u003ccode\u003e05e379a\u003c/code\u003e\u003c/a\u003e REL: Prepare for the NumPy 2.4.0 release (2)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/485f1c40703f1c43be708be4c7b7a21b10d90337\"\u003e\u003ccode\u003e485f1c4\u003c/code\u003e\u003c/a\u003e REL: Prepare for the NumPy 2.4.0 release (1) (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30486\"\u003e#30486\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/c683481c9bace3c6a3ba487f50b34539832377a8\"\u003e\u003ccode\u003ec683481\u003c/code\u003e\u003c/a\u003e REL: Prepare for the NumPy 2.4.0 release (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30439\"\u003e#30439\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/11d9ed27e07637aa92b8d43bf2ad380a2b8c5c01\"\u003e\u003ccode\u003e11d9ed2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30459\"\u003e#30459\u003c/a\u003e from charris/backport-30456\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/2a17ddb25580f20f27c76327733449434c302032\"\u003e\u003ccode\u003e2a17ddb\u003c/code\u003e\u003c/a\u003e TYP: restore \u003ccode\u003egeneric.__hash__\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30456\"\u003e#30456\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/d04a4293bf8c8345f072891433ddb8c483785a6b\"\u003e\u003ccode\u003ed04a429\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30432\"\u003e#30432\u003c/a\u003e from charris/backport-30426\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/f94a148bc07fd167275f167995edce57b4f0b8c5\"\u003e\u003ccode\u003ef94a148\u003c/code\u003e\u003c/a\u003e fix more data races in mtrand.pyx (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30426\"\u003e#30426\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/06a9d4219291f5a15eed54de9314f72b74c41aed\"\u003e\u003ccode\u003e06a9d42\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30420\"\u003e#30420\u003c/a\u003e from charris/backport-30418\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/30819cd952a4a92852d619b5dd720c63fbcab6bd\"\u003e\u003ccode\u003e30819cd\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30419\"\u003e#30419\u003c/a\u003e from charris/backport-30373\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/numpy/numpy/compare/v2.3.4...v2.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `regex` from 2025.10.23 to 2025.11.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mrabarnett/mrab-regex/blob/hg/changelog.txt\"\u003eregex's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eVersion: 2025.11.3\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eGit issue 594: Support relative PARNO in recursive subpatterns\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2025.10.23\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e'setup.py' was missing from the source distribution.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2025.10.22\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed test in main.yml.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2025.10.21\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eMoved tests into subfolder.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2025.10.20\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eRe-organised files.\n\u003cp\u003eUpdated to Unicode 17.0.0.\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eVersion: 2025.9.20\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eEnable free-threading support in cibuildwheel in another place.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2025.9.19\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eEnable free-threading support in cibuildwheel.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2025.9.18\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eGit issue 565: Support the free-threaded build of CPython 3.13\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2025.9.1\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eGit PR 585: Fix AttributeError: 'AnyAll' object has no attribute '_key'\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2025.8.29\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eGit issue 584: AttributeError: 'AnyAll' object has no attribute 'positive'\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2025.7.34\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eGit issue 575: Issues with ASCII/Unicode modifiers\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2025.7.33\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eUpdated main.yml and pyproject.toml.\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/b01d6e7349f1f754f9576e85aa19575acff0c839\"\u003e\u003ccode\u003eb01d6e7\u003c/code\u003e\u003c/a\u003e Git issue 594: Support relative PARNO in recursive subpatterns\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/dd256cd36e6d7da215bb82be8e9b6e846e1140e5\"\u003e\u003ccode\u003edd256cd\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/mrabarnett/mrab-regex/issues/591\"\u003e#591\u003c/a\u003e from foosel/ci-tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/1b2ca8c31d8d256f398576ddd3b8c27033d72a63\"\u003e\u003ccode\u003e1b2ca8c\u003c/code\u003e\u003c/a\u003e ci: run tests against sdist\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/609733abe4d957b02406eeec59240850b03ff34d\"\u003e\u003ccode\u003e609733a\u003c/code\u003e\u003c/a\u003e ci: only release if the tests are green\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/fa08ff1ed46ffeb7e618a7def415ddf89d888112\"\u003e\u003ccode\u003efa08ff1\u003c/code\u003e\u003c/a\u003e ci: make sure to always run tests against full matrix\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2025.10.23...2025.11.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `scikit-learn` from 1.7.2 to 1.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/scikit-learn/scikit-learn/releases\"\u003escikit-learn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 1.8.0\u003c/h2\u003e\n\u003cp\u003eWe're happy to announce the 1.8.0 release.\u003c/p\u003e\n\u003cp\u003eYou can read the release highlights under \u003ca href=\"https://scikit-learn.org/stable/auto_examples/release_highlights/plot_release_highlights_1_8_0.html\"\u003ehttps://scikit-learn.org/stable/auto_examples/release_highlights/plot_release_highlights_1_8_0.html\u003c/a\u003e and the long version of the change log under \u003ca href=\"https://scikit-learn.org/stable/whats_new/v1.8.html\"\u003ehttps://scikit-learn.org/stable/whats_new/v1.8.html\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis version supports Python versions 3.11 to 3.14 and features support of free-threaded CPython.\u003c/p\u003e\n\u003cp\u003eYou can upgrade with pip as usual:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epip install -U scikit-learn\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThe conda-forge builds can be installed using:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge scikit-learn\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/646da0f072a8afef6a980aa427a710311e67eb9d\"\u003e\u003ccode\u003e646da0f\u003c/code\u003e\u003c/a\u003e [cd build]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/4f4f2831de348859efc5d8298cbf37e212a1efac\"\u003e\u003ccode\u003e4f4f283\u003c/code\u003e\u003c/a\u003e Generate changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/967dcde6dae92a6f9eafa804b5d93e8fdfd08f26\"\u003e\u003ccode\u003e967dcde\u003c/code\u003e\u003c/a\u003e Set version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/cb1424bf0d548d6fa9fdef2f91bb00636f484f10\"\u003e\u003ccode\u003ecb1424b\u003c/code\u003e\u003c/a\u003e DOC Release highlights for 1.8 (\u003ca href=\"https://redirect.github.com/scikit-learn/scikit-learn/issues/32809\"\u003e#32809\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/5645b27b985486d6b75bb75e4929faa4da574173\"\u003e\u003ccode\u003e5645b27\u003c/code\u003e\u003c/a\u003e :lock: :robot: CI Update lock files for main CI build(s) :lock: :robot: (\u003ca href=\"https://redirect.github.com/scikit-learn/scikit-learn/issues/32859\"\u003e#32859\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/6b9fb1189957962cd0e4988d137af312ad09008f\"\u003e\u003ccode\u003e6b9fb11\u003c/code\u003e\u003c/a\u003e :lock: :robot: CI Update lock files for free-threaded CI build(s) :lock: :rob...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/a0f6d88d05d52594785455b570ed142c912568e7\"\u003e\u003ccode\u003ea0f6d88\u003c/code\u003e\u003c/a\u003e :lock: :robot: CI Update lock files for array-api CI build(s) :lock: :robot: ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/c1de8fc595fce930c5ce1792faeab8d80a4fecc2\"\u003e\u003ccode\u003ec1de8fc\u003c/code\u003e\u003c/a\u003e FIX Make \u003ccode\u003eget_namespace\u003c/code\u003e handle pandas dataframe input (\u003ca href=\"https://redirect.github.com/scikit-learn/scikit-learn/issues/32838\"\u003e#32838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/764249a255ba4110685a772836f06477c40cf8a3\"\u003e\u003ccode\u003e764249a\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e_safe_indexing\u003c/code\u003e with non integer arrays on array API inputs (\u003ca href=\"https://redirect.github.com/scikit-learn/scikit-learn/issues/32840\"\u003e#32840\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-learn/scikit-learn/commit/eca5e0ab2a16844c57fff675c2d017af2d8a570b\"\u003e\u003ccode\u003eeca5e0a\u003c/code\u003e\u003c/a\u003e FIX Add new default max_samples=None in Bagging estimators (\u003ca href=\"https://redirect.github.com/scikit-learn/scikit-learn/issues/32825\"\u003e#32825\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/scikit-learn/scikit-learn/compare/1.7.2...1.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `watermark` from 2.5.0 to 2.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rasbt/watermark/releases\"\u003ewatermark's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.6.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdds a new \u003ccode\u003e--check_jupyter\u003c/code\u003e flag to report which notebook environment is used (e.g., Colab, Jupyter Notebook, JupyterLab, VS Code). (\u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/99\"\u003e#102\u003c/a\u003e, contributed by \u003ca href=\"https://github.com/mariam851\"\u003eMariam Zakaria\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdds a new \u003ccode\u003e--check_latest\u003c/code\u003e flag to check whether newer package versions are available. (\u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/99\"\u003e#102\u003c/a\u003e, contributed by \u003ca href=\"https://github.com/mariam851\"\u003eMariam Zakaria\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdds a new \u003ccode\u003e--python_installation\u003c/code\u003e flag to provide information about how Python was installed. (\u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/99\"\u003e#102\u003c/a\u003e, contributed by \u003ca href=\"https://github.com/mariam851\"\u003eMariam Zakaria\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeat check latest 87 by \u003ca href=\"https://github.com/mariam851\"\u003e\u003ccode\u003e@​mariam851\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/110\"\u003erasbt/watermark#110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Add --filename (-fn) option to display notebook path. Closes \u003ca href=\"https://redirect.github.com/rasbt/watermark/issues/25\"\u003e#25\u003c/a\u003e by \u003ca href=\"https://github.com/mariam851\"\u003e\u003ccode\u003e@​mariam851\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/103\"\u003erasbt/watermark#103\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix KeyError in version lookup and implement fallback  by \u003ca href=\"https://github.com/mariam851\"\u003e\u003ccode\u003e@​mariam851\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/106\"\u003erasbt/watermark#106\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix timezone space 73 by \u003ca href=\"https://github.com/mariam851\"\u003e\u003ccode\u003e@​mariam851\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/107\"\u003erasbt/watermark#107\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat jupyter env 93 by \u003ca href=\"https://github.com/mariam851\"\u003e\u003ccode\u003e@​mariam851\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/108\"\u003erasbt/watermark#108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat python install 89 by \u003ca href=\"https://github.com/mariam851\"\u003e\u003ccode\u003e@​mariam851\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/109\"\u003erasbt/watermark#109\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/mariam851\"\u003e\u003ccode\u003e@​mariam851\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/110\"\u003erasbt/watermark#110\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rasbt/watermark/compare/v2.5.1...v2.6.0\"\u003ehttps://github.com/rasbt/watermark/compare/v2.5.1...v2.6.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.5.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efixed typo by \u003ca href=\"https://github.com/d-kleine\"\u003e\u003ccode\u003e@​d-kleine\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/96\"\u003erasbt/watermark#96\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump version to 2.5.1.dev by \u003ca href=\"https://github.com/rasbt\"\u003e\u003ccode\u003e@​rasbt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/97\"\u003erasbt/watermark#97\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump to 2.5.1.dev1 for build testing by \u003ca href=\"https://github.com/rasbt\"\u003e\u003ccode\u003e@​rasbt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/98\"\u003erasbt/watermark#98\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixed -d and -t flags by \u003ca href=\"https://github.com/d-kleine\"\u003e\u003ccode\u003e@​d-kleine\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/99\"\u003erasbt/watermark#99\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eList imported packages in alphabetical order. by \u003ca href=\"https://github.com/vlulla\"\u003e\u003ccode\u003e@​vlulla\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/102\"\u003erasbt/watermark#102\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd auto deployment workflow by \u003ca href=\"https://github.com/rasbt\"\u003e\u003ccode\u003e@​rasbt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/105\"\u003erasbt/watermark#105\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/vlulla\"\u003e\u003ccode\u003e@​vlulla\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rasbt/watermark/pull/102\"\u003erasbt/watermark#102\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rasbt/watermark/compare/v2.5.0...v2.5.1\"\u003ehttps://github.com/rasbt/watermark/compare/v2.5.0...v2.5.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rasbt/watermark/commit/b857ecf279a350dc6b6f96de2d5d3073b063b32d\"\u003e\u003ccode\u003eb857ecf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rasbt/watermark/issues/110\"\u003e#110\u003c/a\u003e from mariam851/feat-check-latest-87\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rasbt/watermark/commit/2691f7f2295e9f4b351acaa86616bcb57977ad30\"\u003e\u003ccode\u003e2691f7f\u003c/code\u003e\u003c/a\u003e improvements and docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rasbt/watermark/commit/972c9736e7ecfea40d23d58e0732e0371848479c\"\u003e\u003ccode\u003e972c973\u003c/code\u003e\u003c/a\u003e Feat \u003ca href=\"https://redirect.github.com/rasbt/watermark/issues/87\"\u003e#87\u003c/a\u003e: Add --check_latest flag to check package updates via PyPI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rasbt/watermark/commit/8ad19fc154a0e3cafe20e0c682531b4dec715993\"\u003e\u003ccode\u003e8ad19fc\u003c/code\u003e\u003c/a\u003e Feat \u003ca href=\"https://redirect.github.com/rasbt/watermark/issues/89\"\u003e#89\u003c/a\u003e: Add --python_installation flag\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rasbt/watermark/commit/a4e8c123678898a90480cee23b0f377e88233fd5\"\u003e\u003ccode\u003ea4e8c12\u003c/code\u003e\u003c/a\u003e Feat \u003ca href=\"https://redirect.github.com/rasbt/watermark/issues/93\"\u003e#93\u003c/a\u003e: Add --jupyter_env flag to detect environment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rasbt/watermark/commit/0b4948416de7fcc534c83ce7ff6053a6cab600ca\"\u003e\u003ccode\u003e0b49484\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/rasbt/watermark/issues/73\"\u003e#73\u003c/a\u003e: Add space before timezone and update date format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rasbt/watermark/commit/a19ec2a5320cb9d59c7029c557b97da3b2b83a91\"\u003e\u003ccode\u003ea19ec2a\u003c/code\u003e\u003c/a\u003e Fix KeyError in version lookup and implement fallback (\u003ca href=\"https://redirect.github.com/rasbt/watermark/issues/100\"\u003e#100\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rasbt/watermark/commit/3ec302e077c533844e094040bad6a07669026c64\"\u003e\u003ccode\u003e3ec302e\u003c/code\u003e\u003c/a\u003e Update publish workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rasbt/watermark/commit/e7567da961065076e9fa56476ac4f22b483f83cf\"\u003e\u003ccode\u003ee7567da\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rasbt/watermark/issues/105\"\u003e#105\u003c/a\u003e from rasbt/autodeploy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rasbt/watermark/commit/9a3d0c4dc53170e9d6f5983adf340177b1ce6154\"\u003e\u003ccode\u003e9a3d0c4\u003c/code\u003e\u003c/a\u003e update\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rasbt/watermark/compare/v2.5.0...v2.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit` from 4.3.0 to 4.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.5.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.5.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.4.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases for \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be deprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.5.1 - 2025-12-16\u003c/h1\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.5.0 - 2025-11-22\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.4.0 - 2025-11-08\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases\nfor \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be\ndeprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/8a0630ca1aa7f6d5665effe674ebe2022af17919\"\u003e\u003ccode\u003e8a0630c\u003c/code\u003e\u003c/a\u003e v4.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fcbc745744377ef2c9fe6a7e1a21c67d797933dc\"\u003e\u003ccode\u003efcbc745\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e from pre-commit/empty-setup-py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/51592eececd13b99c40ec477ad8f810799147227\"\u003e\u003ccode\u003e51592ee\u003c/code\u003e\u003c/a\u003e fix python local template when artifact dirs are present\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/67e8faf80baffcb4b79c31b89ca9a413a1cd6776\"\u003e\u003ccode\u003e67e8faf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3596\"\u003e#3596\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c251e6b6d011b3b262339dc8e109de29b0ff8db1\"\u003e\u003ccode\u003ec251e6b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/98ccafa3ce42b846b9a9be9ed73fbbec7415496d\"\u003e\u003ccode\u003e98ccafa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3593\"\u003e#3593\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/48953556d06f8cdb4248002c1a0044e69e0916b3\"\u003e\u003ccode\u003e4895355\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2cedd58e691f4d3bc6ab266c7d7c28464c3502be\"\u003e\u003ccode\u003e2cedd58\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3588\"\u003e#3588\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/465192d7de58d569776eaaa818c94cb2b962d436\"\u003e\u003ccode\u003e465192d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fd42f96874279c4f65363bfea5238714419e54d7\"\u003e\u003ccode\u003efd42f96\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3586\"\u003e#3586\u003c/a\u003e from pre-commit/zipapp-sha256-file-not-needed\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.3.0...v4.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.4.2 to 9.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13965\"\u003e#13965\u003c/a\u003e: Fixed quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/4492\"\u003e#4492\u003c/a\u003e: The API Reference now contains cross-reference-able documentation of \u003ccode\u003epytest's command-line flags \u0026lt;command-line-flags\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e9.0.1\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.1 (2025-11-12)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13895\"\u003e#13895\u003c/a\u003e: Restore support for skipping tests via \u003ccode\u003eraise unittest.SkipTest\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress plugin added in pytest 9.0 is now automatically disabled when iTerm2 is detected, it generated desktop notifications instead of the desired functionality.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the verbosity settings in the API reference from number to string.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13910\"\u003e#13910\u003c/a\u003e: Fixed \u003c!-- raw HTML omitted --\u003eUserWarning: Do not expect file_or_dir\u003c!-- raw HTML omitted --\u003e on some earlier Python 3.12 and 3.13 point versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePackaging updates and notes for downstreams\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13891\"\u003e#13891\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13942\"\u003e#13942\u003c/a\u003e: The CI/CD part of the release automation is now capable of\ncreating GitHub Releases without having a Git checkout on\ndisk -- by \u003ccode\u003ebluetech\u003c/code\u003e and \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/3d10b5148e03eb82b3ee29181dbdc73cf82699e2\"\u003e\u003ccode\u003e3d10b51\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/188750b725add8c3400eee6fbb6b80559c296d69\"\u003e\u003ccode\u003e188750b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14030\"\u003e#14030\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/1e4b01d1f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7d7bef90cb9a6db8ac1d3dd5b9ae0eb9abd6c58\"\u003e\u003ccode\u003eb7d7bef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14014\"\u003e#14014\u003c/a\u003e from bluetech/compat-note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bd08e85ac76614ff5ca9ae338aee8d8b06c8fae0\"\u003e\u003ccode\u003ebd08e85\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14013\"\u003e#14013\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/922b60377...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bc783862991241c442c9f9c068e51737ec15ea10\"\u003e\u003ccode\u003ebc78386\u003c/code\u003e\u003c/a\u003e Add CLI options reference documentation (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13930\"\u003e#13930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/5a4e398ce89bc23d2cf3fd98c042fdffb6fa8afa\"\u003e\u003ccode\u003e5a4e398\u003c/code\u003e\u003c/a\u003e Fix docs typo (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14005\"\u003e#14005\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14008\"\u003e#14008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/d7ae6df394398168bf9d926f803c26849c8f07ee\"\u003e\u003ccode\u003ed7ae6df\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14006\"\u003e#14006\u003c/a\u003e from pytest-dev/maintenance/update-plugin-list-tmpl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/556f6a22e12d13d1ffeceaf64424eb95d5e0fb87\"\u003e\u003ccode\u003e556f6a2\u003c/code\u003e\u003c/a\u003e pre-commit: fix rst-lint after new release (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13999\"\u003e#13999\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14001\"\u003e#14001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c60fbe63a26f64a42738e3f3527a8f79024fdf50\"\u003e\u003ccode\u003ec60fbe6\u003c/code\u003e\u003c/a\u003e Fix quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10 ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/73d9b011183d9a1c4a7007c1119d97a6e627788e\"\u003e\u003ccode\u003e73d9b01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13995\"\u003e#13995\u003c/a\u003e from nicoddemus/patchback/backports/9.0.x/1b5200c0f...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.4.2...9.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/DanielGongora28/nlp-upb/pull/6","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/DanielGongora28%2Fnlp-upb/issues/6","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/6/packages"}},{"old_version":"7.4.2","new_version":"8.4.2","update_type":"major","path":null,"pr_created_at":"2025-12-15T15:58:57.000Z","version_change":"7.4.2 → 8.4.2","issue":{"uuid":"3731088988","node_id":"PR_kwDOKoYLLM649Wm5","number":187,"state":"open","title":"Bump the major-versions group across 1 directory with 16 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-12-15T15:58:57.000Z","updated_at":"2025-12-15T15:58:59.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"major-versions","update_count":16,"packages":[{"name":"django","old_version":"4.2.6","new_version":"4.2.27"},{"name":"django-guardian","old_version":"2.4.0","new_version":"3.2.0","repository_url":"https://github.com/django-guardian/django-guardian"},{"name":"django-extensions","old_version":"3.2.3","new_version":"4.1","repository_url":"https://github.com/django-extensions/django-extensions"},{"name":"django-filter","old_version":"23.3","new_version":"25.1","repository_url":"https://github.com/carltongibson/django-filter"},{"name":"gunicorn","old_version":"21.2.0","new_version":"23.0.0","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"python-ipware","old_version":"2.0.0","new_version":"3.0.0","repository_url":"https://github.com/un33k/python-ipware"},{"name":"redis","old_version":"4.6.0","new_version":"6.4.0","repository_url":"https://github.com/redis/redis-py"},{"name":"ocrmypdf","old_version":"14.4.0","new_version":"15.4.4","repository_url":"https://github.com/ocrmypdf/OCRmyPDF"},{"name":"django-multiselectfield","old_version":"0.1.12","new_version":"1.0.1","repository_url":"https://github.com/goinnn/django-multiselectfield"},{"name":"django-auditlog","old_version":"2.3.0","new_version":"3.3.0","repository_url":"https://github.com/jazzband/django-auditlog"},{"name":"black","old_version":"23.9.1","new_version":"25.11.0","repository_url":"https://github.com/psf/black"},{"name":"pre-commit","old_version":"3.4.0","new_version":"4.3.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pytest","old_version":"7.4.2","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-cov","old_version":"4.1.0","new_version":"7.0.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pytest-sugar","old_version":"0.9.7","new_version":"1.1.1","repository_url":"https://github.com/Teemu/pytest-sugar"},{"name":"pytest-rerunfailures","old_version":"12.0","new_version":"16.0.1","repository_url":"https://github.com/pytest-dev/pytest-rerunfailures"}],"path":null,"ecosystem":"conda"},"body":"Bumps the major-versions group with 16 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| django | `4.2.6` | `4.2.27` |\n| [django-guardian](https://github.com/django-guardian/django-guardian) | `2.4.0` | `3.2.0` |\n| [django-extensions](https://github.com/django-extensions/django-extensions) | `3.2.3` | `4.1` |\n| [django-filter](https://github.com/carltongibson/django-filter) | `23.3` | `25.1` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `21.2.0` | `23.0.0` |\n| [python-ipware](https://github.com/un33k/python-ipware) | `2.0.0` | `3.0.0` |\n| [redis](https://github.com/redis/redis-py) | `4.6.0` | `6.4.0` |\n| [ocrmypdf](https://github.com/ocrmypdf/OCRmyPDF) | `14.4.0` | `15.4.4` |\n| [django-multiselectfield](https://github.com/goinnn/django-multiselectfield) | `0.1.12` | `1.0.1` |\n| [django-auditlog](https://github.com/jazzband/django-auditlog) | `2.3.0` | `3.3.0` |\n| [black](https://github.com/psf/black) | `23.9.1` | `25.11.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `3.4.0` | `4.3.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `7.4.2` | `8.4.2` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `4.1.0` | `7.0.0` |\n| [pytest-sugar](https://github.com/Teemu/pytest-sugar) | `0.9.7` | `1.1.1` |\n| [pytest-rerunfailures](https://github.com/pytest-dev/pytest-rerunfailures) | `12.0` | `16.0.1` |\n\n\nUpdates `django` from 4.2.6 to 4.2.27\n\nUpdates `django-guardian` from 2.4.0 to 3.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-guardian/django-guardian/releases\"\u003edjango-guardian's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.2.0 The Bozkir progression\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate enforcement contact link in CODE_OF_CONDUCT.md by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/918\"\u003edjango-guardian/django-guardian#918\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptional cached anonymous user  - Pr 907 by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/912\"\u003edjango-guardian/django-guardian#912\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003egenerator warnings and logics are added for security purposes by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/920\"\u003edjango-guardian/django-guardian#920\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erollback compatible create anon user fix is developed by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/919\"\u003edjango-guardian/django-guardian#919\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e644 using inlines in django admin with guardian by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/921\"\u003edjango-guardian/django-guardian#921\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-guardian/django-guardian/compare/3.1.3...3.2.0\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.3...3.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edjango-packages badge is added by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/910\"\u003edjango-guardian/django-guardian#910\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate issue templates by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/909\"\u003edjango-guardian/django-guardian#909\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMakefile support by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/906\"\u003edjango-guardian/django-guardian#906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePR merging scenario is fixed by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/913\"\u003edjango-guardian/django-guardian#913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed issue causing prefetch_perms() to throw when passed an empty list by \u003ca href=\"https://github.com/keattang\"\u003e\u003ccode\u003e@​keattang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/904\"\u003edjango-guardian/django-guardian#904\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRe apply \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/812\"\u003e#812\u003c/a\u003e using correct lookup method by \u003ca href=\"https://github.com/sevdog\"\u003e\u003ccode\u003e@​sevdog\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/842\"\u003edjango-guardian/django-guardian#842\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOPS: Bump version for release by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/915\"\u003edjango-guardian/django-guardian#915\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-guardian/django-guardian/compare/3.1.2...3.1.3\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.2...3.1.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 in /.github/workflows by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/903\"\u003edjango-guardian/django-guardian#903\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix type and deprecate old name by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/902\"\u003edjango-guardian/django-guardian#902\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/django-guardian/django-guardian/pull/903\"\u003edjango-guardian/django-guardian#903\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-guardian/django-guardian/compare/3.1.1...3.1.2\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.1...3.1.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epre-commit checker step is added by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/901\"\u003edjango-guardian/django-guardian#901\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-guardian/django-guardian/compare/3.1.0...3.1.1\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.0...3.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eImproved indexing, tweaks and bugfixes\u003c/h2\u003e\n\u003ch2\u003eSaving the 🌳🌳🌳 and the 💰💰💰\u003c/h2\u003e\n\u003cp\u003e⚠️⚠️⚠️ \u003cstrong\u003eWARNING:\u003c/strong\u003e This release contains an update to database indexing which should yield \u003cstrong\u003econsiderable additional performance\u003c/strong\u003e, especially on large table permissions lookups (thanks \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e for such rigorous performance testing!!!). Following the migration that introduces these indexes, databases should reindex automatically in the background (typically within 0-30s even for large tables): this is unlikely to be noticeable but users may experience a short lived performance hit during this period.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow ignore_conflicts on bulk create by \u003ca href=\"https://github.com/pgiki\"\u003e\u003ccode\u003e@​pgiki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/814\"\u003edjango-guardian/django-guardian#814\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/4120d00c28c1b6d3bacb988f6db86bacf91ed0f1\"\u003e\u003ccode\u003e4120d00\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/921\"\u003e#921\u003c/a\u003e from django-guardian/644-using-inlines-in-django-admi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/c896b220bdf96783f1c25d730f12ebef95758c99\"\u003e\u003ccode\u003ec896b22\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/919\"\u003e#919\u003c/a\u003e from django-guardian/770-migration-rollback-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/3814e2383c69266350a3d885d445bdd79da8cb78\"\u003e\u003ccode\u003e3814e23\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 770-migration-rollback-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/94854899f4a030b42840837e08b42923a71c5b78\"\u003e\u003ccode\u003e9485489\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/920\"\u003e#920\u003c/a\u003e from django-guardian/666-permissionrequiredmixin-does...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/e01e2e1edeec60b2c79d561db56e0949ea3c4dad\"\u003e\u003ccode\u003ee01e2e1\u003c/code\u003e\u003c/a\u003e check only username field fixing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/e1ae3c5a7ab74a679ef1ccff2a480a88117df464\"\u003e\u003ccode\u003ee1ae3c5\u003c/code\u003e\u003c/a\u003e show warning instead of error for backward compatibility and giving time the ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/63c10f549dfe2b5ba67e9eec36095cf3e6a2bab8\"\u003e\u003ccode\u003e63c10f5\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 644-using-inlines-in-django-admin-with-guardian\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/b27ebbdcc7f9952d9d9aaaa879b5e202063ccaa8\"\u003e\u003ccode\u003eb27ebbd\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 666-permissionrequiredmixin-does-not-warn-against-us...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/d7ed4a3bccb730d3cdf16fdc404f25b94674c653\"\u003e\u003ccode\u003ed7ed4a3\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 770-migration-rollback-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/03fed6924e06fd13991d9e8ae1b4590addf5473e\"\u003e\u003ccode\u003e03fed69\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/912\"\u003e#912\u003c/a\u003e from django-guardian/pr-907\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-guardian/django-guardian/compare/v2.4.0...3.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-extensions` from 3.2.3 to 4.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-extensions/django-extensions/releases\"\u003edjango-extensions's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd: show_permissions command (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1920\"\u003e#1920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, style per app (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1848\"\u003e#1848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: JSONField, bulk_update's (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1924\"\u003e#1924\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/ahmad88me\"\u003e\u003ccode\u003e@​ahmad88me\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1848\"\u003edjango-extensions/django-extensions#1848\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-extensions/django-extensions/compare/4.0...4.1\"\u003ehttps://github.com/django-extensions/django-extensions/compare/4.0...4.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprovement: Support for Python 3.12 and 3.13\u003c/li\u003e\n\u003cli\u003eImprovement: Support for Django 5.x\u003c/li\u003e\n\u003cli\u003eImprovement: Switch from setup.{cfg,py} to pyproject.toml\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add option to display field choices in graph_models (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1854\"\u003e#1854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add webp support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1857\"\u003e#1857\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Support for ordering edges on pydot/dot/graphviz (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1914\"\u003e#1914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: mail_debug, Update mail_debug command to use aiosmtpd (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1880\"\u003e#1880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: shell_plus, Improve error message for missing import (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1898\"\u003e#1898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: reset_db, Add reset_db support for django_tenants (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1855\"\u003e#1855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: docs, various improvements (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1852\"\u003e#1852\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1888\"\u003e#1888\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1882\"\u003e#1882\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1901\"\u003e#1901\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1912\"\u003e#1912\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1913\"\u003e#1913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: jobs, Handle non-package modules when looking for job definitions (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1887\"\u003e#1887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Add django-prometheus DB backends support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1800\"\u003e#1800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Call post_command when the command raises an unhandled exception (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1837\"\u003e#1837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: sqldiff, do not consider ('serial', 'integer') nor ('bigserial', 'bigint') as a field-type-differ (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1867\"\u003e#1867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: shell_plus, Fix start up order and add history (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1869\"\u003e#1869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove pipchecker and associated tests (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1906\"\u003e#1906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFollowing Django's release numbering style more closely (see \u003ca href=\"https://docs.djangoproject.com/en/5.2/internals/release-process/\"\u003ehttps://docs.djangoproject.com/en/5.2/internals/release-process/\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/dimitrismistriotis\"\u003e\u003ccode\u003e@​dimitrismistriotis\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1859\"\u003edjango-extensions/django-extensions#1859\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/titouanc\"\u003e\u003ccode\u003e@​titouanc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1854\"\u003edjango-extensions/django-extensions#1854\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dmwyatt\"\u003e\u003ccode\u003e@​dmwyatt\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1872\"\u003edjango-extensions/django-extensions#1872\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stianjensen\"\u003e\u003ccode\u003e@​stianjensen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1898\"\u003edjango-extensions/django-extensions#1898\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PapaZ810\"\u003e\u003ccode\u003e@​PapaZ810\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1888\"\u003edjango-extensions/django-extensions#1888\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kviktor\"\u003e\u003ccode\u003e@​kviktor\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1857\"\u003edjango-extensions/django-extensions#1857\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aripollak\"\u003e\u003ccode\u003e@​aripollak\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1913\"\u003edjango-extensions/django-extensions#1913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/flowgunso\"\u003e\u003ccode\u003e@​flowgunso\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1914\"\u003edjango-extensions/django-extensions#1914\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anitahammer\"\u003e\u003ccode\u003e@​anitahammer\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1869\"\u003edjango-extensions/django-extensions#1869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nicolaspanel\"\u003e\u003ccode\u003e@​nicolaspanel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1867\"\u003edjango-extensions/django-extensions#1867\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yujinyuz\"\u003e\u003ccode\u003e@​yujinyuz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1855\"\u003edjango-extensions/django-extensions#1855\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/soof-golan\"\u003e\u003ccode\u003e@​soof-golan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1852\"\u003edjango-extensions/django-extensions#1852\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ghickman\"\u003e\u003ccode\u003e@​ghickman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1887\"\u003edjango-extensions/django-extensions#1887\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jrobichaud\"\u003e\u003ccode\u003e@​jrobichaud\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1837\"\u003edjango-extensions/django-extensions#1837\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-extensions/django-extensions/compare/3.2.3...4.0\"\u003ehttps://github.com/django-extensions/django-extensions/compare/3.2.3...4.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.2.4b1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-extensions/django-extensions/blob/main/CHANGELOG.md\"\u003edjango-extensions's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.1\u003c/h2\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd: show_permissions command (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1920\"\u003e#1920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, style per app (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1848\"\u003e#1848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: JSONField, bulk_update's (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1924\"\u003e#1924\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.0\u003c/h2\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eImprovement: Support for Python 3.12 and 3.13\u003c/li\u003e\n\u003cli\u003eImprovement: Support for Django 5.x\u003c/li\u003e\n\u003cli\u003eImprovement: Switch from setup.{cfg,py} to pyproject.toml\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add option to display field choices in graph_models (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1854\"\u003e#1854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add webp support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1857\"\u003e#1857\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Support for ordering edges on pydot/dot/graphviz (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1914\"\u003e#1914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: mail_debug, Update mail_debug command to use aiosmtpd (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1880\"\u003e#1880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: shell_plus, Improve error message for missing import (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1898\"\u003e#1898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: reset_db, Add reset_db support for django_tenants (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1855\"\u003e#1855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: docs, various improvements (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1852\"\u003e#1852\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1888\"\u003e#1888\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1882\"\u003e#1882\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1901\"\u003e#1901\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1912\"\u003e#1912\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1913\"\u003e#1913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: jobs, Handle non-package modules when looking for job definitions (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1887\"\u003e#1887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Add django-prometheus DB backends support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1800\"\u003e#1800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Call post_command when the command raises an unhandled exception (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1837\"\u003e#1837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: sqldiff, do not consider ('serial', 'integer') nor ('bigserial', 'bigint') as a \u003ccode\u003efield-type-differ\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1867\"\u003e#1867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: shell_plus, Fix start up order and add history (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1869\"\u003e#1869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove pipchecker and associated tests (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1906\"\u003e#1906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFollowing Django's release numbering style more closely (see \u003ca href=\"https://docs.djangoproject.com/en/5.2/internals/release-process/\"\u003ehttps://docs.djangoproject.com/en/5.2/internals/release-process/\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/django-extensions/django-extensions/commit/ad015513e5d8e8ee6ad748fca5f32ccf3fb3d5c5\"\u003e\u003ccode\u003ead01551\u003c/code\u003e\u003c/a\u003e v4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/2c3e914f1264c0a029b3b47b7425d0f68ce637ed\"\u003e\u003ccode\u003e2c3e914\u003c/code\u003e\u003c/a\u003e update CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/fb5b2af1b6595ee126237c299acf242fcfee817e\"\u003e\u003ccode\u003efb5b2af\u003c/code\u003e\u003c/a\u003e ruff format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/7e978d27b031843640f9204ff495738c46233d7f\"\u003e\u003ccode\u003e7e978d2\u003c/code\u003e\u003c/a\u003e graph_models style per app (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1848\"\u003e#1848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/067064ea0c6dec7cba1583447fe5fe1c706d5351\"\u003e\u003ccode\u003e067064e\u003c/code\u003e\u003c/a\u003e avoid trying to serialize expressions when serializing default values\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/a886068502474e70a2d68ff4634a15cc3366088d\"\u003e\u003ccode\u003ea886068\u003c/code\u003e\u003c/a\u003e update CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/d824501cbc6d04a24a43ff5756b496f84093b225\"\u003e\u003ccode\u003ed824501\u003c/code\u003e\u003c/a\u003e Add show_permissions management command (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1920\"\u003e#1920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/934f93f53bdf6c6271ae1ddaee71bc9bf3364a0e\"\u003e\u003ccode\u003e934f93f\u003c/code\u003e\u003c/a\u003e bumped version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/c4577df5b69ec1ebcbe6bc64d7a5c20362f3a8fa\"\u003e\u003ccode\u003ec4577df\u003c/code\u003e\u003c/a\u003e v4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/7cdb43ab56a3b610b47680d8a2fe86b09d5913aa\"\u003e\u003ccode\u003e7cdb43a\u003c/code\u003e\u003c/a\u003e pyproject formatting\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-extensions/django-extensions/compare/3.2.3...4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-filter` from 23.3 to 25.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/carltongibson/django-filter/blob/main/CHANGES.rst\"\u003edjango-filter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 25.1 (2025-02-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved the in-built API schema generation methods, which have been\ndeprecated since v23.2.\u003c/p\u003e\n\u003cp\u003eYou should use \u003ccode\u003edrf-spectacular \u0026lt;https://drf-spectacular.readthedocs.io/en/latest/\u0026gt;\u003c/code\u003e_\nfor generating OpenAPI schemas with DRF.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped support for EOL Python 3.8.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded testing against Python 3.13.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded official support for Django 5.2.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 24.3 (2024-08-02)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdds official support for Django 5.1.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow using dictionaries for grouped choices on Django 5.0+.\u003c/p\u003e\n\u003cp\u003eThanks to Sævar Öfjörð Magnússon.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdds \u003ccode\u003eunknown_field_behavior\u003c/code\u003e FilterSet option to allowing warning and\nignore behaviours for unknown field types during FilterSet generation.\u003c/p\u003e\n\u003cp\u003eThanks to Loes.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 24.2 (2024-03-27)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a regression in v23.4 where callable choices were incorrectly evaluated\nat filter instantiation, on Django versions prior to 5.0.\u003c/p\u003e\n\u003cp\u003eThanks to Craig de Stigter for the report and reproduce.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 24.1 (2024-03-08)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated supported Python and Django versions, and resolved upcoming Django\ndeprecations.\u003c/p\u003e\n\u003cp\u003eRequired versions are now at least Python 3.8 and Django 4.2.\u003c/p\u003e\n\u003cp\u003eThanks to Michael Manganiello.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllowed passing a FilterSet class to the filterset_factory().\u003c/p\u003e\n\u003cp\u003eThanks to Birger Schacht.\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/carltongibson/django-filter/commit/27dd67284405ee832701509b3515baa50c6e074d\"\u003e\u003ccode\u003e27dd672\u003c/code\u003e\u003c/a\u003e Updated Change notes for 25.1 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/2ea38174b010f378a9b57d90c566c2bab7b37bbb\"\u003e\u003ccode\u003e2ea3817\u003c/code\u003e\u003c/a\u003e Added Trove classifier for Django 5.2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/4d2306c211c1d86f85f04fb311b8b05bfefb08a8\"\u003e\u003ccode\u003e4d2306c\u003c/code\u003e\u003c/a\u003e Replaced hardcoded pks in tests (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1703\"\u003e#1703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/fbf5a76a4d97480d78779397b90d34fa8f13d141\"\u003e\u003ccode\u003efbf5a76\u003c/code\u003e\u003c/a\u003e Update tox after Django 5.2 alpha release. (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1700\"\u003e#1700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/1e76d6859e109ae34d5e2a657c66146a9d744c80\"\u003e\u003ccode\u003e1e76d68\u003c/code\u003e\u003c/a\u003e Use QueryDict for data default. (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1691\"\u003e#1691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/e709e5d43a4ad8b8e8ea62520669b88300c9c686\"\u003e\u003ccode\u003ee709e5d\u003c/code\u003e\u003c/a\u003e Add testing against Python 3.13.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/ccde000dfe74362b62301b248681e9505133e821\"\u003e\u003ccode\u003eccde000\u003c/code\u003e\u003c/a\u003e Dropped support for EOL Python 3.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/2a644e176634ec0ce99d9446d980501e9763e194\"\u003e\u003ccode\u003e2a644e1\u003c/code\u003e\u003c/a\u003e Removed deprecated schema generation methods from DRF backend. (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1698\"\u003e#1698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/2494df96c6387a9fa411fcb00b696b15dfd9216b\"\u003e\u003ccode\u003e2494df9\u003c/code\u003e\u003c/a\u003e fix typo in filterset.txt (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1695\"\u003e#1695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/3656174bd90d20f3d916fd98b6476c270013b681\"\u003e\u003ccode\u003e3656174\u003c/code\u003e\u003c/a\u003e Translated using Weblate (Czech) (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1687\"\u003e#1687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/carltongibson/django-filter/compare/23.3...25.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gunicorn` from 21.2.0 to 23.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/benoitc/gunicorn/releases\"\u003egunicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e23.0.0\u003c/h2\u003e\n\u003cp\u003eGunicorn 23.0.0 has been released. This version improve HTTP 1.1. support and  which improve safety\u003c/p\u003e\n\u003cp\u003eYou're invited to upgrade asap your own installation.\u003c/p\u003e\n\u003ch1\u003e23.0.0 - 2024-08-10\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eminor docs fixes (:pr:\u003ccode\u003e3217\u003c/code\u003e, :pr:\u003ccode\u003e3089\u003c/code\u003e, :pr:\u003ccode\u003e3167\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eworker_class parameter accepts a class (:pr:\u003ccode\u003e3079\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003efix deadlock if request terminated during chunked parsing (:pr:\u003ccode\u003e2688\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003epermit receiving Transfer-Encodings: compress, deflate, gzip (:pr:\u003ccode\u003e3261\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003epermit Transfer-Encoding headers specifying multiple encodings. note: no parameters, still (:pr:\u003ccode\u003e3261\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003esdist generation now explicitly excludes sphinx build folder (:pr:\u003ccode\u003e3257\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003edecode bytes-typed status (as can be passed by gevent) as utf-8 instead of raising \u003ccode\u003eTypeError\u003c/code\u003e (:pr:\u003ccode\u003e2336\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eraise correct Exception when encounting invalid chunked requests (:pr:\u003ccode\u003e3258\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ethe SCRIPT_NAME and PATH_INFO headers, when received from allowed forwarders, are no longer restricted for containing an underscore (:pr:\u003ccode\u003e3192\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003einclude IPv6 loopback address \u003ccode\u003e[::1]\u003c/code\u003e in default for :ref:\u003ccode\u003eforwarded-allow-ips\u003c/code\u003e and :ref:\u003ccode\u003eproxy-allow-ips\u003c/code\u003e (:pr:\u003ccode\u003e3192\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e** NOTE **\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SCRIPT_NAME change mitigates a regression that appeared first in the 22.0.0 release\u003c/li\u003e\n\u003cli\u003eReview your :ref:\u003ccode\u003eforwarded-allow-ips\u003c/code\u003e setting if you are still not seeing the SCRIPT_NAME transmitted\u003c/li\u003e\n\u003cli\u003eReview your :ref:\u003ccode\u003eforwarder-headers\u003c/code\u003e setting if you are missing headers after upgrading from a version prior to 22.0.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e** Breaking changes **\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003erefuse requests where the uri field is empty (:pr:\u003ccode\u003e3255\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003erefuse requests with invalid CR/LR/NUL in heade field values (:pr:\u003ccode\u003e3253\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eremove temporary \u003ccode\u003e--tolerate-dangerous-framing\u003c/code\u003e switch from 22.0 (:pr:\u003ccode\u003e3260\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eIf any of the breaking changes affect you, be aware that now refused requests can post a security problem, especially so in setups involving request pipe-lining and/or proxies.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFix CVE-2024-1135\u003c/p\u003e\n\u003ch2\u003eGunicorn 22.0 has been released\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eGunicorn 22.0.0 has been released.\u003c/strong\u003e This version fix the numerous security vulnerabilities. You're invited to upgrade asap your own installation.\u003c/p\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e22.0.0 - 2024-04-17\n===================\n\u003cul\u003e\n\u003cli\u003euse \u003ccode\u003eutime\u003c/code\u003e to notify workers liveness\u003c/li\u003e\n\u003cli\u003emigrate setup to pyproject.toml\u003c/li\u003e\n\u003cli\u003efix numerous security vulnerabilities in HTTP parser (closing some request smuggling vectors)\u003c/li\u003e\n\u003cli\u003eparsing additional requests is no longer attempted past unsupported request framing\u003c/li\u003e\n\u003cli\u003eon HTTP versions \u0026lt; 1.1 support for chunked transfer is refused (only used in exploits)\u003c/li\u003e\n\u003cli\u003erequests conflicting configured or passed SCRIPT_NAME now produce a verbose error\u003c/li\u003e\n\u003cli\u003eTrailer fields are no longer inspected for headers indicating secure scheme\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/411986d6191114dd1d1bbb9c72c948dbf0ef0425\"\u003e\u003ccode\u003e411986d\u003c/code\u003e\u003c/a\u003e fix doc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/334392e7795f2017e83f7054d372422512d6f4b6\"\u003e\u003ccode\u003e334392e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/2559\"\u003e#2559\u003c/a\u003e from laggardkernel/bugfix/reexec-env\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/e75c3533e32f91a9dceba9e8e1341fea5540ba81\"\u003e\u003ccode\u003ee75c353\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3189\"\u003e#3189\u003c/a\u003e from pajod/patch-py36\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/9357b28dd867950e33ca3864207cb35a1eb8ba6f\"\u003e\u003ccode\u003e9357b28\u003c/code\u003e\u003c/a\u003e keep document user in access_log_format setting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/79fdef0822cbfe7e16b659b07230af9be098d5fc\"\u003e\u003ccode\u003e79fdef0\u003c/code\u003e\u003c/a\u003e bump to 23.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/3acd9fbfd1159ca3cd80a8052ada89a0bf27f806\"\u003e\u003ccode\u003e3acd9fb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/2620\"\u003e#2620\u003c/a\u003e from talkerbox/improve-access-log-format-docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/3f56d76548e4ade034bf5e174737902970285d1f\"\u003e\u003ccode\u003e3f56d76\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3192\"\u003e#3192\u003c/a\u003e from pajod/patch-allowed-script-name\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/256d474a7910bd605f2cc8c082b79c1ae55215a9\"\u003e\u003ccode\u003e256d474\u003c/code\u003e\u003c/a\u003e docs: revert duped directive\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/ffa48b581dcaa75f17fd2df263515e4266feeef6\"\u003e\u003ccode\u003effa48b5\u003c/code\u003e\u003c/a\u003e test: default change was intentional\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/52538ca9070b5e7ead5d0fa731e82a622dc6f3ee\"\u003e\u003ccode\u003e52538ca\u003c/code\u003e\u003c/a\u003e docs: recommend SCRIPT_NAME=/subfolder\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/benoitc/gunicorn/compare/21.2.0...23.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-ipware` from 2.0.0 to 3.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/un33k/python-ipware/blob/main/CHANGELOG.md\"\u003epython-ipware's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.0.0\u003c/h2\u003e\n\u003cp\u003eFix:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRelease major version, as there is a possibility of api change causing minimal backward incompatibly\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.5\u003c/h2\u003e\n\u003cp\u003eEnhance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAI assisted clean up\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.4\u003c/h2\u003e\n\u003cp\u003eEnhance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eproxy_count=0\u003c/code\u003e as an option (\u003ca href=\"https://github.com/FraKraBa\"\u003e\u003ccode\u003e@​FraKraBa\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.3\u003c/h2\u003e\n\u003cp\u003eEnhance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eHTTP_CF_CONNECTING_IP\u003c/code\u003e to list of known ip headers (Adam M.)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.2\u003c/h2\u003e\n\u003cp\u003eEnhance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded logger name\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.1\u003c/h2\u003e\n\u003cp\u003eIssue:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003eHTTP_VIA\u003c/code\u003e header support (unreliable IP information) (\u003ca href=\"https://github.com/yourcelf\"\u003e\u003ccode\u003e@​yourcelf\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eEnhance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eInclude support for python 3.12\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/cab810ced72457abcc77ffd234be9cb0a75f7ec3\"\u003e\u003ccode\u003ecab810c\u003c/code\u003e\u003c/a\u003e version 3 major (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/21\"\u003e#21\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/5d01f1e6662f3de861d44006247fd5f0a3ae4a0b\"\u003e\u003ccode\u003e5d01f1e\u003c/code\u003e\u003c/a\u003e Feat/enhance (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/20\"\u003e#20\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/bd56bcd1d4ed2d2bbd690059e5a231d6b51bcd31\"\u003e\u003ccode\u003ebd56bcd\u003c/code\u003e\u003c/a\u003e Allow for proxy_count of exact 0 (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/19\"\u003e#19\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/ddfde3c6d4dee387a59287a2c0afc933f9773791\"\u003e\u003ccode\u003eddfde3c\u003c/code\u003e\u003c/a\u003e Update Readme (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/17\"\u003e#17\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/aab321baf9958ae128460c2279364926f6612dca\"\u003e\u003ccode\u003eaab321b\u003c/code\u003e\u003c/a\u003e Add HTTP_CF_CONNECTING_IP to ip Header list (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/16\"\u003e#16\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/e908cc321dc61e203033768f8d1072efc71f4556\"\u003e\u003ccode\u003ee908cc3\u003c/code\u003e\u003c/a\u003e Added logger name (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/15\"\u003e#15\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/ad1f01783279ecd8dfff91b3db8558f92b5bde0b\"\u003e\u003ccode\u003ead1f017\u003c/code\u003e\u003c/a\u003e Remove HTTP_VIA support, support for 3.12 (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/14\"\u003e#14\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/un33k/python-ipware/compare/v2.0.0...v3.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `redis` from 4.6.0 to 6.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/redis-py/releases\"\u003eredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.4.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🚀 New Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded epsilon property to the vsim command (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3723\"\u003e#3723\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdating the latest Redis image for github pipeline testing (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3726\"\u003e#3726\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\n\u003ca href=\"https://github.com/htemelski-redis\"\u003e\u003ccode\u003e@​htemelski-redis\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/elena-kolevska\"\u003e\u003ccode\u003e@​elena-kolevska\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/petyaslavova\"\u003e\u003ccode\u003e@​petyaslavova\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/vladvildanov\"\u003e\u003ccode\u003e@​vladvildanov\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e6.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🚀 New Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for new BITOP operations: DIFF, DIFF1, ANDOR, ONE (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3690\"\u003e#3690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport new VAMANA vector index type (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3702\"\u003e#3702\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd new stream commands (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3711\"\u003e#3711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd async Retry \u003cstrong\u003eeq\u003c/strong\u003e and \u003cstrong\u003ehash\u003c/strong\u003e \u0026amp; fix ExponentialWithJitterBackoff \u003cstrong\u003eeq\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3668\"\u003e#3668\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixing sentinel command execution to allow returning of actual responses when meaningful - behaviour controlled by 'return_responses' argument. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3191\"\u003e#3191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAnnotate deprecated_args decorator to preserve wrapped function type signature (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3701\"\u003e#3701\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix ConnectionPool to raise MaxConnectionsError instead of Connection… (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3698\"\u003e#3698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd async Retry \u003cstrong\u003eeq\u003c/strong\u003e and \u003cstrong\u003ehash\u003c/strong\u003e \u0026amp; fix ExponentialWithJitterBackoff \u003cstrong\u003eeq\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3668\"\u003e#3668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSentinelManagedConnection searches for new master upon connection failure (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3560\"\u003e#3560\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3601\"\u003e#3601\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: avoid instantiating a connection on \u003cem\u003erepr\u003c/em\u003e_ (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3653\"\u003e#3653\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixing the return type hint for the transaction method in the standalone client. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3660\"\u003e#3660\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump rojopolis/spellcheck-github-actions from 0.48.0 to 0.49.0 (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3665\"\u003e#3665\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDropping integration tests with Redis 6.2 from pipeline actions. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3659\"\u003e#3659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove deprecated arg from call to ClusterPipeline (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3670\"\u003e#3670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTransactionStrategy reset: UNWATCH only when status is watching (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3671\"\u003e#3671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eKeyT for set operations (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3190\"\u003e#3190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoving references to old docs site '\u003ca href=\"https://redis-py.readthedocs.io/\"\u003ehttps://redis-py.readthedocs.io/\u003c/a\u003e' replaced by '\u003ca href=\"https://redis.readthedocs.io/\"\u003ehttps://redis.readthedocs.io/\u003c/a\u003e' (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3674\"\u003e#3674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoving unnecessary check for tests using AsyncMock (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3432\"\u003e#3432\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdating test images for github pipeline execution (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3678\"\u003e#3678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdating the latest Redis image for pipeline testing (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3695\"\u003e#3695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump rojopolis/spellcheck-github-actions from 0.49.0 to 0.51.0 (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3689\"\u003e#3689\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDOC-5225 testable probabilistic dt examples (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3691\"\u003e#3691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate README.md (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3699\"\u003e#3699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eConvert the value to int type only if it exists in CLIENT INFO (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3688\"\u003e#3688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix compatibility with latest pytest-asyncio version(1.1.0) (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3708\"\u003e#3708\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDOC-5424 time series examples (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3705\"\u003e#3705\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdding information in connection pool class doc string for available SSLConnection class, that can be used for SSL connections (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3710\"\u003e#3710\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/redis/redis-py/commit/fff669daaf43ae8092ea8ab7a2a3196a9b1b7e41\"\u003e\u003ccode\u003efff669d\u003c/code\u003e\u003c/a\u003e Updated package version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/43ce2a4025c020bd26e401371c16ca4920b470a5\"\u003e\u003ccode\u003e43ce2a4\u003c/code\u003e\u003c/a\u003e Updating the latest Redis image for github pipeline testing (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3726\"\u003e#3726\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/64426cbdd43153b70b0e29d9d7b3ab2c63760359\"\u003e\u003ccode\u003e64426cb\u003c/code\u003e\u003c/a\u003e Added epsilon property to the vsim command (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3723\"\u003e#3723\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/67ab74d705b4c1d00d600c500596af7a68abfd56\"\u003e\u003ccode\u003e67ab74d\u003c/code\u003e\u003c/a\u003e Add new stream commands (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3711\"\u003e#3711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/4c9512b1fe592dc9becebe9e5f053b0184b47f2c\"\u003e\u003ccode\u003e4c9512b\u003c/code\u003e\u003c/a\u003e Adding information in connection pool class doc string for available SSLConne...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/31399ed43588840bbbfdbbf0e8260d1b989b49ce\"\u003e\u003ccode\u003e31399ed\u003c/code\u003e\u003c/a\u003e SentinelManagedConnection searches for new master upon connection failure (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3\"\u003e#3\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/7291deb5eb8054a0dc915a8bf499a17498bc5968\"\u003e\u003ccode\u003e7291deb\u003c/code\u003e\u003c/a\u003e add async Retry \u003ccode\u003e__eq__\u003c/code\u003e and \u003ccode\u003e__hash__\u003c/code\u003e \u0026amp; fix ExponentialWithJitterBackof...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/4cf094fdd2c1f2ce335e671af3fad7ad0a48f309\"\u003e\u003ccode\u003e4cf094f\u003c/code\u003e\u003c/a\u003e Fix ConnectionPool to raise MaxConnectionsError instead of Connection… (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3698\"\u003e#3698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/a00141618572764821bbe6bd74e025536e061587\"\u003e\u003ccode\u003ea001416\u003c/code\u003e\u003c/a\u003e DOC-5424 time series examples (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3705\"\u003e#3705\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/2b1ff5363715c8ba0043314a8b4bcbbc1ba741f5\"\u003e\u003ccode\u003e2b1ff53\u003c/code\u003e\u003c/a\u003e Fix compatibility with latest pytest-asyncio version(1.1.0) (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3708\"\u003e#3708\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/redis/redis-py/compare/v4.6.0...v6.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ocrmypdf` from 14.4.0 to 15.4.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/blob/main/docs/release_notes.md\"\u003eocrmypdf's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev15.4.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed documentation for installing Ghostscript on Windows. {issue}\u003ccode\u003e1198\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdded warning message about security issue in older versions of Ghostscript.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed deprecation warning in pikepdf older than 8.7.1; pikepdf \u0026gt;= 8.7.1 is\nnow required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWe now raise an exception on a certain class of PDFs that likely need an\nexplicit color conversion strategy selected to display correctly\nfor PDF/A conversion.\u003c/li\u003e\n\u003cli\u003eFixed an error that occurred while trying to write a log message after the\ndebug log handler was removed.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed misc/watcher.py regressions: accept \u003ccode\u003e--ocr-json-settings\u003c/code\u003e as either\nfilename or JSON string, as previously; and argument count mismatch.\n{issue}\u003ccode\u003e1183,1185\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eWe no longer attempt to set /ProcSet in the PDF output, since this is an\nobsolete PDF feature.\u003c/li\u003e\n\u003cli\u003eDocumentation improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded new experimental APIs to support offline editing of the final text.\nSpecifically, one can now generate hOCR files with OCRmyPDF, edit them with\nsome other tool, and then finalize the PDF. They are experimental and\nsubject to change, including details of how the working folder is used.\nThere is no command line interface.\u003c/li\u003e\n\u003cli\u003eCode reorganization: executors, progress bars, initialization and setup.\u003c/li\u003e\n\u003cli\u003eFixed test coverage in cases where the coverage tool did not properly trace\ninto threads or subprocesses. This code was still being tested but appeared\nas not covered.\u003c/li\u003e\n\u003cli\u003eIn the test suite, reduced use of subprocesses and other techniques that\ninterfere with coverage measurement.\u003c/li\u003e\n\u003cli\u003eImproved error check for when we appear to be running inside a snap container\nand files are not available.\u003c/li\u003e\n\u003cli\u003ePlugin specification now properly defines progress bars as a protocol rather\nthan defining them as \u0026quot;tqdm-like\u0026quot;.\u003c/li\u003e\n\u003cli\u003eWe now default to using \u0026quot;forkserver\u0026quot; process creation on POSIX platforms\nrather than fork, since this is method is more robust and avoids some\nissues when threads are present.\u003c/li\u003e\n\u003cli\u003eFixed an instance where the user's request to \u003ccode\u003e--no-use-threads\u003c/code\u003e was ignored.\u003c/li\u003e\n\u003cli\u003eIf a PDF does not have language metadata on its top level object, we add\nthe OCR language.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/c90d5cd84b0e27906310c28f0d78c3ded9106d65\"\u003e\u003ccode\u003ec90d5cd\u003c/code\u003e\u003c/a\u003e Fix Ghostscript installation instructions and add warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/9898904be70bf957154cc66cb5d6f57bac7c26b4\"\u003e\u003ccode\u003e9898904\u003c/code\u003e\u003c/a\u003e Fix pikepdf PdfMatrix deprecation warning; v15.4.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/27d52298420e785300e418bef4e4219ef97720e1\"\u003e\u003ccode\u003e27d5229\u003c/code\u003e\u003c/a\u003e Make logger names unique\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/4a9a575ef0f2cd7459538a43e802c8d8b3846168\"\u003e\u003ccode\u003e4a9a575\u003c/code\u003e\u003c/a\u003e ghostscript: better comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/52fd9a630d57ac7af91db423b17e6b0297fc1c66\"\u003e\u003ccode\u003e52fd9a6\u003c/code\u003e\u003c/a\u003e v15.4.2 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/a596ccf84469c81c6d19ab0eb59f53a5df0bc3c7\"\u003e\u003ccode\u003ea596ccf\u003c/code\u003e\u003c/a\u003e Raise exception if resulting PDF might appear blank in a known in some PDF vi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/e7fa97731f507c1d91e4289b9d5f3344533d7c4c\"\u003e\u003ccode\u003ee7fa977\u003c/code\u003e\u003c/a\u003e ghostscript duplicate filter: filter within a window of previous messages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/290aa2810868fb506a0ded2db8dabb580d5a2459\"\u003e\u003ccode\u003e290aa28\u003c/code\u003e\u003c/a\u003e Fix error on attempt to write to debug log after removing debug log handler\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/a95640ed9ec0a5caa360bd64b9ad6cc9f916fa61\"\u003e\u003ccode\u003ea95640e\u003c/code\u003e\u003c/a\u003e v15.4.1 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/f69267bb675c3261121b70451f6e673f433bc7ad\"\u003e\u003ccode\u003ef69267b\u003c/code\u003e\u003c/a\u003e watcher: restore ability to read json from file or command line string\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/compare/v14.4.0...v15.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-multiselectfield` from 0.1.12 to 1.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/goinnn/django-multiselectfield/releases\"\u003edjango-multiselectfield's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBadge image worked on GitHub but was broken on PyPI — fixed it.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.0\u003c/h2\u003e\n\u003cp\u003eThis release introduces multiple changes that are incompatible with previous versions.\u003c/p\u003e\n\u003cp\u003eThe major version number has been incremented following \u003ccode\u003eSemantic Versioning (SemVer) \u0026lt;https://semver.org/\u0026gt;\u003c/code\u003e_, as several components of the package have changed in ways that may require updates in client code.\u003c/p\u003e\n\u003cp\u003eThe internal codebase has been significantly cleaned up and reorganized, making it more maintainable and consistent.\u003c/p\u003e\n\u003cp\u003eThis version contains \u003cstrong\u003e40% fewer lines of code\u003c/strong\u003e compared to the previous release.\u003c/p\u003e\n\u003cp\u003eLess code means fewer bugs, easier maintenance, and better long-term sustainability.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFList (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\"\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2\u003c/a\u003e):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/50d3f785883e0a314f2dc89950e3fe1e88a7ede6\"\u003e50d3f785883e0a314f2dc89950e3fe1e88a7ede6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIt was created to support MultiSelectFields in admin.list_display, but it never actually worked. If you add a multiselect field to list_display, Django does not call to \u003cstrong\u003estr\u003c/strong\u003e method of MSGList (renamed to MSFList)\u003c/li\u003e\n\u003cli\u003eIt was created for integer choices too and it is a misconception. This is explained in the README file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFFlatchoices (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\"\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2\u003c/a\u003e):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/5638247c1d70670d4f81adf35143ef17a7d7575e\"\u003e5638247c1d70670d4f81adf35143ef17a7d7575e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIn list_display, labels for the choices are now shown (comma-separated) instead of the values of the choices (comma-separated).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn to_python method, value is a list or a string. (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/c4579138dda2833cbce26afbf57da5353aa45690\"\u003ec4579138dda2833cbce26afbf57da5353aa45690\u003c/a\u003e)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove set case and dict case\u003c/li\u003e\n\u003cli\u003eIf this breaks something, please create a test to help understand the use case.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoving integer choices:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIt was a mistake. MultiSelectField inherits of CharField, not IntegerField.\u003c/li\u003e\n\u003cli\u003eIt is impossible knows if original choice is (1, 'Item title 2.1') or ('1', 'Item title 2.1')\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: Form instance generated twice since Django  (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/168\"\u003e#168\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix CSS admin:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/173\"\u003e#173\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/7711f4aa755c81d00f07ce8a6ff0fd9240061f9c\"\u003e7711f4aa755c81d00f07ce8a6ff0fd9240061f9c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix Properly Display Categorized Choices in get_FOO_display (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/169\"\u003e#169\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSortMultiSelectField: (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/172\"\u003e#172\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/goinnn/django-multiselectfield/blob/master/CHANGES.rst\"\u003edjango-multiselectfield's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.0.1 (2025-06-12)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBadge image worked on GitHub but was broken on PyPI — fixed it.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.0.0 (2025-06-12)\u003c/h2\u003e\n\u003cp\u003eThis release introduces multiple changes that are incompatible with previous versions.\u003c/p\u003e\n\u003cp\u003eThe major version number has been incremented following \u003ccode\u003eSemantic Versioning (SemVer) \u0026lt;https://semver.org/\u0026gt;\u003c/code\u003e_, as several components of the package have changed in ways that may require updates in client code.\u003c/p\u003e\n\u003cp\u003eThe internal codebase has been significantly cleaned up and reorganized, making it more maintainable and consistent.\u003c/p\u003e\n\u003cp\u003eThis version contains \u003cstrong\u003e40% fewer lines of code\u003c/strong\u003e compared to the previous release.\u003c/p\u003e\n\u003cp\u003eLess code means fewer bugs, easier maintenance, and better long-term sustainability.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFList (\u003ccode\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\u0026gt;\u003c/code\u003e_):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ccode\u003e50d3f785883e0a314f2dc89950e3fe1e88a7ede6 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/50d3f785883e0a314f2dc89950e3fe1e88a7ede6\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eIt was created to support MultiSelectFields in admin.list_display, but it never actually worked. If you add a multiselect field to list_display, Django does not call to \u003cstrong\u003estr\u003c/strong\u003e method of MSGList (renamed to MSFList)\u003c/li\u003e\n\u003cli\u003eIt was created for integer choices too and it is a misconception. This is explained in the README file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFFlatchoices (\u003ccode\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\u0026gt;\u003c/code\u003e_):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ccode\u003e5638247c1d70670d4f81adf35143ef17a7d7575e \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/5638247c1d70670d4f81adf35143ef17a7d7575e\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eIn list_display, labels for the choices are now shown (comma-separated) instead of the values of the choices (comma-separated).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn to_python method, value is a list or a string. (\u003ccode\u003ec4579138dda2833cbce26afbf57da5353aa45690 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/c4579138dda2833cbce26afbf57da5353aa45690\u0026gt;\u003c/code\u003e_)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove set case and dict case\u003c/li\u003e\n\u003cli\u003eIf this breaks something, please create a test to help understand the use case.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoving integer choices:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIt was a mistake. MultiSelectField inherits of CharField, not IntegerField.\u003c/li\u003e\n\u003cli\u003eIt is impossible knows if original choice is (1, 'Item title 2.1') or ('1', 'Item title 2.1')\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: Form instance generated twice since Django  (\u003ccode\u003e[#168](https://github.com/goinnn/django-multiselectfield/issues/168) \u0026lt;https://github.com/goinnn/django-multiselectfield/pull/168\u0026gt;\u003c/code\u003e_)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix CSS admin:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ccode\u003e[#173](https://github.com/goinnn/django-multiselectfield/issues/173) \u0026lt;https://github.com/goinnn/django-multiselectfield/pull/173\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003e(\u003ccode\u003e7711f4aa755c81d00f07ce8a6ff0fd9240061f9c \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/7711f4aa755c81d00f07ce8a6ff0fd9240061f9c\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/679bac60a5156b26c608972a1b4a576b7010e6c2\"\u003e\u003ccode\u003e679bac6\u003c/code\u003e\u003c/a\u003e Ready to new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/bef25142b5f266164185ec3de4abdfcf91c3e89d\"\u003e\u003ccode\u003ebef2514\u003c/code\u003e\u003c/a\u003e Ready to new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/9a564a35581f89c35279ebfa20a2d693b3d23d73\"\u003e\u003ccode\u003e9a564a3\u003c/code\u003e\u003c/a\u003e Add image from github (pypi broken)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/f2b3186c1da7f50abf68b8e11e1d54c2683e2b34\"\u003e\u003ccode\u003ef2b3186\u003c/code\u003e\u003c/a\u003e Fix typo error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/72894698f191aeddd5364977365c6c2c88a5ac53\"\u003e\u003ccode\u003e7289469\u003c/code\u003e\u003c/a\u003e Fix another pypi error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/f17a82819157736ff0378f57c8bb114060f4f803\"\u003e\u003ccode\u003ef17a828\u003c/code\u003e\u003c/a\u003e Improve readme file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/d9e2b979f5f37fea812b39a90247e1afd5314415\"\u003e\u003ccode\u003ed9e2b97\u003c/code\u003e\u003c/a\u003e Fix error uploading to pypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/a387bc619d95a1e61da4ad7e7b0d319429322243\"\u003e\u003ccode\u003ea387bc6\u003c/code\u003e\u003c/a\u003e Ready to new release. The major version number has been incremented because t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/4fc13699678de3bdbe6c7299c6fdbfb901ca08f6\"\u003e\u003ccode\u003e4fc1369\u003c/code\u003e\u003c/a\u003e If the choices are Proxy str (i18n) patched_display_for_field gets an error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/8bafbdbd9db515206b1fef6ec7263d9b485c2c31\"\u003e\u003ccode\u003e8bafbdb\u003c/code\u003e\u003c/a\u003e Add static files to package\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/goinnn/django-multiselectfield/compare/v0.1.12...v1.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-auditlog` from 2.3.0 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jazzband/django-auditlog/releases\"\u003edjango-auditlog's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUse canonical timezone name for Buenos Aires by \u003ca href=\"https://github.com/EdwardBetts\"\u003e\u003ccode\u003e@​EdwardBetts\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/736\"\u003ejazzband/django-auditlog#736\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded fixes for changes_display_dict when AUDITLOG_STORE_JSON_CHANGES is True by \u003ca href=\"https://github.com/The-Alchemist\"\u003e\u003ccode\u003e@​The-Alchemist\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/738\"\u003ejazzband/django-auditlog#738\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd audit log history view to Django Admin by \u003ca href=\"https://github.com/2ykwang\"\u003e\u003ccode\u003e@​2ykwang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/743\"\u003ejazzband/django-auditlog#743\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExtend CI and local test coverage to MySQL and SQLite by \u003ca href=\"https://github.com/2ykwang\"\u003e\u003ccode\u003e@​2ykwang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/744\"\u003ejazzband/django-auditlog#744\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 4 to 5 in the github-actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/752\"\u003ejazzband/django-auditlog#752\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/753\"\u003ejazzband/django-auditlog#753\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/setup-python from 5 to 6 in the github-actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/754\"\u003ejazzband/django-auditlog#754\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Expression test compatibility for Django 6.0+ by \u003ca href=\"https://github.com/2ykwang\"\u003e\u003ccode\u003e@​2ykwang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/759\"\u003ejazzband/django-auditlog#759\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd I18N Support by \u003ca href=\"https://github.com/2ykwang\"\u003e\u003ccode\u003e@​2ykwang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/762\"\u003ejazzband/django-auditlog#762\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix None type mismatch in change detection by \u003ca href=\"https://github.com/2ykwang\"\u003e\u003ccode\u003e@​2ykwang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/763\"\u003ejazzband/django-auditlog#763\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare release 3.3.0 by \u003ca href=\"https://github.com/2ykwang\"\u003e\u003ccode\u003e@​2ykwang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/756\"\u003ejazzband/django-auditlog#756\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/EdwardBetts\"\u003e\u003ccode\u003e@​EdwardBetts\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/736\"\u003ejazzband/django-auditlog#736\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jazzband/django-auditlog/compare/v3.2.1...v3.3.0\"\u003ehttps://github.com/jazzband/django-auditlog/compare/v3.2.1...v3.3.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev3.2.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Django 5.2 by \u003ca href=\"https://github.com/mahdirahimi1999\"\u003e\u003ccode\u003e@​mahdirahimi1999\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/730\"\u003ejazzband/django-auditlog#730\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded fixes for updates and deletes if AUDITLOG_STORE_JSON_CHANGES is True by \u003ca href=\"https://github.com/The-Alchemist\"\u003e\u003ccode\u003e@​The-Alchemist\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/732\"\u003ejazzband/django-auditlog#732\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare release 3.2.1 by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/733\"\u003ejazzband/django-auditlog#733\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/mahdirahimi1999\"\u003e\u003ccode\u003e@​mahdirahimi1999\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/730\"\u003ejazzband/django-auditlog#730\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jazzband/django-auditlog/compare/v3.2.0...v3.2.1\"\u003ehttps://github.com/jazzband/django-auditlog/compare/v3.2.0...v3.2.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev3.2.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eimprove actor_email assignment by \u003ca href=\"https://github.com/GreatBahram\"\u003e\u003ccode\u003e@​GreatBahram\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/720\"\u003ejazzband/django-auditlog#720\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003enew setting: STORE_JSON_CHANGES that intelligently store JSON by \u003ca href=\"https://github.com/The-Alchemist\"\u003e\u003ccode\u003e@​The-Alchemist\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/719\"\u003ejazzband/django-auditlog#719\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eget_field_value\u003c/code\u003e field default value handling for Django 6.0 compatibility by \u003ca href=\"https://github.com/2ykwang\"\u003e\u003ccode\u003e@​2ykwang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/726\"\u003ejazzband/django-auditlog#726\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for custom masking functions by \u003ca href=\"https://github.com/2ykwang\"\u003e\u003ccode\u003e@​2ykwang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/725\"\u003ejazzband/django-auditlog#725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate pre-commit repos by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/728\"\u003ejazzband/django-auditlog#728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare release 3.2.0 by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/729\"\u003ejazzband/django-auditlog#729\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/The-Alchemist\"\u003e\u003ccode\u003e@​The-Alchemist\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jazzband/django-auditlog/pull/719\"\u003ejazzband/django-auditlog#719\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog...\n\n_Description has been truncated_","html_url":"https://github.com/dsp-testing/paperless-ngx/pull/187","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/dsp-testing%2Fpaperless-ngx/issues/187","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/187/packages"}},{"old_version":"8.4.2","new_version":"9.0.1","update_type":"major","path":null,"pr_created_at":"2025-12-01T10:17:27.000Z","version_change":"8.4.2 → 9.0.1","issue":{"uuid":"3680283696","node_id":"PR_kwDOP09MxM62TviW","number":57,"state":"open","title":"Bump the python group across 2 directories with 3 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-12-01T10:17:27.000Z","updated_at":"2025-12-04T17:08:01.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python","update_count":3,"packages":[{"name":"starlette","old_version":"0.49.3","new_version":"0.50.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.1","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-asyncio","old_version":"1.2.0","new_version":"1.3.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"}],"path":null,"ecosystem":"conda"},"body":"Bumps the python group with 1 update in the /example directory: [starlette](https://github.com/Kludex/starlette).\nBumps the python group with 2 updates in the /noextras directory: [pytest](https://github.com/pytest-dev/pytest) and [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio).\n\nUpdates `starlette` from 0.49.3 to 0.50.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/releases\"\u003estarlette's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.50.0\u003c/h2\u003e\n\u003ch2\u003eRemoved\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3061\"\u003e#3061\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.49.3...0.50.0\"\u003ehttps://github.com/Kludex/starlette/compare/0.49.3...0.50.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/blob/main/docs/release-notes.md\"\u003estarlette's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.50.0 (November 1, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3061\"\u003e#3061\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/4941b4a04993d087dea66e9287fe9472babee879\"\u003e\u003ccode\u003e4941b4a\u003c/code\u003e\u003c/a\u003e Version 0.50.0 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3063\"\u003e#3063\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/a0499f60a6f13b8b42381d70bafc076b6ece4eee\"\u003e\u003ccode\u003ea0499f6\u003c/code\u003e\u003c/a\u003e Drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3061\"\u003e#3061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Kludex/starlette/compare/0.49.3...0.50.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.4.2 to 9.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.1\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.1 (2025-11-12)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13895\"\u003e#13895\u003c/a\u003e: Restore support for skipping tests via \u003ccode\u003eraise unittest.SkipTest\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress plugin added in pytest 9.0 is now automatically disabled when iTerm2 is detected, it generated desktop notifications instead of the desired functionality.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the verbosity settings in the API reference from number to string.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13910\"\u003e#13910\u003c/a\u003e: Fixed \u003c!-- raw HTML omitted --\u003eUserWarning: Do not expect file_or_dir\u003c!-- raw HTML omitted --\u003e on some earlier Python 3.12 and 3.13 point versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePackaging updates and notes for downstreams\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13891\"\u003e#13891\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13942\"\u003e#13942\u003c/a\u003e: The CI/CD part of the release automation is now capable of\ncreating GitHub Releases without having a Git checkout on\ndisk -- by \u003ccode\u003ebluetech\u003c/code\u003e and \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e9.0.0\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.0 (2025-11-05)\u003c/h1\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/1367\"\u003e#1367\u003c/a\u003e: \u003cstrong\u003eSupport for subtests\u003c/strong\u003e has been added.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003esubtests \u0026lt;subtests\u0026gt;\u003c/code\u003e are an alternative to parametrization, useful in situations where the parametrization values are not all known at collection time.\u003c/p\u003e\n\u003cp\u003eExample:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003edef contains_docstring(p: Path) -\u0026gt; bool:\n    \u0026quot;\u0026quot;\u0026quot;Return True if the given Python file contains a top-level docstring.\u0026quot;\u0026quot;\u0026quot;\n    ...\n\u003cp\u003edef test_py_files_contain_docstring(subtests: pytest.Subtests) -\u0026gt; None:\u003cbr /\u003e\nfor path in Path.cwd().glob(\u0026quot;*.py\u0026quot;):\u003cbr /\u003e\nwith subtests.test(path=str(path)):\u003cbr /\u003e\nassert contains_docstring(path)\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/d1b64aa60b9e1a0fcfaf03af7ebeb185f1024a87\"\u003e\u003ccode\u003ed1b64aa\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/0a497c7b213ea950821319fd80dce219b0033f32\"\u003e\u003ccode\u003e0a497c7\u003c/code\u003e\u003c/a\u003e regendoc: remove CI environment variables (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13950\"\u003e#13950\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13951\"\u003e#13951\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a9f7e6ed579b8844e302067b7f05122b82993355\"\u003e\u003ccode\u003ea9f7e6e\u003c/code\u003e\u003c/a\u003e 🧪 Run \u003ccode\u003egh release\u003c/code\u003e w/o Git in CI/CD (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13942\"\u003e#13942\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13947\"\u003e#13947\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/2682a6607304f1f5bb5a2140340003cdf5121bc4\"\u003e\u003ccode\u003e2682a66\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13944\"\u003e#13944\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/bef7d34f1...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a999997e36c53d189ecded3369bf35bfe2be96ad\"\u003e\u003ccode\u003ea999997\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13941\"\u003e#13941\u003c/a\u003e from nicoddemus/min-pre-commit-version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/4bd63a0ead81d740aa767a4384d3b0b4c18f2ef2\"\u003e\u003ccode\u003e4bd63a0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13935\"\u003e#13935\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/ce8b8a7b4...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/15f93b332c1c3ec9c200c0ad3d55af5a2158e0db\"\u003e\u003ccode\u003e15f93b3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e from webknjaz/maintenance/tox-pep517-env-setuptools...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/0fa11ae3f79d06dc9e2f1f7c81ade4a1126d9ef3\"\u003e\u003ccode\u003e0fa11ae\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13927\"\u003e#13927\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/3d8075743...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/fa454700133c7b2cc960cba3b1cd09cc048c25a0\"\u003e\u003ccode\u003efa45470\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13926\"\u003e#13926\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d587e0cf8...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b4e3973505a2b7a2caa17ccc392d91a6ad73e122\"\u003e\u003ccode\u003eb4e3973\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13922\"\u003e#13922\u003c/a\u003e from bluetech/fix-argparse-userwarning\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.4.2...9.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-asyncio` from 1.2.0 to 1.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/releases\"\u003epytest-asyncio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epytest-asyncio 1.3.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/tree/1.3.0\"\u003e1.3.0\u003c/a\u003e - 2025-11-10\u003c/h1\u003e\n\u003ch2\u003eRemoved\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.9 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1278\"\u003e#1278\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for pytest 9 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1279\"\u003e#1279\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNotes for Downstream Packagers\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTested Python versions include free threaded Python 3.14t (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1274\"\u003e#1274\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTests are run in the same pytest process, instead of spawning a subprocess with \u003ccode\u003epytest.Pytester.runpytest_subprocess\u003c/code\u003e. This prevents the test suite from accidentally using a system installation of pytest-asyncio, which could result in test errors. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1275\"\u003e#1275\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/pytest-dev/pytest-asyncio/commit/2e9695fcf8c5c514f30f57b7d14ab83846357b96\"\u003e\u003ccode\u003e2e9695f\u003c/code\u003e\u003c/a\u003e docs: Compile changelog for v1.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/dd0e9ba3fa672fd6bf375004319742f8d3a50e12\"\u003e\u003ccode\u003edd0e9ba\u003c/code\u003e\u003c/a\u003e docs: Reference correct issue in news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/4c31abe5bf46bca3c9bdc7b18405f3deba4145d0\"\u003e\u003ccode\u003e4c31abe\u003c/code\u003e\u003c/a\u003e Build(deps): Bump nh3 from 0.3.1 to 0.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/13e94770d7bb146c329ae0e02486c0a6b38f3772\"\u003e\u003ccode\u003e13e9477\u003c/code\u003e\u003c/a\u003e Link to migration guides from changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/4d2cf3c36f47d7c4d563d401cdf229b35da34fbe\"\u003e\u003ccode\u003e4d2cf3c\u003c/code\u003e\u003c/a\u003e tests: handle Python 3.14 DefaultEventLoopPolicy deprecation warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/ee3549b6efb729b934e370e2be8040b25b034010\"\u003e\u003ccode\u003eee3549b\u003c/code\u003e\u003c/a\u003e test: Remove obsolete test for the event_loop fixture.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/7a67c82c5ae548f0968438e9dfa0f282d51c4597\"\u003e\u003ccode\u003e7a67c82\u003c/code\u003e\u003c/a\u003e tests: Fix failing test by preventing warning conversion to error.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/a17b689a750d05b6fc9369f5fb2b06baaba83536\"\u003e\u003ccode\u003ea17b689\u003c/code\u003e\u003c/a\u003e test: add pytest config to isolated test directories\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/18afc9df5a3153dc1fbdc4e11a56517ef95480df\"\u003e\u003ccode\u003e18afc9d\u003c/code\u003e\u003c/a\u003e fix(tests): replace runpytest_subprocess with runpytest\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/cdc6bd1de75b4738289eafd546f5e27a0bfd3b41\"\u003e\u003ccode\u003ecdc6bd1\u003c/code\u003e\u003c/a\u003e Add support for pytest 9 and drop Python 3.9 support\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/compare/v1.2.0...v1.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/connectrpc/connect-python/pull/57","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/connectrpc%2Fconnect-python/issues/57","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/57/packages"}},{"old_version":"7.4.2","new_version":"8.4.2","update_type":"major","path":null,"pr_created_at":"2025-11-17T16:01:58.000Z","version_change":"7.4.2 → 8.4.2","issue":{"uuid":"3633961058","node_id":"PR_kwDOKoYLLM6z47eA","number":183,"state":"open","title":"Bump the major-versions group across 1 directory with 17 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-11-17T16:01:58.000Z","updated_at":"2025-11-17T16:02:00.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"major-versions","update_count":17,"packages":[{"name":"django","old_version":"4.2.6","new_version":"4.2.26"},{"name":"django-guardian","old_version":"2.4.0","new_version":"3.2.0","repository_url":"https://github.com/django-guardian/django-guardian"},{"name":"django-extensions","old_version":"3.2.3","new_version":"4.1","repository_url":"https://github.com/django-extensions/django-extensions"},{"name":"django-filter","old_version":"23.3","new_version":"25.1","repository_url":"https://github.com/carltongibson/django-filter"},{"name":"gunicorn","old_version":"21.2.0","new_version":"23.0.0","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"python-ipware","old_version":"2.0.0","new_version":"3.0.0","repository_url":"https://github.com/un33k/python-ipware"},{"name":"redis","old_version":"4.6.0","new_version":"5.2.1","repository_url":"https://github.com/redis/redis-py"},{"name":"watchdog","old_version":"3.0.0","new_version":"6.0.0","repository_url":"https://github.com/gorakhargosh/watchdog"},{"name":"ocrmypdf","old_version":"14.4.0","new_version":"15.4.4","repository_url":"https://github.com/ocrmypdf/OCRmyPDF"},{"name":"django-multiselectfield","old_version":"0.1.12","new_version":"1.0.1","repository_url":"https://github.com/goinnn/django-multiselectfield"},{"name":"django-auditlog","old_version":"2.3.0","new_version":"3.3.0","repository_url":"https://github.com/jazzband/django-auditlog"},{"name":"black","old_version":"23.9.1","new_version":"25.11.0","repository_url":"https://github.com/psf/black"},{"name":"pre-commit","old_version":"3.4.0","new_version":"4.3.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pytest","old_version":"7.4.2","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-cov","old_version":"4.1.0","new_version":"7.0.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pytest-sugar","old_version":"0.9.7","new_version":"1.1.1","repository_url":"https://github.com/Teemu/pytest-sugar"},{"name":"pytest-rerunfailures","old_version":"12.0","new_version":"16.0.1","repository_url":"https://github.com/pytest-dev/pytest-rerunfailures"}],"path":null,"ecosystem":"conda"},"body":"Bumps the major-versions group with 17 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| django | `4.2.6` | `4.2.26` |\n| [django-guardian](https://github.com/django-guardian/django-guardian) | `2.4.0` | `3.2.0` |\n| [django-extensions](https://github.com/django-extensions/django-extensions) | `3.2.3` | `4.1` |\n| [django-filter](https://github.com/carltongibson/django-filter) | `23.3` | `25.1` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `21.2.0` | `23.0.0` |\n| [python-ipware](https://github.com/un33k/python-ipware) | `2.0.0` | `3.0.0` |\n| [redis](https://github.com/redis/redis-py) | `4.6.0` | `5.2.1` |\n| [watchdog](https://github.com/gorakhargosh/watchdog) | `3.0.0` | `6.0.0` |\n| [ocrmypdf](https://github.com/ocrmypdf/OCRmyPDF) | `14.4.0` | `15.4.4` |\n| [django-multiselectfield](https://github.com/goinnn/django-multiselectfield) | `0.1.12` | `1.0.1` |\n| [django-auditlog](https://github.com/jazzband/django-auditlog) | `2.3.0` | `3.3.0` |\n| [black](https://github.com/psf/black) | `23.9.1` | `25.11.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `3.4.0` | `4.3.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `7.4.2` | `8.4.2` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `4.1.0` | `7.0.0` |\n| [pytest-sugar](https://github.com/Teemu/pytest-sugar) | `0.9.7` | `1.1.1` |\n| [pytest-rerunfailures](https://github.com/pytest-dev/pytest-rerunfailures) | `12.0` | `16.0.1` |\n\n\nUpdates `django` from 4.2.6 to 4.2.26\n\nUpdates `django-guardian` from 2.4.0 to 3.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-guardian/django-guardian/releases\"\u003edjango-guardian's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.2.0 The Bozkir progression\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate enforcement contact link in CODE_OF_CONDUCT.md by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/918\"\u003edjango-guardian/django-guardian#918\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptional cached anonymous user  - Pr 907 by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/912\"\u003edjango-guardian/django-guardian#912\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003egenerator warnings and logics are added for security purposes by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/920\"\u003edjango-guardian/django-guardian#920\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erollback compatible create anon user fix is developed by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/919\"\u003edjango-guardian/django-guardian#919\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e644 using inlines in django admin with guardian by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/921\"\u003edjango-guardian/django-guardian#921\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-guardian/django-guardian/compare/3.1.3...3.2.0\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.3...3.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edjango-packages badge is added by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/910\"\u003edjango-guardian/django-guardian#910\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate issue templates by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/909\"\u003edjango-guardian/django-guardian#909\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMakefile support by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/906\"\u003edjango-guardian/django-guardian#906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePR merging scenario is fixed by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/913\"\u003edjango-guardian/django-guardian#913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed issue causing prefetch_perms() to throw when passed an empty list by \u003ca href=\"https://github.com/keattang\"\u003e\u003ccode\u003e@​keattang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/904\"\u003edjango-guardian/django-guardian#904\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRe apply \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/812\"\u003e#812\u003c/a\u003e using correct lookup method by \u003ca href=\"https://github.com/sevdog\"\u003e\u003ccode\u003e@​sevdog\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/842\"\u003edjango-guardian/django-guardian#842\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOPS: Bump version for release by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/915\"\u003edjango-guardian/django-guardian#915\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-guardian/django-guardian/compare/3.1.2...3.1.3\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.2...3.1.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 in /.github/workflows by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/903\"\u003edjango-guardian/django-guardian#903\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix type and deprecate old name by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/902\"\u003edjango-guardian/django-guardian#902\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/django-guardian/django-guardian/pull/903\"\u003edjango-guardian/django-guardian#903\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-guardian/django-guardian/compare/3.1.1...3.1.2\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.1...3.1.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epre-commit checker step is added by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/901\"\u003edjango-guardian/django-guardian#901\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-guardian/django-guardian/compare/3.1.0...3.1.1\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.0...3.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eImproved indexing, tweaks and bugfixes\u003c/h2\u003e\n\u003ch2\u003eSaving the 🌳🌳🌳 and the 💰💰💰\u003c/h2\u003e\n\u003cp\u003e⚠️⚠️⚠️ \u003cstrong\u003eWARNING:\u003c/strong\u003e This release contains an update to database indexing which should yield \u003cstrong\u003econsiderable additional performance\u003c/strong\u003e, especially on large table permissions lookups (thanks \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e for such rigorous performance testing!!!). Following the migration that introduces these indexes, databases should reindex automatically in the background (typically within 0-30s even for large tables): this is unlikely to be noticeable but users may experience a short lived performance hit during this period.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow ignore_conflicts on bulk create by \u003ca href=\"https://github.com/pgiki\"\u003e\u003ccode\u003e@​pgiki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/814\"\u003edjango-guardian/django-guardian#814\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/4120d00c28c1b6d3bacb988f6db86bacf91ed0f1\"\u003e\u003ccode\u003e4120d00\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/921\"\u003e#921\u003c/a\u003e from django-guardian/644-using-inlines-in-django-admi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/c896b220bdf96783f1c25d730f12ebef95758c99\"\u003e\u003ccode\u003ec896b22\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/919\"\u003e#919\u003c/a\u003e from django-guardian/770-migration-rollback-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/3814e2383c69266350a3d885d445bdd79da8cb78\"\u003e\u003ccode\u003e3814e23\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 770-migration-rollback-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/94854899f4a030b42840837e08b42923a71c5b78\"\u003e\u003ccode\u003e9485489\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/920\"\u003e#920\u003c/a\u003e from django-guardian/666-permissionrequiredmixin-does...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/e01e2e1edeec60b2c79d561db56e0949ea3c4dad\"\u003e\u003ccode\u003ee01e2e1\u003c/code\u003e\u003c/a\u003e check only username field fixing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/e1ae3c5a7ab74a679ef1ccff2a480a88117df464\"\u003e\u003ccode\u003ee1ae3c5\u003c/code\u003e\u003c/a\u003e show warning instead of error for backward compatibility and giving time the ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/63c10f549dfe2b5ba67e9eec36095cf3e6a2bab8\"\u003e\u003ccode\u003e63c10f5\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 644-using-inlines-in-django-admin-with-guardian\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/b27ebbdcc7f9952d9d9aaaa879b5e202063ccaa8\"\u003e\u003ccode\u003eb27ebbd\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 666-permissionrequiredmixin-does-not-warn-against-us...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/d7ed4a3bccb730d3cdf16fdc404f25b94674c653\"\u003e\u003ccode\u003ed7ed4a3\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 770-migration-rollback-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/03fed6924e06fd13991d9e8ae1b4590addf5473e\"\u003e\u003ccode\u003e03fed69\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/912\"\u003e#912\u003c/a\u003e from django-guardian/pr-907\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-guardian/django-guardian/compare/v2.4.0...3.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-extensions` from 3.2.3 to 4.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-extensions/django-extensions/releases\"\u003edjango-extensions's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd: show_permissions command (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1920\"\u003e#1920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, style per app (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1848\"\u003e#1848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: JSONField, bulk_update's (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1924\"\u003e#1924\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/ahmad88me\"\u003e\u003ccode\u003e@​ahmad88me\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1848\"\u003edjango-extensions/django-extensions#1848\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-extensions/django-extensions/compare/4.0...4.1\"\u003ehttps://github.com/django-extensions/django-extensions/compare/4.0...4.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprovement: Support for Python 3.12 and 3.13\u003c/li\u003e\n\u003cli\u003eImprovement: Support for Django 5.x\u003c/li\u003e\n\u003cli\u003eImprovement: Switch from setup.{cfg,py} to pyproject.toml\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add option to display field choices in graph_models (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1854\"\u003e#1854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add webp support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1857\"\u003e#1857\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Support for ordering edges on pydot/dot/graphviz (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1914\"\u003e#1914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: mail_debug, Update mail_debug command to use aiosmtpd (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1880\"\u003e#1880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: shell_plus, Improve error message for missing import (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1898\"\u003e#1898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: reset_db, Add reset_db support for django_tenants (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1855\"\u003e#1855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: docs, various improvements (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1852\"\u003e#1852\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1888\"\u003e#1888\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1882\"\u003e#1882\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1901\"\u003e#1901\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1912\"\u003e#1912\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1913\"\u003e#1913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: jobs, Handle non-package modules when looking for job definitions (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1887\"\u003e#1887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Add django-prometheus DB backends support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1800\"\u003e#1800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Call post_command when the command raises an unhandled exception (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1837\"\u003e#1837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: sqldiff, do not consider ('serial', 'integer') nor ('bigserial', 'bigint') as a field-type-differ (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1867\"\u003e#1867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: shell_plus, Fix start up order and add history (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1869\"\u003e#1869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove pipchecker and associated tests (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1906\"\u003e#1906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFollowing Django's release numbering style more closely (see \u003ca href=\"https://docs.djangoproject.com/en/5.2/internals/release-process/\"\u003ehttps://docs.djangoproject.com/en/5.2/internals/release-process/\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/dimitrismistriotis\"\u003e\u003ccode\u003e@​dimitrismistriotis\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1859\"\u003edjango-extensions/django-extensions#1859\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/titouanc\"\u003e\u003ccode\u003e@​titouanc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1854\"\u003edjango-extensions/django-extensions#1854\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dmwyatt\"\u003e\u003ccode\u003e@​dmwyatt\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1872\"\u003edjango-extensions/django-extensions#1872\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stianjensen\"\u003e\u003ccode\u003e@​stianjensen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1898\"\u003edjango-extensions/django-extensions#1898\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PapaZ810\"\u003e\u003ccode\u003e@​PapaZ810\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1888\"\u003edjango-extensions/django-extensions#1888\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kviktor\"\u003e\u003ccode\u003e@​kviktor\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1857\"\u003edjango-extensions/django-extensions#1857\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aripollak\"\u003e\u003ccode\u003e@​aripollak\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1913\"\u003edjango-extensions/django-extensions#1913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/flowgunso\"\u003e\u003ccode\u003e@​flowgunso\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1914\"\u003edjango-extensions/django-extensions#1914\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anitahammer\"\u003e\u003ccode\u003e@​anitahammer\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1869\"\u003edjango-extensions/django-extensions#1869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nicolaspanel\"\u003e\u003ccode\u003e@​nicolaspanel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1867\"\u003edjango-extensions/django-extensions#1867\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yujinyuz\"\u003e\u003ccode\u003e@​yujinyuz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1855\"\u003edjango-extensions/django-extensions#1855\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/soof-golan\"\u003e\u003ccode\u003e@​soof-golan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1852\"\u003edjango-extensions/django-extensions#1852\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ghickman\"\u003e\u003ccode\u003e@​ghickman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1887\"\u003edjango-extensions/django-extensions#1887\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jrobichaud\"\u003e\u003ccode\u003e@​jrobichaud\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1837\"\u003edjango-extensions/django-extensions#1837\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-extensions/django-extensions/compare/3.2.3...4.0\"\u003ehttps://github.com/django-extensions/django-extensions/compare/3.2.3...4.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.2.4b1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-extensions/django-extensions/blob/main/CHANGELOG.md\"\u003edjango-extensions's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.1\u003c/h2\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd: show_permissions command (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1920\"\u003e#1920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, style per app (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1848\"\u003e#1848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: JSONField, bulk_update's (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1924\"\u003e#1924\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.0\u003c/h2\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eImprovement: Support for Python 3.12 and 3.13\u003c/li\u003e\n\u003cli\u003eImprovement: Support for Django 5.x\u003c/li\u003e\n\u003cli\u003eImprovement: Switch from setup.{cfg,py} to pyproject.toml\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add option to display field choices in graph_models (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1854\"\u003e#1854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add webp support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1857\"\u003e#1857\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Support for ordering edges on pydot/dot/graphviz (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1914\"\u003e#1914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: mail_debug, Update mail_debug command to use aiosmtpd (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1880\"\u003e#1880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: shell_plus, Improve error message for missing import (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1898\"\u003e#1898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: reset_db, Add reset_db support for django_tenants (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1855\"\u003e#1855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: docs, various improvements (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1852\"\u003e#1852\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1888\"\u003e#1888\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1882\"\u003e#1882\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1901\"\u003e#1901\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1912\"\u003e#1912\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1913\"\u003e#1913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: jobs, Handle non-package modules when looking for job definitions (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1887\"\u003e#1887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Add django-prometheus DB backends support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1800\"\u003e#1800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Call post_command when the command raises an unhandled exception (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1837\"\u003e#1837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: sqldiff, do not consider ('serial', 'integer') nor ('bigserial', 'bigint') as a \u003ccode\u003efield-type-differ\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1867\"\u003e#1867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: shell_plus, Fix start up order and add history (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1869\"\u003e#1869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove pipchecker and associated tests (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1906\"\u003e#1906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFollowing Django's release numbering style more closely (see \u003ca href=\"https://docs.djangoproject.com/en/5.2/internals/release-process/\"\u003ehttps://docs.djangoproject.com/en/5.2/internals/release-process/\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/django-extensions/django-extensions/commit/ad015513e5d8e8ee6ad748fca5f32ccf3fb3d5c5\"\u003e\u003ccode\u003ead01551\u003c/code\u003e\u003c/a\u003e v4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/2c3e914f1264c0a029b3b47b7425d0f68ce637ed\"\u003e\u003ccode\u003e2c3e914\u003c/code\u003e\u003c/a\u003e update CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/fb5b2af1b6595ee126237c299acf242fcfee817e\"\u003e\u003ccode\u003efb5b2af\u003c/code\u003e\u003c/a\u003e ruff format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/7e978d27b031843640f9204ff495738c46233d7f\"\u003e\u003ccode\u003e7e978d2\u003c/code\u003e\u003c/a\u003e graph_models style per app (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1848\"\u003e#1848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/067064ea0c6dec7cba1583447fe5fe1c706d5351\"\u003e\u003ccode\u003e067064e\u003c/code\u003e\u003c/a\u003e avoid trying to serialize expressions when serializing default values\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/a886068502474e70a2d68ff4634a15cc3366088d\"\u003e\u003ccode\u003ea886068\u003c/code\u003e\u003c/a\u003e update CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/d824501cbc6d04a24a43ff5756b496f84093b225\"\u003e\u003ccode\u003ed824501\u003c/code\u003e\u003c/a\u003e Add show_permissions management command (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1920\"\u003e#1920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/934f93f53bdf6c6271ae1ddaee71bc9bf3364a0e\"\u003e\u003ccode\u003e934f93f\u003c/code\u003e\u003c/a\u003e bumped version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/c4577df5b69ec1ebcbe6bc64d7a5c20362f3a8fa\"\u003e\u003ccode\u003ec4577df\u003c/code\u003e\u003c/a\u003e v4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/7cdb43ab56a3b610b47680d8a2fe86b09d5913aa\"\u003e\u003ccode\u003e7cdb43a\u003c/code\u003e\u003c/a\u003e pyproject formatting\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-extensions/django-extensions/compare/3.2.3...4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-filter` from 23.3 to 25.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/carltongibson/django-filter/blob/main/CHANGES.rst\"\u003edjango-filter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 25.1 (2025-02-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved the in-built API schema generation methods, which have been\ndeprecated since v23.2.\u003c/p\u003e\n\u003cp\u003eYou should use \u003ccode\u003edrf-spectacular \u0026lt;https://drf-spectacular.readthedocs.io/en/latest/\u0026gt;\u003c/code\u003e_\nfor generating OpenAPI schemas with DRF.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped support for EOL Python 3.8.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded testing against Python 3.13.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded official support for Django 5.2.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 24.3 (2024-08-02)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdds official support for Django 5.1.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow using dictionaries for grouped choices on Django 5.0+.\u003c/p\u003e\n\u003cp\u003eThanks to Sævar Öfjörð Magnússon.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdds \u003ccode\u003eunknown_field_behavior\u003c/code\u003e FilterSet option to allowing warning and\nignore behaviours for unknown field types during FilterSet generation.\u003c/p\u003e\n\u003cp\u003eThanks to Loes.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 24.2 (2024-03-27)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a regression in v23.4 where callable choices were incorrectly evaluated\nat filter instantiation, on Django versions prior to 5.0.\u003c/p\u003e\n\u003cp\u003eThanks to Craig de Stigter for the report and reproduce.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 24.1 (2024-03-08)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated supported Python and Django versions, and resolved upcoming Django\ndeprecations.\u003c/p\u003e\n\u003cp\u003eRequired versions are now at least Python 3.8 and Django 4.2.\u003c/p\u003e\n\u003cp\u003eThanks to Michael Manganiello.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllowed passing a FilterSet class to the filterset_factory().\u003c/p\u003e\n\u003cp\u003eThanks to Birger Schacht.\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/carltongibson/django-filter/commit/27dd67284405ee832701509b3515baa50c6e074d\"\u003e\u003ccode\u003e27dd672\u003c/code\u003e\u003c/a\u003e Updated Change notes for 25.1 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/2ea38174b010f378a9b57d90c566c2bab7b37bbb\"\u003e\u003ccode\u003e2ea3817\u003c/code\u003e\u003c/a\u003e Added Trove classifier for Django 5.2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/4d2306c211c1d86f85f04fb311b8b05bfefb08a8\"\u003e\u003ccode\u003e4d2306c\u003c/code\u003e\u003c/a\u003e Replaced hardcoded pks in tests (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1703\"\u003e#1703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/fbf5a76a4d97480d78779397b90d34fa8f13d141\"\u003e\u003ccode\u003efbf5a76\u003c/code\u003e\u003c/a\u003e Update tox after Django 5.2 alpha release. (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1700\"\u003e#1700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/1e76d6859e109ae34d5e2a657c66146a9d744c80\"\u003e\u003ccode\u003e1e76d68\u003c/code\u003e\u003c/a\u003e Use QueryDict for data default. (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1691\"\u003e#1691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/e709e5d43a4ad8b8e8ea62520669b88300c9c686\"\u003e\u003ccode\u003ee709e5d\u003c/code\u003e\u003c/a\u003e Add testing against Python 3.13.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/ccde000dfe74362b62301b248681e9505133e821\"\u003e\u003ccode\u003eccde000\u003c/code\u003e\u003c/a\u003e Dropped support for EOL Python 3.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/2a644e176634ec0ce99d9446d980501e9763e194\"\u003e\u003ccode\u003e2a644e1\u003c/code\u003e\u003c/a\u003e Removed deprecated schema generation methods from DRF backend. (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1698\"\u003e#1698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/2494df96c6387a9fa411fcb00b696b15dfd9216b\"\u003e\u003ccode\u003e2494df9\u003c/code\u003e\u003c/a\u003e fix typo in filterset.txt (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1695\"\u003e#1695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/3656174bd90d20f3d916fd98b6476c270013b681\"\u003e\u003ccode\u003e3656174\u003c/code\u003e\u003c/a\u003e Translated using Weblate (Czech) (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1687\"\u003e#1687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/carltongibson/django-filter/compare/23.3...25.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gunicorn` from 21.2.0 to 23.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/benoitc/gunicorn/releases\"\u003egunicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e23.0.0\u003c/h2\u003e\n\u003cp\u003eGunicorn 23.0.0 has been released. This version improve HTTP 1.1. support and  which improve safety\u003c/p\u003e\n\u003cp\u003eYou're invited to upgrade asap your own installation.\u003c/p\u003e\n\u003ch1\u003e23.0.0 - 2024-08-10\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eminor docs fixes (:pr:\u003ccode\u003e3217\u003c/code\u003e, :pr:\u003ccode\u003e3089\u003c/code\u003e, :pr:\u003ccode\u003e3167\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eworker_class parameter accepts a class (:pr:\u003ccode\u003e3079\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003efix deadlock if request terminated during chunked parsing (:pr:\u003ccode\u003e2688\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003epermit receiving Transfer-Encodings: compress, deflate, gzip (:pr:\u003ccode\u003e3261\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003epermit Transfer-Encoding headers specifying multiple encodings. note: no parameters, still (:pr:\u003ccode\u003e3261\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003esdist generation now explicitly excludes sphinx build folder (:pr:\u003ccode\u003e3257\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003edecode bytes-typed status (as can be passed by gevent) as utf-8 instead of raising \u003ccode\u003eTypeError\u003c/code\u003e (:pr:\u003ccode\u003e2336\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eraise correct Exception when encounting invalid chunked requests (:pr:\u003ccode\u003e3258\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ethe SCRIPT_NAME and PATH_INFO headers, when received from allowed forwarders, are no longer restricted for containing an underscore (:pr:\u003ccode\u003e3192\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003einclude IPv6 loopback address \u003ccode\u003e[::1]\u003c/code\u003e in default for :ref:\u003ccode\u003eforwarded-allow-ips\u003c/code\u003e and :ref:\u003ccode\u003eproxy-allow-ips\u003c/code\u003e (:pr:\u003ccode\u003e3192\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e** NOTE **\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SCRIPT_NAME change mitigates a regression that appeared first in the 22.0.0 release\u003c/li\u003e\n\u003cli\u003eReview your :ref:\u003ccode\u003eforwarded-allow-ips\u003c/code\u003e setting if you are still not seeing the SCRIPT_NAME transmitted\u003c/li\u003e\n\u003cli\u003eReview your :ref:\u003ccode\u003eforwarder-headers\u003c/code\u003e setting if you are missing headers after upgrading from a version prior to 22.0.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e** Breaking changes **\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003erefuse requests where the uri field is empty (:pr:\u003ccode\u003e3255\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003erefuse requests with invalid CR/LR/NUL in heade field values (:pr:\u003ccode\u003e3253\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eremove temporary \u003ccode\u003e--tolerate-dangerous-framing\u003c/code\u003e switch from 22.0 (:pr:\u003ccode\u003e3260\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eIf any of the breaking changes affect you, be aware that now refused requests can post a security problem, especially so in setups involving request pipe-lining and/or proxies.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFix CVE-2024-1135\u003c/p\u003e\n\u003ch2\u003eGunicorn 22.0 has been released\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eGunicorn 22.0.0 has been released.\u003c/strong\u003e This version fix the numerous security vulnerabilities. You're invited to upgrade asap your own installation.\u003c/p\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e22.0.0 - 2024-04-17\n===================\n\u003cul\u003e\n\u003cli\u003euse \u003ccode\u003eutime\u003c/code\u003e to notify workers liveness\u003c/li\u003e\n\u003cli\u003emigrate setup to pyproject.toml\u003c/li\u003e\n\u003cli\u003efix numerous security vulnerabilities in HTTP parser (closing some request smuggling vectors)\u003c/li\u003e\n\u003cli\u003eparsing additional requests is no longer attempted past unsupported request framing\u003c/li\u003e\n\u003cli\u003eon HTTP versions \u0026lt; 1.1 support for chunked transfer is refused (only used in exploits)\u003c/li\u003e\n\u003cli\u003erequests conflicting configured or passed SCRIPT_NAME now produce a verbose error\u003c/li\u003e\n\u003cli\u003eTrailer fields are no longer inspected for headers indicating secure scheme\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/411986d6191114dd1d1bbb9c72c948dbf0ef0425\"\u003e\u003ccode\u003e411986d\u003c/code\u003e\u003c/a\u003e fix doc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/334392e7795f2017e83f7054d372422512d6f4b6\"\u003e\u003ccode\u003e334392e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/2559\"\u003e#2559\u003c/a\u003e from laggardkernel/bugfix/reexec-env\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/e75c3533e32f91a9dceba9e8e1341fea5540ba81\"\u003e\u003ccode\u003ee75c353\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3189\"\u003e#3189\u003c/a\u003e from pajod/patch-py36\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/9357b28dd867950e33ca3864207cb35a1eb8ba6f\"\u003e\u003ccode\u003e9357b28\u003c/code\u003e\u003c/a\u003e keep document user in access_log_format setting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/79fdef0822cbfe7e16b659b07230af9be098d5fc\"\u003e\u003ccode\u003e79fdef0\u003c/code\u003e\u003c/a\u003e bump to 23.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/3acd9fbfd1159ca3cd80a8052ada89a0bf27f806\"\u003e\u003ccode\u003e3acd9fb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/2620\"\u003e#2620\u003c/a\u003e from talkerbox/improve-access-log-format-docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/3f56d76548e4ade034bf5e174737902970285d1f\"\u003e\u003ccode\u003e3f56d76\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3192\"\u003e#3192\u003c/a\u003e from pajod/patch-allowed-script-name\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/256d474a7910bd605f2cc8c082b79c1ae55215a9\"\u003e\u003ccode\u003e256d474\u003c/code\u003e\u003c/a\u003e docs: revert duped directive\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/ffa48b581dcaa75f17fd2df263515e4266feeef6\"\u003e\u003ccode\u003effa48b5\u003c/code\u003e\u003c/a\u003e test: default change was intentional\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/52538ca9070b5e7ead5d0fa731e82a622dc6f3ee\"\u003e\u003ccode\u003e52538ca\u003c/code\u003e\u003c/a\u003e docs: recommend SCRIPT_NAME=/subfolder\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/benoitc/gunicorn/compare/21.2.0...23.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-ipware` from 2.0.0 to 3.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/un33k/python-ipware/blob/main/CHANGELOG.md\"\u003epython-ipware's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.0.0\u003c/h2\u003e\n\u003cp\u003eFix:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRelease major version, as there is a possibility of api change causing minimal backward incompatibly\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.5\u003c/h2\u003e\n\u003cp\u003eEnhance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAI assisted clean up\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.4\u003c/h2\u003e\n\u003cp\u003eEnhance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eproxy_count=0\u003c/code\u003e as an option (\u003ca href=\"https://github.com/FraKraBa\"\u003e\u003ccode\u003e@​FraKraBa\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.3\u003c/h2\u003e\n\u003cp\u003eEnhance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eHTTP_CF_CONNECTING_IP\u003c/code\u003e to list of known ip headers (Adam M.)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.2\u003c/h2\u003e\n\u003cp\u003eEnhance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded logger name\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.1\u003c/h2\u003e\n\u003cp\u003eIssue:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003eHTTP_VIA\u003c/code\u003e header support (unreliable IP information) (\u003ca href=\"https://github.com/yourcelf\"\u003e\u003ccode\u003e@​yourcelf\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eEnhance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eInclude support for python 3.12\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/cab810ced72457abcc77ffd234be9cb0a75f7ec3\"\u003e\u003ccode\u003ecab810c\u003c/code\u003e\u003c/a\u003e version 3 major (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/21\"\u003e#21\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/5d01f1e6662f3de861d44006247fd5f0a3ae4a0b\"\u003e\u003ccode\u003e5d01f1e\u003c/code\u003e\u003c/a\u003e Feat/enhance (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/20\"\u003e#20\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/bd56bcd1d4ed2d2bbd690059e5a231d6b51bcd31\"\u003e\u003ccode\u003ebd56bcd\u003c/code\u003e\u003c/a\u003e Allow for proxy_count of exact 0 (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/19\"\u003e#19\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/ddfde3c6d4dee387a59287a2c0afc933f9773791\"\u003e\u003ccode\u003eddfde3c\u003c/code\u003e\u003c/a\u003e Update Readme (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/17\"\u003e#17\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/aab321baf9958ae128460c2279364926f6612dca\"\u003e\u003ccode\u003eaab321b\u003c/code\u003e\u003c/a\u003e Add HTTP_CF_CONNECTING_IP to ip Header list (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/16\"\u003e#16\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/e908cc321dc61e203033768f8d1072efc71f4556\"\u003e\u003ccode\u003ee908cc3\u003c/code\u003e\u003c/a\u003e Added logger name (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/15\"\u003e#15\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/ad1f01783279ecd8dfff91b3db8558f92b5bde0b\"\u003e\u003ccode\u003ead1f017\u003c/code\u003e\u003c/a\u003e Remove HTTP_VIA support, support for 3.12 (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/14\"\u003e#14\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/un33k/python-ipware/compare/v2.0.0...v3.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `redis` from 4.6.0 to 5.2.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/redis-py/releases\"\u003eredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.2.1\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed unsecured tempfile.mktemp() command usage (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3446\"\u003e#3446\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed bug with SLOWLOG GET response parsing on Redis Software (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3441\"\u003e#3441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed issue with invoking _close() on closed event loop (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3438\"\u003e#3438\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMigrate test infrastructure to new custom docker images (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3415\"\u003e#3415\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed flacky test with HEXPIREAT command (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3437\"\u003e#3437\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/IlianIliev\"\u003e\u003ccode\u003e@​IlianIliev\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/uglide\"\u003e\u003ccode\u003e@​uglide\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/vladvildanov\"\u003e\u003ccode\u003e@​vladvildanov\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/teodorfn\"\u003e\u003ccode\u003e@​teodorfn\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.2.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🚀 New Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExtend AggregateRequest with scorer argument (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3409\"\u003e#3409\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePin pytest-profiling version due to the bug (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3417\"\u003e#3417\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/uglide\"\u003e\u003ccode\u003e@​uglide\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/rbs333\"\u003e\u003ccode\u003e@​rbs333\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/vladvildanov\"\u003e\u003ccode\u003e@​vladvildanov\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/dwdougherty\"\u003e\u003ccode\u003e@​dwdougherty\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.1.1\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e5.1.1\u003c/h2\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed return type for Redis Set commands to be Set instead of List (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3399\"\u003e#3399\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed bug with partial Hiredis availability (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3400\"\u003e#3400\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed bug with async pipeline and cluster fails with some commands (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3402\"\u003e#3402\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.1.0\u003c/h2\u003e\n\u003ch3\u003e🚀 New Features\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/redis/redis-py/commit/a74fa6a3dc1996ff256d5b1849c3018a7ac05c99\"\u003e\u003ccode\u003ea74fa6a\u003c/code\u003e\u003c/a\u003e Release 5.2.1 (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3451\"\u003e#3451\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/166ae7bfd79a88cdfbd7959b2c28cd79aa0eaf0c\"\u003e\u003ccode\u003e166ae7b\u003c/code\u003e\u003c/a\u003e Updated package version (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3418\"\u003e#3418\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/00f5be420b397adfa1b9aa9c2761f7d8a27c0a9a\"\u003e\u003ccode\u003e00f5be4\u003c/code\u003e\u003c/a\u003e adds scorer to AggregateRequest (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3409\"\u003e#3409\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/4c4d4afd2b31b5c36a2d5e22419bcbf584265a17\"\u003e\u003ccode\u003e4c4d4af\u003c/code\u003e\u003c/a\u003e Pin pytest-profiling (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3417\"\u003e#3417\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/d6ddb0d66bc4bd28c99d9cf148c9085117cc8ce9\"\u003e\u003ccode\u003ed6ddb0d\u003c/code\u003e\u003c/a\u003e DOC-4199: add TCEs to the combined query page (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3380\"\u003e#3380\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/17db62e3c9ea796f5705d2857f49e52799057af7\"\u003e\u003ccode\u003e17db62e\u003c/code\u003e\u003c/a\u003e DOC-4200: add TCEs to the aggregation query page (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3381\"\u003e#3381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/700045c7a7db6d986df6610d61239375a2211053\"\u003e\u003ccode\u003e700045c\u003c/code\u003e\u003c/a\u003e Backport 5.1 changes into master (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3406\"\u003e#3406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/2e46613dcdf9db7f948f3258fee1c9199da8cbfa\"\u003e\u003ccode\u003e2e46613\u003c/code\u003e\u003c/a\u003e Client side caching refactoring (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3350\"\u003e#3350\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/7d73d742d6df4b3d6f6a1f0ec73e72d4a02add74\"\u003e\u003ccode\u003e7d73d74\u003c/code\u003e\u003c/a\u003e DOC-4197: add TCEs to the geospatial query page (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3378\"\u003e#3378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/c7483b3d63a2001508a2ff2c9952ad50d9252732\"\u003e\u003ccode\u003ec7483b3\u003c/code\u003e\u003c/a\u003e DOC-4196: add TCEs to the full-text query page (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3377\"\u003e#3377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/redis/redis-py/compare/v4.6.0...v5.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `watchdog` from 3.0.0 to 6.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/gorakhargosh/watchdog/releases\"\u003ewatchdog's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[inotify] Use of \u003ccode\u003eselect.poll()\u003c/code\u003e instead of deprecated \u003ccode\u003eselect.select()\u003c/code\u003e, if available. (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1078\"\u003e#1078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_class()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_instancemethod()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_module()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eis_class_private_name()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eis_classmethod()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eis_method(met()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003emethod_name()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003ename()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Removed the \u003ccode\u003e--trace\u003c/code\u003e CLI argument from the \u003ccode\u003ewatchmedo log\u003c/code\u003e command, useless since events are logged by default at the \u003ccode\u003eLoggerTrick\u003c/code\u003e class level.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePin test dependecies.\u003c/li\u003e\n\u003cli\u003e[docs] Add typing info to quick start. (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1082\"\u003e#1082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[inotify] Fix reading inotify file descriptor after closing it. (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1081\"\u003e#1081\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[utils] The \u003ccode\u003estop_signal\u003c/code\u003e keyword-argument type of the \u003ccode\u003eAutoRestartTrick\u003c/code\u003e class can now be either a \u003ccode\u003esignal.Signals\u003c/code\u003e or an \u003ccode\u003eint\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e[utils] Added the \u003ccode\u003e__repr__()\u003c/code\u003e method to the \u003ccode\u003eTrick\u003c/code\u003e class.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Fixed Mypy issues.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Added the \u003ccode\u003e__repr__()\u003c/code\u003e method to the \u003ccode\u003eHelpFormatter\u003c/code\u003e class.\u003c/li\u003e\n\u003cli\u003e[windows] Fixed Mypy issues.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e💟 Thanks to our beloved contributors: \u003ca href=\"https://github.com/g-pichler\"\u003e\u003ccode\u003e@​g-pichler\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ethan-vanderheijden\"\u003e\u003ccode\u003e@​ethan-vanderheijden\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/nhairs\"\u003e\u003ccode\u003e@​nhairs\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[inotify] Improve cleaning up \u003ccode\u003eInotify\u003c/code\u003e threads, and add \u003ccode\u003eeventlet\u003c/code\u003e test cases (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1070\"\u003e#1070\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e💟 Thanks to our beloved contributors: \u003ca href=\"https://github.com/ethan-vanderheijden\"\u003e\u003ccode\u003e@​ethan-vanderheijden\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEnable OS specific Mypy checks (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1064\"\u003e#1064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[watchmedo] Fix \u003ccode\u003etricks\u003c/code\u003e argument type of \u003ccode\u003eschedule_tricks()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1063\"\u003e#1063\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e💟 Thanks to our beloved contributors: \u003ca href=\"https://github.com/gnought\"\u003e\u003ccode\u003e@​gnought\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[kqueue] Fix \u003ccode\u003eTypeError: kqueue.control() only accepts positional parameters\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1062\"\u003e#1062\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e💟 Thanks to our beloved contributors: \u003ca href=\"https://github.com/apoirier\"\u003e\u003ccode\u003e@​apoirier\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8 (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[core] Enforced usage of proper keyword-arguments (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1057\"\u003e#1057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[core] Renamed the \u003ccode\u003eBaseObserverSubclassCallable\u003c/code\u003e class to \u003ccode\u003eObserverType\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[inotify] Renamed the \u003ccode\u003einotify_event_struct\u003c/code\u003e class to \u003ccode\u003eInotifyEventStruct\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1055\"\u003e#1055\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/gorakhargosh/watchdog/blob/master/changelog.rst\"\u003ewatchdog's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e6.0.0\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n2024-11-01 • `full history \u0026lt;https://github.com/gorakhargosh/watchdog/compare/v5.0.3...v6.0.0\u0026gt;`__\n\u003cul\u003e\n\u003cli\u003ePin test dependencies.\u003c/li\u003e\n\u003cli\u003e[docs] Add typing info to quick start. (\u003ccode\u003e[#1082](https://github.com/gorakhargosh/watchdog/issues/1082) \u0026amp;lt;https://github.com/gorakhargosh/watchdog/pull/1082\u0026amp;gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003e[inotify] Use of \u003ccode\u003eselect.poll()\u003c/code\u003e instead of deprecated \u003ccode\u003eselect.select()\u003c/code\u003e, if available. (\u003ccode\u003e[#1078](https://github.com/gorakhargosh/watchdog/issues/1078) \u0026amp;lt;https://github.com/gorakhargosh/watchdog/pull/1078\u0026amp;gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003e[inotify] Fix reading inotify file descriptor after closing it. (\u003ccode\u003e[#1081](https://github.com/gorakhargosh/watchdog/issues/1081) \u0026amp;lt;https://github.com/gorakhargosh/watchdog/pull/1081\u0026amp;gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003e[utils] The \u003ccode\u003estop_signal\u003c/code\u003e keyword-argument type of the \u003ccode\u003eAutoRestartTrick\u003c/code\u003e class can now be either a \u003ccode\u003esignal.Signals\u003c/code\u003e or an \u003ccode\u003eint\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e[utils] Added the \u003ccode\u003e__repr__()\u003c/code\u003e method to the \u003ccode\u003eTrick\u003c/code\u003e class.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_class()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_instancemethod()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_module()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eis_class_private_name()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eis_classmethod()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eic_method(met()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003emethod_name()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003ename()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Fixed Mypy issues.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Added the \u003ccode\u003e__repr__()\u003c/code\u003e method to the \u003ccode\u003eHelpFormatter\u003c/code\u003e class.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Removed the \u003ccode\u003e--trace\u003c/code\u003e CLI argument from the \u003ccode\u003ewatchmedo log\u003c/code\u003e command, useless since events are logged by default at the \u003ccode\u003eLoggerTrick\u003c/code\u003e class level.\u003c/li\u003e\n\u003cli\u003e[windows] Fixed Mypy issues.\u003c/li\u003e\n\u003cli\u003eThanks to our beloved contributors: \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/g-pichler\"\u003e\u003ccode\u003e@​g-pichler\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ethan-vanderheijden\"\u003e\u003ccode\u003e@​ethan-vanderheijden\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/nhairs\"\u003e\u003ccode\u003e@​nhairs\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e5.0.3\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e2024-09-27 • \u003ccode\u003efull history \u0026lt;https://github.com/gorakhargosh/watchdog/compare/v5.0.2...v5.0.3\u0026gt;\u003c/code\u003e__\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[inotify] Improve cleaning up \u003ccode\u003eInotify\u003c/code\u003e threads, and add \u003ccode\u003eeventlet\u003c/code\u003e test cases (\u003ccode\u003e[#1070](https://github.com/gorakhargosh/watchdog/issues/1070) \u0026lt;https://github.com/gorakhargosh/watchdog/pull/1070\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eThanks to our beloved contributors: \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ethan-vanderheijden\"\u003e\u003ccode\u003e@​ethan-vanderheijden\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e5.0.2\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n2024-09-03 • `full history \u0026lt;https://github.com/gorakhargosh/watchdog/compare/v5.0.1...v5.0.2\u0026gt;`__\n\u003cul\u003e\n\u003cli\u003eEnable OS specific Mypy checks (\u003ccode\u003e[#1064](https://github.com/gorakhargosh/watchdog/issues/1064) \u0026amp;lt;https://github.com/gorakhargosh/watchdog/pull/1064\u0026amp;gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003e[watchmedo] Fix \u003ccode\u003etricks\u003c/code\u003e argument type of \u003ccode\u003eschedule_tricks()\u003c/code\u003e (\u003ccode\u003e[#1063](https://github.com/gorakhargosh/watchdog/issues/1063) \u0026amp;lt;https://github.com/gorakhargosh/watchdog/pull/1063\u0026amp;gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eThanks to our beloved contributors: \u003ca href=\"https://github.com/gnought\"\u003e\u003ccode\u003e@​gnought\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e5.0.1\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e2024-09-02 • \u003ccode\u003efull history \u0026lt;https://github.com/gorakhargosh/watchdog/compare/v5.0.0...v5.0.1\u0026gt;\u003c/code\u003e__\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[kqueue] Fix \u003ccode\u003eTypeError: kqueue.control() only accepts positional parameters\u003c/code\u003e  (\u003ccode\u003e[#1062](https://github.com/gorakhargosh/watchdog/issues/1062) \u0026lt;https://github.com/gorakhargosh/watchdog/pull/1062\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eThanks to our beloved contributors: \u003ca href=\"https://github.com/apoirier\"\u003e\u003ccode\u003e@​apoirier\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\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/gorakhargosh/watchdog/commit/76c091dc8841de1d1a1cd6511bb509fe4f058de6\"\u003e\u003ccode\u003e76c091d\u003c/code\u003e\u003c/a\u003e Version 6.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/58386d88747259b8b3da5082e30f1c6e0aa3b31a\"\u003e\u003ccode\u003e58386d8\u003c/code\u003e\u003c/a\u003e Fixes, and clean-up (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1084\"\u003e#1084\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/db698a52bbb1eb8cc34e889a8afdac6f17a99e57\"\u003e\u003ccode\u003edb698a5\u003c/code\u003e\u003c/a\u003e fix: reading inotify file descriptor after closing it. (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1081\"\u003e#1081\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/73d561265b109f30cf76a280cdcc74aa9e6df391\"\u003e\u003ccode\u003e73d5612\u003c/code\u003e\u003c/a\u003e [docs] Add typing info to quick start (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1082\"\u003e#1082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/d774fec477a8f57d24b588164ebdd39b2d507bcd\"\u003e\u003ccode\u003ed774fec\u003c/code\u003e\u003c/a\u003e docs: Update README Badges (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1083\"\u003e#1083\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/6b74737501c85df9b9c2585faef4797a5250171b\"\u003e\u003ccode\u003e6b74737\u003c/code\u003e\u003c/a\u003e docs: funding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/3d1b888bccdd27a28f9f12a4e89288afe1ee493a\"\u003e\u003ccode\u003e3d1b888\u003c/code\u003e\u003c/a\u003e [inotify] Use of \u003ccode\u003eselect.poll()\u003c/code\u003e instead of deprecated \u003ccode\u003eselect.select()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1078\"\u003e#1078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/6a4f1cf846e03c8701fcc53b9e910077b5824e59\"\u003e\u003ccode\u003e6a4f1cf\u003c/code\u003e\u003c/a\u003e Bump the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/ad6df50908fca071ac8ad6558453bb28b522f794\"\u003e\u003ccode\u003ead6df50\u003c/code\u003e\u003c/a\u003e Version 5.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/59650f8fe72ac498374434a10a3dd49f3c3d1429\"\u003e\u003ccode\u003e59650f8\u003c/code\u003e\u003c/a\u003e fix: polish \u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1070\"\u003e#1070\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/gorakhargosh/watchdog/compare/v3.0.0...v6.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ocrmypdf` from 14.4.0 to 15.4.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/blob/main/docs/release_notes.md\"\u003eocrmypdf's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev15.4.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed documentation for installing Ghostscript on Windows. {issue}\u003ccode\u003e1198\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdded warning message about security issue in older versions of Ghostscript.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed deprecation warning in pikepdf older than 8.7.1; pikepdf \u0026gt;= 8.7.1 is\nnow required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWe now raise an exception on a certain class of PDFs that likely need an\nexplicit color conversion strategy selected to display correctly\nfor PDF/A conversion.\u003c/li\u003e\n\u003cli\u003eFixed an error that occurred while trying to write a log message after the\ndebug log handler was removed.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed misc/watcher.py regressions: accept \u003ccode\u003e--ocr-json-settings\u003c/code\u003e as either\nfilename or JSON string, as previously; and argument count mismatch.\n{issue}\u003ccode\u003e1183,1185\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eWe no longer attempt to set /ProcSet in the PDF output, since this is an\nobsolete PDF feature.\u003c/li\u003e\n\u003cli\u003eDocumentation improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded new experimental APIs to support offline editing of the final text.\nSpecifically, one can now generate hOCR files with OCRmyPDF, edit them with\nsome other tool, and then finalize the PDF. They are experimental and\nsubject to change, including details of how the working folder is used.\nThere is no command line interface.\u003c/li\u003e\n\u003cli\u003eCode reorganization: executors, progress bars, initialization and setup.\u003c/li\u003e\n\u003cli\u003eFixed test coverage in cases where the coverage tool did not properly trace\ninto threads or subprocesses. This code was still being tested but appeared\nas not covered.\u003c/li\u003e\n\u003cli\u003eIn the test suite, reduced use of subprocesses and other techniques that\ninterfere with coverage measurement.\u003c/li\u003e\n\u003cli\u003eImproved error check for when we appear to be running inside a snap container\nand files are not available.\u003c/li\u003e\n\u003cli\u003ePlugin specification now properly defines progress bars as a protocol rather\nthan defining them as \u0026quot;tqdm-like\u0026quot;.\u003c/li\u003e\n\u003cli\u003eWe now default to using \u0026quot;forkserver\u0026quot; process creation on POSIX platforms\nrather than fork, since this is method is more robust and avoids some\nissues when threads are present.\u003c/li\u003e\n\u003cli\u003eFixed an instance where the user's request to \u003ccode\u003e--no-use-threads\u003c/code\u003e was ignored.\u003c/li\u003e\n\u003cli\u003eIf a PDF does not have language metadata on its top level object, we add\nthe OCR language.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/c90d5cd84b0e27906310c28f0d78c3ded9106d65\"\u003e\u003ccode\u003ec90d5cd\u003c/code\u003e\u003c/a\u003e Fix Ghostscript installation instructions and add warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/9898904be70bf957154cc66cb5d6f57bac7c26b4\"\u003e\u003ccode\u003e9898904\u003c/code\u003e\u003c/a\u003e Fix pikepdf PdfMatrix deprecation warning; v15.4.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/27d52298420e785300e418bef4e4219ef97720e1\"\u003e\u003ccode\u003e27d5229\u003c/code\u003e\u003c/a\u003e Make logger names unique\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/4a9a575ef0f2cd7459538a43e802c8d8b3846168\"\u003e\u003ccode\u003e4a9a575\u003c/code\u003e\u003c/a\u003e ghostscript: better comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/52fd9a630d57ac7af91db423b17e6b0297fc1c66\"\u003e\u003ccode\u003e52fd9a6\u003c/code\u003e\u003c/a\u003e v15.4.2 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/a596ccf84469c81c6d19ab0eb59f53a5df0bc3c7\"\u003e\u003ccode\u003ea596ccf\u003c/code\u003e\u003c/a\u003e Raise exception if resulting PDF might appear blank in a known in some PDF vi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/e7fa97731f507c1d91e4289b9d5f3344533d7c4c\"\u003e\u003ccode\u003ee7fa977\u003c/code\u003e\u003c/a\u003e ghostscript duplicate filter: filter within a window of previous messages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/290aa2810868fb506a0ded2db8dabb580d5a2459\"\u003e\u003ccode\u003e290aa28\u003c/code\u003e\u003c/a\u003e Fix error on attempt to write to debug log after removing debug log handler\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/a95640ed9ec0a5caa360bd64b9ad6cc9f916fa61\"\u003e\u003ccode\u003ea95640e\u003c/code\u003e\u003c/a\u003e v15.4.1 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/f69267bb675c3261121b70451f6e673f433bc7ad\"\u003e\u003ccode\u003ef69267b\u003c/code\u003e\u003c/a\u003e watcher: restore ability to read json from file or command line string\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/compare/v14.4.0...v15.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-multiselectfield` from 0.1.12 to 1.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/goinnn/django-multiselectfield/releases\"\u003edjango-multiselectfield's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBadge image worked on GitHub but was broken on PyPI — fixed it.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.0\u003c/h2\u003e\n\u003cp\u003eThis release introduces multiple changes that are incompatible with previous versions.\u003c/p\u003e\n\u003cp\u003eThe major version number has been incremented following \u003ccode\u003eSemantic Versioning (SemVer) \u0026lt;https://semver.org/\u0026gt;\u003c/code\u003e_, as several components of the package have changed in ways that may require updates in client code.\u003c/p\u003e\n\u003cp\u003eThe internal codebase has been significantly cleaned up and reorganized, making it more maintainable and consistent.\u003c/p\u003e\n\u003cp\u003eThis version contains \u003cstrong\u003e40% fewer lines of code\u003c/strong\u003e compared to the previous release.\u003c/p\u003e\n\u003cp\u003eLess code means fewer bugs, easier maintenance, and better long-term sustainability.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFList (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\"\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2\u003c/a\u003e):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/50d3f785883e0a314f2dc89950e3fe1e88a7ede6\"\u003e50d3f785883e0a314f2dc89950e3fe1e88a7ede6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIt was created to support MultiSelectFields in admin.list_display, but it never actually worked. If you add a multiselect field to list_display, Django does not call to \u003cstrong\u003estr\u003c/strong\u003e method of MSGList (renamed to MSFList)\u003c/li\u003e\n\u003cli\u003eIt was created for integer choices too and it is a misconception. This is explained in the README file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFFlatchoices (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\"\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2\u003c/a\u003e):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/5638247c1d70670d4f81adf35143ef17a7d7575e\"\u003e5638247c1d70670d4f81adf35143ef17a7d7575e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIn list_display, labels for the choices are now shown (comma-separated) instead of the values of the choices (comma-separated).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn to_python method, value is a list or a string. (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/c4579138dda2833cbce26afbf57da5353aa45690\"\u003ec4579138dda2833cbce26afbf57da5353aa45690\u003c/a\u003e)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove set case and dict case\u003c/li\u003e\n\u003cli\u003eIf this breaks something, please create a test to help understand the use case.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoving integer choices:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIt was a mistake. MultiSelectField inherits of CharField, not IntegerField.\u003c/li\u003e\n\u003cli\u003eIt is impossible knows if original choice is (1, 'Item title 2.1') or ('1', 'Item title 2.1')\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: Form instance generated twice since Django  (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/168\"\u003e#168\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix CSS admin:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/173\"\u003e#173\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/7711f4aa755c81d00f07ce8a6ff0fd9240061f9c\"\u003e7711f4aa755c81d00f07ce8a6ff0fd9240061f9c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix Properly Display Categorized Choices in get_FOO_display (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/169\"\u003e#169\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSortMultiSelectField: (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/172\"\u003e#172\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/goinnn/django-multiselectfield/blob/master/CHANGES.rst\"\u003edjango-multiselectfield's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.0.1 (2025-06-12)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBadge image worked on GitHub but was broken on PyPI — fixed it.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.0.0 (2025-06-12)\u003c/h2\u003e\n\u003cp\u003eThis release introduces multiple changes that are incompatible with previous versions.\u003c/p\u003e\n\u003cp\u003eThe major version number has been incremented following \u003ccode\u003eSemantic Versioning (SemVer) \u0026lt;https://semver.org/\u0026gt;\u003c/code\u003e_, as several components of the package have changed in ways that may require updates in client code.\u003c/p\u003e\n\u003cp\u003eThe internal codebase has been significantly cleaned up and reorganized, making it more maintainable and consistent.\u003c/p\u003e\n\u003cp\u003eThis version contains \u003cstrong\u003e40% fewer lines of code\u003c/strong\u003e compared to the previous release.\u003c/p\u003e\n\u003cp\u003eLess code means fewer bugs, easier maintenance, and better long-term sustainability.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFList (\u003ccode\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\u0026gt;\u003c/code\u003e_):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ccode\u003e50d3f785883e0a314f2dc89950e3fe1e88a7ede6 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/50d3f785883e0a314f2dc89950e3fe1e88a7ede6\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eIt was created to support MultiSelectFields in admin.list_display, but it never actually worked. If you add a multiselect field to list_display, Django does not call to \u003cstrong\u003estr\u003c/strong\u003e method of MSGList (renamed to MSFList)\u003c/li\u003e\n\u003cli\u003eIt was created for integer choices too and it is a misconception. This is explained in the README file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFFlatchoices (\u003ccode\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\u0026gt;\u003c/code\u003e_):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ccode\u003e5638247c1d70670d4f81adf35143ef17a7d7575e \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/5638247c1d70670d4f81adf35143ef17a7d7575e\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eIn list_display, labels for the choices are now shown (comma-separated) instead of the values of the choices (comma-separated).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn to_python method, value is a list or a string. (\u003ccode\u003ec4579138dda2833cbce26afbf57da5353aa45690 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/c4579138dda2833cbce26afbf57da5...\n\n_Description has been truncated_","html_url":"https://github.com/dsp-testing/paperless-ngx/pull/183","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/dsp-testing%2Fpaperless-ngx/issues/183","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/183/packages"}},{"old_version":"8.3.4","new_version":"8.4.2","update_type":"minor","path":null,"pr_created_at":"2025-11-01T12:15:52.000Z","version_change":"8.3.4 → 8.4.2","issue":{"uuid":"3577947660","node_id":"PR_kwDOH-NjAc6w_Eb1","number":52,"state":"closed","title":"build(deps): bump the dependencies group with 7 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-12-01T15:44:21.000Z","author_association":null,"state_reason":null,"created_at":"2025-11-01T12:15:52.000Z","updated_at":"2025-12-01T15:44:23.000Z","time_to_close":2604509,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"dependencies","update_count":7,"packages":[{"name":"beautifulsoup4","old_version":"4.12.3","new_version":"4.14.2"},{"name":"typed-argument-parser","old_version":"1.10.1","new_version":"1.11.0","repository_url":"https://github.com/swansonk14/typed-argument-parser"},{"name":"types-beautifulsoup4","old_version":"4.12.0.20241020","new_version":"4.12.0.20250516","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"mypy","old_version":"1.14.1","new_version":"1.18.2","repository_url":"https://github.com/python/mypy"},{"name":"pre-commit","old_version":"4.0.1","new_version":"4.3.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pytest","old_version":"8.3.4","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pdoc","old_version":"15.0.1","new_version":"16.0.0","repository_url":"https://github.com/mitmproxy/pdoc"}],"path":null,"ecosystem":"conda"},"body":"Bumps the dependencies group with 7 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.12.3` | `4.14.2` |\n| [typed-argument-parser](https://github.com/swansonk14/typed-argument-parser) | `1.10.1` | `1.11.0` |\n| [types-beautifulsoup4](https://github.com/typeshed-internal/stub_uploader) | `4.12.0.20241020` | `4.12.0.20250516` |\n| [mypy](https://github.com/python/mypy) | `1.14.1` | `1.18.2` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.0.1` | `4.3.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.4` | `8.4.2` |\n| [pdoc](https://github.com/mitmproxy/pdoc) | `15.0.1` | `16.0.0` |\n\nUpdates `beautifulsoup4` from 4.12.3 to 4.14.2\n\nUpdates `typed-argument-parser` from 1.10.1 to 1.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/swansonk14/typed-argument-parser/releases\"\u003etyped-argument-parser's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eHousekeeping\u003c/h2\u003e\n\u003cp\u003eThis release focuses on keeping Tap working well: making bug fixes, improving performance, and adding support for the latest Python versions. We are grateful for the many collaborators that have maintained and improved Tap!\u003c/p\u003e\n\u003ch2\u003eImprove robustness and performance of help string generation\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/swansonk14/typed-argument-parser/pull/149\"\u003eswansonk14/typed-argument-parser#149\u003c/a\u003e: Performance optimization of source code parsing by roughly two orders of magnitude. Thanks \u003ca href=\"https://github.com/arnaud-ma\"\u003e\u003ccode\u003e@​arnaud-ma\u003c/code\u003e\u003c/a\u003e!\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/swansonk14/typed-argument-parser/commit/02f4358ac7fd15b0f03c4d814c0db22741ddc6cc\"\u003ehttps://github.com/swansonk14/typed-argument-parser/commit/02f4358ac7fd15b0f03c4d814c0db22741ddc6cc\u003c/a\u003e: Improved handling of comment extraction for multiline assign statements.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/swansonk14/typed-argument-parser/commit/69f78d38ebadcc09d4d3425f4fc4dc3bba1b08d9\"\u003ehttps://github.com/swansonk14/typed-argument-parser/commit/69f78d38ebadcc09d4d3425f4fc4dc3bba1b08d9\u003c/a\u003e: Fixing comment parsing on multiline assign statements (\u003ca href=\"https://redirect.github.com/swansonk14/typed-argument-parser/issues/130\"\u003eswansonk14/typed-argument-parser#130\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/swansonk14/typed-argument-parser/pull/148\"\u003eswansonk14/typed-argument-parser#148\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/swansonk14/typed-argument-parser/pull/144\"\u003eswansonk14/typed-argument-parser#144\u003c/a\u003e). Thanks \u003ca href=\"https://github.com/arnaud-ma\"\u003e\u003ccode\u003e@​arnaud-ma\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Tibilius\"\u003e\u003ccode\u003e@​Tibilius\u003c/code\u003e\u003c/a\u003e!\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/swansonk14/typed-argument-parser/commit/85104e731e91f372ab8c7084b13517c22a7065e5\"\u003ehttps://github.com/swansonk14/typed-argument-parser/commit/85104e731e91f372ab8c7084b13517c22a7065e5\u003c/a\u003e: Deterministic class variable order for consistent display of the help string (\u003ca href=\"https://redirect.github.com/swansonk14/typed-argument-parser/issues/161\"\u003eswansonk14/typed-argument-parser#161\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/swansonk14/typed-argument-parser/pull/162\"\u003eswansonk14/typed-argument-parser#162\u003c/a\u003e). Thanks \u003ca href=\"https://github.com/Daraan\"\u003e\u003ccode\u003e@​Daraan\u003c/code\u003e\u003c/a\u003e!\u003c/p\u003e\n\u003cp\u003e495d6c3ef1c5ef204eaa1cb81370af2fc543d72b: Makes error messages agnostic to different quote styles across Python versions (\u003ca href=\"https://redirect.github.com/swansonk14/typed-argument-parser/issues/156\"\u003eswansonk14/typed-argument-parser#156\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/swansonk14/typed-argument-parser/pull/157\"\u003eswansonk14/typed-argument-parser#157\u003c/a\u003e). Thanks \u003ca href=\"https://github.com/brianschubert\"\u003e\u003ccode\u003e@​brianschubert\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/JelleZijlstra\"\u003e\u003ccode\u003e@​JelleZijlstra\u003c/code\u003e\u003c/a\u003e!\u003c/p\u003e\n\u003cp\u003ebf9818808944a27d1ec9437c55a82fe93ced7fae: Fix quote escaping in docstring parsing (\u003ca href=\"https://redirect.github.com/swansonk14/typed-argument-parser/issues/97\"\u003eswansonk14/typed-argument-parser#97\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003eDeprecate Python 3.8 due to end of life\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/swansonk14/typed-argument-parser/commit/fe0d2d8c0a022786dd1c976ad1ec85c2b3d03c2e\"\u003ehttps://github.com/swansonk14/typed-argument-parser/commit/fe0d2d8c0a022786dd1c976ad1ec85c2b3d03c2e\u003c/a\u003e: Removes support for Python 3.8 due to end of life.\u003c/p\u003e\n\u003ch2\u003eSupport for new Python versions (3.12-3.14)\u003c/h2\u003e\n\u003cp\u003ed7f7f9defcf3038a31e2aebf292ae4df56ba336d: Fixes tests failing on Python 3.12. Thanks \u003ca href=\"https://github.com/shadchin\"\u003e\u003ccode\u003e@​shadchin\u003c/code\u003e\u003c/a\u003e!\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/swansonk14/typed-argument-parser/issues/150\"\u003eswansonk14/typed-argument-parser#150\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/swansonk14/typed-argument-parser/pull/151\"\u003eswansonk14/typed-argument-parser#151\u003c/a\u003e: Fixes tests failing on Python 3.13. Thanks \u003ca href=\"https://github.com/kddubey\"\u003e\u003ccode\u003e@​kddubey\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/JelleZijlstra\"\u003e\u003ccode\u003e@​JelleZijlstra\u003c/code\u003e\u003c/a\u003e!\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/swansonk14/typed-argument-parser/pull/164\"\u003eswansonk14/typed-argument-parser#164\u003c/a\u003e: Prepare for Python 3.14 by fixing compatibility with pydantic version 1. Thanks \u003ca href=\"https://github.com/kddubey\"\u003e\u003ccode\u003e@​kddubey\u003c/code\u003e\u003c/a\u003e!\u003c/p\u003e\n\u003ch2\u003eImproved error handling\u003c/h2\u003e\n\u003cp\u003ecfdaabfc2f3f5366029cf5e9544a98e1298bae01: Better error handling in cases of no git remote (\u003ca href=\"https://redirect.github.com/swansonk14/typed-argument-parser/issues/99\"\u003eswansonk14/typed-argument-parser#99\u003c/a\u003e). Thanks \u003ca href=\"https://github.com/arnaud-ma\"\u003e\u003ccode\u003e@​arnaud-ma\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/ndryden\"\u003e\u003ccode\u003e@​ndryden\u003c/code\u003e\u003c/a\u003e!\u003c/p\u003e\n\u003cp\u003e--JK\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/swansonk14/typed-argument-parser/commit/acf6a75e4463995e1b2f7f9715fa1ae3a77f9056\"\u003e\u003ccode\u003eacf6a75\u003c/code\u003e\u003c/a\u003e Bumping version to 1.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/swansonk14/typed-argument-parser/commit/043490c2845f0aa1c6f0fba0c4964a32cef8b03c\"\u003e\u003ccode\u003e043490c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/swansonk14/typed-argument-parser/issues/162\"\u003e#162\u003c/a\u003e from Daraan/main\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/swansonk14/typed-argument-parser/commit/7f36ff2076358d9deea609c5cf6755f54ded0bd1\"\u003e\u003ccode\u003e7f36ff2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/swansonk14/typed-argument-parser/issues/164\"\u003e#164\u003c/a\u003e from kddubey/kddubey/fix-python-314\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/swansonk14/typed-argument-parser/commit/34f9d27c21a282f472e00fdfe903681a4d153333\"\u003e\u003ccode\u003e34f9d27\u003c/code\u003e\u003c/a\u003e rm packaging dep\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/swansonk14/typed-argument-parser/commit/a59600cc3f531cbf318173822f46e232adee039f\"\u003e\u003ccode\u003ea59600c\u003c/code\u003e\u003c/a\u003e fix pydantic v1 \u0026lt;\u0026gt; python 3.13.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/swansonk14/typed-argument-parser/commit/05646e47efb7e3bba3585ef4d3c51acfda02dd94\"\u003e\u003ccode\u003e05646e4\u003c/code\u003e\u003c/a\u003e huh\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/swansonk14/typed-argument-parser/commit/619ee8bc2ec3798c203e6641149f93402701ca5f\"\u003e\u003ccode\u003e619ee8b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/swansonk14/typed-argument-parser/issues/160\"\u003e#160\u003c/a\u003e from amotzop/fix_tapify_typing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/swansonk14/typed-argument-parser/commit/85104e731e91f372ab8c7084b13517c22a7065e5\"\u003e\u003ccode\u003e85104e7\u003c/code\u003e\u003c/a\u003e deterministic in-order iteration of class variables\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/swansonk14/typed-argument-parser/commit/3c3ee97ed15a56b63d8b5f3c0a29023e501d416a\"\u003e\u003ccode\u003e3c3ee97\u003c/code\u003e\u003c/a\u003e Removed InputType\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/swansonk14/typed-argument-parser/commit/581db5312364a9e6897cbe361ddc2056f5741375\"\u003e\u003ccode\u003e581db53\u003c/code\u003e\u003c/a\u003e Fixed the typing of the  function\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/swansonk14/typed-argument-parser/compare/v_1.10.1...v_1.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `types-beautifulsoup4` from 4.12.0.20241020 to 4.12.0.20250516\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 `mypy` from 1.14.1 to 1.18.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.18.2\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix crash on recursive alias (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19845\"\u003e19845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd additional guidance for stubtest errors when runtime is \u003ccode\u003eobject.__init__\u003c/code\u003e (Stephen Morton, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19733\"\u003e19733\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix handling of None values in f-string expressions in mypyc (BobTheBuidler, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19846\"\u003e19846\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\u003eAli Hamdan\u003c/li\u003e\n\u003cli\u003eAnthony Sottile\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003eBrian Schubert\u003c/li\u003e\n\u003cli\u003eChainfire\u003c/li\u003e\n\u003cli\u003eCharlie Denton\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eCoolCat467\u003c/li\u003e\n\u003cli\u003eDaniel Hnyk\u003c/li\u003e\n\u003cli\u003eEmily\u003c/li\u003e\n\u003cli\u003eEmma Smith\u003c/li\u003e\n\u003cli\u003eEthan Sarp\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJahongir Qurbonov\u003c/li\u003e\n\u003cli\u003eJelle Zijlstra\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eJukka Lehtosalo\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eOmer Hadari\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003cli\u003ePrinceNaroliya\u003c/li\u003e\n\u003cli\u003eRandolf Scholz\u003c/li\u003e\n\u003cli\u003eRobsdedude\u003c/li\u003e\n\u003cli\u003eSaul Shanabrook\u003c/li\u003e\n\u003cli\u003eShantanu\u003c/li\u003e\n\u003cli\u003eStanislav Terliakov\u003c/li\u003e\n\u003cli\u003eStephen Morton\u003c/li\u003e\n\u003cli\u003ewyattscarpenter\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI’d also like to thank my employer, Dropbox, for supporting mypy development.\u003c/p\u003e\n\u003ch2\u003eMypy 1.17\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.17 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 and bug fixes.\nYou 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\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/df05f05555ee62dbdb9960c64cad186172e92be1\"\u003e\u003ccode\u003edf05f05\u003c/code\u003e\u003c/a\u003e remove +dev from version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/01a7a1285d03cb7a330359b22cb462aacb5f9720\"\u003e\u003ccode\u003e01a7a12\u003c/code\u003e\u003c/a\u003e Update changelog for 1.18.2 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19873\"\u003e#19873\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/ca5abf09f3bfc543ac9c18a364696bc5da20bc03\"\u003e\u003ccode\u003eca5abf0\u003c/code\u003e\u003c/a\u003e Typeshed cherry-pick: Make type of \u003ccode\u003eunitest.mock.Any\u003c/code\u003e a subclass of \u003ccode\u003eAny\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python/mypy/issues/1\"\u003e#1\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/9d794b57d9c5b03d61caa3286756c05e0ae3021b\"\u003e\u003ccode\u003e9d794b5\u003c/code\u003e\u003c/a\u003e [mypyc] fix: inappropriate \u003ccode\u003eNone\u003c/code\u003es in f-strings (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19846\"\u003e#19846\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2c0510c84868b6bb42ef0f305b701e530a85c25f\"\u003e\u003ccode\u003e2c0510c\u003c/code\u003e\u003c/a\u003e stubtest: additional guidance on errors when runtime is object.\u003cstrong\u003einit\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19733\"\u003e#19733\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2f3f03c3e39e68dbfa3544c01a34f99803b3e1c2\"\u003e\u003ccode\u003e2f3f03c\u003c/code\u003e\u003c/a\u003e Bump version to 1.18.2+dev for point release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/76698412bc1f3ca99000d52649acd5a0e06aa71d\"\u003e\u003ccode\u003e7669841\u003c/code\u003e\u003c/a\u003e Fix crash on recursive alias in indirection.py (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19845\"\u003e#19845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/03fbaa941bccc3a9f8aea796d586603b67119bf2\"\u003e\u003ccode\u003e03fbaa9\u003c/code\u003e\u003c/a\u003e bump version to 1.18.1 due to wheels failure\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/b44a1fbf0cf9fd90fd29d6bcd9f64c55dd2fd4c8\"\u003e\u003ccode\u003eb44a1fb\u003c/code\u003e\u003c/a\u003e removed +dev from version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/7197a99d1aebb1b7a584f82a53c44efb7dddf136\"\u003e\u003ccode\u003e7197a99\u003c/code\u003e\u003c/a\u003e Removed Unreleased in the Changelog for Release 1.18 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19827\"\u003e#19827\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.14.1...v1.18.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit` from 4.0.1 to 4.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.3.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elanguage: docker\u003c/code\u003e / \u003ccode\u003elanguage: docker_image\u003c/code\u003e: detect rootless docker.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3446\"\u003e#3446\u003c/a\u003e PR by \u003ca href=\"https://github.com/matthewhughes934\"\u003e\u003ccode\u003e@​matthewhughes934\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/1243\"\u003e#1243\u003c/a\u003e issue by \u003ca href=\"https://github.com/dkolepp\"\u003e\u003ccode\u003e@​dkolepp\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: julia\u003c/code\u003e: avoid \u003ccode\u003estartup.jl\u003c/code\u003e when executing hooks.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3496\"\u003e#3496\u003c/a\u003e PR by \u003ca href=\"https://github.com/ericphanson\"\u003e\u003ccode\u003e@​ericphanson\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: dart\u003c/code\u003e: support latest dart versions which require a higher sdk\nlower bound.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3507\"\u003e#3507\u003c/a\u003e PR by \u003ca href=\"https://github.com/bc-lee\"\u003e\u003ccode\u003e@​bc-lee\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.2.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFor \u003ccode\u003elanguage: python\u003c/code\u003e first attempt a versioned python executable for the default language version before consulting a potentially unversioned \u003ccode\u003esys.executable\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3430\"\u003e#3430\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle error during conflict detection when a file is named \u0026quot;HEAD\u0026quot;\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3425\"\u003e#3425\u003c/a\u003e PR by \u003ca href=\"https://github.com/tusharsadhwani\"\u003e\u003ccode\u003e@​tusharsadhwani\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.1.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: julia\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3348\"\u003e#3348\u003c/a\u003e PR by \u003ca href=\"https://github.com/fredrikekre\"\u003e\u003ccode\u003e@​fredrikekre\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/2689\"\u003e#2689\u003c/a\u003e issue \u003ca href=\"https://github.com/jmuchovej\"\u003e\u003ccode\u003e@​jmuchovej\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisable automatic toolchain switching for \u003ccode\u003elanguage: golang\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3304\"\u003e#3304\u003c/a\u003e PR by \u003ca href=\"https://github.com/AleksaC\"\u003e\u003ccode\u003e@​AleksaC\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3300\"\u003e#3300\u003c/a\u003e issue by \u003ca href=\"https://github.com/AleksaC\"\u003e\u003ccode\u003e@​AleksaC\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3149\"\u003e#3149\u003c/a\u003e issue by \u003ca href=\"https://github.com/nijel\"\u003e\u003ccode\u003e@​nijel\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: r\u003c/code\u003e installation when initiated by RStudio.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3389\"\u003e#3389\u003c/a\u003e PR by \u003ca href=\"https://github.com/lorenzwalthert\"\u003e\u003ccode\u003e@​lorenzwalthert\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3385\"\u003e#3385\u003c/a\u003e issue by \u003ca href=\"https://github.com/lorenzwalthert\"\u003e\u003ccode\u003e@​lorenzwalthert\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.3.0 - 2025-08-09\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elanguage: docker\u003c/code\u003e / \u003ccode\u003elanguage: docker_image\u003c/code\u003e: detect rootless docker.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3446\"\u003e#3446\u003c/a\u003e PR by \u003ca href=\"https://github.com/matthewhughes934\"\u003e\u003ccode\u003e@​matthewhughes934\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/1243\"\u003e#1243\u003c/a\u003e issue by \u003ca href=\"https://github.com/dkolepp\"\u003e\u003ccode\u003e@​dkolepp\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: julia\u003c/code\u003e: avoid \u003ccode\u003estartup.jl\u003c/code\u003e when executing hooks.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3496\"\u003e#3496\u003c/a\u003e PR by \u003ca href=\"https://github.com/ericphanson\"\u003e\u003ccode\u003e@​ericphanson\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: dart\u003c/code\u003e: support latest dart versions which require a higher sdk\nlower bound.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3507\"\u003e#3507\u003c/a\u003e PR by \u003ca href=\"https://github.com/bc-lee\"\u003e\u003ccode\u003e@​bc-lee\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.2.0 - 2025-03-18\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFor \u003ccode\u003elanguage: python\u003c/code\u003e first attempt a versioned python executable for\nthe default language version before consulting a potentially unversioned\n\u003ccode\u003esys.executable\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3430\"\u003e#3430\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle error during conflict detection when a file is named \u0026quot;HEAD\u0026quot;\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3425\"\u003e#3425\u003c/a\u003e PR by \u003ca href=\"https://github.com/tusharsadhwani\"\u003e\u003ccode\u003e@​tusharsadhwani\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.1.0 - 2025-01-20\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: julia\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3348\"\u003e#3348\u003c/a\u003e PR by \u003ca href=\"https://github.com/fredrikekre\"\u003e\u003ccode\u003e@​fredrikekre\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/2689\"\u003e#2689\u003c/a\u003e issue \u003ca href=\"https://github.com/jmuchovej\"\u003e\u003ccode\u003e@​jmuchovej\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisable automatic toolchain switching for \u003ccode\u003elanguage: golang\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3304\"\u003e#3304\u003c/a\u003e PR by \u003ca href=\"https://github.com/AleksaC\"\u003e\u003ccode\u003e@​AleksaC\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3300\"\u003e#3300\u003c/a\u003e issue by \u003ca href=\"https://github.com/AleksaC\"\u003e\u003ccode\u003e@​AleksaC\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3149\"\u003e#3149\u003c/a\u003e issue by \u003ca href=\"https://github.com/nijel\"\u003e\u003ccode\u003e@​nijel\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: r\u003c/code\u003e installation when initiated by RStudio.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3389\"\u003e#3389\u003c/a\u003e PR by \u003ca href=\"https://github.com/lorenzwalthert\"\u003e\u003ccode\u003e@​lorenzwalthert\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3385\"\u003e#3385\u003c/a\u003e issue by \u003ca href=\"https://github.com/lorenzwalthert\"\u003e\u003ccode\u003e@​lorenzwalthert\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/b74a22d96cca546b8e0bb9f68f1d7d8565205b65\"\u003e\u003ccode\u003eb74a22d\u003c/code\u003e\u003c/a\u003e v4.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/cc899de192a5f5614633d86178568cc1c46d999d\"\u003e\u003ccode\u003ecc899de\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3507\"\u003e#3507\u003c/a\u003e from bc-lee/dart-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2a0bcea7570620416a550362d9b2d2b24eb80dd8\"\u003e\u003ccode\u003e2a0bcea\u003c/code\u003e\u003c/a\u003e Downgrade Dart SDK version installed in the CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/f1cc7a445f1adbfc9ea4072e180fbe3054af669b\"\u003e\u003ccode\u003ef1cc7a4\u003c/code\u003e\u003c/a\u003e Make Dart pre-commit hook compatible with the latest Dart SDKs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/72a3b71f0e7b89b78899739aeee2e962914ab649\"\u003e\u003ccode\u003e72a3b71\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3504\"\u003e#3504\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c8925a457afb1d6850c8f105671846bae408aae0\"\u003e\u003ccode\u003ec8925a4\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/a5fe6c500c2c7a17aaa21f0bb91ee7ceecf61968\"\u003e\u003ccode\u003ea5fe6c5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3496\"\u003e#3496\u003c/a\u003e from ericphanson/eph/jl-startup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/6f1f433a9cea94a70828ade95931a703c9a9c82b\"\u003e\u003ccode\u003e6f1f433\u003c/code\u003e\u003c/a\u003e Julia language: skip startup.jl file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c6817210b1cdbbfbd1b1ff2148edfa15bf4b3c97\"\u003e\u003ccode\u003ec681721\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3499\"\u003e#3499\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/4fd4537bc69e6804998d99e4851a9dbe43e91757\"\u003e\u003ccode\u003e4fd4537\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.0.1...v4.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.3.4 to 8.4.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.4.2\u003c/h2\u003e\n\u003ch1\u003epytest 8.4.2 (2025-09-03)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13478\"\u003e#13478\u003c/a\u003e: Fixed a crash when using \u003ccode\u003econsole_output_style\u003c/code\u003e{.interpreted-text role=\u0026quot;confval\u0026quot;} with \u003ccode\u003etimes\u003c/code\u003e and a module is skipped.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13530\"\u003e#13530\u003c/a\u003e: Fixed a crash when using \u003ccode\u003epytest.approx\u003c/code\u003e{.interpreted-text role=\u0026quot;func\u0026quot;} and \u003ccode\u003edecimal.Decimal\u003c/code\u003e{.interpreted-text role=\u0026quot;class\u0026quot;} instances with the \u003ccode\u003edecimal.FloatOperation\u003c/code\u003e{.interpreted-text role=\u0026quot;class\u0026quot;} trap set.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13549\"\u003e#13549\u003c/a\u003e: No longer evaluate type annotations in Python \u003ccode\u003e3.14\u003c/code\u003e when inspecting function signatures.\u003c/p\u003e\n\u003cp\u003eThis prevents crashes during module collection when modules do not explicitly use \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e and import types for annotations within a \u003ccode\u003eif TYPE_CHECKING:\u003c/code\u003e block.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13559\"\u003e#13559\u003c/a\u003e: Added missing [int]{.title-ref} and [float]{.title-ref} variants to the [Literal]{.title-ref} type annotation of the [type]{.title-ref} parameter in \u003ccode\u003epytest.Parser.addini\u003c/code\u003e{.interpreted-text role=\u0026quot;meth\u0026quot;}.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13563\"\u003e#13563\u003c/a\u003e: \u003ccode\u003epytest.approx\u003c/code\u003e{.interpreted-text role=\u0026quot;func\u0026quot;} now only imports \u003ccode\u003enumpy\u003c/code\u003e if NumPy is already in \u003ccode\u003esys.modules\u003c/code\u003e. This fixes unconditional import behavior introduced in [8.4.0]{.title-ref}.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13577\"\u003e#13577\u003c/a\u003e: Clarify that \u003ccode\u003epytest_generate_tests\u003c/code\u003e is discovered in test modules/classes; other hooks must be in \u003ccode\u003econftest.py\u003c/code\u003e or plugins.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13480\"\u003e#13480\u003c/a\u003e: Self-testing: fixed a few test failures when run with \u003ccode\u003e-Wdefault\u003c/code\u003e or a similar override.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13547\"\u003e#13547\u003c/a\u003e: Self-testing: corrected expected message for \u003ccode\u003etest_doctest_unexpected_exception\u003c/code\u003e in Python \u003ccode\u003e3.14\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13684\"\u003e#13684\u003c/a\u003e: Make pytest's own testsuite insensitive to the presence of the \u003ccode\u003eCI\u003c/code\u003e environment variable -- by \u003ccode\u003eogrisel\u003c/code\u003e{.interpreted-text role=\u0026quot;user\u0026quot;}.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.4.1\u003c/h2\u003e\n\u003ch1\u003epytest 8.4.1 (2025-06-17)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13461\"\u003e#13461\u003c/a\u003e: Corrected \u003ccode\u003e_pytest.terminal.TerminalReporter.isatty\u003c/code\u003e to support\nbeing called as a method. Before it was just a boolean which could\nbreak correct code when using \u003ccode\u003e-o log_cli=true\u003c/code\u003e).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13477\"\u003e#13477\u003c/a\u003e: Reintroduced \u003ccode\u003epytest.PytestReturnNotNoneWarning\u003c/code\u003e{.interpreted-text role=\u0026quot;class\u0026quot;} which was removed by accident in pytest [8.4]{.title-ref}.\u003c/p\u003e\n\u003cp\u003eThis warning is raised when a test functions returns a value other than \u003ccode\u003eNone\u003c/code\u003e, which is often a mistake made by beginners.\u003c/p\u003e\n\u003cp\u003eSee \u003ccode\u003ereturn-not-none\u003c/code\u003e{.interpreted-text role=\u0026quot;ref\u0026quot;} for more information.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13497\"\u003e#13497\u003c/a\u003e: Fixed compatibility with \u003ccode\u003eTwisted 25+\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13492\"\u003e#13492\u003c/a\u003e: Fixed outdated warning about \u003ccode\u003efaulthandler\u003c/code\u003e not working on Windows.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.4.0\u003c/h2\u003e\n\u003ch1\u003epytest 8.4.0 (2025-06-02)\u003c/h1\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bfae4224fd554d3d7f2c277a4cc092b6ec6af3ae\"\u003e\u003ccode\u003ebfae422\u003c/code\u003e\u003c/a\u003e Prepare release version 8.4.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/89905381a163be30ae87d62e5f750e902d750c5f\"\u003e\u003ccode\u003e8990538\u003c/code\u003e\u003c/a\u003e Fix passenv CI in tox ini and make tests insensitive to the presence of the C...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ca676bfe005aebcb12f4146d1b0f1d2772e2cd5d\"\u003e\u003ccode\u003eca676bf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13687\"\u003e#13687\u003c/a\u003e from pytest-dev/patchback/backports/8.4.x/e63f6e51c...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/975a60a63ce385a44655596e254c1899feaa53e4\"\u003e\u003ccode\u003e975a60a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13686\"\u003e#13686\u003c/a\u003e from pytest-dev/patchback/backports/8.4.x/12bde8af6...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7723ce84b87ab08f86ddafcb342acc28ba5ec99d\"\u003e\u003ccode\u003e7723ce8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13683\"\u003e#13683\u003c/a\u003e from even-even/fix_Exeption_to_Exception_in_errorMe...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7f05680d1301e0969b30bcb3c4b27433c9ee2b7\"\u003e\u003ccode\u003eb7f0568\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13685\"\u003e#13685\u003c/a\u003e from CoretexShadow/fix/docs-pytest-generate-tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/2c94c4a6948ba53440818389298157fa5d5f94cd\"\u003e\u003ccode\u003e2c94c4a\u003c/code\u003e\u003c/a\u003e add missing colon (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13640\"\u003e#13640\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13641\"\u003e#13641\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c3d7684bc01c8c48d05145a30c5211ca8656c68c\"\u003e\u003ccode\u003ec3d7684\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13606\"\u003e#13606\u003c/a\u003e from pytest-dev/patchback/backports/8.4.x/5f9938563...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/dc6e3be2ddc75a149b6d102d9b7c82ee47a00cfa\"\u003e\u003ccode\u003edc6e3be\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13605\"\u003e#13605\u003c/a\u003e from The-Compiler/training-update-2025-07\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f87289c36c8dbe7740e3020f5546b6f8b0861ff0\"\u003e\u003ccode\u003ef87289c\u003c/code\u003e\u003c/a\u003e Fix crash with \u003ccode\u003etimes\u003c/code\u003e output style and skipped module (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13573\"\u003e#13573\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13579\"\u003e#13579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.3.4...8.4.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pdoc` from 15.0.1 to 16.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mitmproxy/pdoc/blob/main/CHANGELOG.md\"\u003epdoc's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025-10-27: pdoc 16.0.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epdoc has a new logo. 🐍\n(\u003ca href=\"https://redirect.github.com/mitmproxy/pdoc/pull/838\"\u003e#838\u003c/a\u003e, \u003ca href=\"https://github.com/mhils\"\u003e\u003ccode\u003e@​mhils\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14.\n(\u003ca href=\"https://redirect.github.com/mitmproxy/pdoc/pull/843\"\u003e#843\u003c/a\u003e, \u003ca href=\"https://github.com/mhils\"\u003e\u003ccode\u003e@​mhils\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9, which as reached\n\u003ca href=\"https://devguide.python.org/versions/\"\u003eend of life\u003c/a\u003e.\n(\u003ca href=\"https://redirect.github.com/mitmproxy/pdoc/pull/842\"\u003e#842\u003c/a\u003e, \u003ca href=\"https://github.com/mhils\"\u003e\u003ccode\u003e@​mhils\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix linking of identifiers that contain unicode characters.\n(\u003ca href=\"https://redirect.github.com/mitmproxy/pdoc/issues/831\"\u003e#831\u003c/a\u003e, \u003ca href=\"https://github.com/iFreilicht\"\u003e\u003ccode\u003e@​iFreilicht\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReplace vendored version of \u003ccode\u003emarkdown2\u003c/code\u003e with the \u003ca href=\"https://github.com/trentm/python-markdown2\"\u003eofficial\nupstream\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for keyword args for Google flavor docs.\n(\u003ca href=\"https://redirect.github.com/mitmproxy/pdoc/pull/840\"\u003e#840\u003c/a\u003e, \u003ca href=\"https://github.com/aleksslitvinovs\"\u003e\u003ccode\u003e@​aleksslitvinovs\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for Pydantic-style field docstrings,\ne.g. \u003ccode\u003epydantic.Field(description=\u0026quot;...\u0026quot;)\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/mitmproxy/pdoc/pull/802\"\u003e#802\u003c/a\u003e, \u003ca href=\"https://github.com/jinnovation\"\u003e\u003ccode\u003e@​jinnovation\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2025-06-04: pdoc 15.0.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eInclude included HTML headers in the ToC by default by enabling markdown2's \u003ccode\u003emixed=True\u003c/code\u003e option of the \u003ccode\u003eheader-ids\u003c/code\u003e extra\n(\u003ca href=\"https://redirect.github.com/mitmproxy/pdoc/issues/806\"\u003e#806\u003c/a\u003e, \u003ca href=\"https://github.com/mrossinek\"\u003e\u003ccode\u003e@​mrossinek\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003epdoc .\u003c/code\u003e work to document the module in the current directory.\n(\u003ca href=\"https://redirect.github.com/mitmproxy/pdoc/pull/813\"\u003e#813\u003c/a\u003e, \u003ca href=\"https://github.com/mhils\"\u003e\u003ccode\u003e@​mhils\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2025-04-21: pdoc 15.0.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd missing styles for Github's markdown alerts.\n(\u003ca href=\"https://redirect.github.com/mitmproxy/pdoc/pull/796\"\u003e#796\u003c/a\u003e, \u003ca href=\"https://github.com/Steve-Tech\"\u003e\u003ccode\u003e@​Steve-Tech\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2025-04-17: pdoc 15.0.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix a bug where type aliases wouldn't be linked.\n(\u003ca href=\"https://redirect.github.com/mitmproxy/pdoc/pull/798\"\u003e#798\u003c/a\u003e, \u003ca href=\"https://github.com/mhils\"\u003e\u003ccode\u003e@​mhils\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix a bug where invalid Numpydoc docstrings would raise an exception.\n(\u003ca href=\"https://redirect.github.com/mitmproxy/pdoc/pull/789\"\u003e#789\u003c/a\u003e, \u003ca href=\"https://github.com/tobiscode\"\u003e\u003ccode\u003e@​tobiscode\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/mhils\"\u003e\u003ccode\u003e@​mhils\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove debuggability of docstring processing\n(\u003ca href=\"https://redirect.github.com/mitmproxy/pdoc/pull/784\"\u003e#784\u003c/a\u003e, \u003ca href=\"https://github.com/tobiscode\"\u003e\u003ccode\u003e@​tobiscode\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix handling of URL-escaped module names\n(\u003ca href=\"https://redirect.github.com/mitmproxy/pdoc/pull/787\"\u003e#787\u003c/a\u003e, \u003ca href=\"https://github.com/iFreilicht\"\u003e\u003ccode\u003e@​iFreilicht\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEmbed local images referenced in docstrings with an HTML image tag (\u003ccode\u003e\u0026lt;img src=\u0026quot;./image.png\u0026quot;\u0026gt;\u003c/code\u003e) in addition to Markdown (\u003ccode\u003e![image](https://github.com/mitmproxy/pdoc/blob/main/image.png)\u003c/code\u003e)\n(\u003ca href=\"https://redirect.github.com/mitmproxy/pdoc/pull/785\"\u003e#785\u003c/a\u003e, \u003ca href=\"https://github.com/earshinov\"\u003e\u003ccode\u003e@​earshinov\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/mitmproxy/pdoc/commit/6677d73b7e21c3741ad8bee041f274923c75b73e\"\u003e\u003ccode\u003e6677d73\u003c/code\u003e\u003c/a\u003e pdoc 16.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitmproxy/pdoc/commit/3f758340fbd07b7af80c3befa09f505194581e8a\"\u003e\u003ccode\u003e3f75834\u003c/code\u003e\u003c/a\u003e Support Pydantic model defaults + field descriptions (\u003ca href=\"https://redirect.github.com/mitmproxy/pdoc/issues/802\"\u003e#802\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitmproxy/pdoc/commit/f19fbf7a669a2fbd52879ef473ca8bf3e180e288\"\u003e\u003ccode\u003ef19fbf7\u003c/code\u003e\u003c/a\u003e Add support for Python 3.14 (\u003ca href=\"https://redirect.github.com/mitmproxy/pdoc/issues/843\"\u003e#843\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitmproxy/pdoc/commit/8aa648f2fcb821060cdebdedc0f9c74d47047227\"\u003e\u003ccode\u003e8aa648f\u003c/code\u003e\u003c/a\u003e Bump mhils/workflows in the dependencies group (\u003ca href=\"https://redirect.github.com/mitmproxy/pdoc/issues/844\"\u003e#844\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitmproxy/pdoc/commit/b782455f5351fcbc6108f194d2bee7bf90052a4d\"\u003e\u003ccode\u003eb782455\u003c/code\u003e\u003c/a\u003e Add support for keyword args for Google flavor docs (\u003ca href=\"https://redirect.github.com/mitmproxy/pdoc/issues/840\"\u003e#840\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitmproxy/pdoc/commit/34c7759e68b2f27314d3e53b717d799257008958\"\u003e\u003ccode\u003e34c7759\u003c/code\u003e\u003c/a\u003e Drop Support for Python 3.9 (\u003ca href=\"https://redirect.github.com/mitmproxy/pdoc/issues/842\"\u003e#842\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitmproxy/pdoc/commit/0f273710fa48725865544776613ead4705dc0fb6\"\u003e\u003ccode\u003e0f27371\u003c/code\u003e\u003c/a\u003e fix: remove hard-coded pdoc mention from title in template (\u003ca href=\"https://redirect.github.com/mitmproxy/pdoc/issues/841\"\u003e#841\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitmproxy/pdoc/commit/a12c236e35b056cce2603abb40a80c7666823ae1\"\u003e\u003ccode\u003ea12c236\u003c/code\u003e\u003c/a\u003e Add new pdoc logo (\u003ca href=\"https://redirect.github.com/mitmproxy/pdoc/issues/838\"\u003e#838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitmproxy/pdoc/commit/0f308ab0d80a2ba2ca10d76c79baa142f202ee84\"\u003e\u003ccode\u003e0f308ab\u003c/code\u003e\u003c/a\u003e Bump mhils/workflows in the dependencies group (\u003ca href=\"https://redirect.github.com/mitmproxy/pdoc/issues/837\"\u003e#837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitmproxy/pdoc/commit/7c880c5d5629f05b940b7ee2e1f7bfcb7538db61\"\u003e\u003ccode\u003e7c880c5\u003c/code\u003e\u003c/a\u003e Replace vendored markdown2 w/ official upstream (\u003ca href=\"https://redirect.github.com/mitmproxy/pdoc/issues/836\"\u003e#836\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mitmproxy/pdoc/compare/v15.0.1...v16\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/eggplants/jason-json/pull/52","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/eggplants%2Fjason-json/issues/52","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/52/packages"}},{"old_version":"8.4.1","new_version":"8.4.2","update_type":"patch","path":null,"pr_created_at":"2025-10-28T03:12:44.000Z","version_change":"8.4.1 → 8.4.2","issue":{"uuid":"3559588012","node_id":"PR_kwDOAG4Ac86wCw5V","number":22825,"state":"closed","title":"Bump the python-version-updates group across 1 directory with 30 updates","user":"dependabot[bot]","labels":["dependencies","category:internal","release-notes:not-required"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-10-28T14:05:31.000Z","author_association":null,"state_reason":null,"created_at":"2025-10-28T03:12:44.000Z","updated_at":"2025-10-28T14:05:33.000Z","time_to_close":39167,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-version-updates","update_count":30,"packages":[{"name":"fasteners","old_version":"0.16.3","new_version":"0.20","repository_url":"https://github.com/harlowja/fasteners"},{"name":"freezegun","old_version":"1.2.1","new_version":"1.5.5","repository_url":"https://github.com/spulec/freezegun"},{"name":"ijson","old_version":"3.2.3","new_version":"3.4.0.post0","repository_url":"https://github.com/ICRAR/ijson"},{"name":"libcst","old_version":"1.4.0","new_version":"1.8.5","repository_url":"https://github.com/Instagram/LibCST"},{"name":"packaging","old_version":"24.2","new_version":"25.0","repository_url":"https://github.com/pypa/packaging"},{"name":"psutil","old_version":"5.9.8","new_version":"7.1.2","repository_url":"https://github.com/giampaolo/psutil"},{"name":"pytest","old_version":"8.4.1","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"python-lsp-jsonrpc","old_version":"1.0.0","new_version":"1.1.2","repository_url":"https://github.com/python-lsp/python-lsp-jsonrpc"},{"name":"setproctitle","old_version":"1.3.2","new_version":"1.3.7","repository_url":"https://github.com/dvarrazzo/py-setproctitle"},{"name":"types-freezegun","old_version":"1.1.6","new_version":"1.1.10","repository_url":"https://github.com/python/typeshed"},{"name":"types-pyyaml","old_version":"6.0.3","new_version":"6.0.12.20250915","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"types-requests","old_version":"2.28.1","new_version":"2.32.4.20250913","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"types-setuptools","old_version":"62.6.1","new_version":"80.9.0.20250822","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"types-toml","old_version":"0.10.8","new_version":"0.10.8.20240310","repository_url":"https://github.com/python/typeshed"}],"path":null,"ecosystem":"conda"},"body":"Updates the requirements on [fasteners](https://github.com/harlowja/fasteners), [freezegun](https://github.com/spulec/freezegun), [ijson](https://github.com/ICRAR/ijson), [libcst](https://github.com/Instagram/LibCST), [packaging](https://github.com/pypa/packaging), [psutil](https://github.com/giampaolo/psutil), [pytest](https://github.com/pytest-dev/pytest), [python-lsp-jsonrpc](https://github.com/python-lsp/python-lsp-jsonrpc), [setproctitle](https://github.com/dvarrazzo/py-setproctitle), [setuptools](https://github.com/pypa/setuptools), [types-freezegun](https://github.com/python/typeshed), [types-pyyaml](https://github.com/typeshed-internal/stub_uploader), [types-requests](https://github.com/typeshed-internal/stub_uploader), [types-setuptools](https://github.com/typeshed-internal/stub_uploader), [types-toml](https://github.com/python/typeshed), [typing-extensions](https://github.com/python/typing_extensions), [urllib3](https://github.com/urllib3/urllib3), [debugpy](https://github.com/microsoft/debugpy), [pydevd-pycharm](https://github.com/JetBrains/intellij-community), [fastapi](https://github.com/fastapi/fastapi), [starlette](https://github.com/Kludex/starlette), [strawberry-graphql[fastapi]](https://github.com/strawberry-graphql/strawberry), [uvicorn[standard]](https://github.com/Kludex/uvicorn), [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/), [python-gnupg](https://github.com/vsajip/python-gnupg), [pygithub](https://github.com/pygithub/pygithub), [mypy](https://github.com/python/mypy), [strawberry-graphql](https://github.com/strawberry-graphql/strawberry), [pytest-cov](https://github.com/pytest-dev/pytest-cov) and [flake8](https://github.com/pycqa/flake8) to permit the latest version.\nUpdates `fasteners` from 0.16.3 to 0.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/harlowja/fasteners/releases\"\u003efasteners's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.20\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eInterProcessLock now catches OSError and handles BlockingIOError correctly.\u003c/li\u003e\n\u003cli\u003eRemove support for python 3.8, python 3.9 and pypy 3.9. It should still work,\nbut is no longer tested.\u003c/li\u003e\n\u003cli\u003eAdd support for python 3.12, 3.13 and pypy 3.11.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 0.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdds non-context manager methods to inter-thread lock\u003c/li\u003e\n\u003cli\u003eDrops support for python 3.7\u003c/li\u003e\n\u003cli\u003eAdds CI for python 3.11\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 0.18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReshuffle the process lock code and properly document it.\u003c/li\u003e\n\u003cli\u003eRevamp the docs and switch from sphinx to mkdocs\u003c/li\u003e\n\u003cli\u003eRemove difficult to use tread lock features from docs\u003c/li\u003e\n\u003cli\u003eBring back support for eventlet \u003ccode\u003espawn_n\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove support for python3.6. It should still work, but is no longer tested.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.17.3\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003e0.17.2\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003e0.17.1\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003e0.17\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\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/harlowja/fasteners/blob/main/CHANGELOG.md\"\u003efasteners's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.20]\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eInterProcessLock now catches OSError and handles BlockingIOError correctly.\u003c/li\u003e\n\u003cli\u003eRemove support for python 3.8, python 3.9 and pypy 3.9. It should still work,\nbut is no longer tested.\u003c/li\u003e\n\u003cli\u003eAdd support for python 3.12, 3.13 and pypy 3.11.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.19]\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e.acquire_read_lock\u003c/code\u003e, \u003ccode\u003e.release_read_lock\u003c/code\u003e, \u003ccode\u003e.acquire_write_lock\u003c/code\u003e, and\n\u003ccode\u003e.release_write_lock\u003c/code\u003e methods to the inter thread \u003ccode\u003eReaderWriterLock\u003c/code\u003e as was\npromised in the README.\u003c/li\u003e\n\u003cli\u003eRemove support for python 3.7 and pypy 3.7. It should still work, but is no\nlonger tested.\u003c/li\u003e\n\u003cli\u003eAdd support for pypy 3.10 and python 3.11\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.18]\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReshuffle the process lock code and properly document it.\u003c/li\u003e\n\u003cli\u003eRevamp the docs and switch from sphinx to mkdocs\u003c/li\u003e\n\u003cli\u003eRemove difficult to use tread lock features from docs\u003c/li\u003e\n\u003cli\u003eBring back support for eventlet \u003ccode\u003espawn_n\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove support for python3.6. It should still work, but is no longer tested.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.17.3]:\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow writer to become a reader in thread ReaderWriter lock\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.17.2]:\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove unnecessary setuptools pin\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.17.1]:\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch to the modern python package build infrastructure\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[0.17]: [NEVER RELEASED]\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for python 3.5 and earlier, including 2.7\u003c/li\u003e\n\u003cli\u003eAdd support for python 3.9 and 3.10\u003c/li\u003e\n\u003cli\u003eFix a conflict with django lock\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e__version__\u003c/code\u003e and \u003ccode\u003e__all__\u003c/code\u003e attributes\u003c/li\u003e\n\u003cli\u003eFix a failure to parse README as utf-8\u003c/li\u003e\n\u003cli\u003eMove from nosetest to pytest and cleanup testing infrastructure\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/harlowja/fasteners/commit/87839f4acc6660856c67963b128dedd84e94907d\"\u003e\u003ccode\u003e87839f4\u003c/code\u003e\u003c/a\u003e Release 0.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/harlowja/fasteners/commit/559e58654a5587dd5a8247e979179f80af1ba727\"\u003e\u003ccode\u003e559e586\u003c/code\u003e\u003c/a\u003e Use uv\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/harlowja/fasteners/commit/59edee2438b89f54eb0e372441face03a97c6689\"\u003e\u003ccode\u003e59edee2\u003c/code\u003e\u003c/a\u003e Update licence fields in pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/harlowja/fasteners/commit/433df5df95de7c79f3d993e5f0511e3bfa2752a5\"\u003e\u003ccode\u003e433df5d\u003c/code\u003e\u003c/a\u003e update docs build github action\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/harlowja/fasteners/commit/fb2206259297ef70cccaa679499582dfbbea2fd5\"\u003e\u003ccode\u003efb22062\u003c/code\u003e\u003c/a\u003e Catch OSError in the InterProcessLock (\u003ca href=\"https://redirect.github.com/harlowja/fasteners/issues/123\"\u003e#123\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/harlowja/fasteners/commit/3f114f01ca775db3e78b20a0e54ca561c5d31eb0\"\u003e\u003ccode\u003e3f114f0\u003c/code\u003e\u003c/a\u003e Update CI python versions (\u003ca href=\"https://redirect.github.com/harlowja/fasteners/issues/120\"\u003e#120\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/harlowja/fasteners/commit/06c3f06cab4e135b8d921932019a231c180eb9f4\"\u003e\u003ccode\u003e06c3f06\u003c/code\u003e\u003c/a\u003e Release 0.19\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/harlowja/fasteners/commit/b75eb0358021cb59b995df24ac1cd360e1d4618c\"\u003e\u003ccode\u003eb75eb03\u003c/code\u003e\u003c/a\u003e Update python version test matrix (+3.11 -3.7)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/harlowja/fasteners/commit/2535dce2c56b3bbb131ec08ffd10850f110a7677\"\u003e\u003ccode\u003e2535dce\u003c/code\u003e\u003c/a\u003e Add aquire_read_lock et. al. methods to ReaderWriterLock\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/harlowja/fasteners/commit/50f97f4c89d38ba51d80b8311168f8509b2856d0\"\u003e\u003ccode\u003e50f97f4\u003c/code\u003e\u003c/a\u003e Add .readthedocs.yaml file\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/harlowja/fasteners/compare/0.16.3...0.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `freezegun` from 1.2.1 to 1.5.5\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/spulec/freezegun/blob/master/CHANGELOG\"\u003efreezegun's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.5.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow parametrized arguments called 'func' (Broken in 1.5.4)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Ability to yield fixtures (broken in 1.5.3)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix compatibility with pytest 8.4.0 when using fixtures\u003c/li\u003e\n\u003cli\u003eAdd (back) class-decorator overload to guarantee Pytype understands it\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for Python 3.7\u003c/li\u003e\n\u003cli\u003eExplicitly marks support for Python 3.13\u003c/li\u003e\n\u003cli\u003eImproved project documentation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix the typing of the \u003ccode\u003etick()\u003c/code\u003e method, and improve it's behaviour.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe default ignore list now contains the \u003ccode\u003equeue\u003c/code\u003e-package\u003c/li\u003e\n\u003cli\u003eAdded a missing \u003ccode\u003emove_to\u003c/code\u003e-function when calling \u003ccode\u003efreeze_time(tick=True)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFixes a rounding error in \u003ccode\u003etime.time_ns()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFixed a bug where the default ignore list could not be empty (\u003ccode\u003econfigure(default_ignore_list=[])\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAll \u003ccode\u003etick()\u003c/code\u003e methods now return the new datetime (instead of None)\u003c/li\u003e\n\u003cli\u003eType improvements\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.4.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003easyncio\u003c/code\u003e-support from 1.3.x introduced quite a few  bugs, so that functionality is now hidden behind a flag:\n\u003ccode\u003ewith freeze_time('1970-01-02', real_asyncio=True):\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdded documentation for the \u003ccode\u003ereal_asyncio\u003c/code\u003e parameter in the \u003ccode\u003eREADME.rst\u003c/code\u003e file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed the release number in the build\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003easyncio\u003c/code\u003e support to avoid \u003ccode\u003eawait asyncio.sleep(1)\u003c/code\u003e hanging forever.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for Python 3.12\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/spulec/freezegun/commit/c9bf52c5aa12ea1b5b8647a136a92504ea071f2f\"\u003e\u003ccode\u003ec9bf52c\u003c/code\u003e\u003c/a\u003e Increase version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/0f2bd7ed8b420da73372f4cbb0207b777caa66e9\"\u003e\u003ccode\u003e0f2bd7e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/spulec/freezegun/issues/582\"\u003e#582\u003c/a\u003e from spulec/fixture-called-func\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/a6080557cbcbe4891843934c1334430bb1c5ead7\"\u003e\u003ccode\u003ea608055\u003c/code\u003e\u003c/a\u003e Allow parametrized arguments with name 'func'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/2bb47113a5f9f290d26630c92732e58f49557179\"\u003e\u003ccode\u003e2bb4711\u003c/code\u003e\u003c/a\u003e Increase version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/7599eeea16b8f206e881892dc104128a5b36de82\"\u003e\u003ccode\u003e7599eee\u003c/code\u003e\u003c/a\u003e Add 1.5.4 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/0d00e7ddd9ad33fc63fbed29af17853b18bc3c61\"\u003e\u003ccode\u003e0d00e7d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/spulec/freezegun/issues/579\"\u003e#579\u003c/a\u003e from zsh8/decorate_generator\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/10c93f2d6c98f82e54470b05144cd0f17d3e1b46\"\u003e\u003ccode\u003e10c93f2\u003c/code\u003e\u003c/a\u003e fix: preserve functionality in pytest yield fixtures\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/d2e0a00addb0653b0cf3be65f8fa7137c7e3bda1\"\u003e\u003ccode\u003ed2e0a00\u003c/code\u003e\u003c/a\u003e Increase version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/6229e27d27ec61c4c55d7006db7ede6f16d7280a\"\u003e\u003ccode\u003e6229e27\u003c/code\u003e\u003c/a\u003e Add 1.5.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/3111775d6e484f55a85030c626180b592adef569\"\u003e\u003ccode\u003e3111775\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/spulec/freezegun/issues/576\"\u003e#576\u003c/a\u003e from spulec/support-fixtures-pytest-840\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/spulec/freezegun/compare/1.2.1...1.5.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ijson` from 3.2.3 to 3.4.0.post0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ICRAR/ijson/blob/master/CHANGELOG.md\"\u003eijson's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[3.4.0.post0]\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePost-release to get 3.14 wheels built on published on PyPI.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.4.0]\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for PEP 489 multi-phase initialisation\nand per-module state for our C extension,\nallowing us to support sub-interpreters with per-interpreter GIL.\u003c/li\u003e\n\u003cli\u003eAdvertise support for free-threading python mode.\u003c/li\u003e\n\u003cli\u003eRemoved support for Python \u0026lt; 3.9.\u003c/li\u003e\n\u003cli\u003eEnhanced generators so they yield all possible results to users\nbefore errors are raised (\u003ca href=\"https://redirect.github.com/ICRAR/ijson/issues/123\"\u003e#123\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eijson.ALL_BACKENDS\u003c/code\u003e constant\nlisting all supported backends\n(which might or not be available at runtime).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecapabilities\u003c/code\u003e constant to each backend\ndescribing which capabilities it supports.\u003c/li\u003e\n\u003cli\u003eExposing backend's name under \u003ccode\u003e\u0026lt;backend\u0026gt;.backend_name\u003c/code\u003e,\nand default backend's name under \u003ccode\u003eijson.backend_name\u003c/code\u003e.\nThis is similar to the already existing \u003ccode\u003ename\u003c/code\u003e constant,\nonly slightly better named to hopefully avoid confusion.\u003c/li\u003e\n\u003cli\u003eRestructured source code so all code lives under \u003ccode\u003esrc/\u003c/code\u003e,\nand the \u003ccode\u003eijson.backends._yajl2\u003c/code\u003e extension under \u003ccode\u003esrc/ijson/backends/ext/_yajl2\u003c/code\u003e.\nThis allows C backend tests to actually run on cibuildwheel.\u003c/li\u003e\n\u003cli\u003eImproved performance of \u003ccode\u003eparse\u003c/code\u003e routine in C backend by ~4%.\u003c/li\u003e\n\u003cli\u003eFixed several potential stability issues in C backend\naround correct error handling.\u003c/li\u003e\n\u003cli\u003eFixed corner-case wrong behaviour of \u003ccode\u003eyajl2_c\u003c/code\u003e backend,\nwhich didn't work correctly with user-provided event names.\u003c/li\u003e\n\u003cli\u003ePointing to our own fork of yajl (for when we build it ourselves)\nthat contains fixes for all known CVEs (\u003ca href=\"https://redirect.github.com/ICRAR/ijson/issues/126\"\u003e#126\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eRemoved leftover compatibility bits in the C backend.\u003c/li\u003e\n\u003cli\u003eFixed potential issue with \u003ccode\u003eyajl\u003c/code\u003e and \u003ccode\u003eyajl2\u003c/code\u003e backends\nwhere crashes could occur at interpreter shutdown.\u003c/li\u003e\n\u003cli\u003eRemoved tox.\u003c/li\u003e\n\u003cli\u003eMoved static project metadata to \u003ccode\u003epyproject.toml\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.3.0]\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved support for Python 2.7 and 3.4,\n3.5+ is still supported.\u003c/li\u003e\n\u003cli\u003eDistribute the existing \u003ccode\u003ebenchmark.py\u003c/code\u003e script\nas \u003ccode\u003eijson.benchmark\u003c/code\u003e.\nThe module is an improved version of the script,\nsupporting #iterations for a given function invocation,\nmultiple input files,\nand more.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ICRAR/ijson/commit/6c97a004996035d3ac06d9ca7ea6324d9ed50a4b\"\u003e\u003ccode\u003e6c97a00\u003c/code\u003e\u003c/a\u003e Release ijson 3.4.0.post0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ICRAR/ijson/commit/fbb34c91bc643df07908ee31db89db22a7fd95da\"\u003e\u003ccode\u003efbb34c9\u003c/code\u003e\u003c/a\u003e Bump pypa/cibuildwheel from 3.1.4 to 3.2.0 (\u003ca href=\"https://redirect.github.com/ICRAR/ijson/issues/151\"\u003e#151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ICRAR/ijson/commit/1652a7ea643b4eaaba1c51f5f48b5c2b15e1d6a4\"\u003e\u003ccode\u003e1652a7e\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/ICRAR/ijson/issues/149\"\u003e#149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ICRAR/ijson/commit/b17551dc6303165de56b192f2ecf7ce63338ff50\"\u003e\u003ccode\u003eb17551d\u003c/code\u003e\u003c/a\u003e Bump pypa/cibuildwheel from 3.1.3 to 3.1.4 (\u003ca href=\"https://redirect.github.com/ICRAR/ijson/issues/148\"\u003e#148\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ICRAR/ijson/commit/85a23f8d6fd22f27977ed23adb7fcd7de44902a6\"\u003e\u003ccode\u003e85a23f8\u003c/code\u003e\u003c/a\u003e Use GHA ARM runners for faster ARM builds\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ICRAR/ijson/commit/cd74a27ce49e9bf1599fce359b0b6f82482b7cf8\"\u003e\u003ccode\u003ecd74a27\u003c/code\u003e\u003c/a\u003e Mark python 3.14 as supported\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ICRAR/ijson/commit/f62d26cb0b16602c379ef08ed987e0ba653780ce\"\u003e\u003ccode\u003ef62d26c\u003c/code\u003e\u003c/a\u003e Add fast test against 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ICRAR/ijson/commit/500baead7919dc71a9538d1fbe6fb59a56e28450\"\u003e\u003ccode\u003e500baea\u003c/code\u003e\u003c/a\u003e README: clarify how to use it with requests lib\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ICRAR/ijson/commit/4de62c53951a00a7e81c174d51bc0f10add78054\"\u003e\u003ccode\u003e4de62c5\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/ICRAR/ijson/issues/146\"\u003e#146\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ICRAR/ijson/commit/fc931cf575c3b713f98c4c8c0535993b9db9079e\"\u003e\u003ccode\u003efc931cf\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/ICRAR/ijson/issues/145\"\u003e#145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ICRAR/ijson/compare/v3.2.3...v3.4.0.post0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `libcst` from 1.4.0 to 1.8.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/releases\"\u003elibcst's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.8.5\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: circular import error by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1406\"\u003eInstagram/LibCST#1406\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.4...v1.8.5\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.4...v1.8.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.8.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efixed: generate Attribute nodes when applying type annotations by \u003ca href=\"https://github.com/tungol\"\u003e\u003ccode\u003e@​tungol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1396\"\u003eInstagram/LibCST#1396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded:Support parsing of t-strings \u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1374\"\u003e#1374\u003c/a\u003e  by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1398\"\u003eInstagram/LibCST#1398\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded: add support for PEP758 by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1401\"\u003eInstagram/LibCST#1401\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/tungol\"\u003e\u003ccode\u003e@​tungol\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1396\"\u003eInstagram/LibCST#1396\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.4\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.8.2\u003c/h2\u003e\n\u003ch1\u003eFixed\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix(dependency): add back typing-extensions for 3.9 by \u003ca href=\"https://github.com/Lee-W\"\u003e\u003ccode\u003e@​Lee-W\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1358\"\u003eInstagram/LibCST#1358\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/Lee-W\"\u003e\u003ccode\u003e@​Lee-W\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1358\"\u003eInstagram/LibCST#1358\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.1...v1.8.2\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.1...v1.8.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.8.1\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd helper to convert nodes to matchers by \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1351\"\u003eInstagram/LibCST#1351\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eUpdated\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid raising bare Exception by \u003ca href=\"https://github.com/zaicruvoir1rominet\"\u003e\u003ccode\u003e@​zaicruvoir1rominet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1168\"\u003eInstagram/LibCST#1168\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade PyYAML-ft version and use new module name by \u003ca href=\"https://github.com/lysnikolaou\"\u003e\u003ccode\u003e@​lysnikolaou\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1353\"\u003eInstagram/LibCST#1353\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/lysnikolaou\"\u003e\u003ccode\u003e@​lysnikolaou\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1353\"\u003eInstagram/LibCST#1353\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.0...v1.8.1\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.0...v1.8.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.8.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow configuring empty formatter lists in codemod CLI by \u003ca href=\"https://github.com/ngoldbaum\"\u003e\u003ccode\u003e@​ngoldbaum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1319\"\u003eInstagram/LibCST#1319\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePublish several new binary wheels\n\u003cul\u003e\n\u003cli\u003emacos intel by \u003ca href=\"https://github.com/hadialqattan\"\u003e\u003ccode\u003e@​hadialqattan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1316\"\u003eInstagram/LibCST#1316\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ewindows arm64 by \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1304\"\u003eInstagram/LibCST#1304\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e3.13 CPython free-threaded by \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1333\"\u003eInstagram/LibCST#1333\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(only on \u003ca href=\"https://test.pypi.org/project/libcst/#history\"\u003etest.pypi.org\u003c/a\u003e) 3.14 and 3.14 CPython free-threaded by \u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1345\"\u003eInstagram/LibCST#1345\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1331\"\u003eInstagram/LibCST#1331\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eEnable support for free-threaded CPython by \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1295\"\u003eInstagram/LibCST#1295\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1335\"\u003eInstagram/LibCST#1335\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/Instagram/LibCST/blob/main/CHANGELOG.md\"\u003elibcst's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.8.5 - 2025-09-25\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efixed: circular import error by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1406\"\u003eInstagram/LibCST#1406\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.8.4 - 2025-09-09\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efixed: generate Attribute nodes when applying type annotations by \u003ca href=\"https://github.com/tungol\"\u003e\u003ccode\u003e@​tungol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1396\"\u003eInstagram/LibCST#1396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded: Support parsing of t-strings \u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1374\"\u003e#1374\u003c/a\u003e  by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1398\"\u003eInstagram/LibCST#1398\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded: add support for PEP758 by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1401\"\u003eInstagram/LibCST#1401\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/tungol\"\u003e\u003ccode\u003e@​tungol\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1396\"\u003eInstagram/LibCST#1396\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.4\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.4\u003c/a\u003e\u003c/p\u003e\n\u003ch1\u003e1.8.3 - 2025-08-29\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eremoved: remove entry points to pure parser by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1375\"\u003eInstagram/LibCST#1375\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixed: fixes match statements to work with PositionProvider by \u003ca href=\"https://github.com/imsut\"\u003e\u003ccode\u003e@​imsut\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1389\"\u003eInstagram/LibCST#1389\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/hunterhogan\"\u003e\u003ccode\u003e@​hunterhogan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1378\"\u003eInstagram/LibCST#1378\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thomas-serre-sonarsource\"\u003e\u003ccode\u003e@​thomas-serre-sonarsource\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1379\"\u003eInstagram/LibCST#1379\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/imsut\"\u003e\u003ccode\u003e@​imsut\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1389\"\u003eInstagram/LibCST#1389\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.3\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.3\u003c/a\u003e\u003c/p\u003e\n\u003ch1\u003e1.8.2 - 2025-06-13\u003c/h1\u003e\n\u003ch1\u003eFixed\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix(dependency): add back typing-extensions for 3.9 by \u003ca href=\"https://github.com/Lee-W\"\u003e\u003ccode\u003e@​Lee-W\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1358\"\u003eInstagram/LibCST#1358\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/Lee-W\"\u003e\u003ccode\u003e@​Lee-W\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1358\"\u003eInstagram/LibCST#1358\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.1...v1.8.2\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.1...v1.8.2\u003c/a\u003e\u003c/p\u003e\n\u003ch1\u003e1.8.1 - 2025-06-10\u003c/h1\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd helper to convert nodes to matchers by \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1351\"\u003eInstagram/LibCST#1351\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eUpdated\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid raising bare Exception by \u003ca href=\"https://github.com/zaicruvoir1rominet\"\u003e\u003ccode\u003e@​zaicruvoir1rominet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1168\"\u003eInstagram/LibCST#1168\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade PyYAML-ft version and use new module name by \u003ca href=\"https://github.com/lysnikolaou\"\u003e\u003ccode\u003e@​lysnikolaou\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1353\"\u003eInstagram/LibCST#1353\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/Instagram/LibCST/commit/7c906eb47c02dca8d5b4273a032805516361c8cb\"\u003e\u003ccode\u003e7c906eb\u003c/code\u003e\u003c/a\u003e bump version to 1.8.5 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1407\"\u003e#1407\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/de5635394b5627cb86656147ba2f96e835ed3d44\"\u003e\u003ccode\u003ede56353\u003c/code\u003e\u003c/a\u003e fix: circular import error (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1406\"\u003e#1406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/47cacb69a32520be52975527e0cc87a4b4d5cd77\"\u003e\u003ccode\u003e47cacb6\u003c/code\u003e\u003c/a\u003e bump version to 1.8.4 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1402\"\u003e#1402\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/3b5329aa2022d97972d2f58eefe61b759b8e56c1\"\u003e\u003ccode\u003e3b5329a\u003c/code\u003e\u003c/a\u003e feat: add support for PEP758 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1401\"\u003e#1401\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/48668dfabb25e4bbdd35f81407498f5f5e47bf88\"\u003e\u003ccode\u003e48668df\u003c/code\u003e\u003c/a\u003e Support parsing of t-strings \u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1374\"\u003e#1374\u003c/a\u003e  (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1398\"\u003e#1398\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/0c82bfa76166ed38409a97de8974f9aaf3e7e572\"\u003e\u003ccode\u003e0c82bfa\u003c/code\u003e\u003c/a\u003e build(deps): bump regex from 1.11.1 to 1.11.2 in /native (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1399\"\u003e#1399\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/f40d8351450ca9adfe5270bd86ec7951e83221f4\"\u003e\u003ccode\u003ef40d835\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1400\"\u003e#1400\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/d721a06c3fc3ab9210acd180cec5aaca856e1bc7\"\u003e\u003ccode\u003ed721a06\u003c/code\u003e\u003c/a\u003e generate Attribute nodes when applying type annotations (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1396\"\u003e#1396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/e064729b4c04b834754c7be7f43a4dfb38972570\"\u003e\u003ccode\u003ee064729\u003c/code\u003e\u003c/a\u003e build(deps): bump pypa/cibuildwheel from 3.0.1 to 3.1.4 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1395\"\u003e#1395\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/f746afd537910d99bd8226a1c1edbf5bc69630eb\"\u003e\u003ccode\u003ef746afd\u003c/code\u003e\u003c/a\u003e build(deps): bump rayon from 1.10.0 to 1.11.0 in /native (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1394\"\u003e#1394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.4.0...v1.8.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `packaging` from 24.2 to 25.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/releases\"\u003epackaging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRe-add a test for Unicode file name parsing by \u003ca href=\"https://github.com/Siddhesh-Agarwal\"\u003e\u003ccode\u003e@​Siddhesh-Agarwal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/863\"\u003epypa/packaging#863\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade to ruff 0.9.1 by \u003ca href=\"https://github.com/DimitriPapadopoulos\"\u003e\u003ccode\u003e@​DimitriPapadopoulos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/865\"\u003epypa/packaging#865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for PEP 738 Android tags by \u003ca href=\"https://github.com/mhsmith\"\u003e\u003ccode\u003e@​mhsmith\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/880\"\u003epypa/packaging#880\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(markers): support 'extras' and 'dependency_groups' markers 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/888\"\u003epypa/packaging#888\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/Siddhesh-Agarwal\"\u003e\u003ccode\u003e@​Siddhesh-Agarwal\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/863\"\u003epypa/packaging#863\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mhsmith\"\u003e\u003ccode\u003e@​mhsmith\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/880\"\u003epypa/packaging#880\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frostming\"\u003e\u003ccode\u003e@​frostming\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/888\"\u003epypa/packaging#888\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/24.2...25.0\"\u003ehttps://github.com/pypa/packaging/compare/24.2...25.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/pypa/packaging/blob/main/CHANGELOG.rst\"\u003epackaging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e25.0 - 2025-04-19\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* PEP 751: Add support for ``extras`` and ``dependency_groups`` markers. (:issue:`885`)\n* PEP 738: Add support for Android platform tags. (:issue:`880`)\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\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/f58537628042c7f29780b9d33f31597e7fc9d664\"\u003e\u003ccode\u003ef585376\u003c/code\u003e\u003c/a\u003e Bump for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/600ecea15b2388037b8dc94883504ca612947576\"\u003e\u003ccode\u003e600ecea\u003c/code\u003e\u003c/a\u003e Add changelog entries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/3910129009b25dd1aa1fe32e644bc891188c56fe\"\u003e\u003ccode\u003e3910129\u003c/code\u003e\u003c/a\u003e support 'extras' and 'dependency_groups' markers (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/888\"\u003e#888\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/8e49b4373731bffb110c9583e64ad802cb67c7ea\"\u003e\u003ccode\u003e8e49b43\u003c/code\u003e\u003c/a\u003e Add support for PEP 738 Android tags (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/880\"\u003e#880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/e624d8edfaa28865de7b5a7da8bd59fd410e5331\"\u003e\u003ccode\u003ee624d8e\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/886\"\u003e#886\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/71f38d872a6e88b28da9d1b270f8512475bc90d4\"\u003e\u003ccode\u003e71f38d8\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/878\"\u003e#878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/9b4922dd3c26c8522d716bec79d7e0ed408631c1\"\u003e\u003ccode\u003e9b4922d\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/870\"\u003e#870\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/8510bd9d3bab5571974202ec85f6ef7b0359bfaf\"\u003e\u003ccode\u003e8510bd9\u003c/code\u003e\u003c/a\u003e Upgrade to ruff 0.9.1 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/865\"\u003e#865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/9375ec2eff48257967c97d331b9a76019e95bdb0\"\u003e\u003ccode\u003e9375ec2\u003c/code\u003e\u003c/a\u003e Re-add tests for Unicode file name parsing (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/863\"\u003e#863\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/2256ed4ac261309a09daa04cc801abd7cff2e6f0\"\u003e\u003ccode\u003e2256ed4\u003c/code\u003e\u003c/a\u003e Bump the github-actions group across 1 directory with 2 updates (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/864\"\u003e#864\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/packaging/compare/24.2...25.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psutil` from 5.9.8 to 7.1.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/giampaolo/psutil/blob/master/HISTORY.rst\"\u003epsutil's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e7.1.2\u003c/h1\u003e\n\u003cp\u003e2025-10-25\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2657_: stop publishing prebuilt Linux and Windows wheels for 32-bit Python.\n32-bit CPython is still supported, but psutil must now be built from source.\n2565_: produce wheels for free-thread cPython 3.13 and 3.14 (patch by\nLysandros Nikolaou)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2650_, [macOS]: \u003ccode\u003eProcess.cmdline()\u003c/code\u003e_ and \u003ccode\u003eProcess.environ()\u003c/code\u003e_ may incorrectly\nraise \u003ccode\u003eNoSuchProcess\u003c/code\u003e_ instead of \u003ccode\u003eZombieProcess\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003e2658_, [macOS]: double \u003ccode\u003efree()\u003c/code\u003e in \u003ccode\u003eProcess.environ()\u003c/code\u003e_ when it fails\ninternally. This posed a risk of segfault.\u003c/li\u003e\n\u003cli\u003e2662_, [macOS]: massive C code cleanup to guard against possible segfaults\nwhich were (not so) sporadically spotted on CI.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eCompatibility notes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2657_: stop publishing prebuilt Linux and Windows wheels for 32-bit Python.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e7.1.1\u003c/h1\u003e\n\u003cp\u003e2025-10-19\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2645_, [SunOS]: dropped support for SunOS 10.\u003c/li\u003e\n\u003cli\u003e2646_, [SunOS]: add CI test runner for SunOS.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2641_, [SunOS]: cannot compile psutil from sources due to missing C include.\u003c/li\u003e\n\u003cli\u003e2357_, [SunOS]: \u003ccode\u003eProcess.cmdline()\u003c/code\u003e_ does not handle spaces properly. (patch\nby Ben Raz)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eCompatibility notes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2645_: SunOS 10 is no longer supported.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e7.1.0\u003c/h1\u003e\n\u003cp\u003e2025-09-17\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/giampaolo/psutil/commit/c948ef07e46b114a61492c9d207c741339fceeb2\"\u003e\u003ccode\u003ec948ef0\u003c/code\u003e\u003c/a\u003e Update HISTORY.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/7dfd0ed34fe70ffd879ae62d21aabd4a8ed06d6f\"\u003e\u003ccode\u003e7dfd0ed\u003c/code\u003e\u003c/a\u003e Build 3.14t wheels (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2659\"\u003e#2659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/cbc0ba9025ec22b3be9f59b9e5bc761484c913b8\"\u003e\u003ccode\u003ecbc0ba9\u003c/code\u003e\u003c/a\u003e C: add missing ;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/a6ca9e14c68069c1e40f1c10cece36ca0fa491c8\"\u003e\u003ccode\u003ea6ca9e1\u003c/code\u003e\u003c/a\u003e BSD: Py_INCREF None value + use psutil_badargs()\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/3ed64173b6592344200b27d284fb23c5fd70f450\"\u003e\u003ccode\u003e3ed6417\u003c/code\u003e\u003c/a\u003e BSD: kinfo_getfile() check args + INT_MAX\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/742c9b560ee01bea051438a0d7a205b709b6d144\"\u003e\u003ccode\u003e742c9b5\u003c/code\u003e\u003c/a\u003e [macOS] lots of fixes (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2662\"\u003e#2662\u003c/a\u003e) - should fix macOS segfault \u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2661\"\u003e#2661\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/9d1ba7529f68275697d5bcd1b0785ebd02743683\"\u003e\u003ccode\u003e9d1ba75\u003c/code\u003e\u003c/a\u003e Update pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/68585cae2b4b9a88df7a000de177e56443bd6b86\"\u003e\u003ccode\u003e68585ca\u003c/code\u003e\u003c/a\u003e [macOS] various fixes to prevent potential segfaults (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2660\"\u003e#2660\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/439358dedf908a52e5ae512d3d2908af0dfdb2e4\"\u003e\u003ccode\u003e439358d\u003c/code\u003e\u003c/a\u003e Update HISTORY.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/24fc7dbde26e4c93f534c9a31863eb1ed25d162f\"\u003e\u003ccode\u003e24fc7db\u003c/code\u003e\u003c/a\u003e macos, fix \u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2658\"\u003e#2658\u003c/a\u003e: don't double-free in case of environ() error\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/giampaolo/psutil/compare/release-5.9.8...release-7.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.4.1 to 8.4.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.4.2\u003c/h2\u003e\n\u003ch1\u003epytest 8.4.2 (2025-09-03)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13478\"\u003e#13478\u003c/a\u003e: Fixed a crash when using \u003ccode\u003econsole_output_style\u003c/code\u003e{.interpreted-text role=\u0026quot;confval\u0026quot;} with \u003ccode\u003etimes\u003c/code\u003e and a module is skipped.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13530\"\u003e#13530\u003c/a\u003e: Fixed a crash when using \u003ccode\u003epytest.approx\u003c/code\u003e{.interpreted-text role=\u0026quot;func\u0026quot;} and \u003ccode\u003edecimal.Decimal\u003c/code\u003e{.interpreted-text role=\u0026quot;class\u0026quot;} instances with the \u003ccode\u003edecimal.FloatOperation\u003c/code\u003e{.interpreted-text role=\u0026quot;class\u0026quot;} trap set.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13549\"\u003e#13549\u003c/a\u003e: No longer evaluate type annotations in Python \u003ccode\u003e3.14\u003c/code\u003e when inspecting function signatures.\u003c/p\u003e\n\u003cp\u003eThis prevents crashes during module collection when modules do not explicitly use \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e and import types for annotations within a \u003ccode\u003eif TYPE_CHECKING:\u003c/code\u003e block.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13559\"\u003e#13559\u003c/a\u003e: Added missing [int]{.title-ref} and [float]{.title-ref} variants to the [Literal]{.title-ref} type annotation of the [type]{.title-ref} parameter in \u003ccode\u003epytest.Parser.addini\u003c/code\u003e{.interpreted-text role=\u0026quot;meth\u0026quot;}.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13563\"\u003e#13563\u003c/a\u003e: \u003ccode\u003epytest.approx\u003c/code\u003e{.interpreted-text role=\u0026quot;func\u0026quot;} now only imports \u003ccode\u003enumpy\u003c/code\u003e if NumPy is already in \u003ccode\u003esys.modules\u003c/code\u003e. This fixes unconditional import behavior introduced in [8.4.0]{.title-ref}.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13577\"\u003e#13577\u003c/a\u003e: Clarify that \u003ccode\u003epytest_generate_tests\u003c/code\u003e is discovered in test modules/classes; other hooks must be in \u003ccode\u003econftest.py\u003c/code\u003e or plugins.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13480\"\u003e#13480\u003c/a\u003e: Self-testing: fixed a few test failures when run with \u003ccode\u003e-Wdefault\u003c/code\u003e or a similar override.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13547\"\u003e#13547\u003c/a\u003e: Self-testing: corrected expected message for \u003ccode\u003etest_doctest_unexpected_exception\u003c/code\u003e in Python \u003ccode\u003e3.14\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13684\"\u003e#13684\u003c/a\u003e: Make pytest's own testsuite insensitive to the presence of the \u003ccode\u003eCI\u003c/code\u003e environment variable -- by \u003ccode\u003eogrisel\u003c/code\u003e{.interpreted-text role=\u0026quot;user\u0026quot;}.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bfae4224fd554d3d7f2c277a4cc092b6ec6af3ae\"\u003e\u003ccode\u003ebfae422\u003c/code\u003e\u003c/a\u003e Prepare release version 8.4.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/89905381a163be30ae87d62e5f750e902d750c5f\"\u003e\u003ccode\u003e8990538\u003c/code\u003e\u003c/a\u003e Fix passenv CI in tox ini and make tests insensitive to the presence of the C...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ca676bfe005aebcb12f4146d1b0f1d2772e2cd5d\"\u003e\u003ccode\u003eca676bf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13687\"\u003e#13687\u003c/a\u003e from pytest-dev/patchback/backports/8.4.x/e63f6e51c...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/975a60a63ce385a44655596e254c1899feaa53e4\"\u003e\u003ccode\u003e975a60a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13686\"\u003e#13686\u003c/a\u003e from pytest-dev/patchback/backports/8.4.x/12bde8af6...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7723ce84b87ab08f86ddafcb342acc28ba5ec99d\"\u003e\u003ccode\u003e7723ce8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13683\"\u003e#13683\u003c/a\u003e from even-even/fix_Exeption_to_Exception_in_errorMe...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7f05680d1301e0969b30bcb3c4b27433c9ee2b7\"\u003e\u003ccode\u003eb7f0568\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13685\"\u003e#13685\u003c/a\u003e from CoretexShadow/fix/docs-pytest-generate-tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/2c94c4a6948ba53440818389298157fa5d5f94cd\"\u003e\u003ccode\u003e2c94c4a\u003c/code\u003e\u003c/a\u003e add missing colon (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13640\"\u003e#13640\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13641\"\u003e#13641\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c3d7684bc01c8c48d05145a30c5211ca8656c68c\"\u003e\u003ccode\u003ec3d7684\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13606\"\u003e#13606\u003c/a\u003e from pytest-dev/patchback/backports/8.4.x/5f9938563...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/dc6e3be2ddc75a149b6d102d9b7c82ee47a00cfa\"\u003e\u003ccode\u003edc6e3be\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13605\"\u003e#13605\u003c/a\u003e from The-Compiler/training-update-2025-07\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f87289c36c8dbe7740e3020f5546b6f8b0861ff0\"\u003e\u003ccode\u003ef87289c\u003c/code\u003e\u003c/a\u003e Fix crash with \u003ccode\u003etimes\u003c/code\u003e output style and skipped module (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13573\"\u003e#13573\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13579\"\u003e#13579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.4.1...8.4.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-lsp-jsonrpc` from 1.0.0 to 1.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-lsp/python-lsp-jsonrpc/releases\"\u003epython-lsp-jsonrpc's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ePython LSP JSON-RPC v1.1.2\u003c/h2\u003e\n\u003cp\u003eThis is a minor bugfix release that:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixes tests so they're compatible with both ujson and the pure json library.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePython LSP JSON-RPC v1.1.1\u003c/h2\u003e\n\u003cp\u003eThis is a minor bugfix release that:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoves the redundant \u003ccode\u003ewheel\u003c/code\u003e dependency from \u003ccode\u003epyproject.toml\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdds a license trove classifier to \u003ccode\u003epyproject.toml\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePython LSP JSON-RPC v1.1.0\u003c/h2\u003e\n\u003cp\u003eMajor release of python-lsp-jsonrpc with the following new features and changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAllow method handlers to return json rpc errors\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.6\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-lsp/python-lsp-jsonrpc/blob/develop/CHANGELOG.md\"\u003epython-lsp-jsonrpc's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.1.2 (2023/09/23)\u003c/h2\u003e\n\u003ch3\u003ePull Requests Merged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/python-lsp/python-lsp-jsonrpc/pull/26\"\u003ePR 26\u003c/a\u003e - Fix tests so they're compatible with both ujson and pure json library, by \u003ca href=\"https://github.com/ajohnston9\"\u003e\u003ccode\u003e@​ajohnston9\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIn this release 1 pull request was closed.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003eVersion 1.1.1 (2023/09/09)\u003c/h2\u003e\n\u003ch3\u003eIssues Closed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/python-lsp/python-lsp-jsonrpc/issues/18\"\u003eIssue 18\u003c/a\u003e - No license included in package metadata (\u003ca href=\"https://redirect.github.com/python-lsp/python-lsp-jsonrpc/pull/19\"\u003ePR 19\u003c/a\u003e by \u003ca href=\"https://github.com/thejcannon\"\u003e\u003ccode\u003e@​thejcannon\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIn this release 1 issue was closed.\u003c/p\u003e\n\u003ch3\u003ePull Requests Merged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/python-lsp/python-lsp-jsonrpc/pull/23\"\u003ePR 23\u003c/a\u003e - Remove redundant wheel dep from pyproject.toml, by \u003ca href=\"https://github.com/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/python-lsp/python-lsp-jsonrpc/pull/19\"\u003ePR 19\u003c/a\u003e - Add license trove classifier, by \u003ca href=\"https://github.com/thejcannon\"\u003e\u003ccode\u003e@​thejcannon\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/python-lsp/python-lsp-jsonrpc/issues/18\"\u003e18\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIn this release 2 pull requests were closed.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003eVersion 1.1.0 (2023/09/07)\u003c/h2\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow method handlers to return json rpc errors\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7 and 3.6\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIssues Closed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/python-lsp/python-lsp-jsonrpc/issues/11\"\u003eIssue 11\u003c/a\u003e - Drop support for Python 3.6 (\u003ca href=\"https://redirect.github.com/python-lsp/python-lsp-jsonrpc/pull/16\"\u003ePR 16\u003c/a\u003e by \u003ca href=\"https://github.com/ccordoba12\"\u003e\u003ccode\u003e@​ccordoba12\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIn this release 1 issue was closed.\u003c/p\u003e\n\u003ch3\u003ePull Requests Merged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/python-lsp/python-lsp-jsonrpc/pull/21\"\u003ePR 21\u003c/a\u003e - Drop support for Python 3.7, by \u003ca href=\"https://github.com/ccordoba12\"\u003e\u003ccode\u003e@​ccordoba12\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/python-lsp/python-lsp-jsonrpc/pull/20\"\u003ePR 20\u003c/a\u003e - Allow method handlers to return json rpc errors, by \u003ca href=\"https://github.com/smacke\"\u003e\u003ccode\u003e@​smacke\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/python-lsp/python-lsp-jsonrpc/pull/16\"\u003ePR 16\u003c/a\u003e - Make necessary changes to drop support for Python 3.6, by \u003ca href=\"https://github.com/ccordoba12\"\u003e\u003ccode\u003e@​ccordoba12\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/python-lsp/python-lsp-jsonrpc/issues/11\"\u003e11\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/python-lsp/python-lsp-jsonrpc/pull/15\"\u003ePR 15\u003c/a\u003e - Drop Python 3.6 on CIs and start testing with Python 3.10, by \u003ca href=\"https://github.com/ccordoba12\"\u003e\u003ccode\u003e@​ccordoba12\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/python-lsp/python-lsp-jsonrpc/pull/14\"\u003ePR 14\u003c/a\u003e - Migrate metadata from \u003ccode\u003esetup.cfg\u003c/code\u003e to PEP 621-compliant \u003ccode\u003epyproject.toml\u003c/code\u003e, by \u003ca href=\"https://github.com/KOLANICH\"\u003e\u003ccode\u003e@​KOLANICH\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/python-lsp/python-lsp-jsonrpc/pull/10\"\u003ePR 10\u003c/a\u003e - Use f-strings wherever possible, by \u003ca href=\"https://github.com/ccordoba12\"\u003e\u003ccode\u003e@​ccordoba12\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/python-lsp/python-lsp-jsonrpc/pull/9\"\u003ePR 9\u003c/a\u003e - Add license info to setup.py so it will show up in wheel installs., by \u003ca href=\"https://github.com/itsbenweeks\"\u003e\u003ccode\u003e@​itsbenweeks\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/python-lsp/python-lsp-jsonrpc/pull/8\"\u003ePR 8\u003c/a\u003e - Move the package metadata from setup.py to setup.cfg, by \u003ca href=\"https://github.com/KOLANICH\"\u003e\u003ccode\u003e@​KOLANICH\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/python-lsp/python-lsp-jsonrpc/commit/786d8dd8f830dbd83a17962c0167183a6609e72f\"\u003e\u003ccode\u003e786d8dd\u003c/code\u003e\u003c/a\u003e Update changelog for 1.1.2 (\u003ca href=\"https://redirect.github.com/python-lsp/python-lsp-jsonrpc/issues/27\"\u003e#27\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-lsp/python-lsp-jsonrpc/commit/869bf81b307100ef4e794e929e5e142f2afea2a7\"\u003e\u003ccode\u003e869bf81\u003c/code\u003e\u003c/a\u003e Fix tests so they're compatible with both ujson and pure json library (\u003ca href=\"https://redirect.github.com/python-lsp/python-lsp-jsonrpc/issues/26\"\u003e#26\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-lsp/python-lsp-jsonrpc/commit/1a5ef4422266e28ac6c188f336cc7049f618616e\"\u003e\u003ccode\u003e1a5ef44\u003c/code\u003e\u003c/a\u003e Update Changelog for 1.1.1 (\u003ca href=\"https://redirect.github.com/python-lsp/python-lsp-jsonrpc/issues/24\"\u003e#24\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-lsp/python-lsp-jsonrpc/commit/2e41478f4a2408e64882bc7e1311f00bb7a0c2fa\"\u003e\u003ccode\u003e2e41478\u003c/code\u003e\u003c/a\u003e Add license trove classifier (\u003ca href=\"https://redirect.github.com/python-lsp/python-lsp-jsonrpc/issues/19\"\u003e#19\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-lsp/python-lsp-jsonrpc/commit/7360cd81665842202bcfebe1154141416ed4939c\"\u003e\u003ccode\u003e7360cd8\u003c/code\u003e\u003c/a\u003e Remove redundant wheel dep from pyproject.toml (\u003ca href=\"https://redirect.github.com/python-lsp/python-lsp-jsonrpc/issues/23\"\u003e#23\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-lsp/python-lsp-jsonrpc/commit/73e028f53ba1885052dcef8217a28f4ad9938f67\"\u003e\u003ccode\u003e73e028f\u003c/code\u003e\u003c/a\u003e Update changelog for 1.1.0 (\u003ca href=\"https://redirect.github.com/python-lsp/python-lsp-jsonrpc/issues/22\"\u003e#22\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-lsp/python-lsp-jsonrpc/commit/c53210eafb0816144452397aa432fe9b22c7561b\"\u003e\u003ccode\u003ec53210e\u003c/code\u003e\u003c/a\u003e Drop support for Python 3.7 (\u003ca href=\"https://redirect.github.com/python-lsp/python-lsp-jsonrpc/issues/21\"\u003e#21\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-lsp/python-lsp-jsonrpc/commit/b0331b70d410ffbf3a58fab05689dbe820d3fb19\"\u003e\u003ccode\u003eb0331b7\u003c/code\u003e\u003c/a\u003e Allow method handlers to return json rpc errors (\u003ca href=\"https://redirect.github.com/python-lsp/python-lsp-jsonrpc/issues/20\"\u003e#20\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-lsp/python-lsp-jsonrpc/commit/c73fbdba2eeb99b7b145dcda76e62250552feda4\"\u003e\u003ccode\u003ec73fbdb\u003c/code\u003e\u003c/a\u003e Make necessary changes to drop support for Python 3.6 (\u003ca href=\"https://redirect.github.com/python-lsp/python-lsp-jsonrpc/issues/16\"\u003e#16\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-lsp/python-lsp-jsonrpc/commit/81f1b86fd655aab65b35845b7d0314bfba14fc58\"\u003e\u003ccode\u003e81f1b86\u003c/code\u003e\u003c/a\u003e Migrate metadata from \u003ccode\u003esetup.cfg\u003c/code\u003e to PEP 621-compliant \u003ccode\u003epyproject.toml\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-lsp/python-lsp-jsonrpc/issues/14\"\u003e#14\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-lsp/python-lsp-jsonrpc/compare/v1.0.0...v1.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `setproctitle` from 1.3.2 to 1.3.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/dvarrazzo/py-setproctitle/blob/master/HISTORY.rst\"\u003esetproctitle's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.3.7\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14 (issue \u003ca href=\"https://redirect.github.com/dvarrazzo/py-setproctitle/issues/152\"\u003e#152\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for free-threading (issue \u003ca href=\"https://redirect.github.com/dvarrazzo/py-setproctitle/issues/147\"\u003e#147\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.3.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix bouncing Dock icon on macOS (issue \u003ca href=\"https://redirect.github.com/dvarrazzo/py-setproctitle/issues/143\"\u003e#143\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix building on C23 compilers (issue \u003ca href=\"https://redirect.github.com/dvarrazzo/py-setproctitle/issues/145\"\u003e#145\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.3.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13 (issue \u003ca href=\"https://redirect.github.com/dvarrazzo/py-setproctitle/issues/139\"\u003e#139\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.3.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eFix package metadata to include Python 3.11, 3.12.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dvarrazzo/py-setproctitle/commit/389ed6f4e3ccfebb34a38893553992ea10cf5dc8\"\u003e\u003ccode\u003e389ed6f\u003c/code\u003e\u003c/a\u003e chore: bump version to 1.3.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dvarrazzo/py-setproctitle/commit/0225735077e1891105005bef2b6907400f51e276\"\u003e\u003ccode\u003e0225735\u003c/code\u003e\u003c/a\u003e Build CPython 3.14 wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dvarrazzo/py-setproctitle/commit/11d5ba71f0dc2bee2deb32ad17ac577101d404cd\"\u003e\u003ccode\u003e11d5ba7\u003c/code\u003e\u003c/a\u003e chore: drop end year copyright\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dvarrazzo/py-setproctitle/commit/9950f38639e8bbda8d208bd4b8ec0531821e26a8\"\u003e\u003ccode\u003e9950f38\u003c/code\u003e\u003c/a\u003e chore: use a standard license file format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dvarrazzo/py-setproctitle/commit/864cb7298ead40c903b0276cbfa887b5369e037c\"\u003e\u003ccode\u003e864cb72\u003c/code\u003e\u003c/a\u003e chore: bump version update history\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dvarrazzo/py-setproctitle/commit/ef9cee19375d2a5c037df150a34a794fe4d8fb09\"\u003e\u003ccode\u003eef9cee1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/dvarrazzo/py-setproctitle/issues/148\"\u003e#148\u003c/a\u003e from lysnikolaou/free-threading\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dvarrazzo/py-setproctitle/commit/fb28127656185b6ef5fba3a6d21275d235b67722\"\u003e\u003ccode\u003efb28127\u003c/code\u003e\u003c/a\u003e Implement support for CPython 3.13t\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dvarrazzo/py-setproctitle/commit/cacf96fafa3da1cd1a5b131b4f8b9997c01518d5\"\u003e\u003ccode\u003ecacf96f\u003c/code\u003e\u003c/a\u003e chore: bump version number to 1.3.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dvarrazzo/py-setproctitle/commit/314c9a8e5f5fc0d6bf39793f9cf69166708eeb8d\"\u003e\u003ccode\u003e314c9a8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/dvarrazzo/py-setproctitle/issues/146\"\u003e#146\u003c/a\u003e from gershnik/fix-145\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dvarrazzo/py-setproctitle/commit/8787da71db608c0c593f0fb83573bb8460c7c66d\"\u003e\u003ccode\u003e8787da7\u003c/code\u003e\u003c/a\u003e docs: add release note about C23 compilers fix\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/dvarrazzo/py-setproctitle/compare/version-1.3.2...version-1.3.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `setuptools` to 80.9.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/setuptools/blob/main/NEWS.rst\"\u003esetuptools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev80.9.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSet a deadline for the removal of pkg_resources later this year (December). (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/3085\"\u003e#3085\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved reliance on pkg_resources in test_wheel. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/3085\"\u003e#3085\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev80.8.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplaced more references to pkg_resources with importlib equivalents in wheel odule. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/3085\"\u003e#3085\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRestore explicit LICENSE file. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5001\"\u003e#5001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved no longer used build dependency on \u003ccode\u003ecoherent.licensed\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5003\"\u003e#5003\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev80.7.1\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOnly attempt to fetch eggs for unsatisfied requirements. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4998\"\u003e#4998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIn installer, when discovering egg dists, let metadata discovery search each egg. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4998\"\u003e#4998\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev80.7.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved usage of pkg_resources from installer. Set an official deadline on the installer deprecation to 2025-10-31. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4997\"\u003e#4997\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4996\"\u003e#4996\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev80.6.0\u003c/h1\u003e\n\u003cp\u003eFeatures\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/setuptools/commit/9c4d383631d3951fcae0afd73b5d08ff5a262976\"\u003e\u003ccode\u003e9c4d383\u003c/code\u003e\u003c/a\u003e Bump version: 80.8.0 → 80.9.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/05cb3c84f1422f3b26ccfb00f4c43886dc55b9bc\"\u003e\u003ccode\u003e05cb3c8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5014\"\u003e#5014\u003c/a\u003e from pypa/debt/pkg_resources-deadline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/3b0bf5bd43034c448a10e7102788fe710b4bb496\"\u003e\u003ccode\u003e3b0bf5b\u003c/code\u003e\u003c/a\u003e Adjust ignore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/9c28cdffd423f83e43dbfd39fc793c251da48585\"\u003e\u003ccode\u003e9c28cdf\u003c/code\u003e\u003c/a\u003e Set a deadline for the removal of pkg_resources later this year (December).\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/a3bfef95193bf0ff78ef6e0fb8c63a3728f443b0\"\u003e\u003ccode\u003ea3bfef9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5013\"\u003e#5013\u003c/a\u003e from DimitriPapadopoulos/ISC\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/64bf9d0ce88a09748f702bd7736d9ec2879aa6ef\"\u003e\u003ccode\u003e64bf9d0\u003c/code\u003e\u003c/a\u003e Enforce ruff/flake8-implicit-str-concat rules (ISC)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/3250c25197b299658cfd4d0db67770fc29b47277\"\u003e\u003ccode\u003e3250c25\u003c/code\u003e\u003c/a\u003e Fix broken link in docs (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4947\"\u003e#4947\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/5ccf50e01ab0d303f524c065f2cb51042b34bc55\"\u003e\u003ccode\u003e5ccf50e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5006\"\u003e#5006\u003c/a\u003e from pypa/feature/remove-more-pkg_resources\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/134e587c0ba0b59e1661f08a45e6d6d1ecd24329\"\u003e\u003ccode\u003e134e587\u003c/code\u003e\u003c/a\u003e Suppress nitpicky typecheck in pyright.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/0bf2663a19f2d947697997d125c3c880df2011b7\"\u003e\u003ccode\u003e0bf2663\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/setuptools/compare/v63.1.0...v80.9.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `types-freezegun` from 1.1.6 to 1.1.10\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/python/typeshed/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `types-pyyaml` from 6.0.3 to 6.0.12.20250915\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 `types-requests` from 2.28.1 to 2.32.4.20250913\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 `types-setuptools` from 62.6.1 to 80.9.0.20250822\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 `types-toml` from 0.10.8 to 0.10.8.20240310\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/python/typeshed/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `typing-extensions` to 4.15.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/typing_extensions/releases\"\u003etyping-extensions's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.15.0\u003c/h2\u003e\n\u003cp\u003eNo user-facing changes since 4.15.0rc1.\u003c/p\u003e\n\u003cp\u003eNew features since 4.14.1:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd the \u003ccode\u003e@typing_extensions.disjoint_base\u003c/code\u003e decorator, as specified\nin PEP 800. Patch by Jelle Zijlstra.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003etyping_extensions.type_repr\u003c/code\u003e, a backport of\n\u003ca href=\"https://docs.python.org/3.14/library/annotationlib.html#annotationlib.type_repr\"\u003e\u003ccode\u003eannotationlib.type_repr\u003c/code\u003e\u003c/a\u003e,\nintroduced in Python 3.14 (CPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/124551\"\u003e#124551\u003c/a\u003e,\noriginally by Jelle Zijlstra). Patch by Semyon Moroz.\u003c/li\u003e\n\u003cli\u003eFix behavior of type params in \u003ccode\u003etyping_extensions.evaluate_forward_ref\u003c/code\u003e. Backport of\nCPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/137227\"\u003e#137227\u003c/a\u003e by Jelle Zijlstra.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/typing_extensions/blob/main/CHANGELOG.md\"\u003etyping-extensions's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease 4.15.0 (August 25, 2025)\u003c/h1\u003e\n\u003cp\u003eNo user-facing changes since 4.15.0rc1.\u003c/p\u003e\n\u003ch1\u003eRelease 4.15.0rc1 (August 18, 2025)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd the \u003ccode\u003e@typing_extensions.disjoint_base\u003c/code\u003e decorator, as specified\nin PEP 800. Patch by Jelle Zijlstra.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003etyping_extensions.type_repr\u003c/code\u003e, a backport of\n\u003ca href=\"https://docs.python.org/3.14/library/annotationlib.html#annotationlib.type_repr\"\u003e\u003ccode\u003eannotationlib.type_repr\u003c/code\u003e\u003c/a\u003e,\nintroduced in Python 3.14 (CPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/124551\"\u003e#124551\u003c/a\u003e,\noriginally by Jelle Zijlstra). Patch by Semyon Moroz.\u003c/li\u003e\n\u003cli\u003eFix behavior of type params in \u003ccode\u003etyping_extensions.evaluate_forward_ref\u003c/code\u003e. Backport of\nCPython PR \u003ca href=\"https://redirect.github.com/python/cpython/pull/137227\"\u003e#137227\u003c/a\u003e by Jelle Zijlstra.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eRelease 4.14.1 (July 4, 2025)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix usage of \u003ccode\u003etyping_extensions.TypedDict\u003c/code\u003e nested inside other types\n(e.g., \u003ccode\u003etyping.Type[typing_extensions.TypedDict]\u003c/code\u003e). This is not allowed by the\ntype system but worked on older versions, so we maintain support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eRelease 4.14.0 (June 2, 2025)\u003c/h1\u003e\n\u003cp\u003eChanges since 4.14.0rc1:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003e__or__\u003c/code\u003e and \u003ccode\u003e__ror__\u003c/code\u003e methods from \u003ccode\u003etyping_extensions.Sentinel\u003c/code\u003e\non Python versions \u0026lt;3.10. PEP 604 was introduced in Python 3.10, and\n\u003ccode\u003etyping_extensions\u003c/code\u003e does not generally attempt to backport PEP-604 methods\nto prior versions.\u003c/li\u003e\n\u003cli\u003eFurther update \u003ccode\u003etyping_extensions.evaluate_forward_ref\u003c/code\u003e with changes in Python 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eRelease 4.14.0rc1 (May 24, 2025)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8 (including PyPy-3.8). Patch by \u003ca href=\"https://github.com/Viicos\"\u003eVictorien Plot\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eDo not attempt to re-export names that have been removed from \u003ccode\u003etyping\u003c/code\u003e,\nanticipating the removal of \u003ccode\u003etyping.no_type_check_decorator\u003c/code\u003e in Python 3.15.\nPatch by Jelle Zijlstra.\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003etyping_extensions.Format\u003c/code\u003e, \u003ccode\u003etyping_extensions.evaluate_forward_ref\u003c/code\u003e, and\n\u003ccode\u003etyping_extensions.TypedDict\u003c/code\u003e to align\nwith changes in Python 3.14. Patches by Jelle Zijlstra.\u003c/li\u003e\n\u003cli\u003eFix tests for Python 3.14 and 3.15. Patches by Jelle Zijlstra.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eNew features:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for inline typed dictionaries (\u003ca href=\"https://peps.python.org/pep-0764/\"\u003ePEP 764\u003c/a\u003e).\nPatch by \u003ca href=\"https://github.com/Viicos\"\u003eVictorien Plot\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003etyping_extensions.Reader\u003c/code\u003e and \u003ccode\u003etyping_extensions.Writer\u003c/code\u003e. Patch by\nSebastian Rittau.\u003c/li\u003e\n\u003cli\u003eAdd support for sentinels (\u003ca href=\"https://peps.python.org/pep-0661/\"\u003ePEP 661\u003c/a\u003e). Patch by\n\u003ca href=\"https://github.com/Viicos\"\u003eVictorien Plot\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/9d1637e264b5c1a6b7acee3e907015f89b20c2c9\"\u003e\u003ccode\u003e9d1637e\u003c/code\u003e\u003c/a\u003e Prepare release 4.15.0 (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/658\"\u003e#658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/4bd67c5be5d9443c7d33c314d02a56ee125eb88d\"\u003e\u003ccode\u003e4bd67c5\u003c/code\u003e\u003c/a\u003e Coverage: exclude some noise (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/656\"\u003e#656\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/e589a26da73b075c5276bae40b86db1af0144f84\"\u003e\u003ccode\u003ee589a26\u003c/code\u003e\u003c/a\u003e Coverage: add detailed report to job summary (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/655\"\u003e#655\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/67d37fed1298e050f74d5acc95b2621bd37837ad\"\u003e\u003ccode\u003e67d37fe\u003c/code\u003e\u003c/a\u003e Coverage: Implement fail_under (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/654\"\u003e#654\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/e9ae26f5286edee9262727755ecb9ad16e999192\"\u003e\u003ccode\u003ee9ae26f\u003c/code\u003e\u003c/a\u003e Don't delete previous coverage comment (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/653\"\u003e#653\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/ac80bb728a3006fc88ef7373b92f0c25cfcc7895\"\u003e\u003ccode\u003eac80bb7\u003c/code\u003e\u003c/a\u003e Add Coverage workflow (\u003ca href=\"https://redirect.github.com/python/typing_extensions/issues/623\"\u003e#623\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/typing_extensions/commit/abaaafd98c1cc7e5baf098ec287a3d22cb339670\"\u003e\u003ccode\u003eabaaafd\u003c/...\n\n_Description has been truncated_","html_url":"https://github.com/pantsbuild/pants/pull/22825","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/pantsbuild%2Fpants/issues/22825","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/22825/packages"}},{"old_version":"7.4.2","new_version":"8.4.2","update_type":"major","path":null,"pr_created_at":"2025-09-22T15:55:50.000Z","version_change":"7.4.2 → 8.4.2","issue":{"uuid":"3441650328","node_id":"PR_kwDOKoYLLM6p4T-h","number":170,"state":"open","title":"Bump the major-versions group across 1 directory with 16 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":"NONE","state_reason":null,"created_at":"2025-09-22T15:55:50.000Z","updated_at":"2025-09-29T16:21:16.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"major-versions","update_count":16,"packages":[{"name":"django","old_version":"4.2.6","new_version":"4.2.24"},{"name":"django-guardian","old_version":"2.4.0","new_version":"3.2.0","repository_url":"https://github.com/django-guardian/django-guardian"},{"name":"django-extensions","old_version":"3.2.3","new_version":"4.1","repository_url":"https://github.com/django-extensions/django-extensions"},{"name":"django-filter","old_version":"23.3","new_version":"25.1","repository_url":"https://github.com/carltongibson/django-filter"},{"name":"gunicorn","old_version":"21.2.0","new_version":"23.0.0","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"python-ipware","old_version":"2.0.0","new_version":"3.0.0","repository_url":"https://github.com/un33k/python-ipware"},{"name":"redis","old_version":"4.6.0","new_version":"5.2.1","repository_url":"https://github.com/redis/redis-py"},{"name":"watchdog","old_version":"3.0.0","new_version":"6.0.0","repository_url":"https://github.com/gorakhargosh/watchdog"},{"name":"ocrmypdf","old_version":"14.4.0","new_version":"15.4.4","repository_url":"https://github.com/ocrmypdf/OCRmyPDF"},{"name":"django-multiselectfield","old_version":"0.1.12","new_version":"1.0.1","repository_url":"https://github.com/goinnn/django-multiselectfield"},{"name":"django-auditlog","old_version":"2.3.0","new_version":"3.2.1","repository_url":"https://github.com/jazzband/django-auditlog"},{"name":"pre-commit","old_version":"3.4.0","new_version":"4.3.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pytest","old_version":"7.4.2","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-cov","old_version":"4.1.0","new_version":"7.0.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pytest-sugar","old_version":"0.9.7","new_version":"1.1.1","repository_url":"https://github.com/Teemu/pytest-sugar"},{"name":"pytest-rerunfailures","old_version":"12.0","new_version":"16.0.1","repository_url":"https://github.com/pytest-dev/pytest-rerunfailures"}],"path":null,"ecosystem":"conda"},"body":"[//]: # (dependabot-start)\n⚠️  **Dependabot is rebasing this PR** ⚠️ \n\nRebasing might not happen immediately, so don't worry if this takes some time.\n\nNote: if you make any changes to this PR yourself, they will take precedence over the rebase.\n\n---\n\n[//]: # (dependabot-end)\n\nBumps the major-versions group with 16 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| django | `4.2.6` | `4.2.24` |\n| [django-guardian](https://github.com/django-guardian/django-guardian) | `2.4.0` | `3.2.0` |\n| [django-extensions](https://github.com/django-extensions/django-extensions) | `3.2.3` | `4.1` |\n| [django-filter](https://github.com/carltongibson/django-filter) | `23.3` | `25.1` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `21.2.0` | `23.0.0` |\n| [python-ipware](https://github.com/un33k/python-ipware) | `2.0.0` | `3.0.0` |\n| [redis](https://github.com/redis/redis-py) | `4.6.0` | `5.2.1` |\n| [watchdog](https://github.com/gorakhargosh/watchdog) | `3.0.0` | `6.0.0` |\n| [ocrmypdf](https://github.com/ocrmypdf/OCRmyPDF) | `14.4.0` | `15.4.4` |\n| [django-multiselectfield](https://github.com/goinnn/django-multiselectfield) | `0.1.12` | `1.0.1` |\n| [django-auditlog](https://github.com/jazzband/django-auditlog) | `2.3.0` | `3.2.1` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `3.4.0` | `4.3.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `7.4.2` | `8.4.2` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `4.1.0` | `7.0.0` |\n| [pytest-sugar](https://github.com/Teemu/pytest-sugar) | `0.9.7` | `1.1.1` |\n| [pytest-rerunfailures](https://github.com/pytest-dev/pytest-rerunfailures) | `12.0` | `16.0.1` |\n\n\nUpdates `django` from 4.2.6 to 4.2.24\n\nUpdates `django-guardian` from 2.4.0 to 3.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-guardian/django-guardian/releases\"\u003edjango-guardian's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.2.0 The Bozkir progression\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate enforcement contact link in CODE_OF_CONDUCT.md by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/918\"\u003edjango-guardian/django-guardian#918\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptional cached anonymous user  - Pr 907 by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/912\"\u003edjango-guardian/django-guardian#912\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003egenerator warnings and logics are added for security purposes by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/920\"\u003edjango-guardian/django-guardian#920\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erollback compatible create anon user fix is developed by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/919\"\u003edjango-guardian/django-guardian#919\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e644 using inlines in django admin with guardian by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/921\"\u003edjango-guardian/django-guardian#921\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-guardian/django-guardian/compare/3.1.3...3.2.0\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.3...3.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edjango-packages badge is added by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/910\"\u003edjango-guardian/django-guardian#910\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate issue templates by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/909\"\u003edjango-guardian/django-guardian#909\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMakefile support by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/906\"\u003edjango-guardian/django-guardian#906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePR merging scenario is fixed by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/913\"\u003edjango-guardian/django-guardian#913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed issue causing prefetch_perms() to throw when passed an empty list by \u003ca href=\"https://github.com/keattang\"\u003e\u003ccode\u003e@​keattang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/904\"\u003edjango-guardian/django-guardian#904\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRe apply \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/812\"\u003e#812\u003c/a\u003e using correct lookup method by \u003ca href=\"https://github.com/sevdog\"\u003e\u003ccode\u003e@​sevdog\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/842\"\u003edjango-guardian/django-guardian#842\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOPS: Bump version for release by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/915\"\u003edjango-guardian/django-guardian#915\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-guardian/django-guardian/compare/3.1.2...3.1.3\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.2...3.1.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 in /.github/workflows by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/903\"\u003edjango-guardian/django-guardian#903\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix type and deprecate old name by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/902\"\u003edjango-guardian/django-guardian#902\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/django-guardian/django-guardian/pull/903\"\u003edjango-guardian/django-guardian#903\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-guardian/django-guardian/compare/3.1.1...3.1.2\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.1...3.1.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epre-commit checker step is added by \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/901\"\u003edjango-guardian/django-guardian#901\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-guardian/django-guardian/compare/3.1.0...3.1.1\"\u003ehttps://github.com/django-guardian/django-guardian/compare/3.1.0...3.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eImproved indexing, tweaks and bugfixes\u003c/h2\u003e\n\u003ch2\u003eSaving the 🌳🌳🌳 and the 💰💰💰\u003c/h2\u003e\n\u003cp\u003e⚠️⚠️⚠️ \u003cstrong\u003eWARNING:\u003c/strong\u003e This release contains an update to database indexing which should yield \u003cstrong\u003econsiderable additional performance\u003c/strong\u003e, especially on large table permissions lookups (thanks \u003ca href=\"https://github.com/Natgho\"\u003e\u003ccode\u003e@​Natgho\u003c/code\u003e\u003c/a\u003e for such rigorous performance testing!!!). Following the migration that introduces these indexes, databases should reindex automatically in the background (typically within 0-30s even for large tables): this is unlikely to be noticeable but users may experience a short lived performance hit during this period.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow ignore_conflicts on bulk create by \u003ca href=\"https://github.com/pgiki\"\u003e\u003ccode\u003e@​pgiki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/pull/814\"\u003edjango-guardian/django-guardian#814\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/4120d00c28c1b6d3bacb988f6db86bacf91ed0f1\"\u003e\u003ccode\u003e4120d00\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/921\"\u003e#921\u003c/a\u003e from django-guardian/644-using-inlines-in-django-admi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/c896b220bdf96783f1c25d730f12ebef95758c99\"\u003e\u003ccode\u003ec896b22\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/919\"\u003e#919\u003c/a\u003e from django-guardian/770-migration-rollback-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/3814e2383c69266350a3d885d445bdd79da8cb78\"\u003e\u003ccode\u003e3814e23\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 770-migration-rollback-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/94854899f4a030b42840837e08b42923a71c5b78\"\u003e\u003ccode\u003e9485489\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/920\"\u003e#920\u003c/a\u003e from django-guardian/666-permissionrequiredmixin-does...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/e01e2e1edeec60b2c79d561db56e0949ea3c4dad\"\u003e\u003ccode\u003ee01e2e1\u003c/code\u003e\u003c/a\u003e check only username field fixing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/e1ae3c5a7ab74a679ef1ccff2a480a88117df464\"\u003e\u003ccode\u003ee1ae3c5\u003c/code\u003e\u003c/a\u003e show warning instead of error for backward compatibility and giving time the ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/63c10f549dfe2b5ba67e9eec36095cf3e6a2bab8\"\u003e\u003ccode\u003e63c10f5\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 644-using-inlines-in-django-admin-with-guardian\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/b27ebbdcc7f9952d9d9aaaa879b5e202063ccaa8\"\u003e\u003ccode\u003eb27ebbd\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 666-permissionrequiredmixin-does-not-warn-against-us...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/d7ed4a3bccb730d3cdf16fdc404f25b94674c653\"\u003e\u003ccode\u003ed7ed4a3\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into 770-migration-rollback-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-guardian/django-guardian/commit/03fed6924e06fd13991d9e8ae1b4590addf5473e\"\u003e\u003ccode\u003e03fed69\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/django-guardian/django-guardian/issues/912\"\u003e#912\u003c/a\u003e from django-guardian/pr-907\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-guardian/django-guardian/compare/v2.4.0...3.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-extensions` from 3.2.3 to 4.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-extensions/django-extensions/releases\"\u003edjango-extensions's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd: show_permissions command (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1920\"\u003e#1920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, style per app (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1848\"\u003e#1848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: JSONField, bulk_update's (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1924\"\u003e#1924\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/ahmad88me\"\u003e\u003ccode\u003e@​ahmad88me\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1848\"\u003edjango-extensions/django-extensions#1848\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-extensions/django-extensions/compare/4.0...4.1\"\u003ehttps://github.com/django-extensions/django-extensions/compare/4.0...4.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprovement: Support for Python 3.12 and 3.13\u003c/li\u003e\n\u003cli\u003eImprovement: Support for Django 5.x\u003c/li\u003e\n\u003cli\u003eImprovement: Switch from setup.{cfg,py} to pyproject.toml\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add option to display field choices in graph_models (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1854\"\u003e#1854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add webp support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1857\"\u003e#1857\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Support for ordering edges on pydot/dot/graphviz (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1914\"\u003e#1914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: mail_debug, Update mail_debug command to use aiosmtpd (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1880\"\u003e#1880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: shell_plus, Improve error message for missing import (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1898\"\u003e#1898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: reset_db, Add reset_db support for django_tenants (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1855\"\u003e#1855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: docs, various improvements (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1852\"\u003e#1852\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1888\"\u003e#1888\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1882\"\u003e#1882\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1901\"\u003e#1901\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1912\"\u003e#1912\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1913\"\u003e#1913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: jobs, Handle non-package modules when looking for job definitions (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1887\"\u003e#1887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Add django-prometheus DB backends support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1800\"\u003e#1800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Call post_command when the command raises an unhandled exception (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1837\"\u003e#1837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: sqldiff, do not consider ('serial', 'integer') nor ('bigserial', 'bigint') as a field-type-differ (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1867\"\u003e#1867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: shell_plus, Fix start up order and add history (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1869\"\u003e#1869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove pipchecker and associated tests (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1906\"\u003e#1906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFollowing Django's release numbering style more closely (see \u003ca href=\"https://docs.djangoproject.com/en/5.2/internals/release-process/\"\u003ehttps://docs.djangoproject.com/en/5.2/internals/release-process/\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/dimitrismistriotis\"\u003e\u003ccode\u003e@​dimitrismistriotis\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1859\"\u003edjango-extensions/django-extensions#1859\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/titouanc\"\u003e\u003ccode\u003e@​titouanc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1854\"\u003edjango-extensions/django-extensions#1854\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dmwyatt\"\u003e\u003ccode\u003e@​dmwyatt\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1872\"\u003edjango-extensions/django-extensions#1872\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stianjensen\"\u003e\u003ccode\u003e@​stianjensen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1898\"\u003edjango-extensions/django-extensions#1898\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PapaZ810\"\u003e\u003ccode\u003e@​PapaZ810\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1888\"\u003edjango-extensions/django-extensions#1888\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kviktor\"\u003e\u003ccode\u003e@​kviktor\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1857\"\u003edjango-extensions/django-extensions#1857\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aripollak\"\u003e\u003ccode\u003e@​aripollak\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1913\"\u003edjango-extensions/django-extensions#1913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/flowgunso\"\u003e\u003ccode\u003e@​flowgunso\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1914\"\u003edjango-extensions/django-extensions#1914\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anitahammer\"\u003e\u003ccode\u003e@​anitahammer\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1869\"\u003edjango-extensions/django-extensions#1869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nicolaspanel\"\u003e\u003ccode\u003e@​nicolaspanel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1867\"\u003edjango-extensions/django-extensions#1867\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yujinyuz\"\u003e\u003ccode\u003e@​yujinyuz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1855\"\u003edjango-extensions/django-extensions#1855\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/soof-golan\"\u003e\u003ccode\u003e@​soof-golan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1852\"\u003edjango-extensions/django-extensions#1852\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ghickman\"\u003e\u003ccode\u003e@​ghickman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1887\"\u003edjango-extensions/django-extensions#1887\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jrobichaud\"\u003e\u003ccode\u003e@​jrobichaud\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/pull/1837\"\u003edjango-extensions/django-extensions#1837\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/django-extensions/django-extensions/compare/3.2.3...4.0\"\u003ehttps://github.com/django-extensions/django-extensions/compare/3.2.3...4.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.2.4b1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-extensions/django-extensions/blob/main/CHANGELOG.md\"\u003edjango-extensions's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.1\u003c/h2\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd: show_permissions command (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1920\"\u003e#1920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, style per app (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1848\"\u003e#1848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: JSONField, bulk_update's (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1924\"\u003e#1924\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.0\u003c/h2\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eImprovement: Support for Python 3.12 and 3.13\u003c/li\u003e\n\u003cli\u003eImprovement: Support for Django 5.x\u003c/li\u003e\n\u003cli\u003eImprovement: Switch from setup.{cfg,py} to pyproject.toml\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add option to display field choices in graph_models (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1854\"\u003e#1854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Add webp support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1857\"\u003e#1857\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: graph_models, Support for ordering edges on pydot/dot/graphviz (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1914\"\u003e#1914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: mail_debug, Update mail_debug command to use aiosmtpd (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1880\"\u003e#1880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: shell_plus, Improve error message for missing import (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1898\"\u003e#1898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: reset_db, Add reset_db support for django_tenants (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1855\"\u003e#1855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: docs, various improvements (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1852\"\u003e#1852\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1888\"\u003e#1888\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1882\"\u003e#1882\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1901\"\u003e#1901\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1912\"\u003e#1912\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1913\"\u003e#1913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: jobs, Handle non-package modules when looking for job definitions (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1887\"\u003e#1887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Add django-prometheus DB backends support (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1800\"\u003e#1800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprovement: Call post_command when the command raises an unhandled exception (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1837\"\u003e#1837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: sqldiff, do not consider ('serial', 'integer') nor ('bigserial', 'bigint') as a \u003ccode\u003efield-type-differ\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1867\"\u003e#1867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: shell_plus, Fix start up order and add history (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1869\"\u003e#1869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove pipchecker and associated tests (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1906\"\u003e#1906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFollowing Django's release numbering style more closely (see \u003ca href=\"https://docs.djangoproject.com/en/5.2/internals/release-process/\"\u003ehttps://docs.djangoproject.com/en/5.2/internals/release-process/\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/django-extensions/django-extensions/commit/ad015513e5d8e8ee6ad748fca5f32ccf3fb3d5c5\"\u003e\u003ccode\u003ead01551\u003c/code\u003e\u003c/a\u003e v4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/2c3e914f1264c0a029b3b47b7425d0f68ce637ed\"\u003e\u003ccode\u003e2c3e914\u003c/code\u003e\u003c/a\u003e update CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/fb5b2af1b6595ee126237c299acf242fcfee817e\"\u003e\u003ccode\u003efb5b2af\u003c/code\u003e\u003c/a\u003e ruff format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/7e978d27b031843640f9204ff495738c46233d7f\"\u003e\u003ccode\u003e7e978d2\u003c/code\u003e\u003c/a\u003e graph_models style per app (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1848\"\u003e#1848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/067064ea0c6dec7cba1583447fe5fe1c706d5351\"\u003e\u003ccode\u003e067064e\u003c/code\u003e\u003c/a\u003e avoid trying to serialize expressions when serializing default values\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/a886068502474e70a2d68ff4634a15cc3366088d\"\u003e\u003ccode\u003ea886068\u003c/code\u003e\u003c/a\u003e update CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/d824501cbc6d04a24a43ff5756b496f84093b225\"\u003e\u003ccode\u003ed824501\u003c/code\u003e\u003c/a\u003e Add show_permissions management command (\u003ca href=\"https://redirect.github.com/django-extensions/django-extensions/issues/1920\"\u003e#1920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/934f93f53bdf6c6271ae1ddaee71bc9bf3364a0e\"\u003e\u003ccode\u003e934f93f\u003c/code\u003e\u003c/a\u003e bumped version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/c4577df5b69ec1ebcbe6bc64d7a5c20362f3a8fa\"\u003e\u003ccode\u003ec4577df\u003c/code\u003e\u003c/a\u003e v4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-extensions/django-extensions/commit/7cdb43ab56a3b610b47680d8a2fe86b09d5913aa\"\u003e\u003ccode\u003e7cdb43a\u003c/code\u003e\u003c/a\u003e pyproject formatting\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-extensions/django-extensions/compare/3.2.3...4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-filter` from 23.3 to 25.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/carltongibson/django-filter/blob/main/CHANGES.rst\"\u003edjango-filter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 25.1 (2025-02-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved the in-built API schema generation methods, which have been\ndeprecated since v23.2.\u003c/p\u003e\n\u003cp\u003eYou should use \u003ccode\u003edrf-spectacular \u0026lt;https://drf-spectacular.readthedocs.io/en/latest/\u0026gt;\u003c/code\u003e_\nfor generating OpenAPI schemas with DRF.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped support for EOL Python 3.8.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded testing against Python 3.13.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded official support for Django 5.2.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 24.3 (2024-08-02)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdds official support for Django 5.1.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow using dictionaries for grouped choices on Django 5.0+.\u003c/p\u003e\n\u003cp\u003eThanks to Sævar Öfjörð Magnússon.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdds \u003ccode\u003eunknown_field_behavior\u003c/code\u003e FilterSet option to allowing warning and\nignore behaviours for unknown field types during FilterSet generation.\u003c/p\u003e\n\u003cp\u003eThanks to Loes.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 24.2 (2024-03-27)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a regression in v23.4 where callable choices were incorrectly evaluated\nat filter instantiation, on Django versions prior to 5.0.\u003c/p\u003e\n\u003cp\u003eThanks to Craig de Stigter for the report and reproduce.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 24.1 (2024-03-08)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated supported Python and Django versions, and resolved upcoming Django\ndeprecations.\u003c/p\u003e\n\u003cp\u003eRequired versions are now at least Python 3.8 and Django 4.2.\u003c/p\u003e\n\u003cp\u003eThanks to Michael Manganiello.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllowed passing a FilterSet class to the filterset_factory().\u003c/p\u003e\n\u003cp\u003eThanks to Birger Schacht.\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/carltongibson/django-filter/commit/27dd67284405ee832701509b3515baa50c6e074d\"\u003e\u003ccode\u003e27dd672\u003c/code\u003e\u003c/a\u003e Updated Change notes for 25.1 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/2ea38174b010f378a9b57d90c566c2bab7b37bbb\"\u003e\u003ccode\u003e2ea3817\u003c/code\u003e\u003c/a\u003e Added Trove classifier for Django 5.2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/4d2306c211c1d86f85f04fb311b8b05bfefb08a8\"\u003e\u003ccode\u003e4d2306c\u003c/code\u003e\u003c/a\u003e Replaced hardcoded pks in tests (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1703\"\u003e#1703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/fbf5a76a4d97480d78779397b90d34fa8f13d141\"\u003e\u003ccode\u003efbf5a76\u003c/code\u003e\u003c/a\u003e Update tox after Django 5.2 alpha release. (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1700\"\u003e#1700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/1e76d6859e109ae34d5e2a657c66146a9d744c80\"\u003e\u003ccode\u003e1e76d68\u003c/code\u003e\u003c/a\u003e Use QueryDict for data default. (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1691\"\u003e#1691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/e709e5d43a4ad8b8e8ea62520669b88300c9c686\"\u003e\u003ccode\u003ee709e5d\u003c/code\u003e\u003c/a\u003e Add testing against Python 3.13.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/ccde000dfe74362b62301b248681e9505133e821\"\u003e\u003ccode\u003eccde000\u003c/code\u003e\u003c/a\u003e Dropped support for EOL Python 3.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/2a644e176634ec0ce99d9446d980501e9763e194\"\u003e\u003ccode\u003e2a644e1\u003c/code\u003e\u003c/a\u003e Removed deprecated schema generation methods from DRF backend. (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1698\"\u003e#1698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/2494df96c6387a9fa411fcb00b696b15dfd9216b\"\u003e\u003ccode\u003e2494df9\u003c/code\u003e\u003c/a\u003e fix typo in filterset.txt (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1695\"\u003e#1695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/3656174bd90d20f3d916fd98b6476c270013b681\"\u003e\u003ccode\u003e3656174\u003c/code\u003e\u003c/a\u003e Translated using Weblate (Czech) (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1687\"\u003e#1687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/carltongibson/django-filter/compare/23.3...25.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gunicorn` from 21.2.0 to 23.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/benoitc/gunicorn/releases\"\u003egunicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e23.0.0\u003c/h2\u003e\n\u003cp\u003eGunicorn 23.0.0 has been released. This version improve HTTP 1.1. support and  which improve safety\u003c/p\u003e\n\u003cp\u003eYou're invited to upgrade asap your own installation.\u003c/p\u003e\n\u003ch1\u003e23.0.0 - 2024-08-10\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eminor docs fixes (:pr:\u003ccode\u003e3217\u003c/code\u003e, :pr:\u003ccode\u003e3089\u003c/code\u003e, :pr:\u003ccode\u003e3167\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eworker_class parameter accepts a class (:pr:\u003ccode\u003e3079\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003efix deadlock if request terminated during chunked parsing (:pr:\u003ccode\u003e2688\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003epermit receiving Transfer-Encodings: compress, deflate, gzip (:pr:\u003ccode\u003e3261\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003epermit Transfer-Encoding headers specifying multiple encodings. note: no parameters, still (:pr:\u003ccode\u003e3261\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003esdist generation now explicitly excludes sphinx build folder (:pr:\u003ccode\u003e3257\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003edecode bytes-typed status (as can be passed by gevent) as utf-8 instead of raising \u003ccode\u003eTypeError\u003c/code\u003e (:pr:\u003ccode\u003e2336\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eraise correct Exception when encounting invalid chunked requests (:pr:\u003ccode\u003e3258\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ethe SCRIPT_NAME and PATH_INFO headers, when received from allowed forwarders, are no longer restricted for containing an underscore (:pr:\u003ccode\u003e3192\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003einclude IPv6 loopback address \u003ccode\u003e[::1]\u003c/code\u003e in default for :ref:\u003ccode\u003eforwarded-allow-ips\u003c/code\u003e and :ref:\u003ccode\u003eproxy-allow-ips\u003c/code\u003e (:pr:\u003ccode\u003e3192\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e** NOTE **\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SCRIPT_NAME change mitigates a regression that appeared first in the 22.0.0 release\u003c/li\u003e\n\u003cli\u003eReview your :ref:\u003ccode\u003eforwarded-allow-ips\u003c/code\u003e setting if you are still not seeing the SCRIPT_NAME transmitted\u003c/li\u003e\n\u003cli\u003eReview your :ref:\u003ccode\u003eforwarder-headers\u003c/code\u003e setting if you are missing headers after upgrading from a version prior to 22.0.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e** Breaking changes **\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003erefuse requests where the uri field is empty (:pr:\u003ccode\u003e3255\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003erefuse requests with invalid CR/LR/NUL in heade field values (:pr:\u003ccode\u003e3253\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eremove temporary \u003ccode\u003e--tolerate-dangerous-framing\u003c/code\u003e switch from 22.0 (:pr:\u003ccode\u003e3260\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eIf any of the breaking changes affect you, be aware that now refused requests can post a security problem, especially so in setups involving request pipe-lining and/or proxies.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFix CVE-2024-1135\u003c/p\u003e\n\u003ch2\u003eGunicorn 22.0 has been released\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eGunicorn 22.0.0 has been released.\u003c/strong\u003e This version fix the numerous security vulnerabilities. You're invited to upgrade asap your own installation.\u003c/p\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e22.0.0 - 2024-04-17\n===================\n\u003cul\u003e\n\u003cli\u003euse \u003ccode\u003eutime\u003c/code\u003e to notify workers liveness\u003c/li\u003e\n\u003cli\u003emigrate setup to pyproject.toml\u003c/li\u003e\n\u003cli\u003efix numerous security vulnerabilities in HTTP parser (closing some request smuggling vectors)\u003c/li\u003e\n\u003cli\u003eparsing additional requests is no longer attempted past unsupported request framing\u003c/li\u003e\n\u003cli\u003eon HTTP versions \u0026lt; 1.1 support for chunked transfer is refused (only used in exploits)\u003c/li\u003e\n\u003cli\u003erequests conflicting configured or passed SCRIPT_NAME now produce a verbose error\u003c/li\u003e\n\u003cli\u003eTrailer fields are no longer inspected for headers indicating secure scheme\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/411986d6191114dd1d1bbb9c72c948dbf0ef0425\"\u003e\u003ccode\u003e411986d\u003c/code\u003e\u003c/a\u003e fix doc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/334392e7795f2017e83f7054d372422512d6f4b6\"\u003e\u003ccode\u003e334392e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/2559\"\u003e#2559\u003c/a\u003e from laggardkernel/bugfix/reexec-env\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/e75c3533e32f91a9dceba9e8e1341fea5540ba81\"\u003e\u003ccode\u003ee75c353\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3189\"\u003e#3189\u003c/a\u003e from pajod/patch-py36\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/9357b28dd867950e33ca3864207cb35a1eb8ba6f\"\u003e\u003ccode\u003e9357b28\u003c/code\u003e\u003c/a\u003e keep document user in access_log_format setting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/79fdef0822cbfe7e16b659b07230af9be098d5fc\"\u003e\u003ccode\u003e79fdef0\u003c/code\u003e\u003c/a\u003e bump to 23.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/3acd9fbfd1159ca3cd80a8052ada89a0bf27f806\"\u003e\u003ccode\u003e3acd9fb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/2620\"\u003e#2620\u003c/a\u003e from talkerbox/improve-access-log-format-docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/3f56d76548e4ade034bf5e174737902970285d1f\"\u003e\u003ccode\u003e3f56d76\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3192\"\u003e#3192\u003c/a\u003e from pajod/patch-allowed-script-name\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/256d474a7910bd605f2cc8c082b79c1ae55215a9\"\u003e\u003ccode\u003e256d474\u003c/code\u003e\u003c/a\u003e docs: revert duped directive\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/ffa48b581dcaa75f17fd2df263515e4266feeef6\"\u003e\u003ccode\u003effa48b5\u003c/code\u003e\u003c/a\u003e test: default change was intentional\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/52538ca9070b5e7ead5d0fa731e82a622dc6f3ee\"\u003e\u003ccode\u003e52538ca\u003c/code\u003e\u003c/a\u003e docs: recommend SCRIPT_NAME=/subfolder\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/benoitc/gunicorn/compare/21.2.0...23.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-ipware` from 2.0.0 to 3.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/un33k/python-ipware/blob/main/CHANGELOG.md\"\u003epython-ipware's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.0.0\u003c/h2\u003e\n\u003cp\u003eFix:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRelease major version, as there is a possibility of api change causing minimal backward incompatibly\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.5\u003c/h2\u003e\n\u003cp\u003eEnhance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAI assisted clean up\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.4\u003c/h2\u003e\n\u003cp\u003eEnhance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eproxy_count=0\u003c/code\u003e as an option (\u003ca href=\"https://github.com/FraKraBa\"\u003e\u003ccode\u003e@​FraKraBa\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.3\u003c/h2\u003e\n\u003cp\u003eEnhance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eHTTP_CF_CONNECTING_IP\u003c/code\u003e to list of known ip headers (Adam M.)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.2\u003c/h2\u003e\n\u003cp\u003eEnhance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded logger name\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.1\u003c/h2\u003e\n\u003cp\u003eIssue:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003eHTTP_VIA\u003c/code\u003e header support (unreliable IP information) (\u003ca href=\"https://github.com/yourcelf\"\u003e\u003ccode\u003e@​yourcelf\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eEnhance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eInclude support for python 3.12\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/cab810ced72457abcc77ffd234be9cb0a75f7ec3\"\u003e\u003ccode\u003ecab810c\u003c/code\u003e\u003c/a\u003e version 3 major (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/21\"\u003e#21\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/5d01f1e6662f3de861d44006247fd5f0a3ae4a0b\"\u003e\u003ccode\u003e5d01f1e\u003c/code\u003e\u003c/a\u003e Feat/enhance (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/20\"\u003e#20\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/bd56bcd1d4ed2d2bbd690059e5a231d6b51bcd31\"\u003e\u003ccode\u003ebd56bcd\u003c/code\u003e\u003c/a\u003e Allow for proxy_count of exact 0 (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/19\"\u003e#19\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/ddfde3c6d4dee387a59287a2c0afc933f9773791\"\u003e\u003ccode\u003eddfde3c\u003c/code\u003e\u003c/a\u003e Update Readme (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/17\"\u003e#17\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/aab321baf9958ae128460c2279364926f6612dca\"\u003e\u003ccode\u003eaab321b\u003c/code\u003e\u003c/a\u003e Add HTTP_CF_CONNECTING_IP to ip Header list (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/16\"\u003e#16\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/e908cc321dc61e203033768f8d1072efc71f4556\"\u003e\u003ccode\u003ee908cc3\u003c/code\u003e\u003c/a\u003e Added logger name (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/15\"\u003e#15\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/un33k/python-ipware/commit/ad1f01783279ecd8dfff91b3db8558f92b5bde0b\"\u003e\u003ccode\u003ead1f017\u003c/code\u003e\u003c/a\u003e Remove HTTP_VIA support, support for 3.12 (\u003ca href=\"https://redirect.github.com/un33k/python-ipware/issues/14\"\u003e#14\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/un33k/python-ipware/compare/v2.0.0...v3.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `redis` from 4.6.0 to 5.2.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/redis-py/releases\"\u003eredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.2.1\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed unsecured tempfile.mktemp() command usage (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3446\"\u003e#3446\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed bug with SLOWLOG GET response parsing on Redis Software (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3441\"\u003e#3441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed issue with invoking _close() on closed event loop (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3438\"\u003e#3438\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMigrate test infrastructure to new custom docker images (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3415\"\u003e#3415\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed flacky test with HEXPIREAT command (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3437\"\u003e#3437\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/IlianIliev\"\u003e\u003ccode\u003e@​IlianIliev\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/uglide\"\u003e\u003ccode\u003e@​uglide\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/vladvildanov\"\u003e\u003ccode\u003e@​vladvildanov\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/teodorfn\"\u003e\u003ccode\u003e@​teodorfn\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.2.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🚀 New Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExtend AggregateRequest with scorer argument (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3409\"\u003e#3409\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePin pytest-profiling version due to the bug (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3417\"\u003e#3417\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/uglide\"\u003e\u003ccode\u003e@​uglide\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/rbs333\"\u003e\u003ccode\u003e@​rbs333\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/vladvildanov\"\u003e\u003ccode\u003e@​vladvildanov\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/dwdougherty\"\u003e\u003ccode\u003e@​dwdougherty\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.1.1\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e5.1.1\u003c/h2\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed return type for Redis Set commands to be Set instead of List (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3399\"\u003e#3399\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed bug with partial Hiredis availability (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3400\"\u003e#3400\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed bug with async pipeline and cluster fails with some commands (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3402\"\u003e#3402\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.1.0\u003c/h2\u003e\n\u003ch3\u003e🚀 New Features\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/redis/redis-py/commit/a74fa6a3dc1996ff256d5b1849c3018a7ac05c99\"\u003e\u003ccode\u003ea74fa6a\u003c/code\u003e\u003c/a\u003e Release 5.2.1 (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3451\"\u003e#3451\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/166ae7bfd79a88cdfbd7959b2c28cd79aa0eaf0c\"\u003e\u003ccode\u003e166ae7b\u003c/code\u003e\u003c/a\u003e Updated package version (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3418\"\u003e#3418\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/00f5be420b397adfa1b9aa9c2761f7d8a27c0a9a\"\u003e\u003ccode\u003e00f5be4\u003c/code\u003e\u003c/a\u003e adds scorer to AggregateRequest (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3409\"\u003e#3409\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/4c4d4afd2b31b5c36a2d5e22419bcbf584265a17\"\u003e\u003ccode\u003e4c4d4af\u003c/code\u003e\u003c/a\u003e Pin pytest-profiling (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3417\"\u003e#3417\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/d6ddb0d66bc4bd28c99d9cf148c9085117cc8ce9\"\u003e\u003ccode\u003ed6ddb0d\u003c/code\u003e\u003c/a\u003e DOC-4199: add TCEs to the combined query page (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3380\"\u003e#3380\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/17db62e3c9ea796f5705d2857f49e52799057af7\"\u003e\u003ccode\u003e17db62e\u003c/code\u003e\u003c/a\u003e DOC-4200: add TCEs to the aggregation query page (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3381\"\u003e#3381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/700045c7a7db6d986df6610d61239375a2211053\"\u003e\u003ccode\u003e700045c\u003c/code\u003e\u003c/a\u003e Backport 5.1 changes into master (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3406\"\u003e#3406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/2e46613dcdf9db7f948f3258fee1c9199da8cbfa\"\u003e\u003ccode\u003e2e46613\u003c/code\u003e\u003c/a\u003e Client side caching refactoring (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3350\"\u003e#3350\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/7d73d742d6df4b3d6f6a1f0ec73e72d4a02add74\"\u003e\u003ccode\u003e7d73d74\u003c/code\u003e\u003c/a\u003e DOC-4197: add TCEs to the geospatial query page (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3378\"\u003e#3378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/c7483b3d63a2001508a2ff2c9952ad50d9252732\"\u003e\u003ccode\u003ec7483b3\u003c/code\u003e\u003c/a\u003e DOC-4196: add TCEs to the full-text query page (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3377\"\u003e#3377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/redis/redis-py/compare/v4.6.0...v5.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `watchdog` from 3.0.0 to 6.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/gorakhargosh/watchdog/releases\"\u003ewatchdog's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[inotify] Use of \u003ccode\u003eselect.poll()\u003c/code\u003e instead of deprecated \u003ccode\u003eselect.select()\u003c/code\u003e, if available. (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1078\"\u003e#1078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_class()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_instancemethod()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_module()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eis_class_private_name()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eis_classmethod()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eis_method(met()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003emethod_name()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003ename()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Removed the \u003ccode\u003e--trace\u003c/code\u003e CLI argument from the \u003ccode\u003ewatchmedo log\u003c/code\u003e command, useless since events are logged by default at the \u003ccode\u003eLoggerTrick\u003c/code\u003e class level.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePin test dependecies.\u003c/li\u003e\n\u003cli\u003e[docs] Add typing info to quick start. (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1082\"\u003e#1082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[inotify] Fix reading inotify file descriptor after closing it. (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1081\"\u003e#1081\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[utils] The \u003ccode\u003estop_signal\u003c/code\u003e keyword-argument type of the \u003ccode\u003eAutoRestartTrick\u003c/code\u003e class can now be either a \u003ccode\u003esignal.Signals\u003c/code\u003e or an \u003ccode\u003eint\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e[utils] Added the \u003ccode\u003e__repr__()\u003c/code\u003e method to the \u003ccode\u003eTrick\u003c/code\u003e class.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Fixed Mypy issues.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Added the \u003ccode\u003e__repr__()\u003c/code\u003e method to the \u003ccode\u003eHelpFormatter\u003c/code\u003e class.\u003c/li\u003e\n\u003cli\u003e[windows] Fixed Mypy issues.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e💟 Thanks to our beloved contributors: \u003ca href=\"https://github.com/g-pichler\"\u003e\u003ccode\u003e@​g-pichler\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ethan-vanderheijden\"\u003e\u003ccode\u003e@​ethan-vanderheijden\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/nhairs\"\u003e\u003ccode\u003e@​nhairs\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[inotify] Improve cleaning up \u003ccode\u003eInotify\u003c/code\u003e threads, and add \u003ccode\u003eeventlet\u003c/code\u003e test cases (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1070\"\u003e#1070\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e💟 Thanks to our beloved contributors: \u003ca href=\"https://github.com/ethan-vanderheijden\"\u003e\u003ccode\u003e@​ethan-vanderheijden\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEnable OS specific Mypy checks (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1064\"\u003e#1064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[watchmedo] Fix \u003ccode\u003etricks\u003c/code\u003e argument type of \u003ccode\u003eschedule_tricks()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1063\"\u003e#1063\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e💟 Thanks to our beloved contributors: \u003ca href=\"https://github.com/gnought\"\u003e\u003ccode\u003e@​gnought\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[kqueue] Fix \u003ccode\u003eTypeError: kqueue.control() only accepts positional parameters\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1062\"\u003e#1062\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e💟 Thanks to our beloved contributors: \u003ca href=\"https://github.com/apoirier\"\u003e\u003ccode\u003e@​apoirier\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.0.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8 (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[core] Enforced usage of proper keyword-arguments (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1057\"\u003e#1057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[core] Renamed the \u003ccode\u003eBaseObserverSubclassCallable\u003c/code\u003e class to \u003ccode\u003eObserverType\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[inotify] Renamed the \u003ccode\u003einotify_event_struct\u003c/code\u003e class to \u003ccode\u003eInotifyEventStruct\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1055\"\u003e#1055\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/gorakhargosh/watchdog/blob/master/changelog.rst\"\u003ewatchdog's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e6.0.0\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n2024-11-01 • `full history \u0026lt;https://github.com/gorakhargosh/watchdog/compare/v5.0.3...v6.0.0\u0026gt;`__\n\u003cul\u003e\n\u003cli\u003ePin test dependencies.\u003c/li\u003e\n\u003cli\u003e[docs] Add typing info to quick start. (\u003ccode\u003e[#1082](https://github.com/gorakhargosh/watchdog/issues/1082) \u0026amp;lt;https://github.com/gorakhargosh/watchdog/pull/1082\u0026amp;gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003e[inotify] Use of \u003ccode\u003eselect.poll()\u003c/code\u003e instead of deprecated \u003ccode\u003eselect.select()\u003c/code\u003e, if available. (\u003ccode\u003e[#1078](https://github.com/gorakhargosh/watchdog/issues/1078) \u0026amp;lt;https://github.com/gorakhargosh/watchdog/pull/1078\u0026amp;gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003e[inotify] Fix reading inotify file descriptor after closing it. (\u003ccode\u003e[#1081](https://github.com/gorakhargosh/watchdog/issues/1081) \u0026amp;lt;https://github.com/gorakhargosh/watchdog/pull/1081\u0026amp;gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003e[utils] The \u003ccode\u003estop_signal\u003c/code\u003e keyword-argument type of the \u003ccode\u003eAutoRestartTrick\u003c/code\u003e class can now be either a \u003ccode\u003esignal.Signals\u003c/code\u003e or an \u003ccode\u003eint\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e[utils] Added the \u003ccode\u003e__repr__()\u003c/code\u003e method to the \u003ccode\u003eTrick\u003c/code\u003e class.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_class()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_instancemethod()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eecho_module()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eis_class_private_name()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eis_classmethod()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003eic_method(met()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003emethod_name()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[utils] Removed the unused \u003ccode\u003ename()\u003c/code\u003e function from the \u003ccode\u003eecho\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Fixed Mypy issues.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Added the \u003ccode\u003e__repr__()\u003c/code\u003e method to the \u003ccode\u003eHelpFormatter\u003c/code\u003e class.\u003c/li\u003e\n\u003cli\u003e[watchmedo] Removed the \u003ccode\u003e--trace\u003c/code\u003e CLI argument from the \u003ccode\u003ewatchmedo log\u003c/code\u003e command, useless since events are logged by default at the \u003ccode\u003eLoggerTrick\u003c/code\u003e class level.\u003c/li\u003e\n\u003cli\u003e[windows] Fixed Mypy issues.\u003c/li\u003e\n\u003cli\u003eThanks to our beloved contributors: \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/g-pichler\"\u003e\u003ccode\u003e@​g-pichler\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ethan-vanderheijden\"\u003e\u003ccode\u003e@​ethan-vanderheijden\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/nhairs\"\u003e\u003ccode\u003e@​nhairs\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e5.0.3\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e2024-09-27 • \u003ccode\u003efull history \u0026lt;https://github.com/gorakhargosh/watchdog/compare/v5.0.2...v5.0.3\u0026gt;\u003c/code\u003e__\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[inotify] Improve cleaning up \u003ccode\u003eInotify\u003c/code\u003e threads, and add \u003ccode\u003eeventlet\u003c/code\u003e test cases (\u003ccode\u003e[#1070](https://github.com/gorakhargosh/watchdog/issues/1070) \u0026lt;https://github.com/gorakhargosh/watchdog/pull/1070\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eThanks to our beloved contributors: \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ethan-vanderheijden\"\u003e\u003ccode\u003e@​ethan-vanderheijden\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e5.0.2\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n2024-09-03 • `full history \u0026lt;https://github.com/gorakhargosh/watchdog/compare/v5.0.1...v5.0.2\u0026gt;`__\n\u003cul\u003e\n\u003cli\u003eEnable OS specific Mypy checks (\u003ccode\u003e[#1064](https://github.com/gorakhargosh/watchdog/issues/1064) \u0026amp;lt;https://github.com/gorakhargosh/watchdog/pull/1064\u0026amp;gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003e[watchmedo] Fix \u003ccode\u003etricks\u003c/code\u003e argument type of \u003ccode\u003eschedule_tricks()\u003c/code\u003e (\u003ccode\u003e[#1063](https://github.com/gorakhargosh/watchdog/issues/1063) \u0026amp;lt;https://github.com/gorakhargosh/watchdog/pull/1063\u0026amp;gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eThanks to our beloved contributors: \u003ca href=\"https://github.com/gnought\"\u003e\u003ccode\u003e@​gnought\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e5.0.1\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e2024-09-02 • \u003ccode\u003efull history \u0026lt;https://github.com/gorakhargosh/watchdog/compare/v5.0.0...v5.0.1\u0026gt;\u003c/code\u003e__\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[kqueue] Fix \u003ccode\u003eTypeError: kqueue.control() only accepts positional parameters\u003c/code\u003e  (\u003ccode\u003e[#1062](https://github.com/gorakhargosh/watchdog/issues/1062) \u0026lt;https://github.com/gorakhargosh/watchdog/pull/1062\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eThanks to our beloved contributors: \u003ca href=\"https://github.com/apoirier\"\u003e\u003ccode\u003e@​apoirier\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\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/gorakhargosh/watchdog/commit/76c091dc8841de1d1a1cd6511bb509fe4f058de6\"\u003e\u003ccode\u003e76c091d\u003c/code\u003e\u003c/a\u003e Version 6.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/58386d88747259b8b3da5082e30f1c6e0aa3b31a\"\u003e\u003ccode\u003e58386d8\u003c/code\u003e\u003c/a\u003e Fixes, and clean-up (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1084\"\u003e#1084\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/db698a52bbb1eb8cc34e889a8afdac6f17a99e57\"\u003e\u003ccode\u003edb698a5\u003c/code\u003e\u003c/a\u003e fix: reading inotify file descriptor after closing it. (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1081\"\u003e#1081\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/73d561265b109f30cf76a280cdcc74aa9e6df391\"\u003e\u003ccode\u003e73d5612\u003c/code\u003e\u003c/a\u003e [docs] Add typing info to quick start (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1082\"\u003e#1082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/d774fec477a8f57d24b588164ebdd39b2d507bcd\"\u003e\u003ccode\u003ed774fec\u003c/code\u003e\u003c/a\u003e docs: Update README Badges (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1083\"\u003e#1083\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/6b74737501c85df9b9c2585faef4797a5250171b\"\u003e\u003ccode\u003e6b74737\u003c/code\u003e\u003c/a\u003e docs: funding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/3d1b888bccdd27a28f9f12a4e89288afe1ee493a\"\u003e\u003ccode\u003e3d1b888\u003c/code\u003e\u003c/a\u003e [inotify] Use of \u003ccode\u003eselect.poll()\u003c/code\u003e instead of deprecated \u003ccode\u003eselect.select()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1078\"\u003e#1078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/6a4f1cf846e03c8701fcc53b9e910077b5824e59\"\u003e\u003ccode\u003e6a4f1cf\u003c/code\u003e\u003c/a\u003e Bump the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/ad6df50908fca071ac8ad6558453bb28b522f794\"\u003e\u003ccode\u003ead6df50\u003c/code\u003e\u003c/a\u003e Version 5.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gorakhargosh/watchdog/commit/59650f8fe72ac498374434a10a3dd49f3c3d1429\"\u003e\u003ccode\u003e59650f8\u003c/code\u003e\u003c/a\u003e fix: polish \u003ca href=\"https://redirect.github.com/gorakhargosh/watchdog/issues/1070\"\u003e#1070\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/gorakhargosh/watchdog/compare/v3.0.0...v6.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ocrmypdf` from 14.4.0 to 15.4.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/blob/main/docs/release_notes.md\"\u003eocrmypdf's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev15.4.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed documentation for installing Ghostscript on Windows. {issue}\u003ccode\u003e1198\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdded warning message about security issue in older versions of Ghostscript.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed deprecation warning in pikepdf older than 8.7.1; pikepdf \u0026gt;= 8.7.1 is\nnow required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWe now raise an exception on a certain class of PDFs that likely need an\nexplicit color conversion strategy selected to display correctly\nfor PDF/A conversion.\u003c/li\u003e\n\u003cli\u003eFixed an error that occurred while trying to write a log message after the\ndebug log handler was removed.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed misc/watcher.py regressions: accept \u003ccode\u003e--ocr-json-settings\u003c/code\u003e as either\nfilename or JSON string, as previously; and argument count mismatch.\n{issue}\u003ccode\u003e1183,1185\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eWe no longer attempt to set /ProcSet in the PDF output, since this is an\nobsolete PDF feature.\u003c/li\u003e\n\u003cli\u003eDocumentation improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev15.4.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded new experimental APIs to support offline editing of the final text.\nSpecifically, one can now generate hOCR files with OCRmyPDF, edit them with\nsome other tool, and then finalize the PDF. They are experimental and\nsubject to change, including details of how the working folder is used.\nThere is no command line interface.\u003c/li\u003e\n\u003cli\u003eCode reorganization: executors, progress bars, initialization and setup.\u003c/li\u003e\n\u003cli\u003eFixed test coverage in cases where the coverage tool did not properly trace\ninto threads or subprocesses. This code was still being tested but appeared\nas not covered.\u003c/li\u003e\n\u003cli\u003eIn the test suite, reduced use of subprocesses and other techniques that\ninterfere with coverage measurement.\u003c/li\u003e\n\u003cli\u003eImproved error check for when we appear to be running inside a snap container\nand files are not available.\u003c/li\u003e\n\u003cli\u003ePlugin specification now properly defines progress bars as a protocol rather\nthan defining them as \u0026quot;tqdm-like\u0026quot;.\u003c/li\u003e\n\u003cli\u003eWe now default to using \u0026quot;forkserver\u0026quot; process creation on POSIX platforms\nrather than fork, since this is method is more robust and avoids some\nissues when threads are present.\u003c/li\u003e\n\u003cli\u003eFixed an instance where the user's request to \u003ccode\u003e--no-use-threads\u003c/code\u003e was ignored.\u003c/li\u003e\n\u003cli\u003eIf a PDF does not have language metadata on its top level object, we add\nthe OCR language.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/c90d5cd84b0e27906310c28f0d78c3ded9106d65\"\u003e\u003ccode\u003ec90d5cd\u003c/code\u003e\u003c/a\u003e Fix Ghostscript installation instructions and add warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/9898904be70bf957154cc66cb5d6f57bac7c26b4\"\u003e\u003ccode\u003e9898904\u003c/code\u003e\u003c/a\u003e Fix pikepdf PdfMatrix deprecation warning; v15.4.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/27d52298420e785300e418bef4e4219ef97720e1\"\u003e\u003ccode\u003e27d5229\u003c/code\u003e\u003c/a\u003e Make logger names unique\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/4a9a575ef0f2cd7459538a43e802c8d8b3846168\"\u003e\u003ccode\u003e4a9a575\u003c/code\u003e\u003c/a\u003e ghostscript: better comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/52fd9a630d57ac7af91db423b17e6b0297fc1c66\"\u003e\u003ccode\u003e52fd9a6\u003c/code\u003e\u003c/a\u003e v15.4.2 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/a596ccf84469c81c6d19ab0eb59f53a5df0bc3c7\"\u003e\u003ccode\u003ea596ccf\u003c/code\u003e\u003c/a\u003e Raise exception if resulting PDF might appear blank in a known in some PDF vi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/e7fa97731f507c1d91e4289b9d5f3344533d7c4c\"\u003e\u003ccode\u003ee7fa977\u003c/code\u003e\u003c/a\u003e ghostscript duplicate filter: filter within a window of previous messages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/290aa2810868fb506a0ded2db8dabb580d5a2459\"\u003e\u003ccode\u003e290aa28\u003c/code\u003e\u003c/a\u003e Fix error on attempt to write to debug log after removing debug log handler\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/a95640ed9ec0a5caa360bd64b9ad6cc9f916fa61\"\u003e\u003ccode\u003ea95640e\u003c/code\u003e\u003c/a\u003e v15.4.1 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/commit/f69267bb675c3261121b70451f6e673f433bc7ad\"\u003e\u003ccode\u003ef69267b\u003c/code\u003e\u003c/a\u003e watcher: restore ability to read json from file or command line string\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ocrmypdf/OCRmyPDF/compare/v14.4.0...v15.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-multiselectfield` from 0.1.12 to 1.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/goinnn/django-multiselectfield/releases\"\u003edjango-multiselectfield's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBadge image worked on GitHub but was broken on PyPI — fixed it.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.0.0\u003c/h2\u003e\n\u003cp\u003eThis release introduces multiple changes that are incompatible with previous versions.\u003c/p\u003e\n\u003cp\u003eThe major version number has been incremented following \u003ccode\u003eSemantic Versioning (SemVer) \u0026lt;https://semver.org/\u0026gt;\u003c/code\u003e_, as several components of the package have changed in ways that may require updates in client code.\u003c/p\u003e\n\u003cp\u003eThe internal codebase has been significantly cleaned up and reorganized, making it more maintainable and consistent.\u003c/p\u003e\n\u003cp\u003eThis version contains \u003cstrong\u003e40% fewer lines of code\u003c/strong\u003e compared to the previous release.\u003c/p\u003e\n\u003cp\u003eLess code means fewer bugs, easier maintenance, and better long-term sustainability.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFList (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\"\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2\u003c/a\u003e):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/50d3f785883e0a314f2dc89950e3fe1e88a7ede6\"\u003e50d3f785883e0a314f2dc89950e3fe1e88a7ede6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIt was created to support MultiSelectFields in admin.list_display, but it never actually worked. If you add a multiselect field to list_display, Django does not call to \u003cstrong\u003estr\u003c/strong\u003e method of MSGList (renamed to MSFList)\u003c/li\u003e\n\u003cli\u003eIt was created for integer choices too and it is a misconception. This is explained in the README file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFFlatchoices (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\"\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2\u003c/a\u003e):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/5638247c1d70670d4f81adf35143ef17a7d7575e\"\u003e5638247c1d70670d4f81adf35143ef17a7d7575e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIn list_display, labels for the choices are now shown (comma-separated) instead of the values of the choices (comma-separated).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn to_python method, value is a list or a string. (\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/c4579138dda2833cbce26afbf57da5353aa45690\"\u003ec4579138dda2833cbce26afbf57da5353aa45690\u003c/a\u003e)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove set case and dict case\u003c/li\u003e\n\u003cli\u003eIf this breaks something, please create a test to help understand the use case.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoving integer choices:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIt was a mistake. MultiSelectField inherits of CharField, not IntegerField.\u003c/li\u003e\n\u003cli\u003eIt is impossible knows if original choice is (1, 'Item title 2.1') or ('1', 'Item title 2.1')\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: Form instance generated twice since Django  (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/168\"\u003e#168\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix CSS admin:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e(\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/173\"\u003e#173\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e(\u003ca href=\"https://github.com/goinnn/django-multiselectfield/commit/7711f4aa755c81d00f07ce8a6ff0fd9240061f9c\"\u003e7711f4aa755c81d00f07ce8a6ff0fd9240061f9c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix Properly Display Categorized Choices in get_FOO_display (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/169\"\u003e#169\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSortMultiSelectField: (\u003ca href=\"https://redirect.github.com/goinnn/django-multiselectfield/pull/172\"\u003e#172\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/goinnn/django-multiselectfield/blob/master/CHANGES.rst\"\u003edjango-multiselectfield's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.0.1 (2025-06-12)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBadge image worked on GitHub but was broken on PyPI — fixed it.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.0.0 (2025-06-12)\u003c/h2\u003e\n\u003cp\u003eThis release introduces multiple changes that are incompatible with previous versions.\u003c/p\u003e\n\u003cp\u003eThe major version number has been incremented following \u003ccode\u003eSemantic Versioning (SemVer) \u0026lt;https://semver.org/\u0026gt;\u003c/code\u003e_, as several components of the package have changed in ways that may require updates in client code.\u003c/p\u003e\n\u003cp\u003eThe internal codebase has been significantly cleaned up and reorganized, making it more maintainable and consistent.\u003c/p\u003e\n\u003cp\u003eThis version contains \u003cstrong\u003e40% fewer lines of code\u003c/strong\u003e compared to the previous release.\u003c/p\u003e\n\u003cp\u003eLess code means fewer bugs, easier maintenance, and better long-term sustainability.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFList (\u003ccode\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\u0026gt;\u003c/code\u003e_):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ccode\u003e50d3f785883e0a314f2dc89950e3fe1e88a7ede6 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/50d3f785883e0a314f2dc89950e3fe1e88a7ede6\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eIt was created to support MultiSelectFields in admin.list_display, but it never actually worked. If you add a multiselect field to list_display, Django does not call to \u003cstrong\u003estr\u003c/strong\u003e method of MSGList (renamed to MSFList)\u003c/li\u003e\n\u003cli\u003eIt was created for integer choices too and it is a misconception. This is explained in the README file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove MSFFlatchoices (\u003ccode\u003e01dcad230dc368b88a39bfc36f90ddd145f381a2 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/01dcad230dc368b88a39bfc36f90ddd145f381a2\u0026gt;\u003c/code\u003e_):\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved: (\u003ccode\u003e5638247c1d70670d4f81adf35143ef17a7d7575e \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/5638247c1d70670d4f81adf35143ef17a7d7575e\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eIn list_display, labels for the choices are now shown (comma-separated) instead of the values of the choices (comma-separated).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn to_python method, value is a list or a string. (\u003ccode\u003ec4579138dda2833cbce26afbf57da5353aa45690 \u0026lt;https://github.com/goinnn/django-multiselectfield/commit/c4579138dda2833cbce26afbf57da5353aa45690\u0026gt;\u003c/code\u003e_)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove set case and dict cas...\n\n_Description has been truncated_","html_url":"https://github.com/dsp-testing/paperless-ngx/pull/170","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/dsp-testing%2Fpaperless-ngx/issues/170","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/170/packages"}},{"old_version":"8.4.1","new_version":"8.4.2","update_type":"patch","path":null,"pr_created_at":"2025-09-08T19:23:40.000Z","version_change":"8.4.1 → 8.4.2","issue":{"uuid":"3395404102","node_id":"PR_kwDOPVvo-c6ncq2P","number":14,"state":"open","title":"⬆ Bump the python-packages group across 1 directory with 6 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":"NONE","state_reason":null,"created_at":"2025-09-08T19:23:40.000Z","updated_at":"2025-09-22T19:19:25.036Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"⬆ Bump","group_name":"python-packages","update_count":6,"packages":[{"name":"feature-engine","old_version":"1.8.3","new_version":"1.9.3","repository_url":"https://github.com/feature-engine/feature_engine"},{"name":"matplotlib","old_version":"3.10.5","new_version":"3.10.6","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"pandas","old_version":"2.3.1","new_version":"2.3.2","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"pre-commit","old_version":"4.2.0","new_version":"4.3.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pytest","old_version":"8.4.1","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-cov","old_version":"6.2.1","new_version":"6.3.0","repository_url":"https://github.com/pytest-dev/pytest-cov"}],"path":null,"ecosystem":"conda"},"body":"Bumps the python-packages group with 6 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [feature-engine](https://github.com/feature-engine/feature_engine) | `1.8.3` | `1.9.3` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.10.5` | `3.10.6` |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.3.1` | `2.3.2` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.2.0` | `4.3.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.1` | `8.4.2` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `6.2.1` | `6.3.0` |\n\n\nUpdates `feature-engine` from 1.8.3 to 1.9.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/feature-engine/feature_engine/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `matplotlib` from 3.10.5 to 3.10.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/matplotlib/matplotlib/releases\"\u003ematplotlib's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eREL: v3.10.6\u003c/h2\u003e\n\u003cp\u003eThis is a bugfix release in the 3.10.x series.\u003c/p\u003e\n\u003cp\u003eHighlights from this release include:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e- Fix regression of hi-dpi support for Qt\n- Fix race condition in TexManager.make_dvi \u0026amp; make_png\n- Various documentation and other bugfixes\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/5cd38c3edcdf0792d0e6aded280a9b7a7de6146f\"\u003e\u003ccode\u003e5cd38c3\u003c/code\u003e\u003c/a\u003e REL: v3.10.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/b2358e7a537205b29ab0810b4bd94f036b3086dc\"\u003e\u003ccode\u003eb2358e7\u003c/code\u003e\u003c/a\u003e Release prep v3.10.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/2e04783c83e960261e18b8ccc5d0ebc3c1d117aa\"\u003e\u003ccode\u003e2e04783\u003c/code\u003e\u003c/a\u003e Merge branch 'v3.10.5-doc' into v3.10.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/d3365af7e461b3c4bebb0351a06809ad503a3db9\"\u003e\u003ccode\u003ed3365af\u003c/code\u003e\u003c/a\u003e Github stats v3.10.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/81ed6592f882b89e6d2baf02b544200c539c46d4\"\u003e\u003ccode\u003e81ed659\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30489\"\u003e#30489\u003c/a\u003e from meeseeksmachine/auto-backport-of-pr-30486-on-v...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/5351097b110c975767f2699f2335ecce7b99c1d8\"\u003e\u003ccode\u003e5351097\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30488\"\u003e#30488\u003c/a\u003e from meeseeksmachine/auto-backport-of-pr-30486-on-v...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/6b800b8c8b56a71d8780c8e1707a1ba0b2c338c6\"\u003e\u003ccode\u003e6b800b8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30487\"\u003e#30487\u003c/a\u003e from meeseeksmachine/auto-backport-of-pr-30484-on-v...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/25a97fd721edeee7ef2916cdbb79e050187f3d11\"\u003e\u003ccode\u003e25a97fd\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30486\"\u003e#30486\u003c/a\u003e: doc: Update warnings about python-build-standalone\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/4b794954750f7a1218c9d0c032ec30ba7a6088e6\"\u003e\u003ccode\u003e4b79495\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30486\"\u003e#30486\u003c/a\u003e: doc: Update warnings about python-build-standalone\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/a55b817f019c0b2a6550fa8d255a821605651ed7\"\u003e\u003ccode\u003ea55b817\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30484\"\u003e#30484\u003c/a\u003e: FIX: be more cautious about checking widget size\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/matplotlib/matplotlib/compare/v3.10.5...v3.10.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pandas` from 2.3.1 to 2.3.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pandas-dev/pandas/releases\"\u003epandas's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ePandas 2.3.2\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 2.3.2.\nThis release includes some improvements and fixes to the future string data type (preview feature for the upcoming pandas 3.0). We recommend that all users upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/pandas-docs/version/2.3/whatsnew/v2.3.2.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\nPandas 2.3.2 supports Python 3.9 and higher.\u003c/p\u003e\n\u003cp\u003eThe release will be available on the conda-forge channel:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install pandas --channel conda-forge\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr via PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython3 -m pip install --upgrade pandas\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\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/pandas-dev/pandas/commit/4665c10899bc413b639194f6fb8665a5c70f7db5\"\u003e\u003ccode\u003e4665c10\u003c/code\u003e\u003c/a\u003e RLS: 2.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/633c68b91808441eba7d73b630a82b713ba19da8\"\u003e\u003ccode\u003e633c68b\u003c/code\u003e\u003c/a\u003e DOC: fix syntax in whatsnew file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/456ad4702cb017aab36e2d09a4029b1b085198f5\"\u003e\u003ccode\u003e456ad47\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/62152\"\u003e#62152\u003c/a\u003e on branch 2.3.x (DOC: prepare 2.3.2 whatsnew notes for rel...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/6cae6444444ed7943ceffbd5990cd8249dd5b47c\"\u003e\u003ccode\u003e6cae644\u003c/code\u003e\u003c/a\u003e [backport 2.3.x] DOC: move and reword whatsnew note for replace fix (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/57865\"\u003eGH-57865\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/a91c50a58c372cddf104fd60241c7284bbf8fc80\"\u003e\u003ccode\u003ea91c50a\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/62147\"\u003e#62147\u003c/a\u003e on branch 2.3.x (DOC: correct and rewrite string migration...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/f7a2cfdf2ed08016167ae6c5e577c54949a849b2\"\u003e\u003ccode\u003ef7a2cfd\u003c/code\u003e\u003c/a\u003e [backport 2.3.x] BUG/DEPR: logical operation with bool and string (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/61995\"\u003e#61995\u003c/a\u003e) (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/7981a43db4339826a3ce5020e9b1b931e604e5bd\"\u003e\u003ccode\u003e7981a43\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/62124\"\u003e#62124\u003c/a\u003e on branch 2.3.x (CI/BLD: don't use strict xfail for '%m.%Y...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/fafbcbd03d1721830f4df8255abdab341db2a583\"\u003e\u003ccode\u003efafbcbd\u003c/code\u003e\u003c/a\u003e [backport 2.3.x] BUG(CoW): also raise for chained assignment for .at / .iat (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/3ac64a714886d917ca24ba637a85c4aaf563fc1b\"\u003e\u003ccode\u003e3ac64a7\u003c/code\u003e\u003c/a\u003e [backport 2.3.x] BUG: Fix Series.str.contains with compiled regex on Arrow st...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/1f2dc4fd8a2503773b6f90cb5e8cc5c3172c3c11\"\u003e\u003ccode\u003e1f2dc4f\u003c/code\u003e\u003c/a\u003e [backport 2.3.x] BUG: fix Series.str.fullmatch() and Series.str.match() with ...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pandas-dev/pandas/compare/v2.3.1...v2.3.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit` from 4.2.0 to 4.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.3.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elanguage: docker\u003c/code\u003e / \u003ccode\u003elanguage: docker_image\u003c/code\u003e: detect rootless docker.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3446\"\u003e#3446\u003c/a\u003e PR by \u003ca href=\"https://github.com/matthewhughes934\"\u003e\u003ccode\u003e@​matthewhughes934\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/1243\"\u003e#1243\u003c/a\u003e issue by \u003ca href=\"https://github.com/dkolepp\"\u003e\u003ccode\u003e@​dkolepp\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: julia\u003c/code\u003e: avoid \u003ccode\u003estartup.jl\u003c/code\u003e when executing hooks.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3496\"\u003e#3496\u003c/a\u003e PR by \u003ca href=\"https://github.com/ericphanson\"\u003e\u003ccode\u003e@​ericphanson\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: dart\u003c/code\u003e: support latest dart versions which require a higher sdk\nlower bound.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3507\"\u003e#3507\u003c/a\u003e PR by \u003ca href=\"https://github.com/bc-lee\"\u003e\u003ccode\u003e@​bc-lee\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.3.0 - 2025-08-09\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elanguage: docker\u003c/code\u003e / \u003ccode\u003elanguage: docker_image\u003c/code\u003e: detect rootless docker.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3446\"\u003e#3446\u003c/a\u003e PR by \u003ca href=\"https://github.com/matthewhughes934\"\u003e\u003ccode\u003e@​matthewhughes934\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/1243\"\u003e#1243\u003c/a\u003e issue by \u003ca href=\"https://github.com/dkolepp\"\u003e\u003ccode\u003e@​dkolepp\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: julia\u003c/code\u003e: avoid \u003ccode\u003estartup.jl\u003c/code\u003e when executing hooks.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3496\"\u003e#3496\u003c/a\u003e PR by \u003ca href=\"https://github.com/ericphanson\"\u003e\u003ccode\u003e@​ericphanson\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: dart\u003c/code\u003e: support latest dart versions which require a higher sdk\nlower bound.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3507\"\u003e#3507\u003c/a\u003e PR by \u003ca href=\"https://github.com/bc-lee\"\u003e\u003ccode\u003e@​bc-lee\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/b74a22d96cca546b8e0bb9f68f1d7d8565205b65\"\u003e\u003ccode\u003eb74a22d\u003c/code\u003e\u003c/a\u003e v4.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/cc899de192a5f5614633d86178568cc1c46d999d\"\u003e\u003ccode\u003ecc899de\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3507\"\u003e#3507\u003c/a\u003e from bc-lee/dart-fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2a0bcea7570620416a550362d9b2d2b24eb80dd8\"\u003e\u003ccode\u003e2a0bcea\u003c/code\u003e\u003c/a\u003e Downgrade Dart SDK version installed in the CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/f1cc7a445f1adbfc9ea4072e180fbe3054af669b\"\u003e\u003ccode\u003ef1cc7a4\u003c/code\u003e\u003c/a\u003e Make Dart pre-commit hook compatible with the latest Dart SDKs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/72a3b71f0e7b89b78899739aeee2e962914ab649\"\u003e\u003ccode\u003e72a3b71\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3504\"\u003e#3504\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c8925a457afb1d6850c8f105671846bae408aae0\"\u003e\u003ccode\u003ec8925a4\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/a5fe6c500c2c7a17aaa21f0bb91ee7ceecf61968\"\u003e\u003ccode\u003ea5fe6c5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3496\"\u003e#3496\u003c/a\u003e from ericphanson/eph/jl-startup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/6f1f433a9cea94a70828ade95931a703c9a9c82b\"\u003e\u003ccode\u003e6f1f433\u003c/code\u003e\u003c/a\u003e Julia language: skip startup.jl file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c6817210b1cdbbfbd1b1ff2148edfa15bf4b3c97\"\u003e\u003ccode\u003ec681721\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3499\"\u003e#3499\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/4fd4537bc69e6804998d99e4851a9dbe43e91757\"\u003e\u003ccode\u003e4fd4537\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.2.0...v4.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.4.1 to 8.4.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.4.2\u003c/h2\u003e\n\u003ch1\u003epytest 8.4.2 (2025-09-03)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13478\"\u003e#13478\u003c/a\u003e: Fixed a crash when using \u003ccode\u003econsole_output_style\u003c/code\u003e{.interpreted-text role=\u0026quot;confval\u0026quot;} with \u003ccode\u003etimes\u003c/code\u003e and a module is skipped.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13530\"\u003e#13530\u003c/a\u003e: Fixed a crash when using \u003ccode\u003epytest.approx\u003c/code\u003e{.interpreted-text role=\u0026quot;func\u0026quot;} and \u003ccode\u003edecimal.Decimal\u003c/code\u003e{.interpreted-text role=\u0026quot;class\u0026quot;} instances with the \u003ccode\u003edecimal.FloatOperation\u003c/code\u003e{.interpreted-text role=\u0026quot;class\u0026quot;} trap set.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13549\"\u003e#13549\u003c/a\u003e: No longer evaluate type annotations in Python \u003ccode\u003e3.14\u003c/code\u003e when inspecting function signatures.\u003c/p\u003e\n\u003cp\u003eThis prevents crashes during module collection when modules do not explicitly use \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e and import types for annotations within a \u003ccode\u003eif TYPE_CHECKING:\u003c/code\u003e block.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13559\"\u003e#13559\u003c/a\u003e: Added missing [int]{.title-ref} and [float]{.title-ref} variants to the [Literal]{.title-ref} type annotation of the [type]{.title-ref} parameter in \u003ccode\u003epytest.Parser.addini\u003c/code\u003e{.interpreted-text role=\u0026quot;meth\u0026quot;}.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13563\"\u003e#13563\u003c/a\u003e: \u003ccode\u003epytest.approx\u003c/code\u003e{.interpreted-text role=\u0026quot;func\u0026quot;} now only imports \u003ccode\u003enumpy\u003c/code\u003e if NumPy is already in \u003ccode\u003esys.modules\u003c/code\u003e. This fixes unconditional import behavior introduced in [8.4.0]{.title-ref}.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13577\"\u003e#13577\u003c/a\u003e: Clarify that \u003ccode\u003epytest_generate_tests\u003c/code\u003e is discovered in test modules/classes; other hooks must be in \u003ccode\u003econftest.py\u003c/code\u003e or plugins.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13480\"\u003e#13480\u003c/a\u003e: Self-testing: fixed a few test failures when run with \u003ccode\u003e-Wdefault\u003c/code\u003e or a similar override.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13547\"\u003e#13547\u003c/a\u003e: Self-testing: corrected expected message for \u003ccode\u003etest_doctest_unexpected_exception\u003c/code\u003e in Python \u003ccode\u003e3.14\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13684\"\u003e#13684\u003c/a\u003e: Make pytest's own testsuite insensitive to the presence of the \u003ccode\u003eCI\u003c/code\u003e environment variable -- by \u003ccode\u003eogrisel\u003c/code\u003e{.interpreted-text role=\u0026quot;user\u0026quot;}.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bfae4224fd554d3d7f2c277a4cc092b6ec6af3ae\"\u003e\u003ccode\u003ebfae422\u003c/code\u003e\u003c/a\u003e Prepare release version 8.4.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/89905381a163be30ae87d62e5f750e902d750c5f\"\u003e\u003ccode\u003e8990538\u003c/code\u003e\u003c/a\u003e Fix passenv CI in tox ini and make tests insensitive to the presence of the C...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ca676bfe005aebcb12f4146d1b0f1d2772e2cd5d\"\u003e\u003ccode\u003eca676bf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13687\"\u003e#13687\u003c/a\u003e from pytest-dev/patchback/backports/8.4.x/e63f6e51c...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/975a60a63ce385a44655596e254c1899feaa53e4\"\u003e\u003ccode\u003e975a60a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13686\"\u003e#13686\u003c/a\u003e from pytest-dev/patchback/backports/8.4.x/12bde8af6...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7723ce84b87ab08f86ddafcb342acc28ba5ec99d\"\u003e\u003ccode\u003e7723ce8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13683\"\u003e#13683\u003c/a\u003e from even-even/fix_Exeption_to_Exception_in_errorMe...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7f05680d1301e0969b30bcb3c4b27433c9ee2b7\"\u003e\u003ccode\u003eb7f0568\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13685\"\u003e#13685\u003c/a\u003e from CoretexShadow/fix/docs-pytest-generate-tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/2c94c4a6948ba53440818389298157fa5d5f94cd\"\u003e\u003ccode\u003e2c94c4a\u003c/code\u003e\u003c/a\u003e add missing colon (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13640\"\u003e#13640\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13641\"\u003e#13641\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c3d7684bc01c8c48d05145a30c5211ca8656c68c\"\u003e\u003ccode\u003ec3d7684\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13606\"\u003e#13606\u003c/a\u003e from pytest-dev/patchback/backports/8.4.x/5f9938563...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/dc6e3be2ddc75a149b6d102d9b7c82ee47a00cfa\"\u003e\u003ccode\u003edc6e3be\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13605\"\u003e#13605\u003c/a\u003e from The-Compiler/training-update-2025-07\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f87289c36c8dbe7740e3020f5546b6f8b0861ff0\"\u003e\u003ccode\u003ef87289c\u003c/code\u003e\u003c/a\u003e Fix crash with \u003ccode\u003etimes\u003c/code\u003e output style and skipped module (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13573\"\u003e#13573\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13579\"\u003e#13579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.4.1...8.4.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-cov` from 6.2.1 to 6.3.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst\"\u003epytest-cov's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.3.0 (2025-09-06)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for markdown reports.\nContributed by Marcos Boger in \u003ccode\u003e[#712](https://github.com/pytest-dev/pytest-cov/issues/712) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/712\u0026gt;\u003c/code\u003e_\nand \u003ccode\u003e[#714](https://github.com/pytest-dev/pytest-cov/issues/714) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/714\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eFixed some formatting issues in docs.\nAnonymous contribution in \u003ccode\u003e[#706](https://github.com/pytest-dev/pytest-cov/issues/706) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/706\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/a69d1abfea81138099f7da6ad114a2357b994b86\"\u003e\u003ccode\u003ea69d1ab\u003c/code\u003e\u003c/a\u003e Bump version: 6.2.1 → 6.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/475bf32521d4a75646255369b766cfad55bab1fb\"\u003e\u003ccode\u003e475bf32\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/3834009b902adaad28fed0bd9aba3889b387df4b\"\u003e\u003ccode\u003e3834009\u003c/code\u003e\u003c/a\u003e Add GitHub Actions example and fix example to not break with default markdown...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/0824728a5ea0b779ab474d754951413995ce48bd\"\u003e\u003ccode\u003e0824728\u003c/code\u003e\u003c/a\u003e Small phrasing adustments in Markdown docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/474c1f4e38cda390a9abfa3c843a1fc179bfba0e\"\u003e\u003ccode\u003e474c1f4\u003c/code\u003e\u003c/a\u003e Move markdown dest files check to StoreReport for earlier error and parser.er...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/7b21833031fdbbdc8b383878788addb5dbc148c6\"\u003e\u003ccode\u003e7b21833\u003c/code\u003e\u003c/a\u003e Default markdown-append to coverage.md and raise warning if both markdown opt...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/3a15312a543c2f3822c244dccc1b2a4896b1578a\"\u003e\u003ccode\u003e3a15312\u003c/code\u003e\u003c/a\u003e Fix usage of Path.open() to write/append to files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/4b79449a98e6aaf4d99b99ca6323f9bc77c6bda6\"\u003e\u003ccode\u003e4b79449\u003c/code\u003e\u003c/a\u003e Change output file cov-append.md in md-append example\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/40e9e8e9a93edaa6d9aadbf2efa60d91f97b9dff\"\u003e\u003ccode\u003e40e9e8e\u003c/code\u003e\u003c/a\u003e Add docs and update AUTHORS.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/f5ca33aa6f873d03004e9dcc591a90e61f7676ac\"\u003e\u003ccode\u003ef5ca33a\u003c/code\u003e\u003c/a\u003e Add tests for markdown and markdown-append\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-cov/compare/v6.2.1...v6.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/1210lfo/prueba-tecnica-sc/pull/14","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/1210lfo%2Fprueba-tecnica-sc/issues/14","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/14/packages"}},{"old_version":"8.4.0","new_version":"8.4.2","update_type":"patch","path":null,"pr_created_at":"2025-09-07T22:14:26.000Z","version_change":"8.4.0 → 8.4.2","issue":{"uuid":"2806383654","node_id":"PR_kwDOEkpJIs6nRgQm","number":191,"state":"closed","title":"Bump the dependencies group across 1 directory with 36 updates","user":"dependabot[bot]","labels":["skip-changelog","dependabot-deps-updates"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":"2025-09-14T22:11:52.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-07T22:14:26.000Z","updated_at":"2025-09-14T22:11:52.000Z","time_to_close":604646,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"dependencies","update_count":36,"packages":[{"name":"mkdocstrings","old_version":"0.29.1","new_version":"0.30.0","repository_url":"https://github.com/mkdocstrings/mkdocstrings"},{"name":"argparse-manpage","old_version":"4.6","new_version":"4.7","repository_url":"https://github.com/praiskup/argparse-manpage"},{"name":"backrefs","old_version":"5.8","new_version":"6.0.1","repository_url":"https://github.com/facelessuser/backrefs"},{"name":"bracex","old_version":"2.5.post1","new_version":"2.6","repository_url":"https://github.com/facelessuser/bracex"},{"name":"cachetools","old_version":"6.0.0","new_version":"6.2.0","repository_url":"https://github.com/tkem/cachetools"},{"name":"certifi","old_version":"2025.6.15","new_version":"2025.8.3","repository_url":"https://github.com/certifi/python-certifi"},{"name":"charset-normalizer","old_version":"3.4.2","new_version":"3.4.3","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"coverage","old_version":"7.9.1","new_version":"7.10.6","repository_url":"https://github.com/nedbat/coveragepy"},{"name":"cryptography","old_version":"45.0.4","new_version":"45.0.7","repository_url":"https://github.com/pyca/cryptography"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.0","repository_url":"https://github.com/pypa/distlib"},{"name":"executing","old_version":"2.2.0","new_version":"2.2.1","repository_url":"https://github.com/alexmojaki/executing"},{"name":"filelock","old_version":"3.18.0","new_version":"3.19.1","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"gitpython","old_version":"3.1.44","new_version":"3.1.45","repository_url":"https://github.com/gitpython-developers/GitPython"},{"name":"griffe","old_version":"1.7.3","new_version":"1.14.0","repository_url":"https://github.com/mkdocstrings/griffe"},{"name":"importlib-resources","old_version":"5.0.7","new_version":"6.5.2","repository_url":"https://github.com/python/importlib_resources"},{"name":"jsonschema","old_version":"4.24.0","new_version":"4.25.1","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"markdown","old_version":"3.8","new_version":"3.9","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"mkdocs-autorefs","old_version":"1.4.2","new_version":"1.4.3","repository_url":"https://github.com/mkdocstrings/autorefs"},{"name":"mkdocs-material","old_version":"9.6.14","new_version":"9.6.19","repository_url":"https://github.com/squidfunk/mkdocs-material"},{"name":"mkdocstrings-python","old_version":"1.16.12","new_version":"1.18.2","repository_url":"https://github.com/mkdocstrings/python"},{"name":"parso","old_version":"0.8.4","new_version":"0.8.5","repository_url":"https://github.com/davidhalter/parso"},{"name":"pbr","old_version":"6.1.1","new_version":"7.0.1"},{"name":"pillow","old_version":"11.2.1","new_version":"11.3.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"platformdirs","old_version":"4.3.8","new_version":"4.4.0","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"prompt-toolkit","old_version":"3.0.51","new_version":"3.0.52","repository_url":"https://github.com/prompt-toolkit/python-prompt-toolkit"},{"name":"pygments","old_version":"2.19.1","new_version":"2.19.2","repository_url":"https://github.com/pygments/pygments"},{"name":"pymdown-extensions","old_version":"10.15","new_version":"10.16.1","repository_url":"https://github.com/facelessuser/pymdown-extensions"},{"name":"pytest","old_version":"8.4.0","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-sugar","old_version":"1.0.0","new_version":"1.1.1","repository_url":"https://github.com/Teemu/pytest-sugar"},{"name":"pytest-xdist","old_version":"3.7.0","new_version":"3.8.0","repository_url":"https://github.com/pytest-dev/pytest-xdist"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"rich","old_version":"14.0.0","new_version":"14.1.0","repository_url":"https://github.com/Textualize/rich"},{"name":"rpds-py","old_version":"0.25.1","new_version":"0.27.1","repository_url":"https://github.com/crate-py/rpds"},{"name":"setproctitle","old_version":"1.3.6","new_version":"1.3.7","repository_url":"https://github.com/dvarrazzo/py-setproctitle"},{"name":"urllib3","old_version":"2.4.0","new_version":"2.5.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"wcmatch","old_version":"10.0","new_version":"10.1","repository_url":"https://github.com/facelessuser/wcmatch"}],"path":null,"ecosystem":"conda"},"body":"Bumps the dependencies group with 36 updates in the /.config directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [mkdocstrings](https://github.com/mkdocstrings/mkdocstrings) | `0.29.1` | `0.30.0` |\n| [argparse-manpage](https://github.com/praiskup/argparse-manpage) | `4.6` | `4.7` |\n| [backrefs](https://github.com/facelessuser/backrefs) | `5.8` | `6.0.1` |\n| [bracex](https://github.com/facelessuser/bracex) | `2.5.post1` | `2.6` |\n| [cachetools](https://github.com/tkem/cachetools) | `6.0.0` | `6.2.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.6.15` | `2025.8.3` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.2` | `3.4.3` |\n| [coverage](https://github.com/nedbat/coveragepy) | `7.9.1` | `7.10.6` |\n| [cryptography](https://github.com/pyca/cryptography) | `45.0.4` | `45.0.7` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.0` |\n| [executing](https://github.com/alexmojaki/executing) | `2.2.0` | `2.2.1` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.18.0` | `3.19.1` |\n| [gitpython](https://github.com/gitpython-developers/GitPython) | `3.1.44` | `3.1.45` |\n| [griffe](https://github.com/mkdocstrings/griffe) | `1.7.3` | `1.14.0` |\n| [importlib-resources](https://github.com/python/importlib_resources) | `5.0.7` | `6.5.2` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.24.0` | `4.25.1` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.8` | `3.9` |\n| [mkdocs-autorefs](https://github.com/mkdocstrings/autorefs) | `1.4.2` | `1.4.3` |\n| [mkdocs-material](https://github.com/squidfunk/mkdocs-material) | `9.6.14` | `9.6.19` |\n| [mkdocstrings-python](https://github.com/mkdocstrings/python) | `1.16.12` | `1.18.2` |\n| [parso](https://github.com/davidhalter/parso) | `0.8.4` | `0.8.5` |\n| [pbr](https://docs.openstack.org/pbr/latest/) | `6.1.1` | `7.0.1` |\n| [pillow](https://github.com/python-pillow/Pillow) | `11.2.1` | `11.3.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.8` | `4.4.0` |\n| [prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) | `3.0.51` | `3.0.52` |\n| [pygments](https://github.com/pygments/pygments) | `2.19.1` | `2.19.2` |\n| [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions) | `10.15` | `10.16.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.0` | `8.4.2` |\n| [pytest-sugar](https://github.com/Teemu/pytest-sugar) | `1.0.0` | `1.1.1` |\n| [pytest-xdist](https://github.com/pytest-dev/pytest-xdist) | `3.7.0` | `3.8.0` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [rich](https://github.com/Textualize/rich) | `14.0.0` | `14.1.0` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.25.1` | `0.27.1` |\n| [setproctitle](https://github.com/dvarrazzo/py-setproctitle) | `1.3.6` | `1.3.7` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.4.0` | `2.5.0` |\n| [wcmatch](https://github.com/facelessuser/wcmatch) | `10.0` | `10.1` |\n\n\nUpdates `mkdocstrings` from 0.29.1 to 0.30.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases\"\u003emkdocstrings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.30.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/0.30.0\"\u003e0.30.0\u003c/a\u003e - 2025-07-23\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/0.29.1...0.30.0\"\u003eCompare with 0.29.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003edata-skip-inventory\u003c/code\u003e boolean attribute for elements to skip registration in local inventory (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f856160b03b2c27e1d75fdf4f315c273cb9d9247\"\u003ef856160\u003c/a\u003e by Bartosz Sławecki). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/issues/671\"\u003eIssue-671\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/774\"\u003ePR-774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd I18N support (translations) (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/2b4ed541bc707e55d959092d950ebeecc4fbd136\"\u003e2b4ed54\u003c/a\u003e by Nyuan Zhang). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/645\"\u003ePR-645\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/blob/main/CHANGELOG.md\"\u003emkdocstrings's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/0.30.0\"\u003e0.30.0\u003c/a\u003e - 2025-07-23\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/0.29.1...0.30.0\"\u003eCompare with 0.29.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003edata-skip-inventory\u003c/code\u003e boolean attribute for elements to skip registration in local inventory (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f856160b03b2c27e1d75fdf4f315c273cb9d9247\"\u003ef856160\u003c/a\u003e by Bartosz Sławecki). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/issues/671\"\u003eIssue-671\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/774\"\u003ePR-774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd I18N support (translations) (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/2b4ed541bc707e55d959092d950ebeecc4fbd136\"\u003e2b4ed54\u003c/a\u003e by Nyuan Zhang). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/645\"\u003ePR-645\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/2be445f054c1191d308af7ee0cc881e359f5a4c7\"\u003e\u003ccode\u003e2be445f\u003c/code\u003e\u003c/a\u003e chore: Prepare release 0.30.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f856160b03b2c27e1d75fdf4f315c273cb9d9247\"\u003e\u003ccode\u003ef856160\u003c/code\u003e\u003c/a\u003e feat: Add \u003ccode\u003edata-skip-inventory\u003c/code\u003e boolean attribute for elements to skip regist...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/2b4ed541bc707e55d959092d950ebeecc4fbd136\"\u003e\u003ccode\u003e2b4ed54\u003c/code\u003e\u003c/a\u003e feat: Add I18N support (translations)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/51f217f38af9475415f758866697158d9010967d\"\u003e\u003ccode\u003e51f217f\u003c/code\u003e\u003c/a\u003e chore: Template upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/b1da3d02c4f432f603cbb0004bb35099327706db\"\u003e\u003ccode\u003eb1da3d0\u003c/code\u003e\u003c/a\u003e ci: Ignore Ruff warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/d5bf4e1ed0370853f968b210ad77913faf106eed\"\u003e\u003ccode\u003ed5bf4e1\u003c/code\u003e\u003c/a\u003e docs: Update link to YAML idiosyncrasies\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/0.29.1...0.30.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `argparse-manpage` from 4.6 to 4.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/praiskup/argparse-manpage/releases\"\u003eargparse-manpage's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eargparse-manpage v4.7\u003c/h2\u003e\n\u003cp\u003eNews in v4.7\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003esys.stdout used instead of /dev/stdout\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efixed build compatibility with newer setuptools\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efixed deprecation warnings for datetime and setuptools\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003enew compat method for handling SOURCE_DATE_EPOCH\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/praiskup/argparse-manpage/blob/main/NEWS\"\u003eargparse-manpage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cpre\u003e\u003ccode\u003e\nWARNING: The 'build_manpage' setup.py command will be removed v5\nWARNING: We'll drop the Python 2.7 support in v5\n\u003cp\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eNews in v4.7\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003esys.stdout used instead of /dev/stdout\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efixed build compatibility with newer setuptools\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efixed deprecation warnings for datetime and setuptools\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003enew compat method for handling SOURCE_DATE_EPOCH\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre\u003e\u003ccode\u003e\nNews in v4.6\n\u003cul\u003e\n\u003cli\u003eFix the build against Python 3.13\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eNews in v4.5\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWe newly provide \u003ccode\u003ebuild_manpages.build_py\u003c/code\u003e and \u003ccode\u003ebuild_manpages.install\u003c/code\u003e\ncommand classes that are re-usable from \u003ccode\u003epyproject.toml\u003c/code\u003e.  No need to\nprovide \u003ccode\u003esetup.py\u003c/code\u003e because of \u003ccode\u003eargparse-manpage\u003c/code\u003e.  Solved issue#85.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre\u003e\u003ccode\u003e\nNews in v4.4\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003eprog=\u003c/code\u003e specifier (in setup.py/setup.cfg/pyproject.toml) is now\u003cbr /\u003e\nbetter handled so it doesn't conflict with ArgumentParser(prog=..).\u003cbr /\u003e\nFixes \u003ca href=\"https://redirect.github.com/praiskup/argparse-manpage/issues/79\"\u003epraiskup/argparse-manpage#79\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eNews in v4.3\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe pyproject.toml parsing feature now depends on the python3-tomli library\u003cbr /\u003e\ninstead of python-toml for \u0026quot;python_environment \u0026gt;3, \u0026lt;=3.10\u0026quot;.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eNews in v4.2\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for pyproject.toml specification of manpages added.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/7883becca340aa3ea124143e032848a7b2bdf84b\"\u003e\u003ccode\u003e7883bec\u003c/code\u003e\u003c/a\u003e Release v4.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/765389ed4ee835c09451823d7fbfe22b0dc1674a\"\u003e\u003ccode\u003e765389e\u003c/code\u003e\u003c/a\u003e Move the SOURCE_DATE_EPOCH hack on one place\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/a06ed9c1f03360f8089819c8e845cd670687eb64\"\u003e\u003ccode\u003ea06ed9c\u003c/code\u003e\u003c/a\u003e ci: fix RPM build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/c985432ee15824c43c75548c7ec1bd6f105a7f22\"\u003e\u003ccode\u003ec985432\u003c/code\u003e\u003c/a\u003e Fix deprecation warnings for datetime and setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/306658941368ff0c2dfe2e4fa29b889fb5bbeb2b\"\u003e\u003ccode\u003e3066589\u003c/code\u003e\u003c/a\u003e ci: fedora-tox update list of environments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/b3a2c50e2abc47bd822d848864a80e35251a3147\"\u003e\u003ccode\u003eb3a2c50\u003c/code\u003e\u003c/a\u003e ci: enable ruff \u0026amp; bump deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/6dc54a5272e70b081af728958fd7554a6b0372f3\"\u003e\u003ccode\u003e6dc54a5\u003c/code\u003e\u003c/a\u003e Fix compatibility with newer setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/29f89bba536cf28f6ed66721367ff2ee3f6209b7\"\u003e\u003ccode\u003e29f89bb\u003c/code\u003e\u003c/a\u003e Fix some comments about sys.argv alteration for usage message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/ade76cc8ef49ec804955c6b4027dbae52d482034\"\u003e\u003ccode\u003eade76cc\u003c/code\u003e\u003c/a\u003e Use sys.stdout instead of /dev/stdout\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/praiskup/argparse-manpage/compare/v4.6...v4.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `backrefs` from 5.8 to 6.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facelessuser/backrefs/releases\"\u003ebackrefs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Fix a regression that created an ASCII binary property that would override the ASCII block property.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: POSIX character classes will now always use POSIX compatibility rules instead of Unicode standard rules,\nif any are specified in the Unicode specification. The affected character classes are: \u003ccode\u003e[[:alnum:]]\u003c/code\u003e, \u003ccode\u003e[[:digit:]]\u003c/code\u003e,\n\u003ccode\u003e[[:xdigit:]]\u003c/code\u003e, and  \u003ccode\u003e[[:punct:]]\u003c/code\u003e. To explicitly use standard Unicode rules for these compatibility properties, use\nthe Unicode property form instead: \u003ccode\u003e[\\p{Alnum}]\u003c/code\u003e, \u003ccode\u003e[\\p{Digit}]\u003c/code\u003e, \u003ccode\u003e[\\p{Punct}]\u003c/code\u003e, or \u003ccode\u003e[\\p{XDigit}]\u003c/code\u003e. This has changed\nto ensure no confusion for users expecting compatible POSIX style character class properties.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Scoped ASCII/Unicode flags (\u003ccode\u003e(?a:pattern)\u003c/code\u003e/\u003ccode\u003e(?u:pattern)\u003c/code\u003e) should be respected for Unicode properties in\n\u003ccode\u003ebre\u003c/code\u003e and will ensure ASCII or Unicode range if used.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Fix issues related to detecting disabled scoped flags.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Add support for Python 3.14.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eENHANCE\u003c/strong\u003e: Switch to deploying with PyPI's \u0026quot;Trusted Publisher\u0026quot;.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/63f8a4b14750828b7c1e385844fd36f6f89859e4\"\u003e\u003ccode\u003e63f8a4b\u003c/code\u003e\u003c/a\u003e Fix grammar\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/7f4bf611e6e7fcc2aa4e0eba2872b5f51b7fc908\"\u003e\u003ccode\u003e7f4bf61\u003c/code\u003e\u003c/a\u003e Rework POSIX alias\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/956df5f387f1958110e5a7cf2a98d42a8309d9b6\"\u003e\u003ccode\u003e956df5f\u003c/code\u003e\u003c/a\u003e Fix ASCII block regression\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/7a948f083c3c87114a8dd87c95dff1893f3af82a\"\u003e\u003ccode\u003e7a948f0\u003c/code\u003e\u003c/a\u003e Clean up code and add more comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/9b2e406be36c1e0fc72651adbc7d2d63c4151483\"\u003e\u003ccode\u003e9b2e406\u003c/code\u003e\u003c/a\u003e Add more flag tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/47d62b1270ca7f1717e7acdb56e8e6ed3e9e8f10\"\u003e\u003ccode\u003e47d62b1\u003c/code\u003e\u003c/a\u003e Handle enable/disable properly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/8e7596700b913e13f478da57e0ba0965f2d9ed3b\"\u003e\u003ccode\u003e8e75967\u003c/code\u003e\u003c/a\u003e Fix issues with scoped flags (\u003ca href=\"https://redirect.github.com/facelessuser/backrefs/issues/192\"\u003e#192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/0df8e7746d3ea31824af97ea4ed713a3facded5b\"\u003e\u003ccode\u003e0df8e77\u003c/code\u003e\u003c/a\u003e POSIX character classes should use POSIX compatibility rules by default (\u003ca href=\"https://redirect.github.com/facelessuser/backrefs/issues/191\"\u003e#191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/31fd8c5c0338eefe41452d52f99012c0fecfdd82\"\u003e\u003ccode\u003e31fd8c5\u003c/code\u003e\u003c/a\u003e Call mkdocs directly on deploy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/8b3a24bfc1cacde6fc9ab4edfaed0f5a9206c554\"\u003e\u003ccode\u003e8b3a24b\u003c/code\u003e\u003c/a\u003e Fix deploy logic\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/facelessuser/backrefs/compare/5.8...6.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bracex` from 2.5.post1 to 2.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facelessuser/bracex/releases\"\u003ebracex's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Drop support for Python 3.8.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Add support for Python 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/bracex/commit/6d109c55372f0d5086adb7cf84a951cc06391a69\"\u003e\u003ccode\u003e6d109c5\u003c/code\u003e\u003c/a\u003e Add trusted publishing and support for Python 3.14 (\u003ca href=\"https://redirect.github.com/facelessuser/bracex/issues/44\"\u003e#44\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/bracex/commit/c14d46fb495a8fdcd0ec51d4dd42aa587807407d\"\u003e\u003ccode\u003ec14d46f\u003c/code\u003e\u003c/a\u003e Add security policy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/bracex/commit/14645af4bf4de0e1abe4fd6c29bf98871f549273\"\u003e\u003ccode\u003e14645af\u003c/code\u003e\u003c/a\u003e Typos: remove duplicate words\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/facelessuser/bracex/compare/2.5.post1...2.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachetools` from 6.0.0 to 6.2.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev6.2.0 (2025-08-25)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove general \u003ccode\u003eRRCache\u003c/code\u003e performance by storing cache keys in an\nadditional sequence container.  Note that this will increase memory\nconsumption.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more unit tests.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.1.0 (2025-06-16)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove \u003ccode\u003eLFUCache\u003c/code\u003e insertion performance by switching to an\nimplementation based on the \u003ccode\u003ecacheing \u0026lt;https://pypi.org/project/cacheing/\u0026gt;\u003c/code\u003e_ library.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate CI environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/4a238adc490e81db58d843b011afdbe3dd9097a5\"\u003e\u003ccode\u003e4a238ad\u003c/code\u003e\u003c/a\u003e Release v6.2.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/9d511b769f8fb58981fb77fece846984aaaf49e6\"\u003e\u003ccode\u003e9d511b7\u003c/code\u003e\u003c/a\u003e Improve unit tests.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/79aa8c7c0eacd5d75e154bc23687ecdaf9ad1d75\"\u003e\u003ccode\u003e79aa8c7\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/356\"\u003e#356\u003c/a\u003e: Improve RRCache performance.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/bb6d71a745785429b14aae30b7752f4765dc35c3\"\u003e\u003ccode\u003ebb6d71a\u003c/code\u003e\u003c/a\u003e Release v6.1.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/77a9c59e3324496a79e6c4d5a7b5bfdb9a7f7f42\"\u003e\u003ccode\u003e77a9c59\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/260\"\u003e#260\u003c/a\u003e: Use LFUCache implementation based on Blake Reid's \u0026quot;cacheing\u0026quot; library.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/b1d4eb2972ca8f0ab49e22eae3bb47c1eb8b552c\"\u003e\u003ccode\u003eb1d4eb2\u003c/code\u003e\u003c/a\u003e Bump codecov/codecov-action from 5.4.2 to 5.4.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/820b154494e91aa5bfe63a3fa2033c63a9c84603\"\u003e\u003ccode\u003e820b154\u003c/code\u003e\u003c/a\u003e Refactor \u003ca href=\"https://github.com/cachedmethod\"\u003e\u003ccode\u003e@​cachedmethod\u003c/code\u003e\u003c/a\u003e unit tests.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tkem/cachetools/compare/v6.0.0...v6.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2025.6.15 to 2025.8.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/a97d9ad8f87c382378dddc0b0b33b9770932404e\"\u003e\u003ccode\u003ea97d9ad\u003c/code\u003e\u003c/a\u003e 2025.08.03 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ddd90c6d726f174c1e5820379dac0f2a8fc723a1\"\u003e\u003ccode\u003eddd90c6\u003c/code\u003e\u003c/a\u003e 2025.07.14 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/359\"\u003e#359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/d905221c916d51077f5c8071a0f7aa2df2a37c52\"\u003e\u003ccode\u003ed905221\u003c/code\u003e\u003c/a\u003e 2025.07.09 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.06.15...2025.08.03\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.4.2 to 3.4.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.4.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/46f662da20edeced520c8819965a37eefbbc85de\"\u003e\u003ccode\u003e46f662d\u003c/code\u003e\u003c/a\u003e Release 3.4.3 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/638\"\u003e#638\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/1a059b26c155dd5fca408b0e0145c930633c4bf2\"\u003e\u003ccode\u003e1a059b2\u003c/code\u003e\u003c/a\u003e :wrench: skip building on freethreaded as we're not confident it is stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/2275e3d3fea2bf6232661f1e9c21e7b81428e2a6\"\u003e\u003ccode\u003e2275e3d\u003c/code\u003e\u003c/a\u003e :pencil: final note in CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/c96acdfdb34b5b1deb6f70803167bae89b209832\"\u003e\u003ccode\u003ec96acdf\u003c/code\u003e\u003c/a\u003e :pencil: update release date on CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/43e5460518003df24ad1a3e7b5c0a34445395012\"\u003e\u003ccode\u003e43e5460\u003c/code\u003e\u003c/a\u003e :pencil: update README.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f277074e281a070cfa64fc91c46f8291043fc37c\"\u003e\u003ccode\u003ef277074\u003c/code\u003e\u003c/a\u003e :wrench: automatically lower confidence on small bytes str on non Unicode res...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/15ae2411072b5e026f2c9d6ec81b55f75af7dcf2\"\u003e\u003ccode\u003e15ae241\u003c/code\u003e\u003c/a\u003e :bug: automatically fallback on valid UTF-16 or UTF-32 even if the md says it...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/37397c1799a05454ab42fbbc94a7643cdb277924\"\u003e\u003ccode\u003e37397c1\u003c/code\u003e\u003c/a\u003e :wrench: enable 3.14 in nox test_mypyc session\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/cb82537ecad195f48383b92e330351cea1fc6bc8\"\u003e\u003ccode\u003ecb82537\u003c/code\u003e\u003c/a\u003e :rewind: revert license due to compat python 3.7 issue setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/6a2efeb4c6e205964b61008b0c36ddf88c321543\"\u003e\u003ccode\u003e6a2efeb\u003c/code\u003e\u003c/a\u003e :art: fix linter errors\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.2...3.4.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.9.1 to 7.10.6\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.10.6 — 2025-08-29\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003esource\u003c/code\u003e directories were not properly communicated to subprocesses\nthat ran in different directories, as reported in \u003ccode\u003eissue 1499\u003c/code\u003e_.  This is now\nfixed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance: \u003ccode\u003eAlex Gaynor continues fine-tuning \u0026lt;pull 2038_\u0026gt;\u003c/code\u003e_ the speed of\ncombination, especially with many contexts.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1499: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1499\"\u003enedbat/coveragepy#1499\u003c/a\u003e\n.. _pull 2038: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/2038\"\u003enedbat/coveragepy#2038\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-10-5:\u003c/p\u003e\n\u003ch2\u003eVersion 7.10.5 — 2025-08-23\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBig speed improvements for \u003ccode\u003ecoverage combine\u003c/code\u003e: it's now about twice as\nfast! Huge thanks to Alex Gaynor for pull requests \u003ccode\u003e2032 \u0026lt;pull 2032_\u0026gt;\u003c/code\u003e\u003cem\u003e,\n\u003ccode\u003e2033 \u0026lt;pull 2033_\u0026gt;\u003c/code\u003e\u003c/em\u003e, and \u003ccode\u003e2034 \u0026lt;pull 2034_\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _pull 2032: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/2032\"\u003enedbat/coveragepy#2032\u003c/a\u003e\n.. _pull 2033: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/2033\"\u003enedbat/coveragepy#2033\u003c/a\u003e\n.. _pull 2034: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/2034\"\u003enedbat/coveragepy#2034\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-10-4:\u003c/p\u003e\n\u003ch2\u003eVersion 7.10.4 — 2025-08-16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003epatch = fork\u003c/code\u003e for times when the built-in forking support is\ninsufficient.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003epatch = execv\u003c/code\u003e also inherits the entire coverage configuration now.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _changes_7-10-3:\u003c/p\u003e\n\u003ch2\u003eVersion 7.10.3 — 2025-08-10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixes for \u003ccode\u003epatch = subprocess\u003c/code\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eIf subprocesses spawned yet more subprocesses simultaneously, some coverage\ncould be missed.  This is now fixed, closing \u003ccode\u003eissue 2024\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIf subprocesses were created in other directories, their data files were\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/88c55ff87437f7e59b42d131d0e2b6ce413546bf\"\u003e\u003ccode\u003e88c55ff\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.10.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/01d89959bfa825f661121e0f8d173f3ae1ecedac\"\u003e\u003ccode\u003e01d8995\u003c/code\u003e\u003c/a\u003e docs: prep for 7.10.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/9b0c24ffc17840464c2343b702a6ee44e10fcadf\"\u003e\u003ccode\u003e9b0c24f\u003c/code\u003e\u003c/a\u003e docs: thanks Alex \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2038\"\u003e#2038\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/66d69108654f6fc1de916a37fc06ac898091aa2d\"\u003e\u003ccode\u003e66d6910\u003c/code\u003e\u003c/a\u003e fix: make \u003ccode\u003esource\u003c/code\u003e paths absolute where they exist. \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1499\"\u003e#1499\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/bb3382f50f2b91aebb046d665334a5d361e5ddc5\"\u003e\u003ccode\u003ebb3382f\u003c/code\u003e\u003c/a\u003e build: no need for the combine/html times now\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/9ea349a164527832a49faa3eeec628d59ef75c7c\"\u003e\u003ccode\u003e9ea349a\u003c/code\u003e\u003c/a\u003e lab: warn_executed.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/808c9b48af3ad7b567182d383eb31451615664e0\"\u003e\u003ccode\u003e808c9b4\u003c/code\u003e\u003c/a\u003e build: changing metacov.ini should trigger metacov\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/384f5f22bd1ef52000d80922de03922a58ff936c\"\u003e\u003ccode\u003e384f5f2\u003c/code\u003e\u003c/a\u003e build: oops, some 'if's are really line pragmas\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/a7224af73365ba2d217f0e0966c7873c5bac3a67\"\u003e\u003ccode\u003ea7224af\u003c/code\u003e\u003c/a\u003e perf: pre-compute the mapping between other_db.context and main.context (\u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2038\"\u003e#2038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/5c00c5ba4bcd4f7da6a9f0ccd0797e0944415e8a\"\u003e\u003ccode\u003e5c00c5b\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group with 3 updates (\u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2039\"\u003e#2039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nedbat/coveragepy/compare/7.9.1...7.10.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 45.0.4 to 45.0.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e45.0.7 - 2025-09-01\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Added a function to support an upcoming ``pyOpenSSL`` release.\n\u003cp\u003e.. _v45-0-6:\u003c/p\u003e\n\u003cp\u003e45.0.6 - 2025-08-05\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.2.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v45-0-5:\u003c/p\u003e\n\u003cp\u003e45.0.5 - 2025-07-02\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.1.\n\u003cp\u003e.. _v45-0-4:\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/f52a3e14965fa16d03813d3ac78cd050d607794a\"\u003e\u003ccode\u003ef52a3e1\u003c/code\u003e\u003c/a\u003e prep for a 45.0.7 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13378\"\u003e#13378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/66198c23c97c9594d64540e5a866e4b4121aec2d\"\u003e\u003ccode\u003e66198c2\u003c/code\u003e\u003c/a\u003e Bump for release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13249\"\u003e#13249\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/3e53a233b65123d2a836b58ccdc427ed5207f92b\"\u003e\u003ccode\u003e3e53a23\u003c/code\u003e\u003c/a\u003e Bump for 45.0.5 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13135\"\u003e#13135\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pyca/cryptography/compare/45.0.4...45.0.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `distlib` from 0.3.9 to 0.4.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/distlib/blob/master/CHANGES.rst\"\u003edistlib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.4.0\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nReleased: 2025-07-17\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003emarkers\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd the \u003ccode\u003einterpret_parsed\u003c/code\u003e function.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ewheel\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/238\"\u003e#238\u003c/a\u003e: Add build tag to wheel metadata if specified.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/243\"\u003e#243\u003c/a\u003e: Update to support free-threading version of Python (3.13t).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/246\"\u003e#246\u003c/a\u003e: Support subdirectories in the dist-info directory. Thanks to Pieter P for the patch.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/248\"\u003e#248\u003c/a\u003e: Fix path normalisation issue caused by the fix for \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/246\"\u003e#246\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMove import in script wrapper to \u0026quot;if \u003cstrong\u003ename\u003c/strong\u003e == 'main'\u0026quot; clause.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003etests\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/245\"\u003e#245\u003c/a\u003e: Skip test_package_data if a SKIP_EXT_PACKAGE_DATA environment variable is present.\n\u003c/code\u003e\u003c/pre\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/aff2cbbc4e8a87b9440cb93472789a213813dbd6\"\u003e\u003ccode\u003eaff2cbb\u003c/code\u003e\u003c/a\u003e Finalise version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/3716c4bcccac19d0c0f2ce0d1272dd33996381b5\"\u003e\u003ccode\u003e3716c4b\u003c/code\u003e\u003c/a\u003e Update change log, widen exception catching in test.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/660bd337bf3217a7bd907c2ba8a2f8dd291ac793\"\u003e\u003ccode\u003e660bd33\u003c/code\u003e\u003c/a\u003e Changes for 0.4.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/56b4ad938455048fc79e599d369e02a1414e9946\"\u003e\u003ccode\u003e56b4ad9\u003c/code\u003e\u003c/a\u003e Guard script wrapper entrypoint import with if \u003cstrong\u003emain\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/242\"\u003e#242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/fe573669087cb1109fb0cc249bf0e06a5461324c\"\u003e\u003ccode\u003efe57366\u003c/code\u003e\u003c/a\u003e docs: update coverage results link (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/250\"\u003e#250\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/c3286e508bb60cd2337408d88eb614a93b612d8c\"\u003e\u003ccode\u003ec3286e5\u003c/code\u003e\u003c/a\u003e Temporarily exclude 3.13t on windows-latest.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/e6b83d3b0eeb11d8e7b053f11139d15aab89d196\"\u003e\u003ccode\u003ee6b83d3\u003c/code\u003e\u003c/a\u003e Normalize archive paths in dist-info (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/248\"\u003e#248\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/93baffeaa1773796d802bb761607a6466790dcba\"\u003e\u003ccode\u003e93baffe\u003c/code\u003e\u003c/a\u003e Skip no-longer-relevant test.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/83f656836f4b6d8175172fcb8370fbee691f2bec\"\u003e\u003ccode\u003e83f6568\u003c/code\u003e\u003c/a\u003e Support subdirectories in .dist-info (fixes \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/246\"\u003e#246\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/247\"\u003e#247\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/f918abd5d20879041704f9d719533b213a55ad48\"\u003e\u003ccode\u003ef918abd\u003c/code\u003e\u003c/a\u003e Update \u003ccode\u003etest_wheel.WheelTestCase.test_abi\u003c/code\u003e for freethreading (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/244\"\u003e#244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/distlib/compare/0.3.9...0.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `executing` from 2.2.0 to 2.2.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/bafb305d96572bc8fb668b6564787bbb4fff2809\"\u003e\u003ccode\u003ebafb305\u003c/code\u003e\u003c/a\u003e Add 3.14 to classifiers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/5ed2ba36c2df94c91fefabd919880ffe061dc0f2\"\u003e\u003ccode\u003e5ed2ba3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/alexmojaki/executing/issues/97\"\u003e#97\u003c/a\u003e from alexmojaki/3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/28095d447af50c49e154de5a27b9423611462f3d\"\u003e\u003ccode\u003e28095d4\u003c/code\u003e\u003c/a\u003e refactor: review changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/bb09dc677da7988a2c9555878b3727afa995b2c0\"\u003e\u003ccode\u003ebb09dc6\u003c/code\u003e\u003c/a\u003e refactor: some cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/dabc70ef5cc9a45eb57432822cdcf674af2e1db8\"\u003e\u003ccode\u003edabc70e\u003c/code\u003e\u003c/a\u003e fix: inst.argval can be a tuple for sometimes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/0772f918c432d6451594bcb6ffccba62e32e794c\"\u003e\u003ccode\u003e0772f91\u003c/code\u003e\u003c/a\u003e fix: removed comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/bacc5b699405e6f27d882dd2a71bb0ec30167f37\"\u003e\u003ccode\u003ebacc5b6\u003c/code\u003e\u003c/a\u003e fix: moved verification for CALL_INTRINSIC_2 back to 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/ec090751a1645cd14bfcb20a79b02371ffd6172b\"\u003e\u003ccode\u003eec09075\u003c/code\u003e\u003c/a\u003e test: added sample_results for 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/9405fed0769af3ee22dd4f433249f6494688638e\"\u003e\u003ccode\u003e9405fed\u003c/code\u003e\u003c/a\u003e fix: handle synthetic code to store annotation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/f09e4cd194aa3480c12a9f5afab3524d2a7222f2\"\u003e\u003ccode\u003ef09e4cd\u003c/code\u003e\u003c/a\u003e fix: TypeVar defaults\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/alexmojaki/executing/compare/v2.2.0...v2.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `filelock` from 3.18.0 to 3.19.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/py-filelock/releases\"\u003efilelock's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.19.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd 3.14t (free threading) to matrix by \u003ca href=\"https://github.com/paultiq\"\u003e\u003ccode\u003e@​paultiq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/433\"\u003etox-dev/filelock#433\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIncrease test coverage by \u003ca href=\"https://github.com/paultiq\"\u003e\u003ccode\u003e@​paultiq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/434\"\u003etox-dev/filelock#434\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/paultiq\"\u003e\u003ccode\u003e@​paultiq\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/433\"\u003etox-dev/filelock#433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.19.0...3.19.1\"\u003ehttps://github.com/tox-dev/filelock/compare/3.19.0...3.19.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.19.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for 3.14 by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/432\"\u003etox-dev/filelock#432\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.18.0...3.19.0\"\u003ehttps://github.com/tox-dev/filelock/compare/3.18.0...3.19.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/8d1009f08a6a64624fad91d1079062ef31b8c2b4\"\u003e\u003ccode\u003e8d1009f\u003c/code\u003e\u003c/a\u003e Update release.yaml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/66a428e97a874b44b0310072f6c974226f55a472\"\u003e\u003ccode\u003e66a428e\u003c/code\u003e\u003c/a\u003e Increase test coverage (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/434\"\u003e#434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/0dfc86eebd2c76ae959a409bcbc3112cc1ec5890\"\u003e\u003ccode\u003e0dfc86e\u003c/code\u003e\u003c/a\u003e add 3.14 to matrix (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/433\"\u003e#433\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/0c54837e318ebe8a692b529722430cb38134bf7c\"\u003e\u003ccode\u003e0c54837\u003c/code\u003e\u003c/a\u003e Add support for 3.14 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/432\"\u003e#432\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/77d02f5ada3a1a92167b1beee35a7815cbde0fcf\"\u003e\u003ccode\u003e77d02f5\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/430\"\u003e#430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/bc972b33bf253bb9f08db32b19ffd4119a74706e\"\u003e\u003ccode\u003ebc972b3\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/429\"\u003e#429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/78d02cb5ff42b22a56ad1a36755361a6b4601765\"\u003e\u003ccode\u003e78d02cb\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/428\"\u003e#428\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/18cdb5d1c78a7a459463480303e9820f33cdf041\"\u003e\u003ccode\u003e18cdb5d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/427\"\u003e#427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/b198a096d2bae58596479497d18a82bbeec515c8\"\u003e\u003ccode\u003eb198a09\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/426\"\u003e#426\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/6b097e76de603d9be6a24c5058b6fe53ef003afd\"\u003e\u003ccode\u003e6b097e7\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/425\"\u003e#425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/py-filelock/compare/3.18.0...3.19.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gitpython` from 3.1.44 to 3.1.45\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/gitpython-developers/GitPython/releases\"\u003egitpython's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.1.45\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix various version-related CI breakages by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1987\"\u003egitpython-developers/GitPython#1987\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo some CI cleanup to make reports clearer and future changes easier by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1989\"\u003egitpython-developers/GitPython#1989\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAffirm that gitdb and smmap advisories can also be created by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1991\"\u003egitpython-developers/GitPython#1991\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix links to gitdb and smmap \u003ccode\u003eSECURITY.md\u003c/code\u003e files by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1992\"\u003egitpython-developers/GitPython#1992\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest Python 3.13 regularly on Ubuntu and macOS on CI by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1990\"\u003egitpython-developers/GitPython#1990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRepo.rev_parse: Handle \u003c!-- raw HTML omitted --\u003e^{commit} correctly by \u003ca href=\"https://github.com/flichtenheld\"\u003e\u003ccode\u003e@​flichtenheld\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1996\"\u003egitpython-developers/GitPython#1996\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFuzzing: Fix Broken Fuzz Test for Git Submodule Handling by \u003ca href=\"https://github.com/DaveLak\"\u003e\u003ccode\u003e@​DaveLak\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1997\"\u003egitpython-developers/GitPython#1997\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWork around Cygwin CI failure \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2004\"\u003e#2004\u003c/a\u003e, except for \u003ccode\u003etest_installation\u003c/code\u003e by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2007\"\u003egitpython-developers/GitPython#2007\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMark \u003ccode\u003etest_installation\u003c/code\u003e xfail on Cygwin CI by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2009\"\u003egitpython-developers/GitPython#2009\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eIndexFile._to_relative_path\u003c/code\u003e - fix case where absolute path gets stripped of trailing slash by \u003ca href=\"https://github.com/kamilkozik7\"\u003e\u003ccode\u003e@​kamilkozik7\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2012\"\u003egitpython-developers/GitPython#2012\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse WSL1 on CI by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2010\"\u003egitpython-developers/GitPython#2010\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest free-threaded Python (but only on Linux) by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2011\"\u003egitpython-developers/GitPython#2011\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse property decorator to support typing by \u003ca href=\"https://github.com/Andrej730\"\u003e\u003ccode\u003e@​Andrej730\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2015\"\u003egitpython-developers/GitPython#2015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix some incorrect sphinx markups in the docstrings by \u003ca href=\"https://github.com/koyuki7w\"\u003e\u003ccode\u003e@​koyuki7w\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2018\"\u003egitpython-developers/GitPython#2018\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ereplace quansight-labs/setup-python with actions/setup-python by \u003ca href=\"https://github.com/ngoldbaum\"\u003e\u003ccode\u003e@​ngoldbaum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2019\"\u003egitpython-developers/GitPython#2019\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eremove type assertions from util.py by \u003ca href=\"https://github.com/gcmarx\"\u003e\u003ccode\u003e@​gcmarx\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2028\"\u003egitpython-developers/GitPython#2028\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ecorrectly handle \u003ccode\u003euname-cmd\u003c/code\u003e that doesn't point to an executable file by \u003ca href=\"https://github.com/gcmarx\"\u003e\u003ccode\u003e@​gcmarx\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2026\"\u003egitpython-developers/GitPython#2026\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse newer ruff style by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2031\"\u003egitpython-developers/GitPython#2031\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHave CodeQL scan GitHub Actions workflows as well as Python code by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2032\"\u003egitpython-developers/GitPython#2032\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSpecify explicit \u003ccode\u003econtents: read\u003c/code\u003e workflow permissions by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2033\"\u003egitpython-developers/GitPython#2033\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix GitConfigParser not removing quotes from values by \u003ca href=\"https://github.com/betaboon\"\u003e\u003ccode\u003e@​betaboon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2035\"\u003egitpython-developers/GitPython#2035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreserve quoted leading and trailing single-line config var whitespace by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2036\"\u003egitpython-developers/GitPython#2036\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor Git.{AutoInterrupt,CatFileContentStream} nesting by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2037\"\u003egitpython-developers/GitPython#2037\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Git.{AutoInterrupt,CatFileContentStream} static typing by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2039\"\u003egitpython-developers/GitPython#2039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CI \u003ccode\u003emypy\u003c/code\u003e command on free-threaded Python by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2040\"\u003egitpython-developers/GitPython#2040\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSplit Cygwin CI into non-\u003ccode\u003eperformance\u003c/code\u003e and \u003ccode\u003eperformance\u003c/code\u003e test jobs by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2042\"\u003egitpython-developers/GitPython#2042\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpress conditional \u003ccode\u003esetuptools\u003c/code\u003e requirement statically by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2043\"\u003egitpython-developers/GitPython#2043\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix ambiguous \u003ccode\u003e_safer_popen_windows\u003c/code\u003e comment by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2044\"\u003egitpython-developers/GitPython#2044\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClarify \u003ccode\u003eUSE_SHELL\u003c/code\u003e warning helper signature by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2045\"\u003egitpython-developers/GitPython#2045\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest \u003ccode\u003eConfigParser\u003c/code\u003e with whitespace outside the value by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2046\"\u003egitpython-developers/GitPython#2046\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove explicit empty \u003ccode\u003e\u0026quot;\u0026quot;\u003c/code\u003e handling in ConfigParser by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2047\"\u003egitpython-developers/GitPython#2047\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVarious style improvements by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2049\"\u003egitpython-developers/GitPython#2049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't remove quotes if \u003ccode\u003e\\\u003c/code\u003e or \u003ccode\u003e\u0026quot;\u003c/code\u003e are present inside by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2048\"\u003egitpython-developers/GitPython#2048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix updating submodules with relative urls by \u003ca href=\"https://github.com/david0\"\u003e\u003ccode\u003e@​david0\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2051\"\u003egitpython-developers/GitPython#2051\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRun \u003ccode\u003ecat_file.py\u003c/code\u003e fixture without site customizations by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2052\"\u003egitpython-developers/GitPython#2052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Cygwin installation on CI for \u003ccode\u003epip\u003c/code\u003e by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2053\"\u003egitpython-developers/GitPython#2053\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFail \u003ccode\u003etest_installation\u003c/code\u003e on warnings, and remove deprecated license classifier by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2054\"\u003egitpython-developers/GitPython#2054\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd clearer error version for unsupported index error by \u003ca href=\"https://github.com/tombedor\"\u003e\u003ccode\u003e@​tombedor\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2055\"\u003egitpython-developers/GitPython#2055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix name collision by \u003ca href=\"https://github.com/NMertsch\"\u003e\u003ccode\u003e@​NMertsch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2060\"\u003egitpython-developers/GitPython#2060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow relative path url in submodules for submodule_update by \u003ca href=\"https://github.com/t-webber\"\u003e\u003ccode\u003e@​t-webber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2062\"\u003egitpython-developers/GitPython#2062\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/flichtenheld\"\u003e\u003ccode\u003e@​flichtenheld\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1996\"\u003egitpython-developers/GitPython#1996\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kamilkozik7\"\u003e\u003ccode\u003e@​kamilkozik7\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2012\"\u003egitpython-developers/GitPython#2012\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koyuki7w\"\u003e\u003ccode\u003e@​koyuki7w\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2018\"\u003egitpython-developers/GitPython#2018\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ngoldbaum\"\u003e\u003ccode\u003e@​ngoldbaum\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2019\"\u003egitpython-developers/GitPython#2019\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gcmarx\"\u003e\u003ccode\u003e@​gcmarx\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2028\"\u003egitpython-developers/GitPython#2028\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/betaboon\"\u003e\u003ccode\u003e@​betaboon\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2035\"\u003egitpython-developers/GitPython#2035\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/gitpython-developers/GitPython/commit/6ba2c0a2f9ee7feffd7e079621c4845820180c9a\"\u003e\u003ccode\u003e6ba2c0a\u003c/code\u003e\u003c/a\u003e Prepare a new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/bbb3d00ac431dc7966f9715fb813792d234eca81\"\u003e\u003ccode\u003ebbb3d00\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2062\"\u003e#2062\u003c/a\u003e from t-webber/relative_path_submodules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/1ee1e781929074afd66bff1eae007bbee41d117e\"\u003e\u003ccode\u003e1ee1e78\u003c/code\u003e\u003c/a\u003e Add test case for cloning submodules with relative path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/ec2e2c8b894512e7a2364774d77cdd9db73f0566\"\u003e\u003ccode\u003eec2e2c8\u003c/code\u003e\u003c/a\u003e Allow relative path url in submodules for submodule_update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/4d529b71905edae12e4699170f7d9e0a665801b5\"\u003e\u003ccode\u003e4d529b7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2060\"\u003e#2060\u003c/a\u003e from NMertsch/2023-fix-gitconfigparser-autodoc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/80fd2c16211738156e65258381a17cdc429ddd08\"\u003e\u003ccode\u003e80fd2c1\u003c/code\u003e\u003c/a\u003e Don't treat sphinx warnings as errors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/a4aadb0c04bd13af824c14dcc39f88345aa5c440\"\u003e\u003ccode\u003ea4aadb0\u003c/code\u003e\u003c/a\u003e Fix name collision\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/4c7778a93134364cfff7b1597f9eda00a88323af\"\u003e\u003ccode\u003e4c7778a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2057\"\u003e#2057\u003c/a\u003e from gitpython-developers/dependabot/github_actions/...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/5033c3ffd8917d835658c22e84bd86103a2ae52d\"\u003e\u003ccode\u003e5033c3f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2056\"\u003e#2056\u003c/a\u003e from gitpython-developers/dependabot/github_actions/...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/496392b9bf781904421cbd171c0c5395a6fe330c\"\u003e\u003ccode\u003e496392b\u003c/code\u003e\u003c/a\u003e Bump cygwin/cygwin-install-action from 5 to 6\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/gitpython-developers/GitPython/compare/3.1.44...3.1.45\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `griffe` from 1.7.3 to 1.14.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/griffe/releases\"\u003egriffe's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.14.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.14.0\"\u003e1.14.0\u003c/a\u003e - 2025-09-05\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.13.0...1.14.0\"\u003eCompare with 1.13.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eDeprecations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003eon_alias\u003c/code\u003e event's signature changed from \u003ccode\u003eon_alias(self, *, node: AST | ObjectNode, alias: Alias, agent: Visitor | Inspector, **kwargs)\u003c/code\u003e (an [analysis event][analysis-events]) to \u003ccode\u003eon_alias(self, *, alias: Alias, loader: GriffeLoader, **kwargs)\u003c/code\u003e ([a load event][load-events]). Use the new signature, or rename your method to \u003ccode\u003eon_alias_instance\u003c/code\u003e to keep the old signature (\u003ccode\u003eon_alias_instance\u003c/code\u003e is a new analysis event that replaces the old \u003ccode\u003eon_alias\u003c/code\u003e one). Backward compatibility is maintained until next major version.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003eon_wildcard_expansion\u003c/code\u003e event is deprecated. Instead, use the \u003ccode\u003eon_alias\u003c/code\u003e event, and check the [\u003ccode\u003ewildcard_imported\u003c/code\u003e][griffe.Alias.wildcard_imported] boolean attribute of aliases.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003eon_package_loaded\u003c/code\u003e event is renamed to \u003ccode\u003eon_package\u003c/code\u003e. Backward compatibility is maintained until next major version.\u003c/li\u003e\n\u003cli\u003eThe use of previously exposed Git-related utilities (\u003ccode\u003eassert_git_repo\u003c/code\u003e, \u003ccode\u003eget_repo_root\u003c/code\u003e, \u003ccode\u003eget_latest_tag\u003c/code\u003e and \u003ccode\u003etmp_worktree\u003c/code\u003e) is deprecated, as they are not a core part of the library's functionality. These utilities are now part of our internal API.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eanalysis\u003c/code\u003e attribute on objects and aliases, telling whether they were loaded through static or dynamic analysis, or created manually (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/d792a56fcecdf2003791356b857262cba8235f04\"\u003ed792a56\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eExpose Git info in objects, allowing to compute a new \u003ccode\u003esource_link\u003c/code\u003e property (see [Source information][source-information] in our docs) (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/2a8d824840b277d9941981583372abf36d3b17fe\"\u003e2a8d824\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/361\"\u003eIssue-361\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/python/issues/253\"\u003eIssue-mkdocstrings-python-253\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ewildcard_imported\u003c/code\u003e boolean attribute to aliases, deprecate \u003ccode\u003eon_wildcard_expansion\u003c/code\u003e event (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/821300db5d43af0ad7a4d82ff2df15a7fa5f63d6\"\u003e821300d\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eAdd load events that run once a tree is fully constructed, matching analysis events but safer to hook onto (see [Load events][load-events] in our docs) (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/77f928aeab857cb45564462a4f849c2df2cca99a\"\u003e77f928a\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/346\"\u003eIssue-346\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eProvide typed dicts for docstring options (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/945880a04dcbe6eae31afa5021766533c73edc91\"\u003e945880a\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/370\"\u003eIssue-370\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow parenthesized type to be glued (no space) to parameter name in Google-style docstrings (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/4b6f939e12540ce4fb6941f0c95253e3111e7f6f\"\u003e4b6f939\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/375\"\u003eIssue-375\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove deprecation warnings for \u003ccode\u003eon_alias\u003c/code\u003e and \u003ccode\u003eon_package_loaded\u003c/code\u003e (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/d3e50db055715d1a2b794d7e1cf47e6fdc1c305b\"\u003ed3e50db\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.13.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.13.0\"\u003e1.13.0\u003c/a\u003e - 2025-08-26\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.12.1...1.13.0\"\u003eCompare with 1.12.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eis_init_method\u003c/code\u003e property (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5417b7040f8061696c380d9cd4ed2852bf96adf3\"\u003e5417b70\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIncrease maximum recursion limit when calling as a CLI (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5f0d9e61fbac89247bcae06a7010e28e381a5656\"\u003e5f0d9e6\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/402\"\u003eIssue-402\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.12.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.12.1\"\u003e1.12.1\u003c/a\u003e - 2025-08-14\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.12.0...1.12.1\"\u003eCompare with 1.12.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReduce size of JSON dumps by removing keys with null values (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/58227eb377fee66ef66237d7cbed35156ff1fed1\"\u003e58227eb\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/403\"\u003eIssue-403\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd fields to aliases when serializing (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5c9fee2b0c6e4f4e63c7648fa41b2e540f2ecc7f\"\u003e5c9fee2\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eAlso add the option to ignore missing type to the Sphinx parser (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8c9f803e748a659905b06445a349a6cfea948c1c\"\u003e8c9f803\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.12.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/griffe/blob/main/CHANGELOG.md\"\u003egriffe's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.14.0\"\u003e1.14.0\u003c/a\u003e - 2025-09-05\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.13.0...1.14.0\"\u003eCompare with 1.13.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eDeprecations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003eon_alias\u003c/code\u003e event's signature changed from \u003ccode\u003eon_alias(self, *, node: AST | ObjectNode, alias: Alias, agent: Visitor | Inspector, **kwargs)\u003c/code\u003e (an [analysis event][analysis-events]) to \u003ccode\u003eon_alias(self, *, alias: Alias, loader: GriffeLoader, **kwargs)\u003c/code\u003e ([a load event][load-events]). Use the new signature, or rename your method to \u003ccode\u003eon_alias_instance\u003c/code\u003e to keep the old signature (\u003ccode\u003eon_alias_instance\u003c/code\u003e is a new analysis event that replaces the old \u003ccode\u003eon_alias\u003c/code\u003e one). Backward compatibility is maintained until next major version.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003eon_wildcard_expansion\u003c/code\u003e event is deprecated. Instead, use the \u003ccode\u003eon_alias\u003c/code\u003e event, and check the [\u003ccode\u003ewildcard_imported\u003c/code\u003e][griffe.Alias.wildcard_imported] boolean attribute of aliases.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003eon_package_loaded\u003c/code\u003e event is renamed to \u003ccode\u003eon_package\u003c/code\u003e. Backward compatibility is maintained until next major version.\u003c/li\u003e\n\u003cli\u003eThe use of previously exposed Git-related utilities (\u003ccode\u003eassert_git_repo\u003c/code\u003e, \u003ccode\u003eget_repo_root\u003c/code\u003e, \u003ccode\u003eget_latest_tag\u003c/code\u003e and \u003ccode\u003etmp_worktree\u003c/code\u003e) is deprecated, as they are not a core part of the library's functionality. These utilities are now part of our internal API.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eanalysis\u003c/code\u003e attribute on objects and aliases, telling whether they were loaded through static or dynamic analysis, or created manually (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/d792a56fcecdf2003791356b857262cba8235f04\"\u003ed792a56\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eExpose Git info in objects, allowing to compute a new \u003ccode\u003esource_link\u003c/code\u003e property (see [Source information][source-information] in our docs) (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/2a8d824840b277d9941981583372abf36d3b17fe\"\u003e2a8d824\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/361\"\u003eIssue-361\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/python/issues/253\"\u003eIssue-mkdocstrings-python-253\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ewildcard_imported\u003c/code\u003e boolean attribute to aliases, deprecate \u003ccode\u003eon_wildcard_expansion\u003c/code\u003e event (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/821300db5d43af0ad7a4d82ff2df15a7fa5f63d6\"\u003e821300d\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eAdd load events that run once a tree is fully constructed, matching analysis events but safer to hook onto (see [Load events][load-events] in our docs) (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/77f928aeab857cb45564462a4f849c2df2cca99a\"\u003e77f928a\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/346\"\u003eIssue-346\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eProvide typed dicts for docstring options (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/945880a04dcbe6eae31afa5021766533c73edc91\"\u003e945880a\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/370\"\u003eIssue-370\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow parenthesized type to be glued (no space) to parameter name in Google-style docstrings (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/4b6f939e12540ce4fb6941f0c95253e3111e7f6f\"\u003e4b6f939\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/375\"\u003eIssue-375\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove deprecation warnings for \u003ccode\u003eon_alias\u003c/code\u003e and \u003ccode\u003eon_package_loaded\u003c/code\u003e (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/d3e50db055715d1a2b794d7e1cf47e6fdc1c305b\"\u003ed3e50db\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.13.0\"\u003e1.13.0\u003c/a\u003e - 2025-08-26\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.12.1...1.13.0\"\u003eCompare with 1.12.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eis_init_method\u003c/code\u003e property (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5417b7040f8061696c380d9cd4ed2852bf96adf3\"\u003e5417b70\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eB...\n\n_Description has been truncated_","html_url":"https://github.com/pycontribs/subprocess-tee/pull/191","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/pycontribs%2Fsubprocess-tee/issues/191","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/191/packages"}},{"old_version":"8.4.0","new_version":"8.4.1","update_type":"patch","path":null,"pr_created_at":"2025-08-31T22:12:44.000Z","version_change":"8.4.0 → 8.4.1","issue":{"uuid":"2788096128","node_id":"PR_kwDOEkpJIs6mLviA","number":189,"state":"open","title":"Bump the dependencies group across 1 directory with 34 updates","user":"dependabot[bot]","labels":["skip-changelog","dependabot-deps-updates"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-08-31T22:12:44.000Z","updated_at":"2025-08-31T22:12:45.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"dependencies","update_count":34,"packages":[{"name":"mkdocstrings","old_version":"0.29.1","new_version":"0.30.0","repository_url":"https://github.com/mkdocstrings/mkdocstrings"},{"name":"argparse-manpage","old_version":"4.6","new_version":"4.7","repository_url":"https://github.com/praiskup/argparse-manpage"},{"name":"backrefs","old_version":"5.8","new_version":"6.0.1","repository_url":"https://github.com/facelessuser/backrefs"},{"name":"bracex","old_version":"2.5.post1","new_version":"2.6","repository_url":"https://github.com/facelessuser/bracex"},{"name":"cachetools","old_version":"6.0.0","new_version":"6.2.0","repository_url":"https://github.com/tkem/cachetools"},{"name":"certifi","old_version":"2025.6.15","new_version":"2025.8.3","repository_url":"https://github.com/certifi/python-certifi"},{"name":"charset-normalizer","old_version":"3.4.2","new_version":"3.4.3","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"coverage","old_version":"7.9.1","new_version":"7.10.6","repository_url":"https://github.com/nedbat/coveragepy"},{"name":"cryptography","old_version":"45.0.4","new_version":"45.0.6","repository_url":"https://github.com/pyca/cryptography"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.0","repository_url":"https://github.com/pypa/distlib"},{"name":"filelock","old_version":"3.18.0","new_version":"3.19.1","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"gitpython","old_version":"3.1.44","new_version":"3.1.45","repository_url":"https://github.com/gitpython-developers/GitPython"},{"name":"griffe","old_version":"1.7.3","new_version":"1.13.0","repository_url":"https://github.com/mkdocstrings/griffe"},{"name":"importlib-resources","old_version":"5.0.7","new_version":"6.5.2","repository_url":"https://github.com/python/importlib_resources"},{"name":"jsonschema","old_version":"4.24.0","new_version":"4.25.1","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"markdown","old_version":"3.8","new_version":"3.8.2","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"mkdocs-autorefs","old_version":"1.4.2","new_version":"1.4.3","repository_url":"https://github.com/mkdocstrings/autorefs"},{"name":"mkdocs-material","old_version":"9.6.14","new_version":"9.6.18","repository_url":"https://github.com/squidfunk/mkdocs-material"},{"name":"mkdocstrings-python","old_version":"1.16.12","new_version":"1.18.2","repository_url":"https://github.com/mkdocstrings/python"},{"name":"parso","old_version":"0.8.4","new_version":"0.8.5","repository_url":"https://github.com/davidhalter/parso"},{"name":"pbr","old_version":"6.1.1","new_version":"7.0.1"},{"name":"pillow","old_version":"11.2.1","new_version":"11.3.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"platformdirs","old_version":"4.3.8","new_version":"4.4.0","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"prompt-toolkit","old_version":"3.0.51","new_version":"3.0.52","repository_url":"https://github.com/prompt-toolkit/python-prompt-toolkit"},{"name":"pygments","old_version":"2.19.1","new_version":"2.19.2","repository_url":"https://github.com/pygments/pygments"},{"name":"pymdown-extensions","old_version":"10.15","new_version":"10.16.1","repository_url":"https://github.com/facelessuser/pymdown-extensions"},{"name":"pytest","old_version":"8.4.0","new_version":"8.4.1","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-sugar","old_version":"1.0.0","new_version":"1.1.1","repository_url":"https://github.com/Teemu/pytest-sugar"},{"name":"pytest-xdist","old_version":"3.7.0","new_version":"3.8.0","repository_url":"https://github.com/pytest-dev/pytest-xdist"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"rich","old_version":"14.0.0","new_version":"14.1.0","repository_url":"https://github.com/Textualize/rich"},{"name":"rpds-py","old_version":"0.25.1","new_version":"0.27.1","repository_url":"https://github.com/crate-py/rpds"},{"name":"urllib3","old_version":"2.4.0","new_version":"2.5.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"wcmatch","old_version":"10.0","new_version":"10.1","repository_url":"https://github.com/facelessuser/wcmatch"}],"path":null,"ecosystem":"conda"},"body":"Bumps the dependencies group with 34 updates in the /.config directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [mkdocstrings](https://github.com/mkdocstrings/mkdocstrings) | `0.29.1` | `0.30.0` |\n| [argparse-manpage](https://github.com/praiskup/argparse-manpage) | `4.6` | `4.7` |\n| [backrefs](https://github.com/facelessuser/backrefs) | `5.8` | `6.0.1` |\n| [bracex](https://github.com/facelessuser/bracex) | `2.5.post1` | `2.6` |\n| [cachetools](https://github.com/tkem/cachetools) | `6.0.0` | `6.2.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.6.15` | `2025.8.3` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.2` | `3.4.3` |\n| [coverage](https://github.com/nedbat/coveragepy) | `7.9.1` | `7.10.6` |\n| [cryptography](https://github.com/pyca/cryptography) | `45.0.4` | `45.0.6` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.0` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.18.0` | `3.19.1` |\n| [gitpython](https://github.com/gitpython-developers/GitPython) | `3.1.44` | `3.1.45` |\n| [griffe](https://github.com/mkdocstrings/griffe) | `1.7.3` | `1.13.0` |\n| [importlib-resources](https://github.com/python/importlib_resources) | `5.0.7` | `6.5.2` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.24.0` | `4.25.1` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.8` | `3.8.2` |\n| [mkdocs-autorefs](https://github.com/mkdocstrings/autorefs) | `1.4.2` | `1.4.3` |\n| [mkdocs-material](https://github.com/squidfunk/mkdocs-material) | `9.6.14` | `9.6.18` |\n| [mkdocstrings-python](https://github.com/mkdocstrings/python) | `1.16.12` | `1.18.2` |\n| [parso](https://github.com/davidhalter/parso) | `0.8.4` | `0.8.5` |\n| [pbr](https://docs.openstack.org/pbr/latest/) | `6.1.1` | `7.0.1` |\n| [pillow](https://github.com/python-pillow/Pillow) | `11.2.1` | `11.3.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.8` | `4.4.0` |\n| [prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) | `3.0.51` | `3.0.52` |\n| [pygments](https://github.com/pygments/pygments) | `2.19.1` | `2.19.2` |\n| [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions) | `10.15` | `10.16.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.0` | `8.4.1` |\n| [pytest-sugar](https://github.com/Teemu/pytest-sugar) | `1.0.0` | `1.1.1` |\n| [pytest-xdist](https://github.com/pytest-dev/pytest-xdist) | `3.7.0` | `3.8.0` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [rich](https://github.com/Textualize/rich) | `14.0.0` | `14.1.0` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.25.1` | `0.27.1` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.4.0` | `2.5.0` |\n| [wcmatch](https://github.com/facelessuser/wcmatch) | `10.0` | `10.1` |\n\n\nUpdates `mkdocstrings` from 0.29.1 to 0.30.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases\"\u003emkdocstrings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.30.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/0.30.0\"\u003e0.30.0\u003c/a\u003e - 2025-07-23\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/0.29.1...0.30.0\"\u003eCompare with 0.29.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003edata-skip-inventory\u003c/code\u003e boolean attribute for elements to skip registration in local inventory (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f856160b03b2c27e1d75fdf4f315c273cb9d9247\"\u003ef856160\u003c/a\u003e by Bartosz Sławecki). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/issues/671\"\u003eIssue-671\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/774\"\u003ePR-774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd I18N support (translations) (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/2b4ed541bc707e55d959092d950ebeecc4fbd136\"\u003e2b4ed54\u003c/a\u003e by Nyuan Zhang). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/645\"\u003ePR-645\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/blob/main/CHANGELOG.md\"\u003emkdocstrings's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/0.30.0\"\u003e0.30.0\u003c/a\u003e - 2025-07-23\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/0.29.1...0.30.0\"\u003eCompare with 0.29.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003edata-skip-inventory\u003c/code\u003e boolean attribute for elements to skip registration in local inventory (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f856160b03b2c27e1d75fdf4f315c273cb9d9247\"\u003ef856160\u003c/a\u003e by Bartosz Sławecki). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/issues/671\"\u003eIssue-671\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/774\"\u003ePR-774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd I18N support (translations) (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/2b4ed541bc707e55d959092d950ebeecc4fbd136\"\u003e2b4ed54\u003c/a\u003e by Nyuan Zhang). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/645\"\u003ePR-645\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/2be445f054c1191d308af7ee0cc881e359f5a4c7\"\u003e\u003ccode\u003e2be445f\u003c/code\u003e\u003c/a\u003e chore: Prepare release 0.30.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f856160b03b2c27e1d75fdf4f315c273cb9d9247\"\u003e\u003ccode\u003ef856160\u003c/code\u003e\u003c/a\u003e feat: Add \u003ccode\u003edata-skip-inventory\u003c/code\u003e boolean attribute for elements to skip regist...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/2b4ed541bc707e55d959092d950ebeecc4fbd136\"\u003e\u003ccode\u003e2b4ed54\u003c/code\u003e\u003c/a\u003e feat: Add I18N support (translations)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/51f217f38af9475415f758866697158d9010967d\"\u003e\u003ccode\u003e51f217f\u003c/code\u003e\u003c/a\u003e chore: Template upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/b1da3d02c4f432f603cbb0004bb35099327706db\"\u003e\u003ccode\u003eb1da3d0\u003c/code\u003e\u003c/a\u003e ci: Ignore Ruff warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/d5bf4e1ed0370853f968b210ad77913faf106eed\"\u003e\u003ccode\u003ed5bf4e1\u003c/code\u003e\u003c/a\u003e docs: Update link to YAML idiosyncrasies\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/0.29.1...0.30.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `argparse-manpage` from 4.6 to 4.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/praiskup/argparse-manpage/releases\"\u003eargparse-manpage's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eargparse-manpage v4.7\u003c/h2\u003e\n\u003cp\u003eNews in v4.7\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003esys.stdout used instead of /dev/stdout\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efixed build compatibility with newer setuptools\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efixed deprecation warnings for datetime and setuptools\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003enew compat method for handling SOURCE_DATE_EPOCH\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/praiskup/argparse-manpage/blob/main/NEWS\"\u003eargparse-manpage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cpre\u003e\u003ccode\u003e\nWARNING: The 'build_manpage' setup.py command will be removed v5\nWARNING: We'll drop the Python 2.7 support in v5\n\u003cp\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eNews in v4.7\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003esys.stdout used instead of /dev/stdout\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efixed build compatibility with newer setuptools\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efixed deprecation warnings for datetime and setuptools\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003enew compat method for handling SOURCE_DATE_EPOCH\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre\u003e\u003ccode\u003e\nNews in v4.6\n\u003cul\u003e\n\u003cli\u003eFix the build against Python 3.13\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eNews in v4.5\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWe newly provide \u003ccode\u003ebuild_manpages.build_py\u003c/code\u003e and \u003ccode\u003ebuild_manpages.install\u003c/code\u003e\ncommand classes that are re-usable from \u003ccode\u003epyproject.toml\u003c/code\u003e.  No need to\nprovide \u003ccode\u003esetup.py\u003c/code\u003e because of \u003ccode\u003eargparse-manpage\u003c/code\u003e.  Solved issue#85.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre\u003e\u003ccode\u003e\nNews in v4.4\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003eprog=\u003c/code\u003e specifier (in setup.py/setup.cfg/pyproject.toml) is now\u003cbr /\u003e\nbetter handled so it doesn't conflict with ArgumentParser(prog=..).\u003cbr /\u003e\nFixes \u003ca href=\"https://redirect.github.com/praiskup/argparse-manpage/issues/79\"\u003epraiskup/argparse-manpage#79\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eNews in v4.3\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe pyproject.toml parsing feature now depends on the python3-tomli library\u003cbr /\u003e\ninstead of python-toml for \u0026quot;python_environment \u0026gt;3, \u0026lt;=3.10\u0026quot;.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eNews in v4.2\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for pyproject.toml specification of manpages added.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/7883becca340aa3ea124143e032848a7b2bdf84b\"\u003e\u003ccode\u003e7883bec\u003c/code\u003e\u003c/a\u003e Release v4.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/765389ed4ee835c09451823d7fbfe22b0dc1674a\"\u003e\u003ccode\u003e765389e\u003c/code\u003e\u003c/a\u003e Move the SOURCE_DATE_EPOCH hack on one place\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/a06ed9c1f03360f8089819c8e845cd670687eb64\"\u003e\u003ccode\u003ea06ed9c\u003c/code\u003e\u003c/a\u003e ci: fix RPM build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/c985432ee15824c43c75548c7ec1bd6f105a7f22\"\u003e\u003ccode\u003ec985432\u003c/code\u003e\u003c/a\u003e Fix deprecation warnings for datetime and setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/306658941368ff0c2dfe2e4fa29b889fb5bbeb2b\"\u003e\u003ccode\u003e3066589\u003c/code\u003e\u003c/a\u003e ci: fedora-tox update list of environments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/b3a2c50e2abc47bd822d848864a80e35251a3147\"\u003e\u003ccode\u003eb3a2c50\u003c/code\u003e\u003c/a\u003e ci: enable ruff \u0026amp; bump deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/6dc54a5272e70b081af728958fd7554a6b0372f3\"\u003e\u003ccode\u003e6dc54a5\u003c/code\u003e\u003c/a\u003e Fix compatibility with newer setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/29f89bba536cf28f6ed66721367ff2ee3f6209b7\"\u003e\u003ccode\u003e29f89bb\u003c/code\u003e\u003c/a\u003e Fix some comments about sys.argv alteration for usage message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/ade76cc8ef49ec804955c6b4027dbae52d482034\"\u003e\u003ccode\u003eade76cc\u003c/code\u003e\u003c/a\u003e Use sys.stdout instead of /dev/stdout\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/praiskup/argparse-manpage/compare/v4.6...v4.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `backrefs` from 5.8 to 6.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facelessuser/backrefs/releases\"\u003ebackrefs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Fix a regression that created an ASCII binary property that would override the ASCII block property.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: POSIX character classes will now always use POSIX compatibility rules instead of Unicode standard rules,\nif any are specified in the Unicode specification. The affected character classes are: \u003ccode\u003e[[:alnum:]]\u003c/code\u003e, \u003ccode\u003e[[:digit:]]\u003c/code\u003e,\n\u003ccode\u003e[[:xdigit:]]\u003c/code\u003e, and  \u003ccode\u003e[[:punct:]]\u003c/code\u003e. To explicitly use standard Unicode rules for these compatibility properties, use\nthe Unicode property form instead: \u003ccode\u003e[\\p{Alnum}]\u003c/code\u003e, \u003ccode\u003e[\\p{Digit}]\u003c/code\u003e, \u003ccode\u003e[\\p{Punct}]\u003c/code\u003e, or \u003ccode\u003e[\\p{XDigit}]\u003c/code\u003e. This has changed\nto ensure no confusion for users expecting compatible POSIX style character class properties.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Scoped ASCII/Unicode flags (\u003ccode\u003e(?a:pattern)\u003c/code\u003e/\u003ccode\u003e(?u:pattern)\u003c/code\u003e) should be respected for Unicode properties in\n\u003ccode\u003ebre\u003c/code\u003e and will ensure ASCII or Unicode range if used.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Fix issues related to detecting disabled scoped flags.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Add support for Python 3.14.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eENHANCE\u003c/strong\u003e: Switch to deploying with PyPI's \u0026quot;Trusted Publisher\u0026quot;.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/63f8a4b14750828b7c1e385844fd36f6f89859e4\"\u003e\u003ccode\u003e63f8a4b\u003c/code\u003e\u003c/a\u003e Fix grammar\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/7f4bf611e6e7fcc2aa4e0eba2872b5f51b7fc908\"\u003e\u003ccode\u003e7f4bf61\u003c/code\u003e\u003c/a\u003e Rework POSIX alias\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/956df5f387f1958110e5a7cf2a98d42a8309d9b6\"\u003e\u003ccode\u003e956df5f\u003c/code\u003e\u003c/a\u003e Fix ASCII block regression\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/7a948f083c3c87114a8dd87c95dff1893f3af82a\"\u003e\u003ccode\u003e7a948f0\u003c/code\u003e\u003c/a\u003e Clean up code and add more comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/9b2e406be36c1e0fc72651adbc7d2d63c4151483\"\u003e\u003ccode\u003e9b2e406\u003c/code\u003e\u003c/a\u003e Add more flag tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/47d62b1270ca7f1717e7acdb56e8e6ed3e9e8f10\"\u003e\u003ccode\u003e47d62b1\u003c/code\u003e\u003c/a\u003e Handle enable/disable properly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/8e7596700b913e13f478da57e0ba0965f2d9ed3b\"\u003e\u003ccode\u003e8e75967\u003c/code\u003e\u003c/a\u003e Fix issues with scoped flags (\u003ca href=\"https://redirect.github.com/facelessuser/backrefs/issues/192\"\u003e#192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/0df8e7746d3ea31824af97ea4ed713a3facded5b\"\u003e\u003ccode\u003e0df8e77\u003c/code\u003e\u003c/a\u003e POSIX character classes should use POSIX compatibility rules by default (\u003ca href=\"https://redirect.github.com/facelessuser/backrefs/issues/191\"\u003e#191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/31fd8c5c0338eefe41452d52f99012c0fecfdd82\"\u003e\u003ccode\u003e31fd8c5\u003c/code\u003e\u003c/a\u003e Call mkdocs directly on deploy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/8b3a24bfc1cacde6fc9ab4edfaed0f5a9206c554\"\u003e\u003ccode\u003e8b3a24b\u003c/code\u003e\u003c/a\u003e Fix deploy logic\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/facelessuser/backrefs/compare/5.8...6.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bracex` from 2.5.post1 to 2.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facelessuser/bracex/releases\"\u003ebracex's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Drop support for Python 3.8.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Add support for Python 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/bracex/commit/6d109c55372f0d5086adb7cf84a951cc06391a69\"\u003e\u003ccode\u003e6d109c5\u003c/code\u003e\u003c/a\u003e Add trusted publishing and support for Python 3.14 (\u003ca href=\"https://redirect.github.com/facelessuser/bracex/issues/44\"\u003e#44\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/bracex/commit/c14d46fb495a8fdcd0ec51d4dd42aa587807407d\"\u003e\u003ccode\u003ec14d46f\u003c/code\u003e\u003c/a\u003e Add security policy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/bracex/commit/14645af4bf4de0e1abe4fd6c29bf98871f549273\"\u003e\u003ccode\u003e14645af\u003c/code\u003e\u003c/a\u003e Typos: remove duplicate words\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/facelessuser/bracex/compare/2.5.post1...2.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachetools` from 6.0.0 to 6.2.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev6.2.0 (2025-08-25)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove general \u003ccode\u003eRRCache\u003c/code\u003e performance by storing cache keys in an\nadditional sequence container.  Note that this will increase memory\nconsumption.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more unit tests.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.1.0 (2025-06-16)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove \u003ccode\u003eLFUCache\u003c/code\u003e insertion performance by switching to an\nimplementation based on the \u003ccode\u003ecacheing \u0026lt;https://pypi.org/project/cacheing/\u0026gt;\u003c/code\u003e_ library.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate CI environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/4a238adc490e81db58d843b011afdbe3dd9097a5\"\u003e\u003ccode\u003e4a238ad\u003c/code\u003e\u003c/a\u003e Release v6.2.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/9d511b769f8fb58981fb77fece846984aaaf49e6\"\u003e\u003ccode\u003e9d511b7\u003c/code\u003e\u003c/a\u003e Improve unit tests.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/79aa8c7c0eacd5d75e154bc23687ecdaf9ad1d75\"\u003e\u003ccode\u003e79aa8c7\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/356\"\u003e#356\u003c/a\u003e: Improve RRCache performance.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/bb6d71a745785429b14aae30b7752f4765dc35c3\"\u003e\u003ccode\u003ebb6d71a\u003c/code\u003e\u003c/a\u003e Release v6.1.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/77a9c59e3324496a79e6c4d5a7b5bfdb9a7f7f42\"\u003e\u003ccode\u003e77a9c59\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/260\"\u003e#260\u003c/a\u003e: Use LFUCache implementation based on Blake Reid's \u0026quot;cacheing\u0026quot; library.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/b1d4eb2972ca8f0ab49e22eae3bb47c1eb8b552c\"\u003e\u003ccode\u003eb1d4eb2\u003c/code\u003e\u003c/a\u003e Bump codecov/codecov-action from 5.4.2 to 5.4.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/820b154494e91aa5bfe63a3fa2033c63a9c84603\"\u003e\u003ccode\u003e820b154\u003c/code\u003e\u003c/a\u003e Refactor \u003ca href=\"https://github.com/cachedmethod\"\u003e\u003ccode\u003e@​cachedmethod\u003c/code\u003e\u003c/a\u003e unit tests.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tkem/cachetools/compare/v6.0.0...v6.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2025.6.15 to 2025.8.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/a97d9ad8f87c382378dddc0b0b33b9770932404e\"\u003e\u003ccode\u003ea97d9ad\u003c/code\u003e\u003c/a\u003e 2025.08.03 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ddd90c6d726f174c1e5820379dac0f2a8fc723a1\"\u003e\u003ccode\u003eddd90c6\u003c/code\u003e\u003c/a\u003e 2025.07.14 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/359\"\u003e#359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/d905221c916d51077f5c8071a0f7aa2df2a37c52\"\u003e\u003ccode\u003ed905221\u003c/code\u003e\u003c/a\u003e 2025.07.09 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.06.15...2025.08.03\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.4.2 to 3.4.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.4.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/46f662da20edeced520c8819965a37eefbbc85de\"\u003e\u003ccode\u003e46f662d\u003c/code\u003e\u003c/a\u003e Release 3.4.3 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/638\"\u003e#638\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/1a059b26c155dd5fca408b0e0145c930633c4bf2\"\u003e\u003ccode\u003e1a059b2\u003c/code\u003e\u003c/a\u003e :wrench: skip building on freethreaded as we're not confident it is stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/2275e3d3fea2bf6232661f1e9c21e7b81428e2a6\"\u003e\u003ccode\u003e2275e3d\u003c/code\u003e\u003c/a\u003e :pencil: final note in CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/c96acdfdb34b5b1deb6f70803167bae89b209832\"\u003e\u003ccode\u003ec96acdf\u003c/code\u003e\u003c/a\u003e :pencil: update release date on CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/43e5460518003df24ad1a3e7b5c0a34445395012\"\u003e\u003ccode\u003e43e5460\u003c/code\u003e\u003c/a\u003e :pencil: update README.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f277074e281a070cfa64fc91c46f8291043fc37c\"\u003e\u003ccode\u003ef277074\u003c/code\u003e\u003c/a\u003e :wrench: automatically lower confidence on small bytes str on non Unicode res...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/15ae2411072b5e026f2c9d6ec81b55f75af7dcf2\"\u003e\u003ccode\u003e15ae241\u003c/code\u003e\u003c/a\u003e :bug: automatically fallback on valid UTF-16 or UTF-32 even if the md says it...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/37397c1799a05454ab42fbbc94a7643cdb277924\"\u003e\u003ccode\u003e37397c1\u003c/code\u003e\u003c/a\u003e :wrench: enable 3.14 in nox test_mypyc session\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/cb82537ecad195f48383b92e330351cea1fc6bc8\"\u003e\u003ccode\u003ecb82537\u003c/code\u003e\u003c/a\u003e :rewind: revert license due to compat python 3.7 issue setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/6a2efeb4c6e205964b61008b0c36ddf88c321543\"\u003e\u003ccode\u003e6a2efeb\u003c/code\u003e\u003c/a\u003e :art: fix linter errors\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.2...3.4.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.9.1 to 7.10.6\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.10.6 — 2025-08-29\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003esource\u003c/code\u003e directories were not properly communicated to subprocesses\nthat ran in different directories, as reported in \u003ccode\u003eissue 1499\u003c/code\u003e_.  This is now\nfixed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance: \u003ccode\u003eAlex Gaynor continues fine-tuning \u0026lt;pull 2038_\u0026gt;\u003c/code\u003e_ the speed of\ncombination, especially with many contexts.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1499: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1499\"\u003enedbat/coveragepy#1499\u003c/a\u003e\n.. _pull 2038: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/2038\"\u003enedbat/coveragepy#2038\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-10-5:\u003c/p\u003e\n\u003ch2\u003eVersion 7.10.5 — 2025-08-23\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBig speed improvements for \u003ccode\u003ecoverage combine\u003c/code\u003e: it's now about twice as\nfast! Huge thanks to Alex Gaynor for pull requests \u003ccode\u003e2032 \u0026lt;pull 2032_\u0026gt;\u003c/code\u003e\u003cem\u003e,\n\u003ccode\u003e2033 \u0026lt;pull 2033_\u0026gt;\u003c/code\u003e\u003c/em\u003e, and \u003ccode\u003e2034 \u0026lt;pull 2034_\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _pull 2032: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/2032\"\u003enedbat/coveragepy#2032\u003c/a\u003e\n.. _pull 2033: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/2033\"\u003enedbat/coveragepy#2033\u003c/a\u003e\n.. _pull 2034: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/2034\"\u003enedbat/coveragepy#2034\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-10-4:\u003c/p\u003e\n\u003ch2\u003eVersion 7.10.4 — 2025-08-16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003epatch = fork\u003c/code\u003e for times when the built-in forking support is\ninsufficient.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003epatch = execv\u003c/code\u003e also inherits the entire coverage configuration now.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _changes_7-10-3:\u003c/p\u003e\n\u003ch2\u003eVersion 7.10.3 — 2025-08-10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixes for \u003ccode\u003epatch = subprocess\u003c/code\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eIf subprocesses spawned yet more subprocesses simultaneously, some coverage\ncould be missed.  This is now fixed, closing \u003ccode\u003eissue 2024\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIf subprocesses were created in other directories, their data files were\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/88c55ff87437f7e59b42d131d0e2b6ce413546bf\"\u003e\u003ccode\u003e88c55ff\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.10.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/01d89959bfa825f661121e0f8d173f3ae1ecedac\"\u003e\u003ccode\u003e01d8995\u003c/code\u003e\u003c/a\u003e docs: prep for 7.10.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/9b0c24ffc17840464c2343b702a6ee44e10fcadf\"\u003e\u003ccode\u003e9b0c24f\u003c/code\u003e\u003c/a\u003e docs: thanks Alex \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2038\"\u003e#2038\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/66d69108654f6fc1de916a37fc06ac898091aa2d\"\u003e\u003ccode\u003e66d6910\u003c/code\u003e\u003c/a\u003e fix: make \u003ccode\u003esource\u003c/code\u003e paths absolute where they exist. \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1499\"\u003e#1499\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/bb3382f50f2b91aebb046d665334a5d361e5ddc5\"\u003e\u003ccode\u003ebb3382f\u003c/code\u003e\u003c/a\u003e build: no need for the combine/html times now\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/9ea349a164527832a49faa3eeec628d59ef75c7c\"\u003e\u003ccode\u003e9ea349a\u003c/code\u003e\u003c/a\u003e lab: warn_executed.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/808c9b48af3ad7b567182d383eb31451615664e0\"\u003e\u003ccode\u003e808c9b4\u003c/code\u003e\u003c/a\u003e build: changing metacov.ini should trigger metacov\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/384f5f22bd1ef52000d80922de03922a58ff936c\"\u003e\u003ccode\u003e384f5f2\u003c/code\u003e\u003c/a\u003e build: oops, some 'if's are really line pragmas\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/a7224af73365ba2d217f0e0966c7873c5bac3a67\"\u003e\u003ccode\u003ea7224af\u003c/code\u003e\u003c/a\u003e perf: pre-compute the mapping between other_db.context and main.context (\u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2038\"\u003e#2038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/5c00c5ba4bcd4f7da6a9f0ccd0797e0944415e8a\"\u003e\u003ccode\u003e5c00c5b\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group with 3 updates (\u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2039\"\u003e#2039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nedbat/coveragepy/compare/7.9.1...7.10.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 45.0.4 to 45.0.6\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e45.0.6 - 2025-08-05\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.2.\n\u003cp\u003e.. _v45-0-5:\u003c/p\u003e\n\u003cp\u003e45.0.5 - 2025-07-02\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.1.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v45-0-4:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/66198c23c97c9594d64540e5a866e4b4121aec2d\"\u003e\u003ccode\u003e66198c2\u003c/code\u003e\u003c/a\u003e Bump for release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13249\"\u003e#13249\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/3e53a233b65123d2a836b58ccdc427ed5207f92b\"\u003e\u003ccode\u003e3e53a23\u003c/code\u003e\u003c/a\u003e Bump for 45.0.5 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13135\"\u003e#13135\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pyca/cryptography/compare/45.0.4...45.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `distlib` from 0.3.9 to 0.4.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/distlib/blob/master/CHANGES.rst\"\u003edistlib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.4.0\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nReleased: 2025-07-17\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003emarkers\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd the \u003ccode\u003einterpret_parsed\u003c/code\u003e function.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ewheel\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/238\"\u003e#238\u003c/a\u003e: Add build tag to wheel metadata if specified.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/243\"\u003e#243\u003c/a\u003e: Update to support free-threading version of Python (3.13t).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/246\"\u003e#246\u003c/a\u003e: Support subdirectories in the dist-info directory. Thanks to Pieter P for the patch.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/248\"\u003e#248\u003c/a\u003e: Fix path normalisation issue caused by the fix for \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/246\"\u003e#246\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMove import in script wrapper to \u0026quot;if \u003cstrong\u003ename\u003c/strong\u003e == 'main'\u0026quot; clause.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003etests\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/245\"\u003e#245\u003c/a\u003e: Skip test_package_data if a SKIP_EXT_PACKAGE_DATA environment variable is present.\n\u003c/code\u003e\u003c/pre\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/aff2cbbc4e8a87b9440cb93472789a213813dbd6\"\u003e\u003ccode\u003eaff2cbb\u003c/code\u003e\u003c/a\u003e Finalise version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/3716c4bcccac19d0c0f2ce0d1272dd33996381b5\"\u003e\u003ccode\u003e3716c4b\u003c/code\u003e\u003c/a\u003e Update change log, widen exception catching in test.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/660bd337bf3217a7bd907c2ba8a2f8dd291ac793\"\u003e\u003ccode\u003e660bd33\u003c/code\u003e\u003c/a\u003e Changes for 0.4.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/56b4ad938455048fc79e599d369e02a1414e9946\"\u003e\u003ccode\u003e56b4ad9\u003c/code\u003e\u003c/a\u003e Guard script wrapper entrypoint import with if \u003cstrong\u003emain\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/242\"\u003e#242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/fe573669087cb1109fb0cc249bf0e06a5461324c\"\u003e\u003ccode\u003efe57366\u003c/code\u003e\u003c/a\u003e docs: update coverage results link (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/250\"\u003e#250\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/c3286e508bb60cd2337408d88eb614a93b612d8c\"\u003e\u003ccode\u003ec3286e5\u003c/code\u003e\u003c/a\u003e Temporarily exclude 3.13t on windows-latest.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/e6b83d3b0eeb11d8e7b053f11139d15aab89d196\"\u003e\u003ccode\u003ee6b83d3\u003c/code\u003e\u003c/a\u003e Normalize archive paths in dist-info (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/248\"\u003e#248\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/93baffeaa1773796d802bb761607a6466790dcba\"\u003e\u003ccode\u003e93baffe\u003c/code\u003e\u003c/a\u003e Skip no-longer-relevant test.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/83f656836f4b6d8175172fcb8370fbee691f2bec\"\u003e\u003ccode\u003e83f6568\u003c/code\u003e\u003c/a\u003e Support subdirectories in .dist-info (fixes \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/246\"\u003e#246\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/247\"\u003e#247\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/f918abd5d20879041704f9d719533b213a55ad48\"\u003e\u003ccode\u003ef918abd\u003c/code\u003e\u003c/a\u003e Update \u003ccode\u003etest_wheel.WheelTestCase.test_abi\u003c/code\u003e for freethreading (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/244\"\u003e#244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/distlib/compare/0.3.9...0.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `filelock` from 3.18.0 to 3.19.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/py-filelock/releases\"\u003efilelock's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.19.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd 3.14t (free threading) to matrix by \u003ca href=\"https://github.com/paultiq\"\u003e\u003ccode\u003e@​paultiq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/433\"\u003etox-dev/filelock#433\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIncrease test coverage by \u003ca href=\"https://github.com/paultiq\"\u003e\u003ccode\u003e@​paultiq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/434\"\u003etox-dev/filelock#434\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/paultiq\"\u003e\u003ccode\u003e@​paultiq\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/433\"\u003etox-dev/filelock#433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.19.0...3.19.1\"\u003ehttps://github.com/tox-dev/filelock/compare/3.19.0...3.19.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.19.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for 3.14 by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/432\"\u003etox-dev/filelock#432\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.18.0...3.19.0\"\u003ehttps://github.com/tox-dev/filelock/compare/3.18.0...3.19.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/8d1009f08a6a64624fad91d1079062ef31b8c2b4\"\u003e\u003ccode\u003e8d1009f\u003c/code\u003e\u003c/a\u003e Update release.yaml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/66a428e97a874b44b0310072f6c974226f55a472\"\u003e\u003ccode\u003e66a428e\u003c/code\u003e\u003c/a\u003e Increase test coverage (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/434\"\u003e#434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/0dfc86eebd2c76ae959a409bcbc3112cc1ec5890\"\u003e\u003ccode\u003e0dfc86e\u003c/code\u003e\u003c/a\u003e add 3.14 to matrix (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/433\"\u003e#433\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/0c54837e318ebe8a692b529722430cb38134bf7c\"\u003e\u003ccode\u003e0c54837\u003c/code\u003e\u003c/a\u003e Add support for 3.14 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/432\"\u003e#432\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/77d02f5ada3a1a92167b1beee35a7815cbde0fcf\"\u003e\u003ccode\u003e77d02f5\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/430\"\u003e#430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/bc972b33bf253bb9f08db32b19ffd4119a74706e\"\u003e\u003ccode\u003ebc972b3\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/429\"\u003e#429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/78d02cb5ff42b22a56ad1a36755361a6b4601765\"\u003e\u003ccode\u003e78d02cb\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/428\"\u003e#428\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/18cdb5d1c78a7a459463480303e9820f33cdf041\"\u003e\u003ccode\u003e18cdb5d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/427\"\u003e#427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/b198a096d2bae58596479497d18a82bbeec515c8\"\u003e\u003ccode\u003eb198a09\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/426\"\u003e#426\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/6b097e76de603d9be6a24c5058b6fe53ef003afd\"\u003e\u003ccode\u003e6b097e7\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/425\"\u003e#425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/py-filelock/compare/3.18.0...3.19.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gitpython` from 3.1.44 to 3.1.45\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/gitpython-developers/GitPython/releases\"\u003egitpython's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.1.45\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix various version-related CI breakages by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1987\"\u003egitpython-developers/GitPython#1987\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo some CI cleanup to make reports clearer and future changes easier by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1989\"\u003egitpython-developers/GitPython#1989\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAffirm that gitdb and smmap advisories can also be created by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1991\"\u003egitpython-developers/GitPython#1991\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix links to gitdb and smmap \u003ccode\u003eSECURITY.md\u003c/code\u003e files by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1992\"\u003egitpython-developers/GitPython#1992\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest Python 3.13 regularly on Ubuntu and macOS on CI by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1990\"\u003egitpython-developers/GitPython#1990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRepo.rev_parse: Handle \u003c!-- raw HTML omitted --\u003e^{commit} correctly by \u003ca href=\"https://github.com/flichtenheld\"\u003e\u003ccode\u003e@​flichtenheld\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1996\"\u003egitpython-developers/GitPython#1996\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFuzzing: Fix Broken Fuzz Test for Git Submodule Handling by \u003ca href=\"https://github.com/DaveLak\"\u003e\u003ccode\u003e@​DaveLak\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1997\"\u003egitpython-developers/GitPython#1997\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWork around Cygwin CI failure \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2004\"\u003e#2004\u003c/a\u003e, except for \u003ccode\u003etest_installation\u003c/code\u003e by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2007\"\u003egitpython-developers/GitPython#2007\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMark \u003ccode\u003etest_installation\u003c/code\u003e xfail on Cygwin CI by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2009\"\u003egitpython-developers/GitPython#2009\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eIndexFile._to_relative_path\u003c/code\u003e - fix case where absolute path gets stripped of trailing slash by \u003ca href=\"https://github.com/kamilkozik7\"\u003e\u003ccode\u003e@​kamilkozik7\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2012\"\u003egitpython-developers/GitPython#2012\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse WSL1 on CI by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2010\"\u003egitpython-developers/GitPython#2010\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest free-threaded Python (but only on Linux) by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2011\"\u003egitpython-developers/GitPython#2011\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse property decorator to support typing by \u003ca href=\"https://github.com/Andrej730\"\u003e\u003ccode\u003e@​Andrej730\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2015\"\u003egitpython-developers/GitPython#2015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix some incorrect sphinx markups in the docstrings by \u003ca href=\"https://github.com/koyuki7w\"\u003e\u003ccode\u003e@​koyuki7w\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2018\"\u003egitpython-developers/GitPython#2018\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ereplace quansight-labs/setup-python with actions/setup-python by \u003ca href=\"https://github.com/ngoldbaum\"\u003e\u003ccode\u003e@​ngoldbaum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2019\"\u003egitpython-developers/GitPython#2019\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eremove type assertions from util.py by \u003ca href=\"https://github.com/gcmarx\"\u003e\u003ccode\u003e@​gcmarx\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2028\"\u003egitpython-developers/GitPython#2028\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ecorrectly handle \u003ccode\u003euname-cmd\u003c/code\u003e that doesn't point to an executable file by \u003ca href=\"https://github.com/gcmarx\"\u003e\u003ccode\u003e@​gcmarx\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2026\"\u003egitpython-developers/GitPython#2026\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse newer ruff style by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2031\"\u003egitpython-developers/GitPython#2031\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHave CodeQL scan GitHub Actions workflows as well as Python code by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2032\"\u003egitpython-developers/GitPython#2032\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSpecify explicit \u003ccode\u003econtents: read\u003c/code\u003e workflow permissions by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2033\"\u003egitpython-developers/GitPython#2033\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix GitConfigParser not removing quotes from values by \u003ca href=\"https://github.com/betaboon\"\u003e\u003ccode\u003e@​betaboon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2035\"\u003egitpython-developers/GitPython#2035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreserve quoted leading and trailing single-line config var whitespace by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2036\"\u003egitpython-developers/GitPython#2036\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor Git.{AutoInterrupt,CatFileContentStream} nesting by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2037\"\u003egitpython-developers/GitPython#2037\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Git.{AutoInterrupt,CatFileContentStream} static typing by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2039\"\u003egitpython-developers/GitPython#2039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CI \u003ccode\u003emypy\u003c/code\u003e command on free-threaded Python by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2040\"\u003egitpython-developers/GitPython#2040\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSplit Cygwin CI into non-\u003ccode\u003eperformance\u003c/code\u003e and \u003ccode\u003eperformance\u003c/code\u003e test jobs by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2042\"\u003egitpython-developers/GitPython#2042\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpress conditional \u003ccode\u003esetuptools\u003c/code\u003e requirement statically by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2043\"\u003egitpython-developers/GitPython#2043\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix ambiguous \u003ccode\u003e_safer_popen_windows\u003c/code\u003e comment by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2044\"\u003egitpython-developers/GitPython#2044\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClarify \u003ccode\u003eUSE_SHELL\u003c/code\u003e warning helper signature by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2045\"\u003egitpython-developers/GitPython#2045\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest \u003ccode\u003eConfigParser\u003c/code\u003e with whitespace outside the value by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2046\"\u003egitpython-developers/GitPython#2046\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove explicit empty \u003ccode\u003e\u0026quot;\u0026quot;\u003c/code\u003e handling in ConfigParser by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2047\"\u003egitpython-developers/GitPython#2047\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVarious style improvements by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2049\"\u003egitpython-developers/GitPython#2049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't remove quotes if \u003ccode\u003e\\\u003c/code\u003e or \u003ccode\u003e\u0026quot;\u003c/code\u003e are present inside by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2048\"\u003egitpython-developers/GitPython#2048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix updating submodules with relative urls by \u003ca href=\"https://github.com/david0\"\u003e\u003ccode\u003e@​david0\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2051\"\u003egitpython-developers/GitPython#2051\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRun \u003ccode\u003ecat_file.py\u003c/code\u003e fixture without site customizations by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2052\"\u003egitpython-developers/GitPython#2052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Cygwin installation on CI for \u003ccode\u003epip\u003c/code\u003e by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2053\"\u003egitpython-developers/GitPython#2053\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFail \u003ccode\u003etest_installation\u003c/code\u003e on warnings, and remove deprecated license classifier by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2054\"\u003egitpython-developers/GitPython#2054\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd clearer error version for unsupported index error by \u003ca href=\"https://github.com/tombedor\"\u003e\u003ccode\u003e@​tombedor\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2055\"\u003egitpython-developers/GitPython#2055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix name collision by \u003ca href=\"https://github.com/NMertsch\"\u003e\u003ccode\u003e@​NMertsch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2060\"\u003egitpython-developers/GitPython#2060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow relative path url in submodules for submodule_update by \u003ca href=\"https://github.com/t-webber\"\u003e\u003ccode\u003e@​t-webber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2062\"\u003egitpython-developers/GitPython#2062\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/flichtenheld\"\u003e\u003ccode\u003e@​flichtenheld\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1996\"\u003egitpython-developers/GitPython#1996\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kamilkozik7\"\u003e\u003ccode\u003e@​kamilkozik7\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2012\"\u003egitpython-developers/GitPython#2012\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koyuki7w\"\u003e\u003ccode\u003e@​koyuki7w\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2018\"\u003egitpython-developers/GitPython#2018\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ngoldbaum\"\u003e\u003ccode\u003e@​ngoldbaum\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2019\"\u003egitpython-developers/GitPython#2019\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gcmarx\"\u003e\u003ccode\u003e@​gcmarx\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2028\"\u003egitpython-developers/GitPython#2028\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/betaboon\"\u003e\u003ccode\u003e@​betaboon\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2035\"\u003egitpython-developers/GitPython#2035\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/gitpython-developers/GitPython/commit/6ba2c0a2f9ee7feffd7e079621c4845820180c9a\"\u003e\u003ccode\u003e6ba2c0a\u003c/code\u003e\u003c/a\u003e Prepare a new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/bbb3d00ac431dc7966f9715fb813792d234eca81\"\u003e\u003ccode\u003ebbb3d00\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2062\"\u003e#2062\u003c/a\u003e from t-webber/relative_path_submodules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/1ee1e781929074afd66bff1eae007bbee41d117e\"\u003e\u003ccode\u003e1ee1e78\u003c/code\u003e\u003c/a\u003e Add test case for cloning submodules with relative path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/ec2e2c8b894512e7a2364774d77cdd9db73f0566\"\u003e\u003ccode\u003eec2e2c8\u003c/code\u003e\u003c/a\u003e Allow relative path url in submodules for submodule_update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/4d529b71905edae12e4699170f7d9e0a665801b5\"\u003e\u003ccode\u003e4d529b7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2060\"\u003e#2060\u003c/a\u003e from NMertsch/2023-fix-gitconfigparser-autodoc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/80fd2c16211738156e65258381a17cdc429ddd08\"\u003e\u003ccode\u003e80fd2c1\u003c/code\u003e\u003c/a\u003e Don't treat sphinx warnings as errors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/a4aadb0c04bd13af824c14dcc39f88345aa5c440\"\u003e\u003ccode\u003ea4aadb0\u003c/code\u003e\u003c/a\u003e Fix name collision\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/4c7778a93134364cfff7b1597f9eda00a88323af\"\u003e\u003ccode\u003e4c7778a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2057\"\u003e#2057\u003c/a\u003e from gitpython-developers/dependabot/github_actions/...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/5033c3ffd8917d835658c22e84bd86103a2ae52d\"\u003e\u003ccode\u003e5033c3f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2056\"\u003e#2056\u003c/a\u003e from gitpython-developers/dependabot/github_actions/...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/496392b9bf781904421cbd171c0c5395a6fe330c\"\u003e\u003ccode\u003e496392b\u003c/code\u003e\u003c/a\u003e Bump cygwin/cygwin-install-action from 5 to 6\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/gitpython-developers/GitPython/compare/3.1.44...3.1.45\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `griffe` from 1.7.3 to 1.13.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/griffe/releases\"\u003egriffe's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.13.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.13.0\"\u003e1.13.0\u003c/a\u003e - 2025-08-26\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.12.1...1.13.0\"\u003eCompare with 1.12.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eis_init_method\u003c/code\u003e property (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5417b7040f8061696c380d9cd4ed2852bf96adf3\"\u003e5417b70\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIncrease maximum recursion limit when calling as a CLI (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5f0d9e61fbac89247bcae06a7010e28e381a5656\"\u003e5f0d9e6\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/402\"\u003eIssue-402\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.12.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.12.1\"\u003e1.12.1\u003c/a\u003e - 2025-08-14\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.12.0...1.12.1\"\u003eCompare with 1.12.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReduce size of JSON dumps by removing keys with null values (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/58227eb377fee66ef66237d7cbed35156ff1fed1\"\u003e58227eb\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/403\"\u003eIssue-403\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd fields to aliases when serializing (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5c9fee2b0c6e4f4e63c7648fa41b2e540f2ecc7f\"\u003e5c9fee2\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eAlso add the option to ignore missing type to the Sphinx parser (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8c9f803e748a659905b06445a349a6cfea948c1c\"\u003e8c9f803\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.12.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.12.0\"\u003e1.12.0\u003c/a\u003e - 2025-08-14\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.11.1...1.12.0\"\u003eCompare with 1.11.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow disabling \u0026quot;missing type/annotation\u0026quot; warnings (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/07564b43524220342c3078ece406459c08b80a86\"\u003e07564b4\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/issues/437\"\u003eIssue-mkdocstrings-437\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.11.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.11.1\"\u003e1.11.1\u003c/a\u003e - 2025-08-11\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.11.0...1.11.1\"\u003eCompare with 1.11.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix type parameters loading (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/ce41279cc8b7abc45c7b94316b24e87d4a1edc40\"\u003ece41279\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMove private \u003ccode\u003e_griffe\u003c/code\u003e package under \u003ccode\u003egriffe._internal\u003c/code\u003e (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8f37158eb5617d2cf686f9a0a044f29c638598b2\"\u003e8f37158\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.11.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.11.0\"\u003e1.11.0\u003c/a\u003e - 2025-08-07\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.10.0...1.11.0\"\u003eCompare with 1.10.0\u003c/a\u003e\u003c!-- raw HTML omitted --\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/mkdocstrings/griffe/blob/main/CHANGELOG.md\"\u003egriffe's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.13.0\"\u003e1.13.0\u003c/a\u003e - 2025-08-26\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.12.1...1.13.0\"\u003eCompare with 1.12.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eis_init_method\u003c/code\u003e property (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5417b7040f8061696c380d9cd4ed2852bf96adf3\"\u003e5417b70\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIncrease maximum recursion limit when calling as a CLI (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5f0d9e61fbac89247bcae06a7010e28e381a5656\"\u003e5f0d9e6\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/402\"\u003eIssue-402\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.12.1\"\u003e1.12.1\u003c/a\u003e - 2025-08-14\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.12.0...1.12.1\"\u003eCompare with 1.12.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReduce size of JSON dumps by removing keys with null values (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/58227eb377fee66ef66237d7cbed35156ff1fed1\"\u003e58227eb\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/403\"\u003eIssue-403\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd fields to aliases when serializing (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5c9fee2b0c6e4f4e63c7648fa41b2e540f2ecc7f\"\u003e5c9fee2\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eAlso add the option to ignore missing type to the Sphinx parser (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8c9f803e748a659905b06445a349a6cfea948c1c\"\u003e8c9f803\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.12.0\"\u003e1.12.0\u003c/a\u003e - 2025-08-14\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.11.1...1.12.0\"\u003eCompare with 1.11.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow disabling \u0026quot;missing type/annotation\u0026quot; warnings (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/07564b43524220342c3078ece406459c08b80a86\"\u003e07564b4\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/issues/437\"\u003eIssue-mkdocstrings-437\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.11.1\"\u003e1.11.1\u003c/a\u003e - 2025-08-11\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.11.0...1.11.1\"\u003eCompare with 1.11.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix type parameters loading (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/ce41279cc8b7abc45c7b94316b24e87d4a1edc40\"\u003ece41279\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMove private \u003ccode\u003e_griffe\u003c/code\u003e package under \u003ccode\u003egriffe._internal\u003c/code\u003e (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8f37158eb5617d2cf686f9a0a044f29c638598b2\"\u003e8f37158\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.11.0\"\u003e1.11.0\u003c/a\u003e - 2025-08-07\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.10.0...1.11.0\"\u003eCompare with 1.10.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd data to dict/json output (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/9731afcbeab377e7f3f69a0d18d19677e790072e\"\u003e9731afc\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/e13f5edaba1ec16c2c20c2661eb81279e984dcea\"\u003e\u003ccode\u003ee13f5ed\u003c/code\u003e\u003c/a\u003e chore: Prepare release 1.13.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5417b7040f8061696c380d9cd4ed2852bf96adf3\"\u003e\u003ccode\u003e5417b70\u003c/code\u003e\u003c/a\u003e feat: Add \u003ccode\u003eis_init_method\u003c/code\u003e property\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/fa01ac0d3c4f70030a72e2395293f856d98eb69f\"\u003e\u003ccode\u003efa01ac0\u003c/code\u003e\u003c/a\u003e ci: Fix Pylance warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5f0d9e61fbac89247bcae06a7010e28e381a5656\"\u003e\u003ccode\u003e5f0d9e6\u003c/code\u003e\u003c/a\u003e fix: Increase maximum recursion limit when calling as a CLI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/266be2dd6ecca58baa3cf62f8500db33d6a7edf0\"\u003e\u003ccode\u003e266be2d\u003c/code\u003e\u003c/a\u003e ci: Improve typing fof callables in expression-building node map\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/edf81dfe012ca2972ded1d4788823c0a49fcab25\"\u003e\u003ccode\u003eedf81df\u003c/code\u003e\u003c/a\u003e chore: Fix \u003ccode\u003emake run\u003c/code\u003e command\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/2cb37a7ac5693f00939ff229eb20e310d2eef3e8\"\u003e\u003ccode\u003e2cb37a7\u003c/code\u003e\u003c/a\u003e docs: Fix link to API tests file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/179627221e97b82b574755465bff7efdbdf390d3\"\u003e\u003ccode\u003e1796272\u003c/code\u003e\u003c/a\u003e chore: Template upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5e79fbedb250520bbac3909a89f31677cd714de2\"\u003e\u003ccode\u003e5e79fbe\u003c/code\u003e\u003c/a\u003e docs: Add \u003ccode\u003erad clone\u003c/code\u003e badge in README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/72b44666f6e307d4a3ec6818391fca6af4afc105\"\u003e\u003ccode\u003e72b4466\u003c/code\u003e\u003c/a\u003e chore: Template upgrade\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.7.3...1.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `importlib-resources` from 5.0.7 to 6.5.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/importlib_resources/blob/main/NEWS.rst\"\u003eimportlib-resources's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev6.5.2\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplaced reference to typing_extensions with stdlib Literal. (\u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/323\"\u003e#323\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.5.1\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated \u003ccode\u003eTraversable.read_text()\u003c/code\u003e to reflect the \u003ccode\u003eerrors\u003c/code\u003e\u003ccode\u003epython/cpython#127012\u003c/code\u003e\u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/321\"\u003e#321\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.5.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd type annotations for Traversable.open. (\u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/317\"\u003e#317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequire Python 3.9 or later.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.4.5\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOmit sentinel values from a namespace path. (\u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/311\"\u003e#311\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.4.4\u003c/h1\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch1\u003ev6.4.3\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWhen inferring the caller in \u003ccode\u003efiles()\u003c/code\u003e\u003ccode\u003epython/cpython#123085\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/python/importlib_resources/commit/7d3b2bfa1d8c53ecb64246ba16d8c632f8fcb6bf\"\u003e\u003ccode\u003e7d3b2bf\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/14408098293bd6bc68eca7b5a53333729a567e57\"\u003e\u003ccode\u003e1440809\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/324\"\u003e#324\u003c/a\u003e from pstjohn/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/6569354ad2cf38b202fdeaf11b49e639b1a00fbc\"\u003e\u003ccode\u003e6569354\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/6c1bc3cdb8f8a7d29252becc201508712040facc\"\u003e\u003ccode\u003e6c1bc3c\u003c/code\u003e\u003c/a\u003e Rely on Literal from stdlib.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/883380a5fcc482b67014b90b9aa7250d868c795a\"\u003e\u003ccode\u003e883380a\u003c/code\u003e\u003c/a\u003e Update pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/a61a948b6293ed46972909652909e2540242f197\"\u003e\u003ccode\u003ea61a948\u003c/code\u003e\u003c/a\u003e Add typing-extensions as a dependency\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/78c4bda73c5d671cbbcfdf1430b6f2da03aeb04f\"\u003e\u003ccode\u003e78c4bda\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/10d87bf85a404e9fb9271f8f353ad0452c0cc631\"\u003e\u003ccode\u003e10d87bf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/321\"\u003e#321\u003c/a\u003e from kurtmckee/add-readtext-errors-parameter-cpython-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/9a872e5dbceff32260e8ff19d039236304ee150c\"\u003e\u003ccode\u003e9a872e5\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/cf269ce50f496671f3b7fbc5e6292946ecc70e7d\"\u003e\u003ccode\u003ecf269ce\u003c/code\u003e\u003c/a\u003e Replace unreachable block with simple assertion. Fixes diffcov failure.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/importlib_resources/compare/v5.0.7...v6.5.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jsonschema` from 4.24.0 to 4.25.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-jsonschema/jsonschema/releases\"\u003ejsonschema's releases\u003c/a\u003e.\u003c...\n\n_Description has been truncated_","html_url":"https://github.com/pycontribs/subprocess-tee/pull/189","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/pycontribs%2Fsubprocess-tee/issues/189","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/189/packages"}},{"old_version":"8.4.0","new_version":"8.4.1","update_type":"patch","path":null,"pr_created_at":"2025-08-17T22:28:13.000Z","version_change":"8.4.0 → 8.4.1","issue":{"uuid":"2751575388","node_id":"PR_kwDOEkpJIs6kAbVc","number":187,"state":"open","title":"Bump the dependencies group across 1 directory with 29 updates","user":"dependabot[bot]","labels":["skip-changelog","dependabot-deps-updates"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-08-17T22:28:13.000Z","updated_at":"2025-08-17T22:28:14.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"dependencies","update_count":29,"packages":[{"name":"mkdocstrings","old_version":"0.29.1","new_version":"0.30.0","repository_url":"https://github.com/mkdocstrings/mkdocstrings"},{"name":"argparse-manpage","old_version":"4.6","new_version":"4.7","repository_url":"https://github.com/praiskup/argparse-manpage"},{"name":"backrefs","old_version":"5.8","new_version":"6.0.1","repository_url":"https://github.com/facelessuser/backrefs"},{"name":"bracex","old_version":"2.5.post1","new_version":"2.6","repository_url":"https://github.com/facelessuser/bracex"},{"name":"cachetools","old_version":"6.0.0","new_version":"6.1.0","repository_url":"https://github.com/tkem/cachetools"},{"name":"certifi","old_version":"2025.6.15","new_version":"2025.8.3","repository_url":"https://github.com/certifi/python-certifi"},{"name":"charset-normalizer","old_version":"3.4.2","new_version":"3.4.3","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"coverage","old_version":"7.9.1","new_version":"7.10.4","repository_url":"https://github.com/nedbat/coveragepy"},{"name":"cryptography","old_version":"45.0.4","new_version":"45.0.6","repository_url":"https://github.com/pyca/cryptography"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.0","repository_url":"https://github.com/pypa/distlib"},{"name":"filelock","old_version":"3.18.0","new_version":"3.19.1","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"gitpython","old_version":"3.1.44","new_version":"3.1.45","repository_url":"https://github.com/gitpython-developers/GitPython"},{"name":"griffe","old_version":"1.7.3","new_version":"1.12.1","repository_url":"https://github.com/mkdocstrings/griffe"},{"name":"importlib-resources","old_version":"5.0.7","new_version":"6.5.2","repository_url":"https://github.com/python/importlib_resources"},{"name":"jsonschema","old_version":"4.24.0","new_version":"4.25.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"markdown","old_version":"3.8","new_version":"3.8.2","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"mkdocs-material","old_version":"9.6.14","new_version":"9.6.17","repository_url":"https://github.com/squidfunk/mkdocs-material"},{"name":"mkdocstrings-python","old_version":"1.16.12","new_version":"1.17.0","repository_url":"https://github.com/mkdocstrings/python"},{"name":"pbr","old_version":"6.1.1","new_version":"7.0.0"},{"name":"pillow","old_version":"11.2.1","new_version":"11.3.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"pygments","old_version":"2.19.1","new_version":"2.19.2","repository_url":"https://github.com/pygments/pygments"},{"name":"pymdown-extensions","old_version":"10.15","new_version":"10.16.1","repository_url":"https://github.com/facelessuser/pymdown-extensions"},{"name":"pytest","old_version":"8.4.0","new_version":"8.4.1","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-sugar","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/Teemu/pytest-sugar"},{"name":"pytest-xdist","old_version":"3.7.0","new_version":"3.8.0","repository_url":"https://github.com/pytest-dev/pytest-xdist"},{"name":"rich","old_version":"14.0.0","new_version":"14.1.0","repository_url":"https://github.com/Textualize/rich"},{"name":"rpds-py","old_version":"0.25.1","new_version":"0.27.0","repository_url":"https://github.com/crate-py/rpds"},{"name":"urllib3","old_version":"2.4.0","new_version":"2.5.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"wcmatch","old_version":"10.0","new_version":"10.1","repository_url":"https://github.com/facelessuser/wcmatch"}],"path":null,"ecosystem":"conda"},"body":"Bumps the dependencies group with 29 updates in the /.config directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [mkdocstrings](https://github.com/mkdocstrings/mkdocstrings) | `0.29.1` | `0.30.0` |\n| [argparse-manpage](https://github.com/praiskup/argparse-manpage) | `4.6` | `4.7` |\n| [backrefs](https://github.com/facelessuser/backrefs) | `5.8` | `6.0.1` |\n| [bracex](https://github.com/facelessuser/bracex) | `2.5.post1` | `2.6` |\n| [cachetools](https://github.com/tkem/cachetools) | `6.0.0` | `6.1.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.6.15` | `2025.8.3` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.2` | `3.4.3` |\n| [coverage](https://github.com/nedbat/coveragepy) | `7.9.1` | `7.10.4` |\n| [cryptography](https://github.com/pyca/cryptography) | `45.0.4` | `45.0.6` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.0` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.18.0` | `3.19.1` |\n| [gitpython](https://github.com/gitpython-developers/GitPython) | `3.1.44` | `3.1.45` |\n| [griffe](https://github.com/mkdocstrings/griffe) | `1.7.3` | `1.12.1` |\n| [importlib-resources](https://github.com/python/importlib_resources) | `5.0.7` | `6.5.2` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.24.0` | `4.25.0` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.8` | `3.8.2` |\n| [mkdocs-material](https://github.com/squidfunk/mkdocs-material) | `9.6.14` | `9.6.17` |\n| [mkdocstrings-python](https://github.com/mkdocstrings/python) | `1.16.12` | `1.17.0` |\n| [pbr](https://docs.openstack.org/pbr/latest/) | `6.1.1` | `7.0.0` |\n| [pillow](https://github.com/python-pillow/Pillow) | `11.2.1` | `11.3.0` |\n| [pygments](https://github.com/pygments/pygments) | `2.19.1` | `2.19.2` |\n| [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions) | `10.15` | `10.16.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.0` | `8.4.1` |\n| [pytest-sugar](https://github.com/Teemu/pytest-sugar) | `1.0.0` | `1.1.0` |\n| [pytest-xdist](https://github.com/pytest-dev/pytest-xdist) | `3.7.0` | `3.8.0` |\n| [rich](https://github.com/Textualize/rich) | `14.0.0` | `14.1.0` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.25.1` | `0.27.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.4.0` | `2.5.0` |\n| [wcmatch](https://github.com/facelessuser/wcmatch) | `10.0` | `10.1` |\n\n\nUpdates `mkdocstrings` from 0.29.1 to 0.30.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases\"\u003emkdocstrings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.30.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/0.30.0\"\u003e0.30.0\u003c/a\u003e - 2025-07-23\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/0.29.1...0.30.0\"\u003eCompare with 0.29.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003edata-skip-inventory\u003c/code\u003e boolean attribute for elements to skip registration in local inventory (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f856160b03b2c27e1d75fdf4f315c273cb9d9247\"\u003ef856160\u003c/a\u003e by Bartosz Sławecki). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/issues/671\"\u003eIssue-671\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/774\"\u003ePR-774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd I18N support (translations) (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/2b4ed541bc707e55d959092d950ebeecc4fbd136\"\u003e2b4ed54\u003c/a\u003e by Nyuan Zhang). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/645\"\u003ePR-645\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/blob/main/CHANGELOG.md\"\u003emkdocstrings's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/0.30.0\"\u003e0.30.0\u003c/a\u003e - 2025-07-23\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/0.29.1...0.30.0\"\u003eCompare with 0.29.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003edata-skip-inventory\u003c/code\u003e boolean attribute for elements to skip registration in local inventory (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f856160b03b2c27e1d75fdf4f315c273cb9d9247\"\u003ef856160\u003c/a\u003e by Bartosz Sławecki). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/issues/671\"\u003eIssue-671\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/774\"\u003ePR-774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd I18N support (translations) (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/2b4ed541bc707e55d959092d950ebeecc4fbd136\"\u003e2b4ed54\u003c/a\u003e by Nyuan Zhang). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/645\"\u003ePR-645\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/2be445f054c1191d308af7ee0cc881e359f5a4c7\"\u003e\u003ccode\u003e2be445f\u003c/code\u003e\u003c/a\u003e chore: Prepare release 0.30.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f856160b03b2c27e1d75fdf4f315c273cb9d9247\"\u003e\u003ccode\u003ef856160\u003c/code\u003e\u003c/a\u003e feat: Add \u003ccode\u003edata-skip-inventory\u003c/code\u003e boolean attribute for elements to skip regist...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/2b4ed541bc707e55d959092d950ebeecc4fbd136\"\u003e\u003ccode\u003e2b4ed54\u003c/code\u003e\u003c/a\u003e feat: Add I18N support (translations)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/51f217f38af9475415f758866697158d9010967d\"\u003e\u003ccode\u003e51f217f\u003c/code\u003e\u003c/a\u003e chore: Template upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/b1da3d02c4f432f603cbb0004bb35099327706db\"\u003e\u003ccode\u003eb1da3d0\u003c/code\u003e\u003c/a\u003e ci: Ignore Ruff warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/d5bf4e1ed0370853f968b210ad77913faf106eed\"\u003e\u003ccode\u003ed5bf4e1\u003c/code\u003e\u003c/a\u003e docs: Update link to YAML idiosyncrasies\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/0.29.1...0.30.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `argparse-manpage` from 4.6 to 4.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/praiskup/argparse-manpage/releases\"\u003eargparse-manpage's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eargparse-manpage v4.7\u003c/h2\u003e\n\u003cp\u003eNews in v4.7\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003esys.stdout used instead of /dev/stdout\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efixed build compatibility with newer setuptools\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efixed deprecation warnings for datetime and setuptools\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003enew compat method for handling SOURCE_DATE_EPOCH\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/praiskup/argparse-manpage/blob/main/NEWS\"\u003eargparse-manpage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cpre\u003e\u003ccode\u003e\nWARNING: The 'build_manpage' setup.py command will be removed v5\nWARNING: We'll drop the Python 2.7 support in v5\n\u003cp\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eNews in v4.7\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003esys.stdout used instead of /dev/stdout\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efixed build compatibility with newer setuptools\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efixed deprecation warnings for datetime and setuptools\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003enew compat method for handling SOURCE_DATE_EPOCH\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre\u003e\u003ccode\u003e\nNews in v4.6\n\u003cul\u003e\n\u003cli\u003eFix the build against Python 3.13\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eNews in v4.5\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWe newly provide \u003ccode\u003ebuild_manpages.build_py\u003c/code\u003e and \u003ccode\u003ebuild_manpages.install\u003c/code\u003e\ncommand classes that are re-usable from \u003ccode\u003epyproject.toml\u003c/code\u003e.  No need to\nprovide \u003ccode\u003esetup.py\u003c/code\u003e because of \u003ccode\u003eargparse-manpage\u003c/code\u003e.  Solved issue#85.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre\u003e\u003ccode\u003e\nNews in v4.4\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003eprog=\u003c/code\u003e specifier (in setup.py/setup.cfg/pyproject.toml) is now\u003cbr /\u003e\nbetter handled so it doesn't conflict with ArgumentParser(prog=..).\u003cbr /\u003e\nFixes \u003ca href=\"https://redirect.github.com/praiskup/argparse-manpage/issues/79\"\u003epraiskup/argparse-manpage#79\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eNews in v4.3\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe pyproject.toml parsing feature now depends on the python3-tomli library\u003cbr /\u003e\ninstead of python-toml for \u0026quot;python_environment \u0026gt;3, \u0026lt;=3.10\u0026quot;.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eNews in v4.2\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for pyproject.toml specification of manpages added.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/7883becca340aa3ea124143e032848a7b2bdf84b\"\u003e\u003ccode\u003e7883bec\u003c/code\u003e\u003c/a\u003e Release v4.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/765389ed4ee835c09451823d7fbfe22b0dc1674a\"\u003e\u003ccode\u003e765389e\u003c/code\u003e\u003c/a\u003e Move the SOURCE_DATE_EPOCH hack on one place\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/a06ed9c1f03360f8089819c8e845cd670687eb64\"\u003e\u003ccode\u003ea06ed9c\u003c/code\u003e\u003c/a\u003e ci: fix RPM build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/c985432ee15824c43c75548c7ec1bd6f105a7f22\"\u003e\u003ccode\u003ec985432\u003c/code\u003e\u003c/a\u003e Fix deprecation warnings for datetime and setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/306658941368ff0c2dfe2e4fa29b889fb5bbeb2b\"\u003e\u003ccode\u003e3066589\u003c/code\u003e\u003c/a\u003e ci: fedora-tox update list of environments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/b3a2c50e2abc47bd822d848864a80e35251a3147\"\u003e\u003ccode\u003eb3a2c50\u003c/code\u003e\u003c/a\u003e ci: enable ruff \u0026amp; bump deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/6dc54a5272e70b081af728958fd7554a6b0372f3\"\u003e\u003ccode\u003e6dc54a5\u003c/code\u003e\u003c/a\u003e Fix compatibility with newer setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/29f89bba536cf28f6ed66721367ff2ee3f6209b7\"\u003e\u003ccode\u003e29f89bb\u003c/code\u003e\u003c/a\u003e Fix some comments about sys.argv alteration for usage message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/ade76cc8ef49ec804955c6b4027dbae52d482034\"\u003e\u003ccode\u003eade76cc\u003c/code\u003e\u003c/a\u003e Use sys.stdout instead of /dev/stdout\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/praiskup/argparse-manpage/compare/v4.6...v4.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `backrefs` from 5.8 to 6.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facelessuser/backrefs/releases\"\u003ebackrefs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Fix a regression that created an ASCII binary property that would override the ASCII block property.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: POSIX character classes will now always use POSIX compatibility rules instead of Unicode standard rules,\nif any are specified in the Unicode specification. The affected character classes are: \u003ccode\u003e[[:alnum:]]\u003c/code\u003e, \u003ccode\u003e[[:digit:]]\u003c/code\u003e,\n\u003ccode\u003e[[:xdigit:]]\u003c/code\u003e, and  \u003ccode\u003e[[:punct:]]\u003c/code\u003e. To explicitly use standard Unicode rules for these compatibility properties, use\nthe Unicode property form instead: \u003ccode\u003e[\\p{Alnum}]\u003c/code\u003e, \u003ccode\u003e[\\p{Digit}]\u003c/code\u003e, \u003ccode\u003e[\\p{Punct}]\u003c/code\u003e, or \u003ccode\u003e[\\p{XDigit}]\u003c/code\u003e. This has changed\nto ensure no confusion for users expecting compatible POSIX style character class properties.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Scoped ASCII/Unicode flags (\u003ccode\u003e(?a:pattern)\u003c/code\u003e/\u003ccode\u003e(?u:pattern)\u003c/code\u003e) should be respected for Unicode properties in\n\u003ccode\u003ebre\u003c/code\u003e and will ensure ASCII or Unicode range if used.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Fix issues related to detecting disabled scoped flags.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Add support for Python 3.14.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eENHANCE\u003c/strong\u003e: Switch to deploying with PyPI's \u0026quot;Trusted Publisher\u0026quot;.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/63f8a4b14750828b7c1e385844fd36f6f89859e4\"\u003e\u003ccode\u003e63f8a4b\u003c/code\u003e\u003c/a\u003e Fix grammar\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/7f4bf611e6e7fcc2aa4e0eba2872b5f51b7fc908\"\u003e\u003ccode\u003e7f4bf61\u003c/code\u003e\u003c/a\u003e Rework POSIX alias\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/956df5f387f1958110e5a7cf2a98d42a8309d9b6\"\u003e\u003ccode\u003e956df5f\u003c/code\u003e\u003c/a\u003e Fix ASCII block regression\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/7a948f083c3c87114a8dd87c95dff1893f3af82a\"\u003e\u003ccode\u003e7a948f0\u003c/code\u003e\u003c/a\u003e Clean up code and add more comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/9b2e406be36c1e0fc72651adbc7d2d63c4151483\"\u003e\u003ccode\u003e9b2e406\u003c/code\u003e\u003c/a\u003e Add more flag tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/47d62b1270ca7f1717e7acdb56e8e6ed3e9e8f10\"\u003e\u003ccode\u003e47d62b1\u003c/code\u003e\u003c/a\u003e Handle enable/disable properly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/8e7596700b913e13f478da57e0ba0965f2d9ed3b\"\u003e\u003ccode\u003e8e75967\u003c/code\u003e\u003c/a\u003e Fix issues with scoped flags (\u003ca href=\"https://redirect.github.com/facelessuser/backrefs/issues/192\"\u003e#192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/0df8e7746d3ea31824af97ea4ed713a3facded5b\"\u003e\u003ccode\u003e0df8e77\u003c/code\u003e\u003c/a\u003e POSIX character classes should use POSIX compatibility rules by default (\u003ca href=\"https://redirect.github.com/facelessuser/backrefs/issues/191\"\u003e#191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/31fd8c5c0338eefe41452d52f99012c0fecfdd82\"\u003e\u003ccode\u003e31fd8c5\u003c/code\u003e\u003c/a\u003e Call mkdocs directly on deploy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/8b3a24bfc1cacde6fc9ab4edfaed0f5a9206c554\"\u003e\u003ccode\u003e8b3a24b\u003c/code\u003e\u003c/a\u003e Fix deploy logic\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/facelessuser/backrefs/compare/5.8...6.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bracex` from 2.5.post1 to 2.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facelessuser/bracex/releases\"\u003ebracex's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Drop support for Python 3.8.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Add support for Python 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/bracex/commit/6d109c55372f0d5086adb7cf84a951cc06391a69\"\u003e\u003ccode\u003e6d109c5\u003c/code\u003e\u003c/a\u003e Add trusted publishing and support for Python 3.14 (\u003ca href=\"https://redirect.github.com/facelessuser/bracex/issues/44\"\u003e#44\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/bracex/commit/c14d46fb495a8fdcd0ec51d4dd42aa587807407d\"\u003e\u003ccode\u003ec14d46f\u003c/code\u003e\u003c/a\u003e Add security policy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/bracex/commit/14645af4bf4de0e1abe4fd6c29bf98871f549273\"\u003e\u003ccode\u003e14645af\u003c/code\u003e\u003c/a\u003e Typos: remove duplicate words\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/facelessuser/bracex/compare/2.5.post1...2.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachetools` from 6.0.0 to 6.1.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev6.1.0 (2025-06-16)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove \u003ccode\u003eLFUCache\u003c/code\u003e insertion performance by switching to an\nimplementation based on the \u003ccode\u003ecacheing \u0026lt;https://pypi.org/project/cacheing/\u0026gt;\u003c/code\u003e_ library.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate CI environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/bb6d71a745785429b14aae30b7752f4765dc35c3\"\u003e\u003ccode\u003ebb6d71a\u003c/code\u003e\u003c/a\u003e Release v6.1.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/77a9c59e3324496a79e6c4d5a7b5bfdb9a7f7f42\"\u003e\u003ccode\u003e77a9c59\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/260\"\u003e#260\u003c/a\u003e: Use LFUCache implementation based on Blake Reid's \u0026quot;cacheing\u0026quot; library.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/b1d4eb2972ca8f0ab49e22eae3bb47c1eb8b552c\"\u003e\u003ccode\u003eb1d4eb2\u003c/code\u003e\u003c/a\u003e Bump codecov/codecov-action from 5.4.2 to 5.4.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/820b154494e91aa5bfe63a3fa2033c63a9c84603\"\u003e\u003ccode\u003e820b154\u003c/code\u003e\u003c/a\u003e Refactor \u003ca href=\"https://github.com/cachedmethod\"\u003e\u003ccode\u003e@​cachedmethod\u003c/code\u003e\u003c/a\u003e unit tests.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tkem/cachetools/compare/v6.0.0...v6.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2025.6.15 to 2025.8.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/a97d9ad8f87c382378dddc0b0b33b9770932404e\"\u003e\u003ccode\u003ea97d9ad\u003c/code\u003e\u003c/a\u003e 2025.08.03 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ddd90c6d726f174c1e5820379dac0f2a8fc723a1\"\u003e\u003ccode\u003eddd90c6\u003c/code\u003e\u003c/a\u003e 2025.07.14 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/359\"\u003e#359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/d905221c916d51077f5c8071a0f7aa2df2a37c52\"\u003e\u003ccode\u003ed905221\u003c/code\u003e\u003c/a\u003e 2025.07.09 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.06.15...2025.08.03\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.4.2 to 3.4.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.4.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/46f662da20edeced520c8819965a37eefbbc85de\"\u003e\u003ccode\u003e46f662d\u003c/code\u003e\u003c/a\u003e Release 3.4.3 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/638\"\u003e#638\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/1a059b26c155dd5fca408b0e0145c930633c4bf2\"\u003e\u003ccode\u003e1a059b2\u003c/code\u003e\u003c/a\u003e :wrench: skip building on freethreaded as we're not confident it is stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/2275e3d3fea2bf6232661f1e9c21e7b81428e2a6\"\u003e\u003ccode\u003e2275e3d\u003c/code\u003e\u003c/a\u003e :pencil: final note in CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/c96acdfdb34b5b1deb6f70803167bae89b209832\"\u003e\u003ccode\u003ec96acdf\u003c/code\u003e\u003c/a\u003e :pencil: update release date on CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/43e5460518003df24ad1a3e7b5c0a34445395012\"\u003e\u003ccode\u003e43e5460\u003c/code\u003e\u003c/a\u003e :pencil: update README.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f277074e281a070cfa64fc91c46f8291043fc37c\"\u003e\u003ccode\u003ef277074\u003c/code\u003e\u003c/a\u003e :wrench: automatically lower confidence on small bytes str on non Unicode res...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/15ae2411072b5e026f2c9d6ec81b55f75af7dcf2\"\u003e\u003ccode\u003e15ae241\u003c/code\u003e\u003c/a\u003e :bug: automatically fallback on valid UTF-16 or UTF-32 even if the md says it...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/37397c1799a05454ab42fbbc94a7643cdb277924\"\u003e\u003ccode\u003e37397c1\u003c/code\u003e\u003c/a\u003e :wrench: enable 3.14 in nox test_mypyc session\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/cb82537ecad195f48383b92e330351cea1fc6bc8\"\u003e\u003ccode\u003ecb82537\u003c/code\u003e\u003c/a\u003e :rewind: revert license due to compat python 3.7 issue setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/6a2efeb4c6e205964b61008b0c36ddf88c321543\"\u003e\u003ccode\u003e6a2efeb\u003c/code\u003e\u003c/a\u003e :art: fix linter errors\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.2...3.4.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.9.1 to 7.10.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.10.4 — 2025-08-16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003epatch = fork\u003c/code\u003e for times when the built-in forking support is\ninsufficient.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003epatch = execv\u003c/code\u003e also inherits the entire coverage configuration now.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _changes_7-10-3:\u003c/p\u003e\n\u003ch2\u003eVersion 7.10.3 — 2025-08-10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixes for \u003ccode\u003epatch = subprocess\u003c/code\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eIf subprocesses spawned yet more subprocesses simultaneously, some coverage\ncould be missed.  This is now fixed, closing \u003ccode\u003eissue 2024\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIf subprocesses were created in other directories, their data files were\nstranded there and not combined into the totals, as described in \u003ccode\u003eissue 2025\u003c/code\u003e_.  This is now fixed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eOn Windows (or maybe only some Windows?) the patch would fail with a\n\u003ccode\u003eModuleNotFound\u003c/code\u003e error trying to import coverage.  This is now fixed,\nclosing \u003ccode\u003eissue 2022\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eOriginally only options set in the coverage configuration file would apply\nto subprocesses.  Options set on the \u003ccode\u003ecoverage run\u003c/code\u003e command line (such as\n\u003ccode\u003e--branch\u003c/code\u003e) wouldn't be communicated to the subprocesses.  This could\nlead to combining failures, as described in \u003ccode\u003eissue 2021\u003c/code\u003e_. Now the entire\nconfiguration is used in subprocesses, regardless of its origin.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003edebug=patch\u003c/code\u003e to help diagnose problems.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: really close all SQLite databases, even in-memory ones. Closes \u003ccode\u003eissue 2017\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 2017: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2017\"\u003enedbat/coveragepy#2017\u003c/a\u003e\n.. _issue 2021: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2021\"\u003enedbat/coveragepy#2021\u003c/a\u003e\n.. _issue 2022: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2022\"\u003enedbat/coveragepy#2022\u003c/a\u003e\n.. _issue 2024: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2024\"\u003enedbat/coveragepy#2024\u003c/a\u003e\n.. _issue 2025: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2025\"\u003enedbat/coveragepy#2025\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-10-2:\u003c/p\u003e\n\u003ch2\u003eVersion 7.10.2 — 2025-08-03\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/1cd29f24ce3859c9b2d824959031b9142c218904\"\u003e\u003ccode\u003e1cd29f2\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.10.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/92a91e9cbbde7ea05a960b4c85bfc9d16b4a8d33\"\u003e\u003ccode\u003e92a91e9\u003c/code\u003e\u003c/a\u003e docs: prep for 7.10.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/9ee6390200e1946ba5458e86d6e9f46adace4751\"\u003e\u003ccode\u003e9ee6390\u003c/code\u003e\u003c/a\u003e debug: more details in debug messages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/6af8a5d13314eba82c2c5974b2fbf133f09b51d0\"\u003e\u003ccode\u003e6af8a5d\u003c/code\u003e\u003c/a\u003e feat: patch=fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/0eb292d24d3790ec46f2961cd05136e9e5f5d0c6\"\u003e\u003ccode\u003e0eb292d\u003c/code\u003e\u003c/a\u003e refactor: a nicer way to inject config from the environment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/183cd9b5358d41fc67210c66df9169a9e495df0b\"\u003e\u003ccode\u003e183cd9b\u003c/code\u003e\u003c/a\u003e build: tweaks to how the python build is bannered for tox\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/6c2fb87e14e0d18859cac4763577ef4f717c2f38\"\u003e\u003ccode\u003e6c2fb87\u003c/code\u003e\u003c/a\u003e chore: make upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/a22436cb0e17397a79ae480be0ce6f19b98b3188\"\u003e\u003ccode\u003ea22436c\u003c/code\u003e\u003c/a\u003e test: since 62434e79 we don't need to account for .tox\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/4ab4bb04db299cee912d1f930dcab59f01317f54\"\u003e\u003ccode\u003e4ab4bb0\u003c/code\u003e\u003c/a\u003e test: add a test for env var truncation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/bf1a9706b3eb2a1c27743815e475ab6d966a6d6f\"\u003e\u003ccode\u003ebf1a970\u003c/code\u003e\u003c/a\u003e refactor: better style for constants\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nedbat/coveragepy/compare/7.9.1...7.10.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 45.0.4 to 45.0.6\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e45.0.6 - 2025-08-05\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.2.\n\u003cp\u003e.. _v45-0-5:\u003c/p\u003e\n\u003cp\u003e45.0.5 - 2025-07-02\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.1.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v45-0-4:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/66198c23c97c9594d64540e5a866e4b4121aec2d\"\u003e\u003ccode\u003e66198c2\u003c/code\u003e\u003c/a\u003e Bump for release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13249\"\u003e#13249\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/3e53a233b65123d2a836b58ccdc427ed5207f92b\"\u003e\u003ccode\u003e3e53a23\u003c/code\u003e\u003c/a\u003e Bump for 45.0.5 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13135\"\u003e#13135\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pyca/cryptography/compare/45.0.4...45.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `distlib` from 0.3.9 to 0.4.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/distlib/blob/master/CHANGES.rst\"\u003edistlib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.4.0\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nReleased: 2025-07-17\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003emarkers\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd the \u003ccode\u003einterpret_parsed\u003c/code\u003e function.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ewheel\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/238\"\u003e#238\u003c/a\u003e: Add build tag to wheel metadata if specified.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/243\"\u003e#243\u003c/a\u003e: Update to support free-threading version of Python (3.13t).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/246\"\u003e#246\u003c/a\u003e: Support subdirectories in the dist-info directory. Thanks to Pieter P for the patch.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/248\"\u003e#248\u003c/a\u003e: Fix path normalisation issue caused by the fix for \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/246\"\u003e#246\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMove import in script wrapper to \u0026quot;if \u003cstrong\u003ename\u003c/strong\u003e == 'main'\u0026quot; clause.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003etests\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/245\"\u003e#245\u003c/a\u003e: Skip test_package_data if a SKIP_EXT_PACKAGE_DATA environment variable is present.\n\u003c/code\u003e\u003c/pre\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/aff2cbbc4e8a87b9440cb93472789a213813dbd6\"\u003e\u003ccode\u003eaff2cbb\u003c/code\u003e\u003c/a\u003e Finalise version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/3716c4bcccac19d0c0f2ce0d1272dd33996381b5\"\u003e\u003ccode\u003e3716c4b\u003c/code\u003e\u003c/a\u003e Update change log, widen exception catching in test.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/660bd337bf3217a7bd907c2ba8a2f8dd291ac793\"\u003e\u003ccode\u003e660bd33\u003c/code\u003e\u003c/a\u003e Changes for 0.4.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/56b4ad938455048fc79e599d369e02a1414e9946\"\u003e\u003ccode\u003e56b4ad9\u003c/code\u003e\u003c/a\u003e Guard script wrapper entrypoint import with if \u003cstrong\u003emain\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/242\"\u003e#242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/fe573669087cb1109fb0cc249bf0e06a5461324c\"\u003e\u003ccode\u003efe57366\u003c/code\u003e\u003c/a\u003e docs: update coverage results link (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/250\"\u003e#250\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/c3286e508bb60cd2337408d88eb614a93b612d8c\"\u003e\u003ccode\u003ec3286e5\u003c/code\u003e\u003c/a\u003e Temporarily exclude 3.13t on windows-latest.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/e6b83d3b0eeb11d8e7b053f11139d15aab89d196\"\u003e\u003ccode\u003ee6b83d3\u003c/code\u003e\u003c/a\u003e Normalize archive paths in dist-info (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/248\"\u003e#248\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/93baffeaa1773796d802bb761607a6466790dcba\"\u003e\u003ccode\u003e93baffe\u003c/code\u003e\u003c/a\u003e Skip no-longer-relevant test.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/83f656836f4b6d8175172fcb8370fbee691f2bec\"\u003e\u003ccode\u003e83f6568\u003c/code\u003e\u003c/a\u003e Support subdirectories in .dist-info (fixes \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/246\"\u003e#246\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/247\"\u003e#247\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/f918abd5d20879041704f9d719533b213a55ad48\"\u003e\u003ccode\u003ef918abd\u003c/code\u003e\u003c/a\u003e Update \u003ccode\u003etest_wheel.WheelTestCase.test_abi\u003c/code\u003e for freethreading (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/244\"\u003e#244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/distlib/compare/0.3.9...0.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `filelock` from 3.18.0 to 3.19.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/py-filelock/releases\"\u003efilelock's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.19.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd 3.14t (free threading) to matrix by \u003ca href=\"https://github.com/paultiq\"\u003e\u003ccode\u003e@​paultiq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/433\"\u003etox-dev/filelock#433\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIncrease test coverage by \u003ca href=\"https://github.com/paultiq\"\u003e\u003ccode\u003e@​paultiq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/434\"\u003etox-dev/filelock#434\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/paultiq\"\u003e\u003ccode\u003e@​paultiq\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/433\"\u003etox-dev/filelock#433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.19.0...3.19.1\"\u003ehttps://github.com/tox-dev/filelock/compare/3.19.0...3.19.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.19.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for 3.14 by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/432\"\u003etox-dev/filelock#432\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.18.0...3.19.0\"\u003ehttps://github.com/tox-dev/filelock/compare/3.18.0...3.19.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/8d1009f08a6a64624fad91d1079062ef31b8c2b4\"\u003e\u003ccode\u003e8d1009f\u003c/code\u003e\u003c/a\u003e Update release.yaml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/66a428e97a874b44b0310072f6c974226f55a472\"\u003e\u003ccode\u003e66a428e\u003c/code\u003e\u003c/a\u003e Increase test coverage (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/434\"\u003e#434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/0dfc86eebd2c76ae959a409bcbc3112cc1ec5890\"\u003e\u003ccode\u003e0dfc86e\u003c/code\u003e\u003c/a\u003e add 3.14 to matrix (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/433\"\u003e#433\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/0c54837e318ebe8a692b529722430cb38134bf7c\"\u003e\u003ccode\u003e0c54837\u003c/code\u003e\u003c/a\u003e Add support for 3.14 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/432\"\u003e#432\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/77d02f5ada3a1a92167b1beee35a7815cbde0fcf\"\u003e\u003ccode\u003e77d02f5\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/430\"\u003e#430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/bc972b33bf253bb9f08db32b19ffd4119a74706e\"\u003e\u003ccode\u003ebc972b3\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/429\"\u003e#429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/78d02cb5ff42b22a56ad1a36755361a6b4601765\"\u003e\u003ccode\u003e78d02cb\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/428\"\u003e#428\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/18cdb5d1c78a7a459463480303e9820f33cdf041\"\u003e\u003ccode\u003e18cdb5d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/427\"\u003e#427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/b198a096d2bae58596479497d18a82bbeec515c8\"\u003e\u003ccode\u003eb198a09\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/426\"\u003e#426\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/6b097e76de603d9be6a24c5058b6fe53ef003afd\"\u003e\u003ccode\u003e6b097e7\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/425\"\u003e#425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/py-filelock/compare/3.18.0...3.19.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gitpython` from 3.1.44 to 3.1.45\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/gitpython-developers/GitPython/releases\"\u003egitpython's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.1.45\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix various version-related CI breakages by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1987\"\u003egitpython-developers/GitPython#1987\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo some CI cleanup to make reports clearer and future changes easier by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1989\"\u003egitpython-developers/GitPython#1989\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAffirm that gitdb and smmap advisories can also be created by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1991\"\u003egitpython-developers/GitPython#1991\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix links to gitdb and smmap \u003ccode\u003eSECURITY.md\u003c/code\u003e files by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1992\"\u003egitpython-developers/GitPython#1992\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest Python 3.13 regularly on Ubuntu and macOS on CI by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1990\"\u003egitpython-developers/GitPython#1990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRepo.rev_parse: Handle \u003c!-- raw HTML omitted --\u003e^{commit} correctly by \u003ca href=\"https://github.com/flichtenheld\"\u003e\u003ccode\u003e@​flichtenheld\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1996\"\u003egitpython-developers/GitPython#1996\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFuzzing: Fix Broken Fuzz Test for Git Submodule Handling by \u003ca href=\"https://github.com/DaveLak\"\u003e\u003ccode\u003e@​DaveLak\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1997\"\u003egitpython-developers/GitPython#1997\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWork around Cygwin CI failure \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2004\"\u003e#2004\u003c/a\u003e, except for \u003ccode\u003etest_installation\u003c/code\u003e by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2007\"\u003egitpython-developers/GitPython#2007\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMark \u003ccode\u003etest_installation\u003c/code\u003e xfail on Cygwin CI by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2009\"\u003egitpython-developers/GitPython#2009\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eIndexFile._to_relative_path\u003c/code\u003e - fix case where absolute path gets stripped of trailing slash by \u003ca href=\"https://github.com/kamilkozik7\"\u003e\u003ccode\u003e@​kamilkozik7\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2012\"\u003egitpython-developers/GitPython#2012\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse WSL1 on CI by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2010\"\u003egitpython-developers/GitPython#2010\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest free-threaded Python (but only on Linux) by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2011\"\u003egitpython-developers/GitPython#2011\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse property decorator to support typing by \u003ca href=\"https://github.com/Andrej730\"\u003e\u003ccode\u003e@​Andrej730\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2015\"\u003egitpython-developers/GitPython#2015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix some incorrect sphinx markups in the docstrings by \u003ca href=\"https://github.com/koyuki7w\"\u003e\u003ccode\u003e@​koyuki7w\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2018\"\u003egitpython-developers/GitPython#2018\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ereplace quansight-labs/setup-python with actions/setup-python by \u003ca href=\"https://github.com/ngoldbaum\"\u003e\u003ccode\u003e@​ngoldbaum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2019\"\u003egitpython-developers/GitPython#2019\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eremove type assertions from util.py by \u003ca href=\"https://github.com/gcmarx\"\u003e\u003ccode\u003e@​gcmarx\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2028\"\u003egitpython-developers/GitPython#2028\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ecorrectly handle \u003ccode\u003euname-cmd\u003c/code\u003e that doesn't point to an executable file by \u003ca href=\"https://github.com/gcmarx\"\u003e\u003ccode\u003e@​gcmarx\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2026\"\u003egitpython-developers/GitPython#2026\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse newer ruff style by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2031\"\u003egitpython-developers/GitPython#2031\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHave CodeQL scan GitHub Actions workflows as well as Python code by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2032\"\u003egitpython-developers/GitPython#2032\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSpecify explicit \u003ccode\u003econtents: read\u003c/code\u003e workflow permissions by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2033\"\u003egitpython-developers/GitPython#2033\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix GitConfigParser not removing quotes from values by \u003ca href=\"https://github.com/betaboon\"\u003e\u003ccode\u003e@​betaboon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2035\"\u003egitpython-developers/GitPython#2035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreserve quoted leading and trailing single-line config var whitespace by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2036\"\u003egitpython-developers/GitPython#2036\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor Git.{AutoInterrupt,CatFileContentStream} nesting by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2037\"\u003egitpython-developers/GitPython#2037\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Git.{AutoInterrupt,CatFileContentStream} static typing by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2039\"\u003egitpython-developers/GitPython#2039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CI \u003ccode\u003emypy\u003c/code\u003e command on free-threaded Python by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2040\"\u003egitpython-developers/GitPython#2040\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSplit Cygwin CI into non-\u003ccode\u003eperformance\u003c/code\u003e and \u003ccode\u003eperformance\u003c/code\u003e test jobs by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2042\"\u003egitpython-developers/GitPython#2042\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpress conditional \u003ccode\u003esetuptools\u003c/code\u003e requirement statically by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2043\"\u003egitpython-developers/GitPython#2043\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix ambiguous \u003ccode\u003e_safer_popen_windows\u003c/code\u003e comment by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2044\"\u003egitpython-developers/GitPython#2044\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClarify \u003ccode\u003eUSE_SHELL\u003c/code\u003e warning helper signature by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2045\"\u003egitpython-developers/GitPython#2045\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest \u003ccode\u003eConfigParser\u003c/code\u003e with whitespace outside the value by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2046\"\u003egitpython-developers/GitPython#2046\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove explicit empty \u003ccode\u003e\u0026quot;\u0026quot;\u003c/code\u003e handling in ConfigParser by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2047\"\u003egitpython-developers/GitPython#2047\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVarious style improvements by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2049\"\u003egitpython-developers/GitPython#2049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't remove quotes if \u003ccode\u003e\\\u003c/code\u003e or \u003ccode\u003e\u0026quot;\u003c/code\u003e are present inside by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2048\"\u003egitpython-developers/GitPython#2048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix updating submodules with relative urls by \u003ca href=\"https://github.com/david0\"\u003e\u003ccode\u003e@​david0\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2051\"\u003egitpython-developers/GitPython#2051\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRun \u003ccode\u003ecat_file.py\u003c/code\u003e fixture without site customizations by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2052\"\u003egitpython-developers/GitPython#2052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Cygwin installation on CI for \u003ccode\u003epip\u003c/code\u003e by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2053\"\u003egitpython-developers/GitPython#2053\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFail \u003ccode\u003etest_installation\u003c/code\u003e on warnings, and remove deprecated license classifier by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2054\"\u003egitpython-developers/GitPython#2054\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd clearer error version for unsupported index error by \u003ca href=\"https://github.com/tombedor\"\u003e\u003ccode\u003e@​tombedor\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2055\"\u003egitpython-developers/GitPython#2055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix name collision by \u003ca href=\"https://github.com/NMertsch\"\u003e\u003ccode\u003e@​NMertsch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2060\"\u003egitpython-developers/GitPython#2060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow relative path url in submodules for submodule_update by \u003ca href=\"https://github.com/t-webber\"\u003e\u003ccode\u003e@​t-webber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2062\"\u003egitpython-developers/GitPython#2062\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/flichtenheld\"\u003e\u003ccode\u003e@​flichtenheld\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1996\"\u003egitpython-developers/GitPython#1996\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kamilkozik7\"\u003e\u003ccode\u003e@​kamilkozik7\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2012\"\u003egitpython-developers/GitPython#2012\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koyuki7w\"\u003e\u003ccode\u003e@​koyuki7w\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2018\"\u003egitpython-developers/GitPython#2018\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ngoldbaum\"\u003e\u003ccode\u003e@​ngoldbaum\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2019\"\u003egitpython-developers/GitPython#2019\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gcmarx\"\u003e\u003ccode\u003e@​gcmarx\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2028\"\u003egitpython-developers/GitPython#2028\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/betaboon\"\u003e\u003ccode\u003e@​betaboon\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2035\"\u003egitpython-developers/GitPython#2035\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/gitpython-developers/GitPython/commit/6ba2c0a2f9ee7feffd7e079621c4845820180c9a\"\u003e\u003ccode\u003e6ba2c0a\u003c/code\u003e\u003c/a\u003e Prepare a new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/bbb3d00ac431dc7966f9715fb813792d234eca81\"\u003e\u003ccode\u003ebbb3d00\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2062\"\u003e#2062\u003c/a\u003e from t-webber/relative_path_submodules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/1ee1e781929074afd66bff1eae007bbee41d117e\"\u003e\u003ccode\u003e1ee1e78\u003c/code\u003e\u003c/a\u003e Add test case for cloning submodules with relative path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/ec2e2c8b894512e7a2364774d77cdd9db73f0566\"\u003e\u003ccode\u003eec2e2c8\u003c/code\u003e\u003c/a\u003e Allow relative path url in submodules for submodule_update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/4d529b71905edae12e4699170f7d9e0a665801b5\"\u003e\u003ccode\u003e4d529b7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2060\"\u003e#2060\u003c/a\u003e from NMertsch/2023-fix-gitconfigparser-autodoc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/80fd2c16211738156e65258381a17cdc429ddd08\"\u003e\u003ccode\u003e80fd2c1\u003c/code\u003e\u003c/a\u003e Don't treat sphinx warnings as errors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/a4aadb0c04bd13af824c14dcc39f88345aa5c440\"\u003e\u003ccode\u003ea4aadb0\u003c/code\u003e\u003c/a\u003e Fix name collision\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/4c7778a93134364cfff7b1597f9eda00a88323af\"\u003e\u003ccode\u003e4c7778a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2057\"\u003e#2057\u003c/a\u003e from gitpython-developers/dependabot/github_actions/...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/5033c3ffd8917d835658c22e84bd86103a2ae52d\"\u003e\u003ccode\u003e5033c3f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2056\"\u003e#2056\u003c/a\u003e from gitpython-developers/dependabot/github_actions/...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/496392b9bf781904421cbd171c0c5395a6fe330c\"\u003e\u003ccode\u003e496392b\u003c/code\u003e\u003c/a\u003e Bump cygwin/cygwin-install-action from 5 to 6\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/gitpython-developers/GitPython/compare/3.1.44...3.1.45\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `griffe` from 1.7.3 to 1.12.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/griffe/releases\"\u003egriffe's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.12.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.12.1\"\u003e1.12.1\u003c/a\u003e - 2025-08-14\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.12.0...1.12.1\"\u003eCompare with 1.12.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReduce size of JSON dumps by removing keys with null values (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/58227eb377fee66ef66237d7cbed35156ff1fed1\"\u003e58227eb\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/403\"\u003eIssue-403\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd fields to aliases when serializing (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5c9fee2b0c6e4f4e63c7648fa41b2e540f2ecc7f\"\u003e5c9fee2\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eAlso add the option to ignore missing type to the Sphinx parser (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8c9f803e748a659905b06445a349a6cfea948c1c\"\u003e8c9f803\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.12.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.12.0\"\u003e1.12.0\u003c/a\u003e - 2025-08-14\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.11.1...1.12.0\"\u003eCompare with 1.11.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow disabling \u0026quot;missing type/annotation\u0026quot; warnings (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/07564b43524220342c3078ece406459c08b80a86\"\u003e07564b4\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/issues/437\"\u003eIssue-mkdocstrings-437\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.11.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.11.1\"\u003e1.11.1\u003c/a\u003e - 2025-08-11\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.11.0...1.11.1\"\u003eCompare with 1.11.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix type parameters loading (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/ce41279cc8b7abc45c7b94316b24e87d4a1edc40\"\u003ece41279\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMove private \u003ccode\u003e_griffe\u003c/code\u003e package under \u003ccode\u003egriffe._internal\u003c/code\u003e (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8f37158eb5617d2cf686f9a0a044f29c638598b2\"\u003e8f37158\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.11.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.11.0\"\u003e1.11.0\u003c/a\u003e - 2025-08-07\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.10.0...1.11.0\"\u003eCompare with 1.10.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd data to dict/json output (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/9731afcbeab377e7f3f69a0d18d19677e790072e\"\u003e9731afc\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.10.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.10.0\"\u003e1.10.0\u003c/a\u003e - 2025-08-06\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.9.0...1.10.0\"\u003eCompare with 1.9.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow adding \u003ccode\u003esys.path\u003c/code\u003e to search paths when temporary visiting/inspecting package (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/42983bc843fd9a63883e9c50ad5043b0f737b450\"\u003e42983bc\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- 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/mkdocstrings/griffe/blob/main/CHANGELOG.md\"\u003egriffe's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.12.1\"\u003e1.12.1\u003c/a\u003e - 2025-08-14\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.12.0...1.12.1\"\u003eCompare with 1.12.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReduce size of JSON dumps by removing keys with null values (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/58227eb377fee66ef66237d7cbed35156ff1fed1\"\u003e58227eb\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/403\"\u003eIssue-403\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd fields to aliases when serializing (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5c9fee2b0c6e4f4e63c7648fa41b2e540f2ecc7f\"\u003e5c9fee2\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eAlso add the option to ignore missing type to the Sphinx parser (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8c9f803e748a659905b06445a349a6cfea948c1c\"\u003e8c9f803\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.12.0\"\u003e1.12.0\u003c/a\u003e - 2025-08-14\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.11.1...1.12.0\"\u003eCompare with 1.11.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow disabling \u0026quot;missing type/annotation\u0026quot; warnings (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/07564b43524220342c3078ece406459c08b80a86\"\u003e07564b4\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/issues/437\"\u003eIssue-mkdocstrings-437\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.11.1\"\u003e1.11.1\u003c/a\u003e - 2025-08-11\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.11.0...1.11.1\"\u003eCompare with 1.11.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix type parameters loading (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/ce41279cc8b7abc45c7b94316b24e87d4a1edc40\"\u003ece41279\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMove private \u003ccode\u003e_griffe\u003c/code\u003e package under \u003ccode\u003egriffe._internal\u003c/code\u003e (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8f37158eb5617d2cf686f9a0a044f29c638598b2\"\u003e8f37158\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.11.0\"\u003e1.11.0\u003c/a\u003e - 2025-08-07\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.10.0...1.11.0\"\u003eCompare with 1.10.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd data to dict/json output (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/9731afcbeab377e7f3f69a0d18d19677e790072e\"\u003e9731afc\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.10.0\"\u003e1.10.0\u003c/a\u003e - 2025-08-06\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.9.0...1.10.0\"\u003eCompare with 1.9.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow adding \u003ccode\u003esys.path\u003c/code\u003e to search paths when temporary visiting/inspecting package (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/42983bc843fd9a63883e9c50ad5043b0f737b450\"\u003e42983bc\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.9.0\"\u003e1.9.0\u003c/a\u003e - 2025-07-28\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.8.0...1.9.0\"\u003eCompare with 1.8.0\u003c/a\u003e\u003c!-- raw HTML omitted --\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/mkdocstrings/griffe/commit/d1899ecf00f823a75af80ea186b8a1ca30898b55\"\u003e\u003ccode\u003ed1899ec\u003c/code\u003e\u003c/a\u003e chore: Prepare release 1.12.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/58227eb377fee66ef66237d7cbed35156ff1fed1\"\u003e\u003ccode\u003e58227eb\u003c/code\u003e\u003c/a\u003e refactor: Reduce size of JSON dumps by removing keys with null values\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5c9fee2b0c6e4f4e63c7648fa41b2e540f2ecc7f\"\u003e\u003ccode\u003e5c9fee2\u003c/code\u003e\u003c/a\u003e refactor: Add fields to aliases when serializing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8c9f803e748a659905b06445a349a6cfea948c1c\"\u003e\u003ccode\u003e8c9f803\u003c/code\u003e\u003c/a\u003e refactor: Also add the option to ignore missing type to the Sphinx parser\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/41921c5609dfb67e8b5c6b59429676155d24309b\"\u003e\u003ccode\u003e41921c5\u003c/code\u003e\u003c/a\u003e chore: Prepare release 1.12.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/07564b43524220342c3078ece406459c08b80a86\"\u003e\u003ccode\u003e07564b4\u003c/code\u003e\u003c/a\u003e feat: Allow disabling \u0026quot;missing type/annotation\u0026quot; warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/34d80517db78550a49e4322c1c5f5194677779e1\"\u003e\u003ccode\u003e34d8051\u003c/code\u003e\u003c/a\u003e chore: Prepare release 1.11.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/937c7967f036d0fa452245c1aa0d0ccab0e685dd\"\u003e\u003ccode\u003e937c796\u003c/code\u003e\u003c/a\u003e docs: Don't hide navigation in Python API page\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/4da5cc570535c7bc9370635750583f6bf1925447\"\u003e\u003ccode\u003e4da5cc5\u003c/code\u003e\u003c/a\u003e docs: Lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/ce41279cc8b7abc45c7b94316b24e87d4a1edc40\"\u003e\u003ccode\u003ece41279\u003c/code\u003e\u003c/a\u003e fix: Fix type parameters loading\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.7.3...1.12.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `importlib-resources` from 5.0.7 to 6.5.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/importlib_resources/blob/main/NEWS.rst\"\u003eimportlib-resources's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev6.5.2\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplaced reference to typing_extensions with stdlib Literal. (\u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/323\"\u003e#323\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.5.1\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated \u003ccode\u003eTraversable.read_text()\u003c/code\u003e to reflect the \u003ccode\u003eerrors\u003c/code\u003e\u003ccode\u003epython/cpython#127012\u003c/code\u003e\u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/321\"\u003e#321\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.5.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd type annotations for Traversable.open. (\u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/317\"\u003e#317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequire Python 3.9 or later.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.4.5\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOmit sentinel values from a namespace path. (\u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/311\"\u003e#311\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.4.4\u003c/h1\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch1\u003ev6.4.3\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWhen inferring the caller in \u003ccode\u003efiles()\u003c/code\u003e\u003ccode\u003epython/cpython#123085\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/python/importlib_resources/commit/7d3b2bfa1d8c53ecb64246ba16d8c632f8fcb6bf\"\u003e\u003ccode\u003e7d3b2bf\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/14408098293bd6bc68eca7b5a53333729a567e57\"\u003e\u003ccode\u003e1440809\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/324\"\u003e#324\u003c/a\u003e from pstjohn/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/6569354ad2cf38b202fdeaf11b49e639b1a00fbc\"\u003e\u003ccode\u003e6569354\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/6c1bc3cdb8f8a7d29252becc201508712040facc\"\u003e\u003ccode\u003e6c1bc3c\u003c/code\u003e\u003c/a\u003e Rely on Literal from stdlib.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/883380a5fcc482b67014b90b9aa7250d868c795a\"\u003e\u003ccode\u003e883380a\u003c/code\u003e\u003c/a\u003e Update pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/a61a948b6293ed46972909652909e2540242f197\"\u003e\u003ccode\u003ea61a948\u003c/code\u003e\u003c/a\u003e Add typing-extensions as a dependency\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/78c4bda73c5d671cbbcfdf1430b6f2da03aeb04f\"\u003e\u003ccode\u003e78c4bda\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/10d87bf85a404e9fb9271f8f353ad0452c0cc631\"\u003e\u003ccode\u003e10d87bf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/321\"\u003e#321\u003c/a\u003e from kurtmckee/add-readtext-errors-parameter-cpython-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/9a872e5dbceff32260e8ff19d039236304ee150c\"\u003e\u003ccode\u003e9a872e5\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/cf269ce50f496671f3b7fbc5e6292946ecc70e7d\"\u003e\u003ccode\u003ecf269ce\u003c/code\u003e\u003c/a\u003e Replace unreachable block with simple assertion. Fixes diffcov failure.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/importlib_resources/compare/v5.0.7...v6.5.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jsonschema` from 4.24.0 to 4.25.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-jsonschema/jsonschema/releases\"\u003ejsonschema's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.25.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for the \u003ccode\u003eiri\u003c/code\u003e and \u003ccode\u003eiri-reference\u003c/code\u003e formats to the \u003ccode\u003eformat-nongpl\u003c/code\u003e extra by \u003ca href=\"https://github.com/jkowalleck\"\u003e\u003ccode\u003e@​jkowalleck\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1388\"\u003epython-jsonschema/jsonschema#1388\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/jkowalleck\"\u003e\u003ccode\u003e@​jkowalleck\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1388\"\u003epython-jsonschema/jsonschema#1388\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/python-jsonschema/jsonschema/compare/v4.24.1...v4.25.0\"\u003ehttps://github.com/python-jsonschema/jsonschema/compare/v4.24.1...v4.25.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.24.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUnambiguously quote and escape properties in JSON path rendering by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1390\"\u003epython-jsonschema/jsonschema#1390\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop python\u0026lt;3.9 backports by \u003ca href=\"https://github.com/hackowitz-af\"\u003e\u003ccode\u003e@​hackowitz-af\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-...\n\n_Description has been truncated_","html_url":"https://github.com/pycontribs/subprocess-tee/pull/187","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/pycontribs%2Fsubprocess-tee/issues/187","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/187/packages"}}]}