{"id":25278,"name":"pychoir","ecosystem":"pip","repository_url":"https://github.com/kajaste/pychoir","issues_count":8,"created_at":"2025-06-07T04:18:19.819Z","updated_at":"2025-06-07T04:18:19.819Z","purl":"pkg:pypi/pychoir","metadata":{"id":2867055,"name":"pychoir","ecosystem":"pypi","description":"Test Matchers for humans","homepage":"https://github.com/kajaste/pychoir","licenses":"MIT License","normalized_licenses":["MIT"],"repository_url":"https://github.com/kajaste/pychoir","keywords_array":[],"namespace":null,"versions_count":25,"first_release_published_at":"2020-12-05T21:29:37.000Z","latest_release_published_at":"2023-12-09T02:21:35.000Z","latest_release_number":"0.0.27","last_synced_at":"2025-05-19T23:45:36.174Z","created_at":"2022-04-10T12:10:36.037Z","updated_at":"2025-05-19T23:45:42.796Z","registry_url":"https://pypi.org/project/pychoir/","install_command":"pip install pychoir --index-url https://pypi.org/simple","documentation_url":"https://pychoir.readthedocs.io/","metadata":{"funding":null,"documentation":null,"classifiers":["License :: OSI Approved :: MIT License","Operating System :: OS Independent","Programming Language :: Python :: 3","Programming Language :: Python :: 3.10","Programming Language :: Python :: 3.11","Programming Language :: Python :: 3.12","Programming Language :: Python :: 3.6","Programming Language :: Python :: 3.7","Programming Language :: Python :: 3.8","Programming Language :: Python :: 3.9","Programming Language :: Python :: Implementation :: CPython","Programming Language :: Python :: Implementation :: PyPy"],"normalized_name":"pychoir"},"repo_metadata":{"id":43751202,"uuid":"318891522","full_name":"kajaste/pychoir","owner":"kajaste","description":"A Simple Unit Test Matcher Library for Python 3.6+","archived":false,"fork":false,"pushed_at":"2025-05-19T23:35:59.000Z","size":228,"stargazers_count":19,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-19T23:42:54.628Z","etag":null,"topics":["matcher","matchers","mocking","pytest","python","testing","unit-testing","unittest"],"latest_commit_sha":null,"homepage":"https://pypi.org/project/pychoir/","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/kajaste.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-12-05T21:20:22.000Z","updated_at":"2025-05-19T23:38:40.000Z","dependencies_parsed_at":"2023-12-09T02:30:04.942Z","dependency_job_id":"12abd4a3-9de1-4bdd-87a9-70f1c417e92e","html_url":"https://github.com/kajaste/pychoir","commit_stats":{"total_commits":119,"total_committers":4,"mean_commits":29.75,"dds":"0.32773109243697474","last_synced_commit":"19c3ca5cdf0baef25fe6303418c227a817c6a228"},"previous_names":[],"tags_count":26,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajaste%2Fpychoir","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajaste%2Fpychoir/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajaste%2Fpychoir/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajaste%2Fpychoir/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kajaste","download_url":"https://codeload.github.com/kajaste/pychoir/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":255196135,"owners_count":22189005,"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":"kajaste","name":"Antti Kajander","uuid":"9019523","kind":"user","description":"Coding since 1996, for money since 2010. From embedded core routers to full stack web apps. Mostly C, C++, Scala and Python with a twist of TypeScript \u0026 Go.","email":"","website":null,"location":"Finland","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/9019523?v=4","repositories_count":2,"last_synced_at":"2023-02-26T16:55:19.769Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/kajaste","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-10T03:22:08.974Z","updated_at":"2023-02-26T16:55:19.774Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kajaste","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kajaste/repositories"},"tags":[{"name":"v0.0.27","sha":"b6f14de63979adf549f25b68b8bbfe494fca2f91","kind":"commit","published_at":"2023-12-09T02:09:19.000Z","download_url":"https://codeload.github.com/kajaste/pychoir/tar.gz/v0.0.27","html_url":"https://github.com/kajaste/pychoir/releases/tag/v0.0.27","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajaste%2Fpychoir/tags/v0.0.27","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajaste%2Fpychoir/tags/v0.0.27/manifests"},{"name":"v0.0.26","sha":"332fdaab0d028bd05bf1c01a7086b64c4e0a06eb","kind":"commit","published_at":"2023-12-09T01:55:53.000Z","download_url":"https://codeload.github.com/kajaste/pychoir/tar.gz/v0.0.26","html_url":"https://github.com/kajaste/pychoir/releases/tag/v0.0.26","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajaste%2Fpychoir/tags/v0.0.26","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajaste%2Fpychoir/tags/v0.0.26/manifests"},{"name":"v0.0.25","sha":"19c3ca5cdf0baef25fe6303418c227a817c6a228","kind":"commit","published_at":"2022-12-25T22:40:14.000Z","download_url":"https://codeload.github.com/kajaste/pychoir/tar.gz/v0.0.25","html_url":"https://github.com/kajaste/pychoir/releases/tag/v0.0.25","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajaste%2Fpychoir/tags/v0.0.25","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajaste%2Fpychoir/tags/v0.0.25/manifests"},{"name":"v0.0.24","sha":"56b0c6a5f504bb176c28a45a162cb5b4e06e747f","kind":"commit","published_at":"2021-12-26T20:39:11.000Z","download_url":"https://codeload.github.com/kajaste/pychoir/tar.gz/v0.0.24","html_url":"https://github.com/kajaste/pychoir/releases/tag/v0.0.24","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajaste%2Fpychoir/tags/v0.0.24","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajaste%2Fpychoir/tags/v0.0.24/manifests"},{"name":"v0.0.23","sha":"984372c2e8934abd3562fddeff56599a2f556632","kind":"commit","published_at":"2021-12-14T16:05:14.000Z","download_url":"https://codeload.github.com/kajaste/pychoir/tar.gz/v0.0.23","html_url":"https://github.com/kajaste/pychoir/releases/tag/v0.0.23","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajaste%2Fpychoir/tags/v0.0.23","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajaste%2Fpychoir/tags/v0.0.23/manifests"},{"name":"v0.0.22","sha":"08933286b51b8203c785a8fb6cbeb054a4ba1c83","kind":"commit","published_at":"2021-11-17T22:11:35.000Z","download_url":"https://codeload.github.com/kajaste/pychoir/tar.gz/v0.0.22","html_url":"https://github.com/kajaste/pychoir/releases/tag/v0.0.22","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajaste%2Fpychoir/tags/v0.0.22","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajaste%2Fpychoir/tags/v0.0.22/manifests"},{"name":"v0.0.21","sha":"14131945769fc67b476422ad174a2a93fa322b8b","kind":"commit","published_at":"2021-11-14T00:58:33.000Z","download_url":"https://codeload.github.com/kajaste/pychoir/tar.gz/v0.0.21","html_url":"https://github.com/kajaste/pychoir/releases/tag/v0.0.21","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajaste%2Fpychoir/tags/v0.0.21","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajaste%2Fpychoir/tags/v0.0.21/manifests"},{"name":"v0.0.20","sha":"4c2498943c5d00b090dc4605735db2757d4bae7f","kind":"commit","published_at":"2021-10-17T19:21:02.000Z","download_url":"https://codeload.github.com/kajaste/pychoir/tar.gz/v0.0.20","html_url":"https://github.com/kajaste/pychoir/releases/tag/v0.0.20","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajaste%2Fpychoir/tags/v0.0.20","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajaste%2Fpychoir/tags/v0.0.20/manifests"},{"name":"v0.0.19","sha":"2bb153ea63eb295dd3a259f840da00aad7d36988","kind":"commit","published_at":"2021-10-10T00:43:51.000Z","download_url":"https://codeload.github.com/kajaste/pychoir/tar.gz/v0.0.19","html_url":"https://github.com/kajaste/pychoir/releases/tag/v0.0.19","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajaste%2Fpychoir/tags/v0.0.19","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajaste%2Fpychoir/tags/v0.0.19/manifests"},{"name":"v0.0.18","sha":"00ce6dcf8cb09dcce040845b317032edf4ae3443","kind":"commit","published_at":"2021-10-09T02:05:38.000Z","download_url":"https://codeload.github.com/kajaste/pychoir/tar.gz/v0.0.18","html_url":"https://github.com/kajaste/pychoir/releases/tag/v0.0.18","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajaste%2Fpychoir/tags/v0.0.18","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajaste%2Fpychoir/tags/v0.0.18/manifests"},{"name":"v0.0.17","sha":"f66ddf7cf11ce058cdb20798558c7daf1ad430b1","kind":"commit","published_at":"2021-06-17T23:36:53.000Z","download_url":"https://codeload.github.com/kajaste/pychoir/tar.gz/v0.0.17","html_url":"https://github.com/kajaste/pychoir/releases/tag/v0.0.17","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajaste%2Fpychoir/tags/v0.0.17","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajaste%2Fpychoir/tags/v0.0.17/manifests"},{"name":"v0.0.16","sha":"78cab8d6d962719541300d59cae695af2d99c374","kind":"commit","published_at":"2021-06-01T13:08:06.000Z","download_url":"https://codeload.github.com/kajaste/pychoir/tar.gz/v0.0.16","html_url":"https://github.com/kajaste/pychoir/releases/tag/v0.0.16","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajaste%2Fpychoir/tags/v0.0.16","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajaste%2Fpychoir/tags/v0.0.16/manifests"},{"name":"v0.0.15","sha":"f3045bfe0a3586232bbfb5adfe425d9b947b4a9f","kind":"commit","published_at":"2021-05-16T19:11:12.000Z","download_url":"https://codeload.github.com/kajaste/pychoir/tar.gz/v0.0.15","html_url":"https://github.com/kajaste/pychoir/releases/tag/v0.0.15","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajaste%2Fpychoir/tags/v0.0.15","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajaste%2Fpychoir/tags/v0.0.15/manifests"},{"name":"v0.0.14","sha":"deb40d113f145ca33cac471ab74b43a2f12837bb","kind":"commit","published_at":"2021-03-30T16:50:47.000Z","download_url":"https://codeload.github.com/kajaste/pychoir/tar.gz/v0.0.14","html_url":"https://github.com/kajaste/pychoir/releases/tag/v0.0.14","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajaste%2Fpychoir/tags/v0.0.14","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajaste%2Fpychoir/tags/v0.0.14/manifests"},{"name":"v0.0.12","sha":"738101e2d010339dfc7658e719dfde9445727d1f","kind":"commit","published_at":"2021-03-18T21:13:12.000Z","download_url":"https://codeload.github.com/kajaste/pychoir/tar.gz/v0.0.12","html_url":"https://github.com/kajaste/pychoir/releases/tag/v0.0.12","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajaste%2Fpychoir/tags/v0.0.12","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajaste%2Fpychoir/tags/v0.0.12/manifests"},{"name":"v0.0.11","sha":"f4b7ab61f37ac5b50ff5f4ff5cea41bef554f14e","kind":"commit","published_at":"2021-03-06T19:57:00.000Z","download_url":"https://codeload.github.com/kajaste/pychoir/tar.gz/v0.0.11","html_url":"https://github.com/kajaste/pychoir/releases/tag/v0.0.11","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajaste%2Fpychoir/tags/v0.0.11","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajaste%2Fpychoir/tags/v0.0.11/manifests"},{"name":"v0.0.10","sha":"9426afa5bc11c90cfbe0bc7385a8a1d658800552","kind":"commit","published_at":"2021-03-05T20:37:28.000Z","download_url":"https://codeload.github.com/kajaste/pychoir/tar.gz/v0.0.10","html_url":"https://github.com/kajaste/pychoir/releases/tag/v0.0.10","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajaste%2Fpychoir/tags/v0.0.10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajaste%2Fpychoir/tags/v0.0.10/manifests"},{"name":"v0.0.9","sha":"ca5c0d4c389f4638e33e92037ad2393b133e35f8","kind":"commit","published_at":"2021-02-11T19:07:43.000Z","download_url":"https://codeload.github.com/kajaste/pychoir/tar.gz/v0.0.9","html_url":"https://github.com/kajaste/pychoir/releases/tag/v0.0.9","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajaste%2Fpychoir/tags/v0.0.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajaste%2Fpychoir/tags/v0.0.9/manifests"},{"name":"v0.0.8","sha":"a335a3fdcfc048337fcc6c0eb6c924e496e7208f","kind":"commit","published_at":"2021-01-19T21:55:29.000Z","download_url":"https://codeload.github.com/kajaste/pychoir/tar.gz/v0.0.8","html_url":"https://github.com/kajaste/pychoir/releases/tag/v0.0.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajaste%2Fpychoir/tags/v0.0.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajaste%2Fpychoir/tags/v0.0.8/manifests"},{"name":"v0.0.7","sha":"93d21e72ae0e24373fd2b878c48987f23404a721","kind":"commit","published_at":"2021-01-15T23:26:49.000Z","download_url":"https://codeload.github.com/kajaste/pychoir/tar.gz/v0.0.7","html_url":"https://github.com/kajaste/pychoir/releases/tag/v0.0.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajaste%2Fpychoir/tags/v0.0.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajaste%2Fpychoir/tags/v0.0.7/manifests"},{"name":"v0.0.6","sha":"ebf59309d8e96a5105c7c20cceb7b641b047ed19","kind":"commit","published_at":"2021-01-07T22:36:19.000Z","download_url":"https://codeload.github.com/kajaste/pychoir/tar.gz/v0.0.6","html_url":"https://github.com/kajaste/pychoir/releases/tag/v0.0.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajaste%2Fpychoir/tags/v0.0.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajaste%2Fpychoir/tags/v0.0.6/manifests"},{"name":"v0.0.5","sha":"debb06ac2a97be586ebfe4cb47ca94a6cc932479","kind":"commit","published_at":"2020-12-31T00:41:00.000Z","download_url":"https://codeload.github.com/kajaste/pychoir/tar.gz/v0.0.5","html_url":"https://github.com/kajaste/pychoir/releases/tag/v0.0.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajaste%2Fpychoir/tags/v0.0.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajaste%2Fpychoir/tags/v0.0.5/manifests"},{"name":"v0.0.4","sha":"c90a534ee72426590c13595a2955c7ee72b8c344","kind":"commit","published_at":"2020-12-20T00:13:09.000Z","download_url":"https://codeload.github.com/kajaste/pychoir/tar.gz/v0.0.4","html_url":"https://github.com/kajaste/pychoir/releases/tag/v0.0.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajaste%2Fpychoir/tags/v0.0.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajaste%2Fpychoir/tags/v0.0.4/manifests"},{"name":"v0.0.3","sha":"8134ae352fa4590b0d3fb25723a206460bc72740","kind":"commit","published_at":"2020-12-16T21:57:23.000Z","download_url":"https://codeload.github.com/kajaste/pychoir/tar.gz/v0.0.3","html_url":"https://github.com/kajaste/pychoir/releases/tag/v0.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajaste%2Fpychoir/tags/v0.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajaste%2Fpychoir/tags/v0.0.3/manifests"},{"name":"v0.0.2","sha":"e29d704adc6f8f4ad79c374ef5460ccf102deca8","kind":"commit","published_at":"2020-12-12T22:31:07.000Z","download_url":"https://codeload.github.com/kajaste/pychoir/tar.gz/v0.0.2","html_url":"https://github.com/kajaste/pychoir/releases/tag/v0.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajaste%2Fpychoir/tags/v0.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajaste%2Fpychoir/tags/v0.0.2/manifests"},{"name":"v0.0.1","sha":"97674f07511665bfb018c97458aad9e4dff5531f","kind":"commit","published_at":"2020-12-05T21:27:38.000Z","download_url":"https://codeload.github.com/kajaste/pychoir/tar.gz/v0.0.1","html_url":"https://github.com/kajaste/pychoir/releases/tag/v0.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajaste%2Fpychoir/tags/v0.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kajaste%2Fpychoir/tags/v0.0.1/manifests"}]},"repo_metadata_updated_at":"2025-05-19T23:45:42.796Z","dependent_packages_count":0,"downloads":14061,"downloads_period":"last-month","dependent_repos_count":1,"rankings":{"downloads":4.21988122548516,"dependent_repos_count":21.5515601217656,"dependent_packages_count":10.117827917587048,"stargazers_count":13.669108541361908,"forks_count":19.149535235007857,"docker_downloads_count":null,"average":13.741582608241515},"purl":"pkg:pypi/pychoir","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/pychoir","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/pypi/pychoir","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/pychoir/dependencies","status":null,"funding_links":[],"critical":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/pychoir/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/pychoir/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/pychoir/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/pychoir/related_packages","maintainers":[{"uuid":"kajaste","login":"kajaste","name":null,"email":null,"url":null,"packages_count":2,"html_url":"https://pypi.org/user/kajaste/","role":null,"created_at":"2023-02-25T02:59:24.560Z","updated_at":"2023-02-25T02:59:24.560Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/kajaste/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":690499,"maintainers_count":292846,"namespaces_count":0,"keywords_count":228675,"github":"pypi","metadata":{"funded_packages_count":48967},"icon_url":"https://github.com/pypi.png","created_at":"2022-04-04T15:19:23.364Z","updated_at":"2025-06-07T05:28:50.775Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/namespaces"}},"unique_repositories_count":1,"unique_repositories_count_past_30_days":1,"recent_issues":[{"uuid":"4331979472","node_id":"PR_kwDOMt9I9c7VxRRl","number":130,"state":"closed","title":"[pip] (deps): Bump the dev-dependencies group across 1 directory with 17 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-05-10T21:04:32.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-26T21:05:13.000Z","updated_at":"2026-05-10T21:04:34.000Z","time_to_close":1209559,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"[pip] (deps): Bump","group_name":"dev-dependencies","update_count":17,"packages":[{"name":"python-json-logger","old_version":"4.0.0","new_version":"4.1.0","repository_url":"https://github.com/nhairs/python-json-logger"},{"name":"certifi","old_version":"2026.2.25","new_version":"2026.4.22","repository_url":"https://github.com/certifi/python-certifi"},{"name":"charset-normalizer","old_version":"3.4.6","new_version":"3.4.7","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"idna","old_version":"3.11","new_version":"3.13","repository_url":"https://github.com/kjd/idna"},{"name":"pychoir","old_version":"0.0.29","new_version":"0.0.30","repository_url":"https://github.com/kajaste/pychoir"},{"name":"requests","old_version":"2.33.0","new_version":"2.33.1","repository_url":"https://github.com/psf/requests"},{"name":"filelock","old_version":"3.25.2","new_version":"3.29.0","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"identify","old_version":"2.6.18","new_version":"2.6.19","repository_url":"https://github.com/pre-commit/identify"},{"name":"packaging","old_version":"26.0","new_version":"26.2","repository_url":"https://github.com/pypa/packaging"},{"name":"platformdirs","old_version":"4.9.4","new_version":"4.9.6","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pre-commit","old_version":"4.5.1","new_version":"4.6.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pygments","old_version":"2.19.2","new_version":"2.20.0","repository_url":"https://github.com/pygments/pygments"},{"name":"pyright","old_version":"1.1.408","new_version":"1.1.409","repository_url":"https://github.com/RobertCraigie/pyright-python"},{"name":"pytest","old_version":"9.0.2","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-randomly","old_version":"4.0.1","new_version":"4.1.0","repository_url":"https://github.com/pytest-dev/pytest-randomly"},{"name":"ruff","old_version":"0.15.7","new_version":"0.15.12","repository_url":"https://github.com/astral-sh/ruff"},{"name":"virtualenv","old_version":"21.2.0","new_version":"21.2.4","repository_url":"https://github.com/pypa/virtualenv"}],"path":null,"ecosystem":"pip"},"body":"Bumps the dev-dependencies group with 17 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2026.2.25` | `2026.4.22` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.6` | `3.4.7` |\n| [idna](https://github.com/kjd/idna) | `3.11` | `3.13` |\n| [pychoir](https://github.com/kajaste/pychoir) | `0.0.29` | `0.0.30` |\n| [requests](https://github.com/psf/requests) | `2.33.0` | `2.33.1` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.25.2` | `3.29.0` |\n| [identify](https://github.com/pre-commit/identify) | `2.6.18` | `2.6.19` |\n| [packaging](https://github.com/pypa/packaging) | `26.0` | `26.2` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.9.4` | `4.9.6` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.5.1` | `4.6.0` |\n| [pygments](https://github.com/pygments/pygments) | `2.19.2` | `2.20.0` |\n| [pyright](https://github.com/RobertCraigie/pyright-python) | `1.1.408` | `1.1.409` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.2` | `9.0.3` |\n| [pytest-randomly](https://github.com/pytest-dev/pytest-randomly) | `4.0.1` | `4.1.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.7` | `0.15.12` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `21.2.0` | `21.2.4` |\n\n\nUpdates `python-json-logger` from 4.0.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/nhairs/python-json-logger/releases\"\u003epython-json-logger's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.1.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v4.0.0...v4.1.0\"\u003e4.1.0\u003c/a\u003e - 2026-03-29\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14, PyPy 3.11\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for Python 3.8, 3.9 (includes PyPy versions).\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/nhairs/python-json-logger/blob/main/docs/changelog.md\"\u003epython-json-logger's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v4.0.0...v4.1.0\"\u003e4.1.0\u003c/a\u003e - 2026-03-29\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14, PyPy 3.11\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for Python 3.8, 3.9 (includes PyPy versions).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/d80c68da770154d9662975b789cabcc9a3e99408\"\u003e\u003ccode\u003ed80c68d\u003c/code\u003e\u003c/a\u003e Release v4.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/b589b2a576ac058dc55be934159b67060a288756\"\u003e\u003ccode\u003eb589b2a\u003c/code\u003e\u003c/a\u003e [pyproject] Update license table to PEP 639 format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/2bb784a92250c60035a7e4536d1ef48cd02e50d5\"\u003e\u003ccode\u003e2bb784a\u003c/code\u003e\u003c/a\u003e Update code unlocked by Python 3.10 minimum version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/79599b5a6ad5e38c18c468fd0e4ac790961d6b5f\"\u003e\u003ccode\u003e79599b5\u003c/code\u003e\u003c/a\u003e Drop python 3.8, 3.9 support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/622650c1f543e7909e8711e4a30c96cc2aa6e332\"\u003e\u003ccode\u003e622650c\u003c/code\u003e\u003c/a\u003e [docs.contributing] Update unsupported JSON encoders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/06165bb03f9892fc24762acabf6b1b0b35c6b56b\"\u003e\u003ccode\u003e06165bb\u003c/code\u003e\u003c/a\u003e [tests.test_formatters] Add non-printable bytes to test_common_types_encoded\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/61f88a9fe7cee3409db9c589b03b15c2ffdc3ffa\"\u003e\u003ccode\u003e61f88a9\u003c/code\u003e\u003c/a\u003e [docs.contributing] Clarify which packages have been considered and rejected\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/0add524a24c6210807a66e0f9149200b32cc98a9\"\u003e\u003ccode\u003e0add524\u003c/code\u003e\u003c/a\u003e [docs.contributing] Clarify when we will add support for new third-party pack...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/eee9505610a64276341a03f2a0b0dee5f500916b\"\u003e\u003ccode\u003eeee9505\u003c/code\u003e\u003c/a\u003e [pylint] Remove old command\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/804592648f8d0e56f7f41112d2945cf52d1d2a6b\"\u003e\u003ccode\u003e8045926\u003c/code\u003e\u003c/a\u003e [mypy] Don't ignore orjson\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v4.0.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 `certifi` from 2026.2.25 to 2026.4.22\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/5dddfb072243da27adde885b73ba9b809c3224ca\"\u003e\u003ccode\u003e5dddfb0\u003c/code\u003e\u003c/a\u003e 2026.04.22 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/410\"\u003e#410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/f99eccdaf87f7c10e521a58a700ca3eb94a0787e\"\u003e\u003ccode\u003ef99eccd\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 8.1.0 to 8.1.1 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/404\"\u003e#404\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/918bed055f7291719512af186c1c24710f845660\"\u003e\u003ccode\u003e918bed0\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 7.0.0 to 7.0.1 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/405\"\u003e#405\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/0a49067eb434e53e1f8df5f7707d5dc05ef9def4\"\u003e\u003ccode\u003e0a49067\u003c/code\u003e\u003c/a\u003e Bump pypa/gh-action-pypi-publish from 1.13.0 to 1.14.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/403\"\u003e#403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/acf6ce8e39e3b125f4349e11904295e4fe4c1bed\"\u003e\u003ccode\u003eacf6ce8\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 8.0.0 to 8.0.1 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/398\"\u003e#398\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/feb0ed26163a9417ea0fb8eb52d47e79fcf202ab\"\u003e\u003ccode\u003efeb0ed2\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 7.0.0 to 8.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/397\"\u003e#397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/d9c11a50369cc377abb40f7909ded3d6da4d98a3\"\u003e\u003ccode\u003ed9c11a5\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 6.0.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/396\"\u003e#396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2026.02.25...2026.04.22\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.4.6 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\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.6...3.4.7\"\u003e3.4.7\u003c/a\u003e (2026-04-02)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePre-built optimized version using mypy[c] v1.20.\u003c/li\u003e\n\u003cli\u003eRelax \u003ccode\u003esetuptools\u003c/code\u003e constraint to \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;82.1\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCorrectly remove SIG remnant in utf-7 decoded string. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/718\"\u003e#718\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/0f07891bf516b5d5231f1bd4dd2d8da7d4d09a9a\"\u003e\u003ccode\u003e0f07891\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/729\"\u003e#729\u003c/a\u003e from jawah/release-3.4.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/fdbeb299479e8f4d737e4d227cd0b2bd5d273dc0\"\u003e\u003ccode\u003efdbeb29\u003c/code\u003e\u003c/a\u003e chore: update dev, and ci requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/b66f922bfbdbdd9dd46af18a8964d4fb888756d4\"\u003e\u003ccode\u003eb66f922\u003c/code\u003e\u003c/a\u003e chore: add ft classifier\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f94249d0a2c712f2d03124f4de6b77f5e03aaa96\"\u003e\u003ccode\u003ef94249d\u003c/code\u003e\u003c/a\u003e chore: add test cases for utf_7 recent fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/95c866f6c984bbd043e7e3ed0628aa4f3f8d5a26\"\u003e\u003ccode\u003e95c866f\u003c/code\u003e\u003c/a\u003e chore: bump version to 3.4.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/4f429bb764c7e893f99bb4bceb60856da1baacfb\"\u003e\u003ccode\u003e4f429bb\u003c/code\u003e\u003c/a\u003e chore: bump mypy pre-commit to v1.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/b579cd6cab9bd83aa3fc0ca169d4df022bf4888c\"\u003e\u003ccode\u003eb579cd6\u003c/code\u003e\u003c/a\u003e fix: correctly remove SIG remnant in utf-7 decoded string\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/58bf944a77cc0883fc46a6ee8edac3549fea5d59\"\u003e\u003ccode\u003e58bf944\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump github/codeql-action from 4.32.4 to 4.35.1 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/728\"\u003e#728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/44cf8a1b676a2532a8f1694e62e4f4f98f9132e1\"\u003e\u003ccode\u003e44cf8a1\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump actions/download-artifact from 8.0.0 to 8.0.1 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/726\"\u003e#726\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/362bc20073f737b1ba4ca2f68cffb0c4cc024d20\"\u003e\u003ccode\u003e362bc20\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump docker/setup-qemu-action from 3.7.0 to 4.0.0 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/725\"\u003e#725\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.6...3.4.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `idna` from 3.11 to 3.13\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kjd/idna/blob/master/HISTORY.rst\"\u003eidna's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e3.13 (2026-04-22)\n+++++++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCorrect classification error for codepoint U+A7F1\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e3.12 (2026-04-21)\n+++++++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate to Unicode 17.0.0.\u003c/li\u003e\n\u003cli\u003eIssue a deprecation warning for the transitional argument.\u003c/li\u003e\n\u003cli\u003eAdded lazy-loading to provide some performance improvements.\u003c/li\u003e\n\u003cli\u003eRemoved vestiges of code related to Python 2 support, including\nsegmentation of data structures specific to Jython.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to Rodrigo Nogueira for contributions to this release.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/89cdfd27338896cee6b1ee18e64c96ac28684ce0\"\u003e\u003ccode\u003e89cdfd2\u003c/code\u003e\u003c/a\u003e Release v3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/1eb068687543118147417a8d8a70674e2c172891\"\u003e\u003ccode\u003e1eb0686\u003c/code\u003e\u003c/a\u003e Pre-release 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/5f20d1e41eea3b3873d18d83d7a384784f72a92e\"\u003e\u003ccode\u003e5f20d1e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kjd/idna/issues/220\"\u003e#220\u003c/a\u003e from kjd/unicode-next\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/4ea84252ab21e62a79e5a3273746112b5dcfb810\"\u003e\u003ccode\u003e4ea8425\u003c/code\u003e\u003c/a\u003e Regenerate idnadata.py with correct NFKC_CF data\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/fd47341a08bbdcffda33694211ca4de10170cd41\"\u003e\u003ccode\u003efd47341\u003c/code\u003e\u003c/a\u003e Use NFKC_CF from Unicode data files instead of Python's unicodedata module\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/a5304a4cdbd7b31595f8ac42ffdfa88f5b936467\"\u003e\u003ccode\u003ea5304a4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kjd/idna/issues/219\"\u003e#219\u003c/a\u003e from kjd/release-3.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/d80d6f9254d699961fa2c669a1534cde9d4ee5b6\"\u003e\u003ccode\u003ed80d6f9\u003c/code\u003e\u003c/a\u003e Release v3.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/1bb44ddb3f2a9dcf97a6ac11aba34e5b6ed31291\"\u003e\u003ccode\u003e1bb44dd\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kjd/idna/issues/218\"\u003e#218\u003c/a\u003e from kjd/release-candidate-3.12rc0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/909c49d15b8d159be163bccc7972116baffdb47b\"\u003e\u003ccode\u003e909c49d\u003c/code\u003e\u003c/a\u003e Release candidate for 3.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/c5459a10370f005dc09921aee3201b5a45699f9d\"\u003e\u003ccode\u003ec5459a1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kjd/idna/issues/217\"\u003e#217\u003c/a\u003e from kjd/housekeeping-2\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kjd/idna/compare/v3.11...v3.13\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pychoir` from 0.0.29 to 0.0.30\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kajaste/pychoir/releases\"\u003epychoir's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eThirtieth release\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.14\u003c/li\u003e\n\u003cli\u003eDev deps update\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kajaste/pychoir/commit/99ff3e53501eec9926d2983ef235df19b198fa18\"\u003e\u003ccode\u003e99ff3e5\u003c/code\u003e\u003c/a\u003e Upgrade dev deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kajaste/pychoir/commit/33c9ef8a18903498945e83df576e768af1a7bc3a\"\u003e\u003ccode\u003e33c9ef8\u003c/code\u003e\u003c/a\u003e Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kajaste/pychoir/commit/1089c0a6ec678127d9df24459868363002f8b77a\"\u003e\u003ccode\u003e1089c0a\u003c/code\u003e\u003c/a\u003e Automatic package versioning from tag\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/kajaste/pychoir/compare/v0.0.29...v0.0.30\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.33.0 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\u003c/blockquote\u003e\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\u003c/blockquote\u003e\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\u003eSee full diff in \u003ca href=\"https://github.com/psf/requests/compare/v2.33.0...v2.33.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.25.2 to 3.29.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/py-filelock/releases\"\u003efilelock's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.29.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 fix(async): use single-thread executor for lock consistency 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/533\"\u003etox-dev/filelock#533\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(soft): enable stale lock detection on Windows 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/534\"\u003etox-dev/filelock#534\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.28.0...3.29.0\"\u003ehttps://github.com/tox-dev/filelock/compare/3.28.0...3.29.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.28.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 fix(ci): unbreak release workflow, publish to PyPI again 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/529\"\u003etox-dev/filelock#529\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.27.0...3.28.0\"\u003ehttps://github.com/tox-dev/filelock/compare/3.27.0...3.28.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.27.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e✨ feat(rw): add SoftReadWriteLock for NFS and HPC clusters 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/528\"\u003etox-dev/filelock#528\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.26.1...3.27.0\"\u003ehttps://github.com/tox-dev/filelock/compare/3.26.1...3.27.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.26.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 fix(asyncio): add \u003cstrong\u003eexit\u003c/strong\u003e to BaseAsyncFileLock and fix \u003cstrong\u003edel\u003c/strong\u003e loop handling by \u003ca href=\"https://github.com/naarob\"\u003e\u003ccode\u003e@​naarob\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/518\"\u003etox-dev/filelock#518\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/naarob\"\u003e\u003ccode\u003e@​naarob\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/518\"\u003etox-dev/filelock#518\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.26.0...3.26.1\"\u003ehttps://github.com/tox-dev/filelock/compare/3.26.0...3.26.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.26.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e🔒 ci(workflows): add zizmor security auditing 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/517\"\u003etox-dev/filelock#517\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🔧 fix(ci): restore git credentials for release job by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/520\"\u003etox-dev/filelock#520\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(soft): add PID inspection and lock breaking 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/524\"\u003etox-dev/filelock#524\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.25.2...3.26.0\"\u003ehttps://github.com/tox-dev/filelock/compare/3.25.2...3.26.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/tox-dev/filelock/blob/main/docs/changelog.rst\"\u003efilelock's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e###########\nChangelog\n###########\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e3.29.0 (2026-04-19)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e✨ feat(soft): enable stale lock detection on Windows :pr:\u003ccode\u003e534\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(async): use single-thread executor for lock consistency :pr:\u003ccode\u003e533\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/upload-artifact from 7.0.0 to 7.0.1 :pr:\u003ccode\u003e530\u003c/code\u003e - by :user:\u003ccode\u003edependabot[bot]\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e3.28.0 (2026-04-14)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 fix(ci): unbreak release workflow, publish to PyPI again :pr:\u003ccode\u003e529\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e3.26.1 (2026-04-09)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 fix(asyncio): add \u003cstrong\u003eexit\u003c/strong\u003e to BaseAsyncFileLock and fix \u003cstrong\u003edel\u003c/strong\u003e loop handling :pr:\u003ccode\u003e518\u003c/code\u003e - by :user:\u003ccode\u003enaarob\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump pypa/gh-action-pypi-publish from 1.13.0 to 1.14.0 :pr:\u003ccode\u003e525\u003c/code\u003e - by :user:\u003ccode\u003edependabot[bot]\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e3.26.0 (2026-04-06)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e✨ feat(soft): add PID inspection and lock breaking :pr:\u003ccode\u003e524\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate :pr:\u003ccode\u003e523\u003c/code\u003e - by :user:\u003ccode\u003epre-commit-ci[bot]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump astral-sh/setup-uv from 7.6.0 to 8.0.0 :pr:\u003ccode\u003e522\u003c/code\u003e - by :user:\u003ccode\u003edependabot[bot]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove persist-credentials: false from release job :pr:\u003ccode\u003e520\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate :pr:\u003ccode\u003e519\u003c/code\u003e - by :user:\u003ccode\u003epre-commit-ci[bot]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e🔒 ci(workflows): add zizmor security auditing :pr:\u003ccode\u003e517\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate :pr:\u003ccode\u003e516\u003c/code\u003e - by :user:\u003ccode\u003epre-commit-ci[bot]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate :pr:\u003ccode\u003e514\u003c/code\u003e - by :user:\u003ccode\u003epre-commit-ci[bot]\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e3.25.2 (2026-03-11)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 fix(unix): suppress EIO on close in Docker bind mounts :pr:\u003ccode\u003e513\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e3.25.1 (2026-03-09)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate :pr:\u003ccode\u003e510\u003c/code\u003e - by :user:\u003ccode\u003epre-commit-ci[bot]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(win): restore best-effort lock file cleanup on release :pr:\u003ccode\u003e511\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/469b47f192b0a9f8c8b795d9b9f57212c716959b\"\u003e\u003ccode\u003e469b47f\u003c/code\u003e\u003c/a\u003e Release 3.29.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/e85d07281987e0855ba67c03dfdef342ec1097d5\"\u003e\u003ccode\u003ee85d072\u003c/code\u003e\u003c/a\u003e ✨ feat(soft): enable stale lock detection on Windows (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/534\"\u003e#534\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/f5ee1712ced6916b2768812ee378183319339944\"\u003e\u003ccode\u003ef5ee171\u003c/code\u003e\u003c/a\u003e 🐛 fix(async): use single-thread executor for lock consistency (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/533\"\u003e#533\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/2a954588cdf462a786835eeb102240ce79fecc8b\"\u003e\u003ccode\u003e2a95458\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/upload-artifact from 7.0.0 to 7.0.1 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/530\"\u003e#530\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/55de20c0819652362881906fa289feff5a323c19\"\u003e\u003ccode\u003e55de20c\u003c/code\u003e\u003c/a\u003e Release 3.28.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/476b0e4a92776fe530b5d993247342f039004174\"\u003e\u003ccode\u003e476b0e4\u003c/code\u003e\u003c/a\u003e 🐛 fix(ci): unbreak release workflow, publish to PyPI again (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/529\"\u003e#529\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/824713edc32b54efd66566907f97c1238502810e\"\u003e\u003ccode\u003e824713e\u003c/code\u003e\u003c/a\u003e ✨ feat(rw): add SoftReadWriteLock for NFS and HPC clusters (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/528\"\u003e#528\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/9879de9298db93ffba0a9f58d9de75e9e2a00fc1\"\u003e\u003ccode\u003e9879de9\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/527\"\u003e#527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/4cfab498b6916f89be46152efa4a72e9731be98f\"\u003e\u003ccode\u003e4cfab49\u003c/code\u003e\u003c/a\u003e Release 3.26.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/734c9f26e8107ad24886129fc68865f0b46cf71f\"\u003e\u003ccode\u003e734c9f2\u003c/code\u003e\u003c/a\u003e 🐛 fix(asyncio): add \u003cstrong\u003eexit\u003c/strong\u003e to BaseAsyncFileLock and fix \u003cstrong\u003edel\u003c/strong\u003e loop handli...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/py-filelock/compare/3.25.2...3.29.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `identify` from 2.6.18 to 2.6.19\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/b39f637a1b9032568e5b21b0474c3583acf1c530\"\u003e\u003ccode\u003eb39f637\u003c/code\u003e\u003c/a\u003e v2.6.19\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/c9768886c7fc78a2f8c7d0d9447064ff7a008eb9\"\u003e\u003ccode\u003ec976888\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/identify/issues/588\"\u003e#588\u003c/a\u003e from hofbi/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/6110d73a67ca4807b6331d21784a92313b9c082b\"\u003e\u003ccode\u003e6110d73\u003c/code\u003e\u003c/a\u003e Add support for 'tif' file extension\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/ccbd337ae1b4c0d03565cd6dd64076c0b4ff7929\"\u003e\u003ccode\u003eccbd337\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/identify/issues/587\"\u003e#587\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/f5af2649530b5cbfdfcf6ac9d3e4f65e198747c2\"\u003e\u003ccode\u003ef5af264\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/identify/commit/a0be59827ac05537a9f8a4e1895133d44f2a4319\"\u003e\u003ccode\u003ea0be598\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/identify/issues/586\"\u003e#586\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/b1840430b285dab369b4b96480614cf429a6a50e\"\u003e\u003ccode\u003eb184043\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pre-commit/identify/compare/v2.6.18...v2.6.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `packaging` from 26.0 to 26.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/releases\"\u003epackaging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix incorrect sysconfig var name for pyemscripten by \u003ca href=\"https://github.com/ryanking13\"\u003e\u003ccode\u003e@​ryanking13\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1160\"\u003epypa/packaging#1160\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eVersion\u003c/code\u003e, \u003ccode\u003eSpecifier\u003c/code\u003e, \u003ccode\u003eSpecifierSet\u003c/code\u003e, \u003ccode\u003eTag\u003c/code\u003e, \u003ccode\u003eMarker\u003c/code\u003e, and \u003ccode\u003eRequirement\u003c/code\u003e pickle-safe\nand backward-compatible with pickles created in 25.0-26.1 (including references to the removed\n\u003ccode\u003epackaging._structures\u003c/code\u003e module) by \u003ca href=\"https://github.com/eachimei\"\u003e\u003ccode\u003e@​eachimei\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1163\"\u003epypa/packaging#1163\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1168\"\u003epypa/packaging#1168\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1170\"\u003epypa/packaging#1170\u003c/a\u003e, and \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1171\"\u003epypa/packaging#1171\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: re-export ExceptionGroup for now by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1164\"\u003epypa/packaging#1164\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003edocs: add errors section and fix missing details by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1159\"\u003epypa/packaging#1159\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs(dev): document property-based test suite by \u003ca href=\"https://github.com/r266-tech\"\u003e\u003ccode\u003e@​r266-tech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1167\"\u003epypa/packaging#1167\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typo in DirectUrl documentation by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1169\"\u003epypa/packaging#1169\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs(specifiers): add is_unsatisfiable() usage example by \u003ca href=\"https://github.com/r266-tech\"\u003e\u003ccode\u003e@​r266-tech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1166\"\u003epypa/packaging#1166\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnable the auditor persona on zizmor by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1158\"\u003epypa/packaging#1158\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest new pickle guarantees by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1174\"\u003epypa/packaging#1174\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse native uv integration in rtd by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1175\"\u003epypa/packaging#1175\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ryanking13\"\u003e\u003ccode\u003e@​ryanking13\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1160\"\u003epypa/packaging#1160\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eachimei\"\u003e\u003ccode\u003e@​eachimei\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1163\"\u003epypa/packaging#1163\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pypa/packaging/compare/26.1...26.2\"\u003ehttps://github.com/pypa/packaging/compare/26.1...26.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e26.1\u003c/h2\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cdel\u003ePEP 783: add handling for Emscripten wheel tags by \u003ca href=\"https://github.com/hoodmane\"\u003e\u003ccode\u003e@​hoodmane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/804\"\u003epypa/packaging#804\u003c/a\u003e\u003c/del\u003e (old name used in implementation, will be fixed in next release)\u003c/li\u003e\n\u003cli\u003ePEP 803: add handling for the \u003ccode\u003eabi3.abi3t\u003c/code\u003e free-threading tag by \u003ca href=\"https://github.com/ngoldbaum\"\u003e\u003ccode\u003e@​ngoldbaum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1099\"\u003epypa/packaging#1099\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePEP 723: add \u003ccode\u003epackaging.dependency_groups\u003c/code\u003e module, based on the \u003ccode\u003edependency-groups\u003c/code\u003e package by \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1065\"\u003epypa/packaging#1065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.direct_url\u003c/code\u003e module by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/944\"\u003epypa/packaging#944\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.errors\u003c/code\u003e module by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1071\"\u003epypa/packaging#1071\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSpecifierSet.is_unsatisfiable\u003c/code\u003e using ranges (new internals that will be expanded in future versions) by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1119\"\u003epypa/packaging#1119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ecreate_compatible_tags_selector\u003c/code\u003e to select compatible tags by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1110\"\u003epypa/packaging#1110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003ekey\u003c/code\u003e argument to \u003ccode\u003eSpecifierSet.filter()\u003c/code\u003e by \u003ca href=\"https://github.com/frostming\"\u003e\u003ccode\u003e@​frostming\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1068\"\u003epypa/packaging#1068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e\u0026amp;\u003c/code\u003e and \u003ccode\u003e|\u003c/code\u003e for \u003ccode\u003eMarker\u003c/code\u003e's by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1146\"\u003epypa/packaging#1146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize \u003ccode\u003eVersion.__replace__\u003c/code\u003e and add \u003ccode\u003eVersion.from_parts\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1078\"\u003epypa/packaging#1078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd an option to validate compressed tag set sort order in \u003ccode\u003eparse_wheel_filename\u003c/code\u003e by \u003ca href=\"https://github.com/r266-tech\"\u003e\u003ccode\u003e@​r266-tech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1150\"\u003epypa/packaging#1150\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNarrow exclusion of pre-releases for \u003ccode\u003e\u0026lt;V.postN\u003c/code\u003e to match spec by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1140\"\u003epypa/packaging#1140\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/blob/main/CHANGELOG.rst\"\u003epackaging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e26.2 - 2026-04-24\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nFixes:\n\u003cul\u003e\n\u003cli\u003eFix incorrect sysconfig var name for pyemscripten in (:pull:\u003ccode\u003e1160\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eVersion\u003c/code\u003e, \u003ccode\u003eSpecifier\u003c/code\u003e, \u003ccode\u003eSpecifierSet\u003c/code\u003e, \u003ccode\u003eTag\u003c/code\u003e, \u003ccode\u003eMarker\u003c/code\u003e, and \u003ccode\u003eRequirement\u003c/code\u003e pickle-safe\u003cbr /\u003e\nand backward-compatible with pickles created in 25.0-26.1 (including references to the removed\u003cbr /\u003e\n\u003ccode\u003epackaging._structures\u003c/code\u003e module) (:pull:\u003ccode\u003e1163\u003c/code\u003e, :pull:\u003ccode\u003e1168\u003c/code\u003e, :pull:\u003ccode\u003e1170\u003c/code\u003e, :pull:\u003ccode\u003e1171\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eRe-export \u003ccode\u003eExceptionGroup\u003c/code\u003e in metadata for now in (:pull:\u003ccode\u003e1164\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd errors section and fix missing details in (:pull:\u003ccode\u003e1159\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDocument our property-based test suite in (:pull:\u003ccode\u003e1167\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix a \u003ccode\u003eDirectUrl\u003c/code\u003e typo in (:pull:\u003ccode\u003e1167\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd example of \u003ccode\u003eis_unsatisfiable\u003c/code\u003e in (:pull:\u003ccode\u003e1166\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnable the auditor persona on zizmor in (:pull:\u003ccode\u003e1158\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eTest new pickle guarantees in (:pull:\u003ccode\u003e1174\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse new native ReadTheDocs uv integration in (:pull:\u003ccode\u003e1175\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e26.1 - 2026-04-14\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePEP 783: add handling for Emscripten wheel tags in (:pull:\u003ccode\u003e804\u003c/code\u003e) (old name used in implementation, fixed in next release)\u003c/li\u003e\n\u003cli\u003ePEP 803: add handling for the \u003ccode\u003eabi3.abi3t\u003c/code\u003e free-threading tag in (:pull:\u003ccode\u003e1099\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePEP 723: add \u003ccode\u003epackaging.dependency_groups\u003c/code\u003e module, based on the \u003ccode\u003edependency-groups\u003c/code\u003e package in (:pull:\u003ccode\u003e1065\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.direct_url\u003c/code\u003e module in (:pull:\u003ccode\u003e944\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.errors\u003c/code\u003e module in (:pull:\u003ccode\u003e1071\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSpecifierSet.is_unsatisfiable\u003c/code\u003e using ranges (new internals that will be expanded in future versions) in (:pull:\u003ccode\u003e1119\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ecreate_compatible_tags_selector\u003c/code\u003e to select compatible tags in (:pull:\u003ccode\u003e1110\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003ekey\u003c/code\u003e argument to \u003ccode\u003eSpecifierSet.filter()\u003c/code\u003e in (:pull:\u003ccode\u003e1068\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e\u0026amp;\u003c/code\u003e and \u003ccode\u003e|\u003c/code\u003e for \u003ccode\u003eMarker\u003c/code\u003e's in (:pull:\u003ccode\u003e1146\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eNormalize \u003ccode\u003eVersion.__replace__\u003c/code\u003e and add \u003ccode\u003eVersion.from_parts\u003c/code\u003e in (:pull:\u003ccode\u003e1078\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd an option to validate compressed tag set sort order in \u003ccode\u003eparse_wheel_filename\u003c/code\u003e in (:pull:\u003ccode\u003e1150\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNarrow exclusion of pre-releases for \u003ccode\u003e\u0026lt;V.postN\u003c/code\u003e to match spec in (:pull:\u003ccode\u003e1140\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eNarrow exclusion of post-releases for \u003ccode\u003e\u0026gt;V\u003c/code\u003e to match spec in (:pull:\u003ccode\u003e1141\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003eformat_full_version\u003c/code\u003e to \u003ccode\u003e_format_full_version\u003c/code\u003e to make it visibly private in (:pull:\u003ccode\u003e1125\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eRestrict local version to ASCII in (:pull:\u003ccode\u003e1102\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePylock (PEP 751) updates:\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/84a87ee42483d7352f9502d78a9553da8859aa7a\"\u003e\u003ccode\u003e84a87ee\u003c/code\u003e\u003c/a\u003e Bump for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/4a616b65bed23c8c6d58e6b0fc1a4434d4ff1f14\"\u003e\u003ccode\u003e4a616b6\u003c/code\u003e\u003c/a\u003e docs: a few more updates to prepare for 26.2 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1176\"\u003e#1176\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/9de6f44f1e82d4595edf3aad1c4f6f98c85935a0\"\u003e\u003ccode\u003e9de6f44\u003c/code\u003e\u003c/a\u003e ci: use native uv integration in rtd (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1175\"\u003e#1175\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/bc76e14debd1a2799d1ca8f9d9c9823f35bfa466\"\u003e\u003ccode\u003ebc76e14\u003c/code\u003e\u003c/a\u003e chore: update changelog for 26.2 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1161\"\u003e#1161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/3f00091c08f0aa830e33ed7db00f16f11c8ac97f\"\u003e\u003ccode\u003e3f00091\u003c/code\u003e\u003c/a\u003e tests: add a pickle check (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1174\"\u003e#1174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/48a8a069805291186522de3eff73ea80a8ca96ad\"\u003e\u003ccode\u003e48a8a06\u003c/code\u003e\u003c/a\u003e fix: make Requirements/Markers pickle-safe (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1171\"\u003e#1171\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/823b44ed1f904084a77ae3adf0ef130af6365f84\"\u003e\u003ccode\u003e823b44e\u003c/code\u003e\u003c/a\u003e fix: make Tags pickle-safe (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1170\"\u003e#1170\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/4bed32d920ca7211dd65fdf0a1ee06376e9c4733\"\u003e\u003ccode\u003e4bed32d\u003c/code\u003e\u003c/a\u003e fix: make Specifier / SpecifierSet pickle-safe (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1168\"\u003e#1168\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/963118e37caae97bc8b72f72956c7fb4ca9857ec\"\u003e\u003ccode\u003e963118e\u003c/code\u003e\u003c/a\u003e fix: re-export ExceptionGroup for now (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1164\"\u003e#1164\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/66e34a80256c96dea11da143682950c84b8133bb\"\u003e\u003ccode\u003e66e34a8\u003c/code\u003e\u003c/a\u003e docs(specifiers): add is_unsatisfiable() usage example (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1166\"\u003e#1166\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/packaging/compare/26.0...26.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `platformdirs` from 4.9.4 to 4.9.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/platformdirs/releases\"\u003eplatformdirs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.9.6\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 fix(release): use double quotes for tag variable expansion by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/477\"\u003etox-dev/platformdirs#477\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.9.5...4.9.6\"\u003ehttps://github.com/tox-dev/platformdirs/compare/4.9.5...4.9.6\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/platformdirs/blob/main/docs/changelog.rst\"\u003eplatformdirs's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e###########\nChangelog\n###########\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e4.9.6 (2026-04-09)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 fix(release): use double quotes for tag variable expansion :pr:\u003ccode\u003e477\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e4.9.5 (2026-04-06)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e📝 docs(appauthor): clarify None vs False on Windows :pr:\u003ccode\u003e476\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eSeparates implementations of macOS dirs that share a default :pr:\u003ccode\u003e473\u003c/code\u003e - by :user:\u003ccode\u003eGoddesen\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove persist-credentials: false from release job :pr:\u003ccode\u003e472\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003efix: do not duplicate site dirs in Unix.iter_{config,site}_dirs() when use_site_for_root is active :pr:\u003ccode\u003e469\u003c/code\u003e - by\n:user:\u003ccode\u003eviccie30\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e🔧 fix(type): resolve ty 0.0.25 type errors :pr:\u003ccode\u003e468\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e🔒 ci(workflows): add zizmor security auditing :pr:\u003ccode\u003e467\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(release): generate docstrfmt-compatible changelog entries :pr:\u003ccode\u003e463\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e4.9.4 (2026-03-05)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate :pr:\u003ccode\u003e461\u003c/code\u003e - by :user:\u003ccode\u003epre-commit-ci[bot]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUpdate README.md\u003c/li\u003e\n\u003cli\u003e📝 docs: add project logo to documentation :pr:\u003ccode\u003e459\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eStandardize .github files to .yaml suffix\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump the all group with 2 updates :pr:\u003ccode\u003e457\u003c/code\u003e - by :user:\u003ccode\u003edependabot[bot]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eMove SECURITY.md to .github/SECURITY.md\u003c/li\u003e\n\u003cli\u003eAdd permissions to workflows :pr:\u003ccode\u003e455\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd security policy\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate :pr:\u003ccode\u003e454\u003c/code\u003e - by :user:\u003ccode\u003epre-commit-ci[bot]\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e4.9.2 (2026-02-16)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e📝 docs: restructure following Diataxis framework :pr:\u003ccode\u003e448\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e📝 docs(platforms): fix RST formatting and TOC hierarchy :pr:\u003ccode\u003e447\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e4.9.1 (2026-02-14)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e📝 docs: enhance README, fix issues, and reorganize platforms.rst :pr:\u003ccode\u003e445\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/56efd776d68a94898b319c108933d0cfbff813af\"\u003e\u003ccode\u003e56efd77\u003c/code\u003e\u003c/a\u003e Release 4.9.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/d5d812a02102c633a39f3dfdddbc6bb1670b13ae\"\u003e\u003ccode\u003ed5d812a\u003c/code\u003e\u003c/a\u003e 🐛 fix(release): use double quotes for tag variable expansion (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/477\"\u003e#477\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/c2b0cee3a8261b3a75b283b9ef148d2425d48d35\"\u003e\u003ccode\u003ec2b0cee\u003c/code\u003e\u003c/a\u003e build(deps): bump pypa/gh-action-pypi-publish from 1.13.0 to 1.14.0 in the al...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/7688069a09e03bb4e97fe0f9cf3aebedc8a6f7f9\"\u003e\u003ccode\u003e7688069\u003c/code\u003e\u003c/a\u003e Release 4.9.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/104d28b48c59b327a7832b23509187eef2764af8\"\u003e\u003ccode\u003e104d28b\u003c/code\u003e\u003c/a\u003e 📝 docs(appauthor): clarify None vs False on Windows (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/476\"\u003e#476\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/0955048684241725bb2eae8a2ba5bc7f7f46c9a0\"\u003e\u003ccode\u003e0955048\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/475\"\u003e#475\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/bd3c76602f88284eb832c7f5297c354ea7ac5906\"\u003e\u003ccode\u003ebd3c766\u003c/code\u003e\u003c/a\u003e build(deps): bump astral-sh/setup-uv from 7.6.0 to 8.0.0 in the all group (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/474\"\u003e#474\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/749ac3f33ffc5af04fb8bb046bbbcc4d5aa562c9\"\u003e\u003ccode\u003e749ac3f\u003c/code\u003e\u003c/a\u003e Separates implementations of macOS dirs that share a default (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/473\"\u003e#473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/cb8815684f15c58ad1b87c8b1d34f9bf2d79780e\"\u003e\u003ccode\u003ecb88156\u003c/code\u003e\u003c/a\u003e Remove persist-credentials: false from release job (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/472\"\u003e#472\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/a501eabd7dd0e56116c38fa9dba15f3c0b60010a\"\u003e\u003ccode\u003ea501eab\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/470\"\u003e#470\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.9.4...4.9.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit` from 4.5.1 to 4.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.6.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epre-commit hook-impl\u003c/code\u003e: allow \u003ccode\u003e--hook-dir\u003c/code\u003e to be missing to enable easier usage with \u003ccode\u003egit\u003c/code\u003e 2.54+ git hooks.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3662\"\u003e#3662\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epre-commit hook-impl\u003c/code\u003e: \u003ccode\u003e--hook-type\u003c/code\u003e is required.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3661\"\u003e#3661\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.6.0 - 2026-04-21\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epre-commit hook-impl\u003c/code\u003e: allow \u003ccode\u003e--hook-dir\u003c/code\u003e to be missing to enable easier\nusage with \u003ccode\u003egit\u003c/code\u003e 2.54+ git hooks.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3662\"\u003e#3662\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epre-commit hook-impl\u003c/code\u003e: \u003ccode\u003e--hook-type\u003c/code\u003e is required.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3661\"\u003e#3661\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/f35134b05028ec938ac605ae500fdf95462655d3\"\u003e\u003ccode\u003ef35134b\u003c/code\u003e\u003c/a\u003e v4.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2a51ffcb81f6c8ed2e6467913c3343a8800f3ab9\"\u003e\u003ccode\u003e2a51ffc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3662\"\u003e#3662\u003c/a\u003e from pre-commit/hook-impl-optional-hook-dir\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/d7dee322abfc765b042f2e3b872aab3c3a867610\"\u003e\u003ccode\u003ed7dee32\u003c/code\u003e\u003c/a\u003e make --hook-dir optional for hook-impl\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/965aeb1c680e8b526342153547f0ec014484c63d\"\u003e\u003ccode\u003e965aeb1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3661\"\u003e#3661\u003c/a\u003e from pre-commit/hook-impl-required\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2eacc064aa9b5bb33d3a0d84a234b475e34f3096\"\u003e\u003ccode\u003e2eacc06\u003c/code\u003e\u003c/a\u003e --hook-type is required for hook-impl\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/f5678bf4ac35cffc0ff7174ad85f7fdc2a5c977e\"\u003e\u003ccode\u003ef5678bf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3657\"\u003e#3657\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/054cc5bd6bb1b20faa1eefe09f0de3b68fceee94\"\u003e\u003ccode\u003e054cc5b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/5c0f3024d2524f6e029a4c333392fd9be9fb27f6\"\u003e\u003ccode\u003e5c0f302\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3652\"\u003e#3652\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/a5d91142676630f8130020b35e166e0c0e92b8f4\"\u003e\u003ccode\u003ea5d9114\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/129a1f5ca1eaee0c952a5e7a07faae305c5e15bc\"\u003e\u003ccode\u003e129a1f5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3641\"\u003e#3641\u003c/a\u003e from pre-commit/mxr-patch-1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.5.1...v4.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pygments` from 2.19.2 to 2.20.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pygments/pygments/releases\"\u003epygments's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.20.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eNew lexers:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRell (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2914\"\u003e#2914\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated lexers:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003earchetype: Fix catastrophic backtracking in GUID and ID patterns (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3064\"\u003e#3064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eASN.1: Recognize minus sign and fix range operator (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3014\"\u003e#3014\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3060\"\u003e#3060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eC++: Add C++26 keywords (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2955\"\u003e#2955\u003c/a\u003e), add integer literal suffixes (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2966\"\u003e#2966\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComponentPascal: Fix \u003ccode\u003eanalyse_text\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3028\"\u003e#3028\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3032\"\u003e#3032\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCoq renamed to Rocq (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2883\"\u003e#2883\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2908\"\u003e#2908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCython: Various improvements (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2932\"\u003e#2932\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2933\"\u003e#2933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDebian control: Improve architecture parsing (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3052\"\u003e#3052\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDevicetree: Add support for overlay/fragments (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3021\"\u003e#3021\u003c/a\u003e), add bytestring support (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3022\"\u003e#3022\u003c/a\u003e), fix catastrophic backtracking (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3057\"\u003e#3057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFennel: Various improvements (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2911\"\u003e#2911\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHaskell: Handle escape sequences in character literals (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3069\"\u003e#3069\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/1795\"\u003e#1795\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eJava: Add module keywords (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2955\"\u003e#2955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLean4: Add operators \u003ccode\u003e]'\u003c/code\u003e, \u003ccode\u003e]?\u003c/code\u003e, \u003ccode\u003e]!\u003c/code\u003e  (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2946\"\u003e#2946\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLESS: Support single-line comments (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3005\"\u003e#3005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLilyPond: Update to 2.25.29 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2974\"\u003e#2974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLLVM: Support C-style comments (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3023\"\u003e#3023\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2978\"\u003e#2978\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLua(u): Fix catastrophic backtracking (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3047\"\u003e#3047\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMacaulay2: Update to 1.25.05 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2893\"\u003e#2893\u003c/a\u003e), 1.25.11 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2988\"\u003e#2988\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMathematica: Various improvements (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2957\"\u003e#2957\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emeson: Add additional operators (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2919\"\u003e#2919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMySQL: Update keywords (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2970\"\u003e#2970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eorg-Mode: Support both schedule and deadline (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2899\"\u003e#2899\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePHP: Add \u003ccode\u003e__PROPERTY__\u003c/code\u003e magic constant (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2924\"\u003e#2924\u003c/a\u003e), add reserved keywords (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3002\"\u003e#3002\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePostgreSQL: Add more keywords (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2985\"\u003e#2985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eprotobuf: Fix namespace tokenization (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2929\"\u003e#2929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePython: Add \u003ccode\u003et\u003c/code\u003e-string support (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2973\"\u003e#2973\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3009\"\u003e#3009\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3010\"\u003e#3010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTablegen: Fix infinite loop (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2972\"\u003e#2972\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTera Term macro: Add commands introduced in v5.3 through v5.6 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2951\"\u003e#2951\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTOML: Support TOML 1.1.0 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3026\"\u003e#3026\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3027\"\u003e#3027\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTurtle: Allow empty comment lines (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2980\"\u003e#2980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eXML: Added \u003ccode\u003e.xbrl\u003c/code\u003e as file ending (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2890\"\u003e#2890\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2891\"\u003e#2891\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrop Python 3.8, and add Python 3.14 as a supported version (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2987\"\u003e#2987\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3012\"\u003e#3012\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eVarious improvements to \u003ccode\u003eautopygmentize\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2894\"\u003e#2894\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate \u003ccode\u003eonedark\u003c/code\u003e style to support more token types (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2977\"\u003e#2977\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate \u003ccode\u003ertt\u003c/code\u003e style to support more token types (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2895\"\u003e#2895\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCache entry points to improve performance (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2979\"\u003e#2979\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003exterm-256\u003c/code\u003e color table (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3043\"\u003e#3043\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003ekwargs\u003c/code\u003e dictionary getting mutated on each call (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3044\"\u003e#3044\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pygments/pygments/blob/master/CHANGES\"\u003epygments's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 2.20.0\u003c/h2\u003e\n\u003cp\u003e(released March 29th, 2026)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eNew lexers:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRell (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2914\"\u003e#2914\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated lexers:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003earchetype: Fix catastrophic backtracking in GUID and ID patterns (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3064\"\u003e#3064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eASN.1: Recognize minus sign and fix range operator (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3014\"\u003e#3014\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3060\"\u003e#3060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eC++: Add C++26 keywords (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2955\"\u003e#2955\u003c/a\u003e), add integer literal suffixes (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2966\"\u003e#2966\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComponentPascal: Fix \u003ccode\u003eanalyse_text\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3028\"\u003e#3028\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3032\"\u003e#3032\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCoq renamed to Rocq (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2883\"\u003e#2883\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2908\"\u003e#2908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCython: Various improvements (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2932\"\u003e#2932\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2933\"\u003e#2933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDebian control: Improve architecture parsing (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3052\"\u003e#3052\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDevicetree: Add support for overlay/fragments (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3021\"\u003e#3021\u003c/a\u003e), add bytestring support (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3022\"\u003e#3022\u003c/a\u003e), fix catastrophic backtracking (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3057\"\u003e#3057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFennel: Various improvements (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2911\"\u003e#2911\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHaskell: Handle escape sequences in character literals (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3069\"\u003e#3069\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/1795\"\u003e#1795\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eJava: Add module keywords (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2955\"\u003e#2955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLean4: Add operators \u003ccode\u003e]'\u003c/code\u003e, \u003ccode\u003e]?\u003c/code\u003e, \u003ccode\u003e]!\u003c/code\u003e  (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2946\"\u003e#2946\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLESS: Support single-line comments (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3005\"\u003e#3005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLilyPond: Update to 2.25.29 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2974\"\u003e#2974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLLVM: Support C-style comments (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3023\"\u003e#3023\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2978\"\u003e#2978\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLua(u): Fix catastrophic backtracking (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3047\"\u003e#3047\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMacaulay2: Update to 1.25.05 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2893\"\u003e#2893\u003c/a\u003e), 1.25.11 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2988\"\u003e#2988\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMathematica: Various improvements (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2957\"\u003e#2957\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emeson: Add additional operators (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2919\"\u003e#2919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMySQL: Update keywords (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2970\"\u003e#2970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eorg-Mode: Support both schedule and deadline (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2899\"\u003e#2899\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePHP: Add \u003ccode\u003e__PROPERTY__\u003c/code\u003e magic constant (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2924\"\u003e#2924\u003c/a\u003e), add reserved keywords (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3002\"\u003e#3002\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePostgreSQL: Add more keywords (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2985\"\u003e#2985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eprotobuf: Fix namespace tokenization (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2929\"\u003e#2929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePython: Add \u003ccode\u003et\u003c/code\u003e-string support (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2973\"\u003e#2973\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3009\"\u003e#3009\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3010\"\u003e#3010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTablegen: Fix infinite loop (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2972\"\u003e#2972\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTera Term macro: Add commands introduced in v5.3 through v5.6 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2951\"\u003e#2951\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTOML: Support TOML 1.1.0 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3026\"\u003e#3026\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3027\"\u003e#3027\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTurtle: Allow empty comment lines (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2980\"\u003e#2980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eXML: Added \u003ccode\u003e.xbrl\u003c/code\u003e as file ending (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2890\"\u003e#2890\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2891\"\u003e#2891\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrop Python 3.8, and add Python 3.14 as a supported version (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2987\"\u003e#2987\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3012\"\u003e#3012\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eVarious improvements to \u003ccode\u003eautopygmentize\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2894\"\u003e#2894\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate \u003ccode\u003eonedark\u003c/code\u003e style to support more token types (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2977\"\u003e#2977\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate \u003ccode\u003ertt\u003c/code\u003e style to support more token types (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2895\"\u003e#2895\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCache entry points to improve performance (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2979\"\u003e#2979\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003exterm-256\u003c/code\u003e color table (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3043\"\u003e#3043\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003ekwargs\u003c/code\u003e dictionary getting mutated on each call (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3044\"\u003e#3044\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/708197d82827ba2d5ca78bcbb653c7102ce86dcd\"\u003e\u003ccode\u003e708197d\u003c/code\u003e\u003c/a\u003e Fix underline length.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/1d4538ae8621d766ecc91ff59caf76ab75983abc\"\u003e\u003ccode\u003e1d4538a\u003c/code\u003e\u003c/a\u003e Prepare 2.20 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/2ceaee4e634eebae2d10a47fd05406871f6bac8f\"\u003e\u003ccode\u003e2ceaee4\u003c/code\u003e\u003c/a\u003e Update CHANGES.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/e3a3c54b58c7f80bc4db887e471d4f91c77844ed\"\u003e\u003ccode\u003ee3a3c54\u003c/code\u003e\u003c/a\u003e Fix Haskell lexer: handle escape sequences in character literals (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3069\"\u003e#3069\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/d7c3453e342dac319f58e4091f4ef183cc49d802\"\u003e\u003ccode\u003ed7c3453\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3071\"\u003e#3071\u003c/a\u003e from pygments/harden-html-formatter\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/0f97e7c37d44abfa4ddfddf44a3290fdad586034\"\u003e\u003ccode\u003e0f97e7c\u003c/code\u003e\u003c/a\u003e Harden the HTML formatter against CSS.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/9f981b2ba42b88ca5bdcebf12cd01efd7cd80aec\"\u003e\u003ccode\u003e9f981b2\u003c/code\u003e\u003c/a\u003e Update CHANGES.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/1d889151024e9a53f3702a60558b29b070306e9e\"\u003e\u003ccode\u003e1d88915\u003c/code\u003e\u003c/a\u003e Update CHANGES.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/c3d93adb9827fc054c3c12b47bde31c781a36a93\"\u003e\u003ccode\u003ec3d93ad\u003c/code\u003e\u003c/a\u003e Fix ASN.1 lexer: recognize minus sign a...\n\n_Description has been truncated_","html_url":"https://github.com/github/annotated-logger/pull/130","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/github%2Fannotated-logger/issues/130","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/130/packages"},{"uuid":"2868412854","node_id":"PR_kwDOMt9I9c6q-IG2","number":78,"state":"open","title":"[pip] (deps): Bump the dev-dependencies group across 1 directory with 34 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-28T21:07:37.000Z","updated_at":"2025-09-28T21:07:38.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"[pip] (deps): Bump","group_name":"dev-dependencies","update_count":34,"packages":[{"name":"python-json-logger","old_version":"3.2.1","new_version":"3.3.0","repository_url":"https://github.com/nhairs/python-json-logger"},{"name":"certifi","old_version":"2024.12.14","new_version":"2025.8.3","repository_url":"https://github.com/certifi/python-certifi"},{"name":"charset-normalizer","old_version":"3.4.1","new_version":"3.4.3","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"makefun","old_version":"1.15.6","new_version":"1.16.0","repository_url":"https://github.com/smarie/python-makefun"},{"name":"pychoir","old_version":"0.0.27","new_version":"0.0.29","repository_url":"https://github.com/kajaste/pychoir"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"coverage","old_version":"7.6.10","new_version":"7.10.7","repository_url":"https://github.com/nedbat/coveragepy"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.0","repository_url":"https://github.com/pypa/distlib"},{"name":"exceptiongroup","old_version":"1.2.2","new_version":"1.3.0","repository_url":"https://github.com/agronholm/exceptiongroup"},{"name":"filelock","old_version":"3.16.1","new_version":"3.19.1","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"freezegun","old_version":"1.5.1","new_version":"1.5.5","repository_url":"https://github.com/spulec/freezegun"},{"name":"identify","old_version":"2.6.5","new_version":"2.6.14","repository_url":"https://github.com/pre-commit/identify"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.1.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"junit-xml","old_version":"1.8","new_version":"1.9","repository_url":"https://github.com/kyrus/python-junit-xml"},{"name":"mutmut","old_version":"3.2.2","new_version":"3.3.1","repository_url":"https://github.com/boxed/mutmut"},{"name":"packaging","old_version":"24.2","new_version":"25.0","repository_url":"https://github.com/pypa/packaging"},{"name":"parso","old_version":"0.8.4","new_version":"0.8.5","repository_url":"https://github.com/davidhalter/parso"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.4.0","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"pre-commit","old_version":"4.0.1","new_version":"4.3.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pygments","old_version":"2.19.1","new_version":"2.19.2","repository_url":"https://github.com/pygments/pygments"},{"name":"pyright","old_version":"1.1.391","new_version":"1.1.405","repository_url":"https://github.com/RobertCraigie/pyright-python"},{"name":"pytest","old_version":"8.3.4","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-cov","old_version":"6.0.0","new_version":"7.0.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pytest-github-actions-annotate-failures","old_version":"0.2.0","new_version":"0.3.0","repository_url":"https://github.com/pytest-dev/pytest-github-actions-annotate-failures"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-randomly","old_version":"3.16.0","new_version":"4.0.1","repository_url":"https://github.com/pytest-dev/pytest-randomly"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"rich","old_version":"13.9.4","new_version":"14.1.0","repository_url":"https://github.com/Textualize/rich"},{"name":"ruff","old_version":"0.8.6","new_version":"0.13.2","repository_url":"https://github.com/astral-sh/ruff"},{"name":"setproctitle","old_version":"1.3.4","new_version":"1.3.7","repository_url":"https://github.com/dvarrazzo/py-setproctitle"},{"name":"textual","old_version":"1.0.0","new_version":"6.1.0","repository_url":"https://github.com/Textualize/textual"},{"name":"typing-extensions","old_version":"4.12.2","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"virtualenv","old_version":"20.28.1","new_version":"20.34.0","repository_url":"https://github.com/pypa/virtualenv"}],"path":null,"ecosystem":"pip"},"body":"Bumps the dev-dependencies group with 34 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `3.2.1` | `3.3.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2024.12.14` | `2025.8.3` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.1` | `3.4.3` |\n| [makefun](https://github.com/smarie/python-makefun) | `1.15.6` | `1.16.0` |\n| [pychoir](https://github.com/kajaste/pychoir) | `0.0.27` | `0.0.29` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [coverage](https://github.com/nedbat/coveragepy) | `7.6.10` | `7.10.7` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.0` |\n| [exceptiongroup](https://github.com/agronholm/exceptiongroup) | `1.2.2` | `1.3.0` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.19.1` |\n| [freezegun](https://github.com/spulec/freezegun) | `1.5.1` | `1.5.5` |\n| [identify](https://github.com/pre-commit/identify) | `2.6.5` | `2.6.14` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.1.0` |\n| [junit-xml](https://github.com/kyrus/python-junit-xml) | `1.8` | `1.9` |\n| [mutmut](https://github.com/boxed/mutmut) | `3.2.2` | `3.3.1` |\n| [packaging](https://github.com/pypa/packaging) | `24.2` | `25.0` |\n| [parso](https://github.com/davidhalter/parso) | `0.8.4` | `0.8.5` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.4.0` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.0.1` | `4.3.0` |\n| [pygments](https://github.com/pygments/pygments) | `2.19.1` | `2.19.2` |\n| [pyright](https://github.com/RobertCraigie/pyright-python) | `1.1.391` | `1.1.405` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.4` | `8.4.2` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `6.0.0` | `7.0.0` |\n| [pytest-github-actions-annotate-failures](https://github.com/pytest-dev/pytest-github-actions-annotate-failures) | `0.2.0` | `0.3.0` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [pytest-randomly](https://github.com/pytest-dev/pytest-randomly) | `3.16.0` | `4.0.1` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [rich](https://github.com/Textualize/rich) | `13.9.4` | `14.1.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.8.6` | `0.13.2` |\n| [setproctitle](https://github.com/dvarrazzo/py-setproctitle) | `1.3.4` | `1.3.7` |\n| [textual](https://github.com/Textualize/textual) | `1.0.0` | `6.1.0` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.12.2` | `4.15.0` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `20.28.1` | `20.34.0` |\n\n\nUpdates `python-json-logger` from 3.2.1 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nhairs/python-json-logger/releases\"\u003epython-json-logger's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v3.2.1...v3.3.0\"\u003e3.3.0\u003c/a\u003e - 2025-03-06\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eexc_info_as_array\u003c/code\u003e and \u003ccode\u003estack_info_as_array\u003c/code\u003e options are added to \u003ccode\u003epythonjsonlogger.core.BaseJsonFormatter\u003c/code\u003e allowing both to be encoded as list of lines instead of a single multi-line string. \u003ca href=\"https://redirect.github.com/nhairs/python-json-logger/issues/35\"\u003e#35\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003emsgspec-python313-pre\u003c/code\u003e from \u003ccode\u003edev\u003c/code\u003e dependencies preventing potential RCE. Details: \u003ca href=\"https://github.com/nhairs/python-json-logger/security/advisories/GHSA-wmxh-pxcx-9w24#advisory-comment-121307\"\u003eGHSA-wmxh-pxcx-9w24\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks \u003ca href=\"https://github.com/1hakusai1\"\u003e\u003ccode\u003e@​1hakusai1\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/omnigodz\"\u003e\u003ccode\u003e@​omnigodz\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/nhairs/python-json-logger/blob/main/docs/changelog.md\"\u003epython-json-logger's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v3.2.1...v3.3.0\"\u003e3.3.0\u003c/a\u003e - 2025-03-06\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eexc_info_as_array\u003c/code\u003e and \u003ccode\u003estack_info_as_array\u003c/code\u003e options are added to \u003ccode\u003epythonjsonlogger.core.BaseJsonFormatter\u003c/code\u003e allowing both to be encoded as list of lines instead of a single multi-line string. \u003ca href=\"https://redirect.github.com/nhairs/python-json-logger/issues/35\"\u003e#35\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003emsgspec-python313-pre\u003c/code\u003e from \u003ccode\u003edev\u003c/code\u003e dependencies preventing potential RCE. Details: \u003ca href=\"https://github.com/nhairs/python-json-logger/security/advisories/GHSA-wmxh-pxcx-9w24#advisory-comment-121307\"\u003eGHSA-wmxh-pxcx-9w24\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks \u003ca href=\"https://github.com/1hakusai1\"\u003e\u003ccode\u003e@​1hakusai1\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/omnigodz\"\u003e\u003ccode\u003e@​omnigodz\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/9e6cb679dfb56cb82d9a8cc91f956efd72427055\"\u003e\u003ccode\u003e9e6cb67\u003c/code\u003e\u003c/a\u003e Release 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/db04a0f9066cc331f8d6177f828fe073c7b2a4cc\"\u003e\u003ccode\u003edb04a0f\u003c/code\u003e\u003c/a\u003e Add options to encode stack information into an array (\u003ca href=\"https://redirect.github.com/nhairs/python-json-logger/issues/39\"\u003e#39\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/0092ea0be1cd28e3c1da51eaa084c503bb3710b7\"\u003e\u003ccode\u003e0092ea0\u003c/code\u003e\u003c/a\u003e Move to uv (\u003ca href=\"https://redirect.github.com/nhairs/python-json-logger/issues/40\"\u003e#40\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/1ce81a3614d8c77389a9c048d341593e2a7467e7\"\u003e\u003ccode\u003e1ce81a3\u003c/code\u003e\u003c/a\u003e [tests] Update tests for msgspec 0.19.0 (\u003ca href=\"https://redirect.github.com/nhairs/python-json-logger/issues/41\"\u003e#41\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v3.2.1...v3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2024.12.14 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\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/e767d5938eddddf804216cec93a55c85129c5f2d\"\u003e\u003ccode\u003ee767d59\u003c/code\u003e\u003c/a\u003e 2025.06.15 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/357\"\u003e#357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/3e7076557d66b598fcca462e422dc988f09a6802\"\u003e\u003ccode\u003e3e70765\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.5.0 to 5.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/9afd2ff407b8a0638988c952a6636b8dd623af7c\"\u003e\u003ccode\u003e9afd2ff\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4.2.1 to 4.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/d7c816cbc9cf621b3ddc8cd7fa7eda3f36982620\"\u003e\u003ccode\u003ed7c816c\u003c/code\u003e\u003c/a\u003e remove code that's no longer required that 3.7 is our minimum (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/351\"\u003e#351\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/189961379209973abd0dd6304297f03e2359e1b9\"\u003e\u003ccode\u003e1899613\u003c/code\u003e\u003c/a\u003e Declare setuptools as the build backend in pyproject.toml (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/350\"\u003e#350\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/c8741423d67e1025c0bdad5225ded05cf962f207\"\u003e\u003ccode\u003ec874142\u003c/code\u003e\u003c/a\u003e update CI for ubuntu 20.04 deprecation (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/348\"\u003e#348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/275c9eb55733a464589c15fb4566fddd4598e5b2\"\u003e\u003ccode\u003e275c9eb\u003c/code\u003e\u003c/a\u003e 2025.04.26 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/347\"\u003e#347\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2024.12.14...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.1 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\u003ch2\u003eVersion 3.4.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.9\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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.1...3.4.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `makefun` from 1.15.6 to 1.16.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/smarie/python-makefun/blob/main/docs/changelog.md\"\u003emakefun's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e1.16.0 - Support for 3.14, dropped support for \u0026lt; 3.9\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved official support for python versions \u003ccode\u003e\u0026lt;3.9\u003c/code\u003e. These versions will not run in CI anymore.\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eRuntimeError\u003c/code\u003e in tests when running on python 3.14. Added python 3.14 to CI. Fixes\n\u003ca href=\"https://redirect.github.com/smarie/python-makefun/issues/112\"\u003e#112\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/smarie/python-makefun/commit/197b14827c1b7830c0288477c007e1f1592f52ad\"\u003e\u003ccode\u003e197b148\u003c/code\u003e\u003c/a\u003e Changelog for tag, ready to release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/321a39c9a8be1497ba7dfbb9c7c16a9442ae25a6\"\u003e\u003ccode\u003e321a39c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/smarie/python-makefun/issues/118\"\u003e#118\u003c/a\u003e from smarie/feature/112_support_py314\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/39f061e17a7d7472e33cec76d162381ae82b49e3\"\u003e\u003ccode\u003e39f061e\u003c/code\u003e\u003c/a\u003e With latest versions of all actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/4771aaf910459dfabb12109cf4ae37cd089fd9d6\"\u003e\u003ccode\u003e4771aaf\u003c/code\u003e\u003c/a\u003e Changed the fix to leverage pytest-asyncio, now that we do not support python...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/498ed69f5fa22baa5300b354d419fd45be55cf6e\"\u003e\u003ccode\u003e498ed69\u003c/code\u003e\u003c/a\u003e Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/87eb2ebefa88d212e4ae75f28fc0ffc2fb9194c6\"\u003e\u003ccode\u003e87eb2eb\u003c/code\u003e\u003c/a\u003e Fixed \u003ccode\u003eRuntimeError\u003c/code\u003e in tests when running on pythn 3.14. Added python 3.14 t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/4573c65b6b8405b6194361805a44ba8d9d08c41d\"\u003e\u003ccode\u003e4573c65\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/smarie/python-makefun/issues/117\"\u003e#117\u003c/a\u003e from smarie/chore/116_gh_pages_workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/db582747d0b89ea35927176910205f3f68a429d4\"\u003e\u003ccode\u003edb58274\u003c/code\u003e\u003c/a\u003e Added gh pages workflow. Fixed \u003ca href=\"https://redirect.github.com/smarie/python-makefun/issues/116\"\u003e#116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/c8990e6a660082b42f8314f96bf7369a0f6c2463\"\u003e\u003ccode\u003ec8990e6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/smarie/python-makefun/issues/114\"\u003e#114\u003c/a\u003e from smarie/feature/py35_in_ci\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/3b1e628e9e7ecf05ea9bc6a9fb73c45563a3c24a\"\u003e\u003ccode\u003e3b1e628\u003c/code\u003e\u003c/a\u003e Removed 3.14 for now\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/smarie/python-makefun/compare/1.15.6...1.16.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pychoir` from 0.0.27 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/kajaste/pychoir/releases\"\u003epychoir's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eTwenty-ninth release\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch pipenv \u0026amp; setuptools to uv by \u003ca href=\"https://github.com/kajaste\"\u003e\u003ccode\u003e@​kajaste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kajaste/pychoir/pull/97\"\u003ekajaste/pychoir#97\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/kajaste/pychoir/compare/v0.0.28...v0.0.29\"\u003ehttps://github.com/kajaste/pychoir/compare/v0.0.28...v0.0.29\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eTwenty-eighth release\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate dev deps by \u003ca href=\"https://github.com/kajaste\"\u003e\u003ccode\u003e@​kajaste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kajaste/pychoir/pull/94\"\u003ekajaste/pychoir#94\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump dev deps by \u003ca href=\"https://github.com/kajaste\"\u003e\u003ccode\u003e@​kajaste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kajaste/pychoir/pull/95\"\u003ekajaste/pychoir#95\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs \u0026amp; Makefile update by \u003ca href=\"https://github.com/kajaste\"\u003e\u003ccode\u003e@​kajaste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kajaste/pychoir/pull/96\"\u003ekajaste/pychoir#96\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/kajaste/pychoir/compare/v0.0.27...v0.0.28\"\u003ehttps://github.com/kajaste/pychoir/compare/v0.0.27...v0.0.28\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/kajaste/pychoir/commit/bf2f254bcadf03026867a6442523549f1abb16d3\"\u003e\u003ccode\u003ebf2f254\u003c/code\u003e\u003c/a\u003e Switch pipenv \u0026amp; setuptools to uv\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kajaste/pychoir/commit/c1d251d480a47f8bc29e89765c19b00b594442b2\"\u003e\u003ccode\u003ec1d251d\u003c/code\u003e\u003c/a\u003e Docs \u0026amp; Makefile update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kajaste/pychoir/commit/f6181a037d2e791bbf9306b4210a9b4934fc1bbf\"\u003e\u003ccode\u003ef6181a0\u003c/code\u003e\u003c/a\u003e Drop 3.7, add 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kajaste/pychoir/commit/f94fdad20f981f344adbdc07b9aa1cb00795b671\"\u003e\u003ccode\u003ef94fdad\u003c/code\u003e\u003c/a\u003e Bump dev deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kajaste/pychoir/commit/5a2ebd7ca625779b7beaab71d50631f9529f21eb\"\u003e\u003ccode\u003e5a2ebd7\u003c/code\u003e\u003c/a\u003e Update dev deps\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/kajaste/pychoir/compare/v0.0.27...v0.0.29\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.4 to 2.32.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.32.5\u003c/h2\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b25c87d7cb8d6a18a37fa12442b5f883f9e41741\"\u003e\u003ccode\u003eb25c87d\u003c/code\u003e\u003c/a\u003e v2.32.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/131e506079d97606e4214cc4d87b780ac478de7a\"\u003e\u003ccode\u003e131e506\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psf/requests/issues/7010\"\u003e#7010\u003c/a\u003e from psf/dependabot/github_actions/actions/checkout-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b336cb2bc616a63a93c6470c558fc1f576b77f90\"\u003e\u003ccode\u003eb336cb2\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.2.0 to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/46e939b5525d9c72b677340985582b04b128478a\"\u003e\u003ccode\u003e46e939b\u003c/code\u003e\u003c/a\u003e Update publish workflow to use \u003ccode\u003eartifact-id\u003c/code\u003e instead of \u003ccode\u003ename\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/4b9c546aa3f35fca6ca24945376fe7462bb007c4\"\u003e\u003ccode\u003e4b9c546\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psf/requests/issues/6999\"\u003e#6999\u003c/a\u003e from psf/dependabot/github_actions/step-security/har...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/7618dbef01d333f23ba4b9c4d97397b06dd89cb6\"\u003e\u003ccode\u003e7618dbe\u003c/code\u003e\u003c/a\u003e Bump step-security/harden-runner from 2.12.0 to 2.13.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2edca11103c1c27dd8b572dab544b7f48cf3b446\"\u003e\u003ccode\u003e2edca11\u003c/code\u003e\u003c/a\u003e Add support for Python 3.14 and drop support for Python 3.8 (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6993\"\u003e#6993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/fec96cd5976ad763e45bac9a033d62cca1877a00\"\u003e\u003ccode\u003efec96cd\u003c/code\u003e\u003c/a\u003e Update Makefile rules (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6996\"\u003e#6996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d58d8aa2f45c3575268d6d5250745ef69f9cf8b7\"\u003e\u003ccode\u003ed58d8aa\u003c/code\u003e\u003c/a\u003e docs: clarify timeout parameter uses seconds in Session.request (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6994\"\u003e#6994\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/91a3eabd3dcc4d7f36dd8249e4777a90ef9b4305\"\u003e\u003ccode\u003e91a3eab\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 3.28.5 to 3.29.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.4...v2.32.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.6.10 to 7.10.7\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.7 — 2025-09-21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance: with branch coverage in large files, generating HTML, JSON, or\nLCOV reports could take far too long due to some quadratic behavior when\ncreating the function and class index pages.  This is now fixed, closing\n\u003ccode\u003eissue 2048\u003c/code\u003e_.  Thanks to Daniel Diniz for help diagnosing the problem.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMost warnings and a few errors now have links to a page in the docs\nexplaining the specific message.  Closes \u003ccode\u003eissue 1921\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1921: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1921\"\u003enedbat/coveragepy#1921\u003c/a\u003e\n.. _issue 2048: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2048\"\u003enedbat/coveragepy#2048\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-10-6:\u003c/p\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\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/92a2af54e6bc948a9c536bd9b12bab70fb055904\"\u003e\u003ccode\u003e92a2af5\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.10.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/952afdaca658d5e1acdd533c727448a0b218caf0\"\u003e\u003ccode\u003e952afda\u003c/code\u003e\u003c/a\u003e docs: prep for 7.10.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/a301761e69da97b27662f395974d26f78fa8b2b5\"\u003e\u003ccode\u003ea301761\u003c/code\u003e\u003c/a\u003e build: riscv64 wheels (\u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2055\"\u003e#2055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/5daff8d38786aa540ff9bec622eb3389f117f911\"\u003e\u003ccode\u003e5daff8d\u003c/code\u003e\u003c/a\u003e docs: now source is formatted with ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/04bbc3acfd914fdd99ffec9873bc03bdc7329357\"\u003e\u003ccode\u003e04bbc3a\u003c/code\u003e\u003c/a\u003e docs: discuss cog in the contributing docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/c181b9315f59a81667da47cf3d760d0253872238\"\u003e\u003ccode\u003ec181b93\u003c/code\u003e\u003c/a\u003e build: use cog --check-fail-msg to instruct devs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/33c4ba196f49e0ee86ab0ff473c0876c0bacd5fa\"\u003e\u003ccode\u003e33c4ba1\u003c/code\u003e\u003c/a\u003e chore: make upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/0744b73b6b503ccf2cb75aba095c023672b921a8\"\u003e\u003ccode\u003e0744b73\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group across 1 directory with 2 updates (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/0d5a112fc54c1d5a07f3f2ec451779808902c9af\"\u003e\u003ccode\u003e0d5a112\u003c/code\u003e\u003c/a\u003e perf: bulk narrowing to avoid N**2. \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2048\"\u003e#2048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/a868ed9269ca474748130f5c6360cd2aae66ffc8\"\u003e\u003ccode\u003ea868ed9\u003c/code\u003e\u003c/a\u003e docs: mention Python Discord on the index page\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nedbat/coveragepy/compare/7.6.10...7.10.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 `exceptiongroup` from 1.2.2 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/agronholm/exceptiongroup/releases\"\u003eexceptiongroup's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003e**kwargs\u003c/code\u003e to function and method signatures as appropriate to match the signatures in the standard library\u003c/li\u003e\n\u003cli\u003eIn line with the stdlib typings in typeshed, updated \u003ccode\u003e(Base)ExceptionGroup\u003c/code\u003e generic types to define defaults for their generic arguments (defaulting to \u003ccode\u003eBaseExceptionGroup[BaseException]\u003c/code\u003e and \u003ccode\u003eExceptionGroup[Exception]\u003c/code\u003e) (PR by \u003ca href=\"https://github.com/mikenerone\"\u003e\u003ccode\u003e@​mikenerone\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eBaseExceptionGroup.__init__()\u003c/code\u003e to directly call \u003ccode\u003eBaseException.__init__()\u003c/code\u003e instead of the superclass \u003ccode\u003e__init__()\u003c/code\u003e in order to emulate the CPython behavior (broken or not) (PR by \u003ca href=\"https://github.com/cfbolz\"\u003e\u003ccode\u003e@​cfbolz\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged the \u003ccode\u003eexceptions\u003c/code\u003e attribute to always return the same tuple of exceptions, created from the original exceptions sequence passed to \u003ccode\u003eBaseExceptionGroup\u003c/code\u003e to match CPython behavior (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/143\"\u003e#143\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/agronholm/exceptiongroup/blob/main/CHANGES.rst\"\u003eexceptiongroup's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eVersion history\u003c/h1\u003e\n\u003cp\u003eThis library adheres to \u003ccode\u003eSemantic Versioning 2.0 \u0026lt;http://semver.org/\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e1.3.0\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003e**kwargs\u003c/code\u003e to function and method signatures as appropriate to match the\nsignatures in the standard library\u003c/li\u003e\n\u003cli\u003eIn line with the stdlib typings in typeshed, updated \u003ccode\u003e(Base)ExceptionGroup\u003c/code\u003e generic\ntypes to define defaults for their generic arguments (defaulting to\n\u003ccode\u003eBaseExceptionGroup[BaseException]\u003c/code\u003e and \u003ccode\u003eExceptionGroup[Exception]\u003c/code\u003e)\n(PR by \u003ca href=\"https://github.com/mikenerone\"\u003e\u003ccode\u003e@​mikenerone\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eBaseExceptionGroup.__init__()\u003c/code\u003e to directly call\n\u003ccode\u003eBaseException.__init__()\u003c/code\u003e instead of the superclass \u003ccode\u003e__init__()\u003c/code\u003e in order to\nemulate the CPython behavior (broken or not) (PR by \u003ca href=\"https://github.com/cfbolz\"\u003e\u003ccode\u003e@​cfbolz\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged the \u003ccode\u003eexceptions\u003c/code\u003e attribute to always return the same tuple of exceptions,\ncreated from the original exceptions sequence passed to \u003ccode\u003eBaseExceptionGroup\u003c/code\u003e to\nmatch CPython behavior\n(\u003ccode\u003e[#143](https://github.com/agronholm/exceptiongroup/issues/143) \u0026lt;https://github.com/agronholm/exceptiongroup/issues/143\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e1.2.2\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved an \u003ccode\u003eassert\u003c/code\u003e in \u003ccode\u003eexceptiongroup._formatting\u003c/code\u003e that caused compatibility\nissues with Sentry (\u003ccode\u003e[#123](https://github.com/agronholm/exceptiongroup/issues/123) \u0026lt;https://github.com/agronholm/exceptiongroup/issues/123\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e1.2.1\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated the copying of \u003ccode\u003e__notes__\u003c/code\u003e to match CPython behavior (PR by CF Bolz-Tereick)\u003c/li\u003e\n\u003cli\u003eCorrected the type annotation of the exception handler callback to accept a\n\u003ccode\u003eBaseExceptionGroup\u003c/code\u003e instead of \u003ccode\u003eBaseException\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFixed type errors on Python \u0026lt; 3.10 and the type annotation of \u003ccode\u003esuppress()\u003c/code\u003e\n(PR by John Litborn)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e1.2.0\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded special monkeypatching if \u003ccode\u003eApport \u0026lt;https://github.com/canonical/apport\u0026gt;\u003c/code\u003e_ has\noverridden \u003ccode\u003esys.excepthook\u003c/code\u003e so it will format exception groups correctly\n(PR by John Litborn)\u003c/li\u003e\n\u003cli\u003eAdded a backport of \u003ccode\u003econtextlib.suppress()\u003c/code\u003e from Python 3.12.1 which also handles\nsuppressing exceptions inside exception groups\u003c/li\u003e\n\u003cli\u003eFixed bare \u003ccode\u003eraise\u003c/code\u003e in a handler reraising the original naked exception rather than\nan exception group which is what is raised when you do a \u003ccode\u003eraise\u003c/code\u003e in an \u003ccode\u003eexcept*\u003c/code\u003e\nhandler\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e1.1.3\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ecatch()\u003c/code\u003e now raises a \u003ccode\u003eTypeError\u003c/code\u003e if passed an async exception handler instead of\njust giving a \u003ccode\u003eRuntimeWarning\u003c/code\u003e about the coroutine never being awaited. (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/66\"\u003e#66\u003c/a\u003e, PR by\nJohn Litborn)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/77fba8a871408ff2c48f536e5e73b1918239ba5f\"\u003e\u003ccode\u003e77fba8a\u003c/code\u003e\u003c/a\u003e Added the release version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/5e153aa379ac53af79cc7f5e287f77929cb4d0dc\"\u003e\u003ccode\u003e5e153aa\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Migrated test dependencies to dependency groups\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/5000bfea208ad59e3a20e2fb91a513ad559711b1\"\u003e\u003ccode\u003e5000bfe\u003c/code\u003e\u003c/a\u003e Migrated tox configuration to native TOML\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/427220d67a52585e98575103b090b5fdaf87a899\"\u003e\u003ccode\u003e427220d\u003c/code\u003e\u003c/a\u003e Updated pytest options\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/4ca264fa3605d52067c20b351a0d3b947fa1f363\"\u003e\u003ccode\u003e4ca264f\u003c/code\u003e\u003c/a\u003e Migrated test dependencies to dependency groups\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/163c3a8cb27f8a5325258b5a83e7cf8fc002c3b7\"\u003e\u003ccode\u003e163c3a8\u003c/code\u003e\u003c/a\u003e Marked test_exceptions_mutate_original_sequence as xfail on pypy3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/a1765740db2d55d1eb91d67a8fbbb355caf7881b\"\u003e\u003ccode\u003ea176574\u003c/code\u003e\u003c/a\u003e Always create the exceptions tuple at init and return it from the exceptions ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/550b79621cc35892413fa91903a1d6c7951d0449\"\u003e\u003ccode\u003e550b796\u003c/code\u003e\u003c/a\u003e Added BaseExceptionGroup.\u003cstrong\u003einit\u003c/strong\u003e, following CPython (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/142\"\u003e#142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/2a84dfd5599bca0c653143f0f4252d38afac9867\"\u003e\u003ccode\u003e2a84dfd\u003c/code\u003e\u003c/a\u003e Added typevar defaults to (Base)ExceptionGroup (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/147\"\u003e#147\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/fb9133b495fc82bc2907e8cfbdff6c6dc3087e2f\"\u003e\u003ccode\u003efb9133b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/145\"\u003e#145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/exceptiongroup/compare/1.2.2...1.3.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.16.1 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\u003ch2\u003e3.18.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIndicate that locks are exclusive/write locks. by \u003ca href=\"https://github.com/bicarlsen\"\u003e\u003ccode\u003e@​bicarlsen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/394\"\u003etox-dev/filelock#394\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport fcntl check on Emscripten by \u003ca href=\"https://github.com/juntyr\"\u003e\u003ccode\u003e@​juntyr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/398\"\u003etox-dev/filelock#398\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/bicarlsen\"\u003e\u003ccode\u003e@​bicarlsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/394\"\u003etox-dev/filelock#394\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/juntyr\"\u003e\u003ccode\u003e@​juntyr\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/398\"\u003etox-dev/filelock#398\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.17.0...3.18.0\"\u003ehttps://github.com/tox-dev/filelock/compare/3.17.0...3.18.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDrop 3.8\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.16.1...3.17.0\"\u003ehttps://github.com/tox-dev/filelock/compare/3.16.1...3.17.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.16.1...3.19.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `freezegun` from 1.5.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\u003c/blockquote\u003e\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.5.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 `identify` from 2.6.5 to 2.6.14\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/6667ae3392c3e2178469779352012d4518c8cdc0\"\u003e\u003ccode\u003e6667ae3\u003c/code\u003e\u003c/a\u003e v2.6.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/0ce88278a87decaf8a7b266074a0044a8fb8dd5c\"\u003e\u003ccode\u003e0ce8827\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/identify/issues/537\"\u003e#537\u003c/a\u003e from LNSD/add-meson-options-support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/29d1fcc8d1dafe99cf82e4c3a6200acdd17490fd\"\u003e\u003ccode\u003e29d1fcc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/identify/issues/536\"\u003e#536\u003c/a\u003e from mike325/fix/add_robot_filetype\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/daf602344d904fd56a85ae76f0a2594ddcebc479\"\u003e\u003ccode\u003edaf6023\u003c/code\u003e\u003c/a\u003e Add support for \u003ccode\u003emeson.options\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/6d493646beb1b740c4b871dd7692b5ab453c1beb\"\u003e\u003ccode\u003e6d49364\u003c/code\u003e\u003c/a\u003e fix: add robot filetype\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/53fdb98ef92dc697d7b84cf07dbb3e6e5d7493f6\"\u003e\u003ccode\u003e53fdb98\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/identify/issues/531\"\u003e#531\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/ffc2322be9c429f69761a777a2f9f1adc87680d0\"\u003e\u003ccode\u003effc2322\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/identify/commit/af4da9c69b07a41dfbfc1f3ec60d27d9aa0654dc\"\u003e\u003ccode\u003eaf4da9c\u003c/code\u003e\u003c/a\u003e v2.6.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/bdf9c05f99c426e7ab115f68cf62bd0a70b33012\"\u003e\u003ccode\u003ebdf9c05\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/identify/issues/530\"\u003e#530\u003c/a\u003e from dirtcrusher/feature/special_cpp_extensions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/1a6b03cde137b43d4aa6bfd5ea80a762b923efa0\"\u003e\u003ccode\u003e1a6b03c\u003c/code\u003e\u003c/a\u003e Added C++ 'ipp' and 'tpp' file extensions\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/identify/compare/v2.6.5...v2.6.14\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `iniconfig` from 2.0.0 to 2.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/iniconfig/releases\"\u003einiconfig's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.1.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/26\"\u003e#26\u003c/a\u003e - list individuals in license file by \u003ca href=\"https://github.com/RonnyPfannschmidt\"\u003e\u003ccode\u003e@​RonnyPfannschmidt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/52\"\u003epytest-dev/iniconfig#52\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRun tests in CI by \u003ca href=\"https://github.com/nicoddemus\"\u003e\u003ccode\u003e@​nicoddemus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/53\"\u003epytest-dev/iniconfig#53\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003epypa/gh-action-pypi-publish@release/v1\u003c/code\u003e @ GHA by \u003ca href=\"https://github.com/webknjaz\"\u003e\u003ccode\u003e@​webknjaz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/54\"\u003epytest-dev/iniconfig#54\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12-3.13 and drop EOL 3.7 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/56\"\u003epytest-dev/iniconfig#56\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/nicoddemus\"\u003e\u003ccode\u003e@​nicoddemus\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/53\"\u003epytest-dev/iniconfig#53\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/webknjaz\"\u003e\u003ccode\u003e@​webknjaz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/54\"\u003epytest-dev/iniconfig#54\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pytest-dev/iniconfig/compare/v2.0.0...v2.1.0\"\u003ehttps://github.com/pytest-dev/iniconfig/compare/v2.0.0...v2.1.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/pytest-dev/iniconfig/blob/main/CHANGELOG\"\u003einiconfig's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.1.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix artifact building - pin minimal version of hatch\u003c/li\u003e\n\u003cli\u003edrop eol python 3.8\u003c/li\u003e\n\u003cli\u003eadd python 3.12 and 3.13\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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/iniconfig/commit/34793a6417e35e511d0c17ffdd8a02ade0f9568e\"\u003e\u003ccode\u003e34793a6\u003c/code\u003e\u003c/a\u003e pre-commit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/136435d0a4345bb048dca98e7c2f4e938d74521b\"\u003e\u003ccode\u003e136435d\u003c/code\u003e\u003c/a\u003e update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/0bb99ad0f7a6b21d5eb24214a260132317a11e43\"\u003e\u003ccode\u003e0bb99ad\u003c/code\u003e\u003c/a\u003e fix \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/62\"\u003e#62\u003c/a\u003e: require a minimal hatch version with correct metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/16793eaddac67de0b8d621ae4e42e05b927e8d67\"\u003e\u003ccode\u003e16793ea\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/56\"\u003e#56\u003c/a\u003e from hugovk/add-3.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/3dc2b2d6bf03e4b7cc92949a8ef0983fdd7ee442\"\u003e\u003ccode\u003e3dc2b2d\u003c/code\u003e\u003c/a\u003e Add support for Python 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/2eb8abfd9d3843100d7f138efe5bcd989a885024\"\u003e\u003ccode\u003e2eb8abf\u003c/code\u003e\u003c/a\u003e Bump GitHub Actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/8c4bb5bf57dde613c8cdcf0e02a09b2fff630907\"\u003e\u003ccode\u003e8c4bb5b\u003c/code\u003e\u003c/a\u003e Set python-version for pre-commit to remove CI warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/58b22b2d672564ff1925df51f4a8e07486765ed2\"\u003e\u003ccode\u003e58b22b2\u003c/code\u003e\u003c/a\u003e Drop support for EOL Python 3.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/4a53042252a109bcdd64422058de91c5dffff763\"\u003e\u003ccode\u003e4a53042\u003c/code\u003e\u003c/a\u003e Add support for Python 3.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/9cae43103df70bac6fde7b9f35ad11a9f1be0cb4\"\u003e\u003ccode\u003e9cae431\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/54\"\u003e#54\u003c/a\u003e from webknjaz/patch-1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/iniconfig/compare/v2.0.0...v2.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `junit-xml` from 1.8 to 1.9\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/kyrus/python-junit-xml/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mutmut` from 3.2.2 to 3.3.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/boxed/mutmut/blob/main/HISTORY.rst\"\u003emutmut's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e3.3.1\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Increased threshold for mutant timeouts\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003etests_dir\u003c/code\u003e config. Accepts a single entry or a list of directories.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAsync generators fixes\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed bad mutations for certain string escape sequences\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance fixes\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eVarious internal bug fixes\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e3.3.0\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003ePython 3.13 compatibility!\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eNew argument \u003ccode\u003e--show-killed\u003c/code\u003e for \u003ccode\u003emutmut browse\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix to avoid accidentally importing the un-mutated original code\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eHandle segfault for mutant subprocesses\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded mutations for string literals\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded mutations for common string methods\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFaster mutant generation via subprocesses\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eself\u003c/code\u003e parameter for mutated class methods\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix trampoline generation for function calls with 'orig' or 'mutants' as argument names.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCopy full source directory before creating mutants\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved error message when forced fail test fails\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed issue with spaces in the python executable path\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDo not mutate \u003ccode\u003e__new__\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAnnotate mutant dicts (and fixes compatibility with Pydantic)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eReplaced parso with LibCST\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/boxed/mutmut/commit/0f2586a806e069cc335d68ccd7d6277088f69249\"\u003e\u003ccode\u003e0f2586a\u003c/code\u003e\u003c/a\u003e Release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/6a5c471e0c13f782caacfdd244f2717002a13192\"\u003e\u003ccode\u003e6a5c471\u003c/code\u003e\u003c/a\u003e Pass mutation generation errors from subprocess to main process\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/7b03f4bffc3e8ac0c85158947e4659a5831cbf63\"\u003e\u003ccode\u003e7b03f4b\u003c/code\u003e\u003c/a\u003e Update timeout values\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/3cd39fac6f800de8859b8e876d0f74cd100574c8\"\u003e\u003ccode\u003e3cd39fa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/boxed/mutmut/issues/408\"\u003e#408\u003c/a\u003e from souradeep-das/souradeep/add_tests_dir\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/3e52e5e13347589adf725de1847204aad1b22a64\"\u003e\u003ccode\u003e3e52e5e\u003c/code\u003e\u003c/a\u003e modify e2e tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/10bb45183d781504fb13925dd3baee21edcf8673\"\u003e\u003ccode\u003e10bb451\u003c/code\u003e\u003c/a\u003e merge latest\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/d4980abef4bbbcea6e9070bc0a1c92626bb9ebb4\"\u003e\u003ccode\u003ed4980ab\u003c/code\u003e\u003c/a\u003e fix: accept lists as tests_dir\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/22f3924b6b5a2ff7916c1f62aa1ed1f3341e42ee\"\u003e\u003ccode\u003e22f3924\u003c/code\u003e\u003c/a\u003e Improve diff view performance a bit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/eb37032a679e1b160b012d838f798fd7fc266e48\"\u003e\u003ccode\u003eeb37032\u003c/code\u003e\u003c/a\u003e Make rlimit signal SIGXCPU first; only fallback to SIGKILL later on\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/99ecd3209b8ed49b6dc9d97dcfe67e66f0e8e773\"\u003e\u003ccode\u003e99ecd32\u003c/code\u003e\u003c/a\u003e fix timeout checker \u0026quot;dictionary changed size during iteration\u0026quot; bug (\u003ca href=\"https://redirect.github.com/boxed/mutmut/issues/411\"\u003e#411\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boxed/mutmut/compare/3.2.2...3.3.1\"\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 `parso` from 0.8.4 to 0.8.5\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/davidhalter/parso/blob/master/CHANGELOG.rst\"\u003eparso's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.8.5 (2025-08-23)\n++++++++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a fallback grammar 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/davidhalter/parso/commit/be9f5a401feaa1a7eda935bc68b2d3baed9a30ab\"\u003e\u003ccode\u003ebe9f5a4\u003c/code\u003e\u003c/a\u003e Prepare release 0.8.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/davidhalter/parso/commit/7e4777b775206038a1aa87282c79ed04f5f1c3fd\"\u003e\u003ccode\u003e7e4777b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/davidhalter/parso/issues/234\"\u003e#234\u003c/a\u003e from A5rocks/future-compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/davidhalter/parso/commit/e99dbdd536da741d4935c427a6231f4d5eb6ea79\"\u003e\u003ccode\u003ee99dbdd\u003c/code\u003e\u003c/a\u003e Remove redundant warnings import\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/davidhalter/parso/commit/e22dc67aa10b53bbf069f825a0d40eefc727f0cb\"\u003e\u003ccode\u003ee22dc67\u003c/code\u003e\u003c/a\u003e Avoid warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/davidhalter/parso/commit/baa3c90d85a10f6abb8307246a89fc683981cee7\"\u003e\u003ccode\u003ebaa3c90\u003c/code\u003e\u003c/a\u003e Load newest grammar in face of a future grammar\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/davidhalter/parso/commit/23b1cdf73d95ae20f23e2fd198cafcd8fef529ad\"\u003e\u003ccode\u003e23b1cdf\u003c/code\u003e\u003c/a\u003e Drop Python 3.7 in CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/davidhalter/parso/commit/a73af5c709a292cbb789bf6cab38b20559f166c0\"\u003e\u003ccode\u003ea73af5c\u003c/code\u003e\u003c/a\u003e Fix pip install -e in docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/davidhalter/parso/commit/9328cffce392b4c3e907db4bbfad06ca1111b3ee\"\u003e\u003ccode\u003e9328cff\u003c/code\u003e\u003c/a\u003e Update classifiers in setup.py (\u003ca href=\"https://redirect.github.com/davidhalter/parso/issues/230\"\u003e#230\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/davidhalter/parso/commit/f670e6e7dc01e07576ec5c84cbf9fbce1a02c3eb\"\u003e\u003ccode\u003ef670e6e\u003c/code\u003e\u003c/a\u003e ENH: add grammar file for py314 (\u003ca href=\"https://redi...\n\n_Description has been truncated_","html_url":"https://github.com/github/annotated-logger/pull/78","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/github%2Fannotated-logger/issues/78","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/78/packages"},{"uuid":"3415584727","node_id":"PR_kwDOMt9I9c6ogxBU","number":77,"state":"open","title":"[pip] (deps): Bump the dev-dependencies group across 1 directory with 33 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-14T21:06:59.000Z","updated_at":"2025-09-14T21:08:38.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"[pip] (deps): Bump","group_name":"dev-dependencies","update_count":33,"packages":[{"name":"python-json-logger","old_version":"3.2.1","new_version":"3.3.0","repository_url":"https://github.com/nhairs/python-json-logger"},{"name":"certifi","old_version":"2024.12.14","new_version":"2025.8.3","repository_url":"https://github.com/certifi/python-certifi"},{"name":"charset-normalizer","old_version":"3.4.1","new_version":"3.4.3","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"makefun","old_version":"1.15.6","new_version":"1.16.0","repository_url":"https://github.com/smarie/python-makefun"},{"name":"pychoir","old_version":"0.0.27","new_version":"0.0.29","repository_url":"https://github.com/kajaste/pychoir"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"coverage","old_version":"7.6.10","new_version":"7.10.6","repository_url":"https://github.com/nedbat/coveragepy"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.0","repository_url":"https://github.com/pypa/distlib"},{"name":"exceptiongroup","old_version":"1.2.2","new_version":"1.3.0","repository_url":"https://github.com/agronholm/exceptiongroup"},{"name":"filelock","old_version":"3.16.1","new_version":"3.19.1","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"freezegun","old_version":"1.5.1","new_version":"1.5.5","repository_url":"https://github.com/spulec/freezegun"},{"name":"identify","old_version":"2.6.5","new_version":"2.6.14","repository_url":"https://github.com/pre-commit/identify"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.1.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"junit-xml","old_version":"1.8","new_version":"1.9","repository_url":"https://github.com/kyrus/python-junit-xml"},{"name":"mutmut","old_version":"3.2.2","new_version":"3.3.1","repository_url":"https://github.com/boxed/mutmut"},{"name":"packaging","old_version":"24.2","new_version":"25.0","repository_url":"https://github.com/pypa/packaging"},{"name":"parso","old_version":"0.8.4","new_version":"0.8.5","repository_url":"https://github.com/davidhalter/parso"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.4.0","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"pre-commit","old_version":"4.0.1","new_version":"4.3.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pygments","old_version":"2.19.1","new_version":"2.19.2","repository_url":"https://github.com/pygments/pygments"},{"name":"pyright","old_version":"1.1.391","new_version":"1.1.405","repository_url":"https://github.com/RobertCraigie/pyright-python"},{"name":"pytest","old_version":"8.3.4","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-cov","old_version":"6.0.0","new_version":"7.0.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pytest-github-actions-annotate-failures","old_version":"0.2.0","new_version":"0.3.0","repository_url":"https://github.com/pytest-dev/pytest-github-actions-annotate-failures"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.0","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-randomly","old_version":"3.16.0","new_version":"4.0.1","repository_url":"https://github.com/pytest-dev/pytest-randomly"},{"name":"rich","old_version":"13.9.4","new_version":"14.1.0","repository_url":"https://github.com/Textualize/rich"},{"name":"ruff","old_version":"0.8.6","new_version":"0.13.0","repository_url":"https://github.com/astral-sh/ruff"},{"name":"setproctitle","old_version":"1.3.4","new_version":"1.3.7","repository_url":"https://github.com/dvarrazzo/py-setproctitle"},{"name":"textual","old_version":"1.0.0","new_version":"6.1.0","repository_url":"https://github.com/Textualize/textual"},{"name":"typing-extensions","old_version":"4.12.2","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"virtualenv","old_version":"20.28.1","new_version":"20.34.0","repository_url":"https://github.com/pypa/virtualenv"}],"path":null,"ecosystem":"pip"},"body":"Bumps the dev-dependencies group with 33 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `3.2.1` | `3.3.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2024.12.14` | `2025.8.3` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.1` | `3.4.3` |\n| [makefun](https://github.com/smarie/python-makefun) | `1.15.6` | `1.16.0` |\n| [pychoir](https://github.com/kajaste/pychoir) | `0.0.27` | `0.0.29` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [coverage](https://github.com/nedbat/coveragepy) | `7.6.10` | `7.10.6` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.0` |\n| [exceptiongroup](https://github.com/agronholm/exceptiongroup) | `1.2.2` | `1.3.0` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.19.1` |\n| [freezegun](https://github.com/spulec/freezegun) | `1.5.1` | `1.5.5` |\n| [identify](https://github.com/pre-commit/identify) | `2.6.5` | `2.6.14` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.1.0` |\n| [junit-xml](https://github.com/kyrus/python-junit-xml) | `1.8` | `1.9` |\n| [mutmut](https://github.com/boxed/mutmut) | `3.2.2` | `3.3.1` |\n| [packaging](https://github.com/pypa/packaging) | `24.2` | `25.0` |\n| [parso](https://github.com/davidhalter/parso) | `0.8.4` | `0.8.5` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.4.0` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.0.1` | `4.3.0` |\n| [pygments](https://github.com/pygments/pygments) | `2.19.1` | `2.19.2` |\n| [pyright](https://github.com/RobertCraigie/pyright-python) | `1.1.391` | `1.1.405` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.4` | `8.4.2` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `6.0.0` | `7.0.0` |\n| [pytest-github-actions-annotate-failures](https://github.com/pytest-dev/pytest-github-actions-annotate-failures) | `0.2.0` | `0.3.0` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.0` |\n| [pytest-randomly](https://github.com/pytest-dev/pytest-randomly) | `3.16.0` | `4.0.1` |\n| [rich](https://github.com/Textualize/rich) | `13.9.4` | `14.1.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.8.6` | `0.13.0` |\n| [setproctitle](https://github.com/dvarrazzo/py-setproctitle) | `1.3.4` | `1.3.7` |\n| [textual](https://github.com/Textualize/textual) | `1.0.0` | `6.1.0` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.12.2` | `4.15.0` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `20.28.1` | `20.34.0` |\n\n\nUpdates `python-json-logger` from 3.2.1 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nhairs/python-json-logger/releases\"\u003epython-json-logger's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v3.2.1...v3.3.0\"\u003e3.3.0\u003c/a\u003e - 2025-03-06\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eexc_info_as_array\u003c/code\u003e and \u003ccode\u003estack_info_as_array\u003c/code\u003e options are added to \u003ccode\u003epythonjsonlogger.core.BaseJsonFormatter\u003c/code\u003e allowing both to be encoded as list of lines instead of a single multi-line string. \u003ca href=\"https://redirect.github.com/nhairs/python-json-logger/issues/35\"\u003e#35\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003emsgspec-python313-pre\u003c/code\u003e from \u003ccode\u003edev\u003c/code\u003e dependencies preventing potential RCE. Details: \u003ca href=\"https://github.com/nhairs/python-json-logger/security/advisories/GHSA-wmxh-pxcx-9w24#advisory-comment-121307\"\u003eGHSA-wmxh-pxcx-9w24\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks \u003ca href=\"https://github.com/1hakusai1\"\u003e\u003ccode\u003e@​1hakusai1\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/omnigodz\"\u003e\u003ccode\u003e@​omnigodz\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/nhairs/python-json-logger/blob/main/docs/changelog.md\"\u003epython-json-logger's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v3.2.1...v3.3.0\"\u003e3.3.0\u003c/a\u003e - 2025-03-06\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eexc_info_as_array\u003c/code\u003e and \u003ccode\u003estack_info_as_array\u003c/code\u003e options are added to \u003ccode\u003epythonjsonlogger.core.BaseJsonFormatter\u003c/code\u003e allowing both to be encoded as list of lines instead of a single multi-line string. \u003ca href=\"https://redirect.github.com/nhairs/python-json-logger/issues/35\"\u003e#35\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003emsgspec-python313-pre\u003c/code\u003e from \u003ccode\u003edev\u003c/code\u003e dependencies preventing potential RCE. Details: \u003ca href=\"https://github.com/nhairs/python-json-logger/security/advisories/GHSA-wmxh-pxcx-9w24#advisory-comment-121307\"\u003eGHSA-wmxh-pxcx-9w24\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks \u003ca href=\"https://github.com/1hakusai1\"\u003e\u003ccode\u003e@​1hakusai1\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/omnigodz\"\u003e\u003ccode\u003e@​omnigodz\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/9e6cb679dfb56cb82d9a8cc91f956efd72427055\"\u003e\u003ccode\u003e9e6cb67\u003c/code\u003e\u003c/a\u003e Release 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/db04a0f9066cc331f8d6177f828fe073c7b2a4cc\"\u003e\u003ccode\u003edb04a0f\u003c/code\u003e\u003c/a\u003e Add options to encode stack information into an array (\u003ca href=\"https://redirect.github.com/nhairs/python-json-logger/issues/39\"\u003e#39\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/0092ea0be1cd28e3c1da51eaa084c503bb3710b7\"\u003e\u003ccode\u003e0092ea0\u003c/code\u003e\u003c/a\u003e Move to uv (\u003ca href=\"https://redirect.github.com/nhairs/python-json-logger/issues/40\"\u003e#40\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/1ce81a3614d8c77389a9c048d341593e2a7467e7\"\u003e\u003ccode\u003e1ce81a3\u003c/code\u003e\u003c/a\u003e [tests] Update tests for msgspec 0.19.0 (\u003ca href=\"https://redirect.github.com/nhairs/python-json-logger/issues/41\"\u003e#41\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v3.2.1...v3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2024.12.14 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\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/e767d5938eddddf804216cec93a55c85129c5f2d\"\u003e\u003ccode\u003ee767d59\u003c/code\u003e\u003c/a\u003e 2025.06.15 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/357\"\u003e#357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/3e7076557d66b598fcca462e422dc988f09a6802\"\u003e\u003ccode\u003e3e70765\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.5.0 to 5.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/9afd2ff407b8a0638988c952a6636b8dd623af7c\"\u003e\u003ccode\u003e9afd2ff\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4.2.1 to 4.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/d7c816cbc9cf621b3ddc8cd7fa7eda3f36982620\"\u003e\u003ccode\u003ed7c816c\u003c/code\u003e\u003c/a\u003e remove code that's no longer required that 3.7 is our minimum (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/351\"\u003e#351\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/189961379209973abd0dd6304297f03e2359e1b9\"\u003e\u003ccode\u003e1899613\u003c/code\u003e\u003c/a\u003e Declare setuptools as the build backend in pyproject.toml (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/350\"\u003e#350\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/c8741423d67e1025c0bdad5225ded05cf962f207\"\u003e\u003ccode\u003ec874142\u003c/code\u003e\u003c/a\u003e update CI for ubuntu 20.04 deprecation (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/348\"\u003e#348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/275c9eb55733a464589c15fb4566fddd4598e5b2\"\u003e\u003ccode\u003e275c9eb\u003c/code\u003e\u003c/a\u003e 2025.04.26 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/347\"\u003e#347\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2024.12.14...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.1 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\u003ch2\u003eVersion 3.4.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.9\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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.1...3.4.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `makefun` from 1.15.6 to 1.16.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/smarie/python-makefun/blob/main/docs/changelog.md\"\u003emakefun's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e1.16.0 - Support for 3.14, dropped support for \u0026lt; 3.9\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved official support for python versions \u003ccode\u003e\u0026lt;3.9\u003c/code\u003e. These versions will not run in CI anymore.\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eRuntimeError\u003c/code\u003e in tests when running on python 3.14. Added python 3.14 to CI. Fixes\n\u003ca href=\"https://redirect.github.com/smarie/python-makefun/issues/112\"\u003e#112\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/smarie/python-makefun/commit/197b14827c1b7830c0288477c007e1f1592f52ad\"\u003e\u003ccode\u003e197b148\u003c/code\u003e\u003c/a\u003e Changelog for tag, ready to release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/321a39c9a8be1497ba7dfbb9c7c16a9442ae25a6\"\u003e\u003ccode\u003e321a39c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/smarie/python-makefun/issues/118\"\u003e#118\u003c/a\u003e from smarie/feature/112_support_py314\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/39f061e17a7d7472e33cec76d162381ae82b49e3\"\u003e\u003ccode\u003e39f061e\u003c/code\u003e\u003c/a\u003e With latest versions of all actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/4771aaf910459dfabb12109cf4ae37cd089fd9d6\"\u003e\u003ccode\u003e4771aaf\u003c/code\u003e\u003c/a\u003e Changed the fix to leverage pytest-asyncio, now that we do not support python...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/498ed69f5fa22baa5300b354d419fd45be55cf6e\"\u003e\u003ccode\u003e498ed69\u003c/code\u003e\u003c/a\u003e Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/87eb2ebefa88d212e4ae75f28fc0ffc2fb9194c6\"\u003e\u003ccode\u003e87eb2eb\u003c/code\u003e\u003c/a\u003e Fixed \u003ccode\u003eRuntimeError\u003c/code\u003e in tests when running on pythn 3.14. Added python 3.14 t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/4573c65b6b8405b6194361805a44ba8d9d08c41d\"\u003e\u003ccode\u003e4573c65\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/smarie/python-makefun/issues/117\"\u003e#117\u003c/a\u003e from smarie/chore/116_gh_pages_workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/db582747d0b89ea35927176910205f3f68a429d4\"\u003e\u003ccode\u003edb58274\u003c/code\u003e\u003c/a\u003e Added gh pages workflow. Fixed \u003ca href=\"https://redirect.github.com/smarie/python-makefun/issues/116\"\u003e#116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/c8990e6a660082b42f8314f96bf7369a0f6c2463\"\u003e\u003ccode\u003ec8990e6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/smarie/python-makefun/issues/114\"\u003e#114\u003c/a\u003e from smarie/feature/py35_in_ci\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/3b1e628e9e7ecf05ea9bc6a9fb73c45563a3c24a\"\u003e\u003ccode\u003e3b1e628\u003c/code\u003e\u003c/a\u003e Removed 3.14 for now\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/smarie/python-makefun/compare/1.15.6...1.16.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pychoir` from 0.0.27 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/kajaste/pychoir/releases\"\u003epychoir's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eTwenty-ninth release\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch pipenv \u0026amp; setuptools to uv by \u003ca href=\"https://github.com/kajaste\"\u003e\u003ccode\u003e@​kajaste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kajaste/pychoir/pull/97\"\u003ekajaste/pychoir#97\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/kajaste/pychoir/compare/v0.0.28...v0.0.29\"\u003ehttps://github.com/kajaste/pychoir/compare/v0.0.28...v0.0.29\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eTwenty-eighth release\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate dev deps by \u003ca href=\"https://github.com/kajaste\"\u003e\u003ccode\u003e@​kajaste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kajaste/pychoir/pull/94\"\u003ekajaste/pychoir#94\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump dev deps by \u003ca href=\"https://github.com/kajaste\"\u003e\u003ccode\u003e@​kajaste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kajaste/pychoir/pull/95\"\u003ekajaste/pychoir#95\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs \u0026amp; Makefile update by \u003ca href=\"https://github.com/kajaste\"\u003e\u003ccode\u003e@​kajaste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kajaste/pychoir/pull/96\"\u003ekajaste/pychoir#96\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/kajaste/pychoir/compare/v0.0.27...v0.0.28\"\u003ehttps://github.com/kajaste/pychoir/compare/v0.0.27...v0.0.28\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/kajaste/pychoir/commit/bf2f254bcadf03026867a6442523549f1abb16d3\"\u003e\u003ccode\u003ebf2f254\u003c/code\u003e\u003c/a\u003e Switch pipenv \u0026amp; setuptools to uv\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kajaste/pychoir/commit/c1d251d480a47f8bc29e89765c19b00b594442b2\"\u003e\u003ccode\u003ec1d251d\u003c/code\u003e\u003c/a\u003e Docs \u0026amp; Makefile update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kajaste/pychoir/commit/f6181a037d2e791bbf9306b4210a9b4934fc1bbf\"\u003e\u003ccode\u003ef6181a0\u003c/code\u003e\u003c/a\u003e Drop 3.7, add 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kajaste/pychoir/commit/f94fdad20f981f344adbdc07b9aa1cb00795b671\"\u003e\u003ccode\u003ef94fdad\u003c/code\u003e\u003c/a\u003e Bump dev deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kajaste/pychoir/commit/5a2ebd7ca625779b7beaab71d50631f9529f21eb\"\u003e\u003ccode\u003e5a2ebd7\u003c/code\u003e\u003c/a\u003e Update dev deps\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/kajaste/pychoir/compare/v0.0.27...v0.0.29\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.4 to 2.32.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.32.5\u003c/h2\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b25c87d7cb8d6a18a37fa12442b5f883f9e41741\"\u003e\u003ccode\u003eb25c87d\u003c/code\u003e\u003c/a\u003e v2.32.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/131e506079d97606e4214cc4d87b780ac478de7a\"\u003e\u003ccode\u003e131e506\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psf/requests/issues/7010\"\u003e#7010\u003c/a\u003e from psf/dependabot/github_actions/actions/checkout-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b336cb2bc616a63a93c6470c558fc1f576b77f90\"\u003e\u003ccode\u003eb336cb2\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.2.0 to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/46e939b5525d9c72b677340985582b04b128478a\"\u003e\u003ccode\u003e46e939b\u003c/code\u003e\u003c/a\u003e Update publish workflow to use \u003ccode\u003eartifact-id\u003c/code\u003e instead of \u003ccode\u003ename\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/4b9c546aa3f35fca6ca24945376fe7462bb007c4\"\u003e\u003ccode\u003e4b9c546\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psf/requests/issues/6999\"\u003e#6999\u003c/a\u003e from psf/dependabot/github_actions/step-security/har...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/7618dbef01d333f23ba4b9c4d97397b06dd89cb6\"\u003e\u003ccode\u003e7618dbe\u003c/code\u003e\u003c/a\u003e Bump step-security/harden-runner from 2.12.0 to 2.13.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2edca11103c1c27dd8b572dab544b7f48cf3b446\"\u003e\u003ccode\u003e2edca11\u003c/code\u003e\u003c/a\u003e Add support for Python 3.14 and drop support for Python 3.8 (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6993\"\u003e#6993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/fec96cd5976ad763e45bac9a033d62cca1877a00\"\u003e\u003ccode\u003efec96cd\u003c/code\u003e\u003c/a\u003e Update Makefile rules (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6996\"\u003e#6996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d58d8aa2f45c3575268d6d5250745ef69f9cf8b7\"\u003e\u003ccode\u003ed58d8aa\u003c/code\u003e\u003c/a\u003e docs: clarify timeout parameter uses seconds in Session.request (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6994\"\u003e#6994\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/91a3eabd3dcc4d7f36dd8249e4777a90ef9b4305\"\u003e\u003ccode\u003e91a3eab\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 3.28.5 to 3.29.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.4...v2.32.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.6.10 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.6.10...7.10.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 `exceptiongroup` from 1.2.2 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/agronholm/exceptiongroup/releases\"\u003eexceptiongroup's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003e**kwargs\u003c/code\u003e to function and method signatures as appropriate to match the signatures in the standard library\u003c/li\u003e\n\u003cli\u003eIn line with the stdlib typings in typeshed, updated \u003ccode\u003e(Base)ExceptionGroup\u003c/code\u003e generic types to define defaults for their generic arguments (defaulting to \u003ccode\u003eBaseExceptionGroup[BaseException]\u003c/code\u003e and \u003ccode\u003eExceptionGroup[Exception]\u003c/code\u003e) (PR by \u003ca href=\"https://github.com/mikenerone\"\u003e\u003ccode\u003e@​mikenerone\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eBaseExceptionGroup.__init__()\u003c/code\u003e to directly call \u003ccode\u003eBaseException.__init__()\u003c/code\u003e instead of the superclass \u003ccode\u003e__init__()\u003c/code\u003e in order to emulate the CPython behavior (broken or not) (PR by \u003ca href=\"https://github.com/cfbolz\"\u003e\u003ccode\u003e@​cfbolz\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged the \u003ccode\u003eexceptions\u003c/code\u003e attribute to always return the same tuple of exceptions, created from the original exceptions sequence passed to \u003ccode\u003eBaseExceptionGroup\u003c/code\u003e to match CPython behavior (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/143\"\u003e#143\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/agronholm/exceptiongroup/blob/main/CHANGES.rst\"\u003eexceptiongroup's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eVersion history\u003c/h1\u003e\n\u003cp\u003eThis library adheres to \u003ccode\u003eSemantic Versioning 2.0 \u0026lt;http://semver.org/\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e1.3.0\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003e**kwargs\u003c/code\u003e to function and method signatures as appropriate to match the\nsignatures in the standard library\u003c/li\u003e\n\u003cli\u003eIn line with the stdlib typings in typeshed, updated \u003ccode\u003e(Base)ExceptionGroup\u003c/code\u003e generic\ntypes to define defaults for their generic arguments (defaulting to\n\u003ccode\u003eBaseExceptionGroup[BaseException]\u003c/code\u003e and \u003ccode\u003eExceptionGroup[Exception]\u003c/code\u003e)\n(PR by \u003ca href=\"https://github.com/mikenerone\"\u003e\u003ccode\u003e@​mikenerone\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eBaseExceptionGroup.__init__()\u003c/code\u003e to directly call\n\u003ccode\u003eBaseException.__init__()\u003c/code\u003e instead of the superclass \u003ccode\u003e__init__()\u003c/code\u003e in order to\nemulate the CPython behavior (broken or not) (PR by \u003ca href=\"https://github.com/cfbolz\"\u003e\u003ccode\u003e@​cfbolz\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged the \u003ccode\u003eexceptions\u003c/code\u003e attribute to always return the same tuple of exceptions,\ncreated from the original exceptions sequence passed to \u003ccode\u003eBaseExceptionGroup\u003c/code\u003e to\nmatch CPython behavior\n(\u003ccode\u003e[#143](https://github.com/agronholm/exceptiongroup/issues/143) \u0026lt;https://github.com/agronholm/exceptiongroup/issues/143\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e1.2.2\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved an \u003ccode\u003eassert\u003c/code\u003e in \u003ccode\u003eexceptiongroup._formatting\u003c/code\u003e that caused compatibility\nissues with Sentry (\u003ccode\u003e[#123](https://github.com/agronholm/exceptiongroup/issues/123) \u0026lt;https://github.com/agronholm/exceptiongroup/issues/123\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e1.2.1\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated the copying of \u003ccode\u003e__notes__\u003c/code\u003e to match CPython behavior (PR by CF Bolz-Tereick)\u003c/li\u003e\n\u003cli\u003eCorrected the type annotation of the exception handler callback to accept a\n\u003ccode\u003eBaseExceptionGroup\u003c/code\u003e instead of \u003ccode\u003eBaseException\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFixed type errors on Python \u0026lt; 3.10 and the type annotation of \u003ccode\u003esuppress()\u003c/code\u003e\n(PR by John Litborn)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e1.2.0\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded special monkeypatching if \u003ccode\u003eApport \u0026lt;https://github.com/canonical/apport\u0026gt;\u003c/code\u003e_ has\noverridden \u003ccode\u003esys.excepthook\u003c/code\u003e so it will format exception groups correctly\n(PR by John Litborn)\u003c/li\u003e\n\u003cli\u003eAdded a backport of \u003ccode\u003econtextlib.suppress()\u003c/code\u003e from Python 3.12.1 which also handles\nsuppressing exceptions inside exception groups\u003c/li\u003e\n\u003cli\u003eFixed bare \u003ccode\u003eraise\u003c/code\u003e in a handler reraising the original naked exception rather than\nan exception group which is what is raised when you do a \u003ccode\u003eraise\u003c/code\u003e in an \u003ccode\u003eexcept*\u003c/code\u003e\nhandler\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e1.1.3\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ecatch()\u003c/code\u003e now raises a \u003ccode\u003eTypeError\u003c/code\u003e if passed an async exception handler instead of\njust giving a \u003ccode\u003eRuntimeWarning\u003c/code\u003e about the coroutine never being awaited. (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/66\"\u003e#66\u003c/a\u003e, PR by\nJohn Litborn)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/77fba8a871408ff2c48f536e5e73b1918239ba5f\"\u003e\u003ccode\u003e77fba8a\u003c/code\u003e\u003c/a\u003e Added the release version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/5e153aa379ac53af79cc7f5e287f77929cb4d0dc\"\u003e\u003ccode\u003e5e153aa\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Migrated test dependencies to dependency groups\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/5000bfea208ad59e3a20e2fb91a513ad559711b1\"\u003e\u003ccode\u003e5000bfe\u003c/code\u003e\u003c/a\u003e Migrated tox configuration to native TOML\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/427220d67a52585e98575103b090b5fdaf87a899\"\u003e\u003ccode\u003e427220d\u003c/code\u003e\u003c/a\u003e Updated pytest options\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/4ca264fa3605d52067c20b351a0d3b947fa1f363\"\u003e\u003ccode\u003e4ca264f\u003c/code\u003e\u003c/a\u003e Migrated test dependencies to dependency groups\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/163c3a8cb27f8a5325258b5a83e7cf8fc002c3b7\"\u003e\u003ccode\u003e163c3a8\u003c/code\u003e\u003c/a\u003e Marked test_exceptions_mutate_original_sequence as xfail on pypy3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/a1765740db2d55d1eb91d67a8fbbb355caf7881b\"\u003e\u003ccode\u003ea176574\u003c/code\u003e\u003c/a\u003e Always create the exceptions tuple at init and return it from the exceptions ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/550b79621cc35892413fa91903a1d6c7951d0449\"\u003e\u003ccode\u003e550b796\u003c/code\u003e\u003c/a\u003e Added BaseExceptionGroup.\u003cstrong\u003einit\u003c/strong\u003e, following CPython (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/142\"\u003e#142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/2a84dfd5599bca0c653143f0f4252d38afac9867\"\u003e\u003ccode\u003e2a84dfd\u003c/code\u003e\u003c/a\u003e Added typevar defaults to (Base)ExceptionGroup (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/147\"\u003e#147\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/fb9133b495fc82bc2907e8cfbdff6c6dc3087e2f\"\u003e\u003ccode\u003efb9133b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/145\"\u003e#145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/exceptiongroup/compare/1.2.2...1.3.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.16.1 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\u003ch2\u003e3.18.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIndicate that locks are exclusive/write locks. by \u003ca href=\"https://github.com/bicarlsen\"\u003e\u003ccode\u003e@​bicarlsen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/394\"\u003etox-dev/filelock#394\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport fcntl check on Emscripten by \u003ca href=\"https://github.com/juntyr\"\u003e\u003ccode\u003e@​juntyr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/398\"\u003etox-dev/filelock#398\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/bicarlsen\"\u003e\u003ccode\u003e@​bicarlsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/394\"\u003etox-dev/filelock#394\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/juntyr\"\u003e\u003ccode\u003e@​juntyr\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/398\"\u003etox-dev/filelock#398\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.17.0...3.18.0\"\u003ehttps://github.com/tox-dev/filelock/compare/3.17.0...3.18.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDrop 3.8\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.16.1...3.17.0\"\u003ehttps://github.com/tox-dev/filelock/compare/3.16.1...3.17.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.16.1...3.19.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `freezegun` from 1.5.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\u003c/blockquote\u003e\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.5.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 `identify` from 2.6.5 to 2.6.14\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/6667ae3392c3e2178469779352012d4518c8cdc0\"\u003e\u003ccode\u003e6667ae3\u003c/code\u003e\u003c/a\u003e v2.6.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/0ce88278a87decaf8a7b266074a0044a8fb8dd5c\"\u003e\u003ccode\u003e0ce8827\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/identify/issues/537\"\u003e#537\u003c/a\u003e from LNSD/add-meson-options-support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/29d1fcc8d1dafe99cf82e4c3a6200acdd17490fd\"\u003e\u003ccode\u003e29d1fcc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/identify/issues/536\"\u003e#536\u003c/a\u003e from mike325/fix/add_robot_filetype\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/daf602344d904fd56a85ae76f0a2594ddcebc479\"\u003e\u003ccode\u003edaf6023\u003c/code\u003e\u003c/a\u003e Add support for \u003ccode\u003emeson.options\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/6d493646beb1b740c4b871dd7692b5ab453c1beb\"\u003e\u003ccode\u003e6d49364\u003c/code\u003e\u003c/a\u003e fix: add robot filetype\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/53fdb98ef92dc697d7b84cf07dbb3e6e5d7493f6\"\u003e\u003ccode\u003e53fdb98\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/identify/issues/531\"\u003e#531\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/ffc2322be9c429f69761a777a2f9f1adc87680d0\"\u003e\u003ccode\u003effc2322\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/identify/commit/af4da9c69b07a41dfbfc1f3ec60d27d9aa0654dc\"\u003e\u003ccode\u003eaf4da9c\u003c/code\u003e\u003c/a\u003e v2.6.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/bdf9c05f99c426e7ab115f68cf62bd0a70b33012\"\u003e\u003ccode\u003ebdf9c05\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/identify/issues/530\"\u003e#530\u003c/a\u003e from dirtcrusher/feature/special_cpp_extensions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/1a6b03cde137b43d4aa6bfd5ea80a762b923efa0\"\u003e\u003ccode\u003e1a6b03c\u003c/code\u003e\u003c/a\u003e Added C++ 'ipp' and 'tpp' file extensions\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/identify/compare/v2.6.5...v2.6.14\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `iniconfig` from 2.0.0 to 2.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/iniconfig/releases\"\u003einiconfig's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.1.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/26\"\u003e#26\u003c/a\u003e - list individuals in license file by \u003ca href=\"https://github.com/RonnyPfannschmidt\"\u003e\u003ccode\u003e@​RonnyPfannschmidt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/52\"\u003epytest-dev/iniconfig#52\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRun tests in CI by \u003ca href=\"https://github.com/nicoddemus\"\u003e\u003ccode\u003e@​nicoddemus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/53\"\u003epytest-dev/iniconfig#53\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003epypa/gh-action-pypi-publish@release/v1\u003c/code\u003e @ GHA by \u003ca href=\"https://github.com/webknjaz\"\u003e\u003ccode\u003e@​webknjaz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/54\"\u003epytest-dev/iniconfig#54\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12-3.13 and drop EOL 3.7 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/56\"\u003epytest-dev/iniconfig#56\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/nicoddemus\"\u003e\u003ccode\u003e@​nicoddemus\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/53\"\u003epytest-dev/iniconfig#53\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/webknjaz\"\u003e\u003ccode\u003e@​webknjaz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/54\"\u003epytest-dev/iniconfig#54\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pytest-dev/iniconfig/compare/v2.0.0...v2.1.0\"\u003ehttps://github.com/pytest-dev/iniconfig/compare/v2.0.0...v2.1.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/pytest-dev/iniconfig/blob/main/CHANGELOG\"\u003einiconfig's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.1.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix artifact building - pin minimal version of hatch\u003c/li\u003e\n\u003cli\u003edrop eol python 3.8\u003c/li\u003e\n\u003cli\u003eadd python 3.12 and 3.13\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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/iniconfig/commit/34793a6417e35e511d0c17ffdd8a02ade0f9568e\"\u003e\u003ccode\u003e34793a6\u003c/code\u003e\u003c/a\u003e pre-commit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/136435d0a4345bb048dca98e7c2f4e938d74521b\"\u003e\u003ccode\u003e136435d\u003c/code\u003e\u003c/a\u003e update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/0bb99ad0f7a6b21d5eb24214a260132317a11e43\"\u003e\u003ccode\u003e0bb99ad\u003c/code\u003e\u003c/a\u003e fix \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/62\"\u003e#62\u003c/a\u003e: require a minimal hatch version with correct metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/16793eaddac67de0b8d621ae4e42e05b927e8d67\"\u003e\u003ccode\u003e16793ea\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/56\"\u003e#56\u003c/a\u003e from hugovk/add-3.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/3dc2b2d6bf03e4b7cc92949a8ef0983fdd7ee442\"\u003e\u003ccode\u003e3dc2b2d\u003c/code\u003e\u003c/a\u003e Add support for Python 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/2eb8abfd9d3843100d7f138efe5bcd989a885024\"\u003e\u003ccode\u003e2eb8abf\u003c/code\u003e\u003c/a\u003e Bump GitHub Actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/8c4bb5bf57dde613c8cdcf0e02a09b2fff630907\"\u003e\u003ccode\u003e8c4bb5b\u003c/code\u003e\u003c/a\u003e Set python-version for pre-commit to remove CI warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/58b22b2d672564ff1925df51f4a8e07486765ed2\"\u003e\u003ccode\u003e58b22b2\u003c/code\u003e\u003c/a\u003e Drop support for EOL Python 3.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/4a53042252a109bcdd64422058de91c5dffff763\"\u003e\u003ccode\u003e4a53042\u003c/code\u003e\u003c/a\u003e Add support for Python 3.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/9cae43103df70bac6fde7b9f35ad11a9f1be0cb4\"\u003e\u003ccode\u003e9cae431\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/54\"\u003e#54\u003c/a\u003e from webknjaz/patch-1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/iniconfig/compare/v2.0.0...v2.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `junit-xml` from 1.8 to 1.9\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/kyrus/python-junit-xml/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mutmut` from 3.2.2 to 3.3.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/boxed/mutmut/blob/main/HISTORY.rst\"\u003emutmut's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e3.3.1\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Increased threshold for mutant timeouts\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003etests_dir\u003c/code\u003e config. Accepts a single entry or a list of directories.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAsync generators fixes\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed bad mutations for certain string escape sequences\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance fixes\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eVarious internal bug fixes\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e3.3.0\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003ePython 3.13 compatibility!\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eNew argument \u003ccode\u003e--show-killed\u003c/code\u003e for \u003ccode\u003emutmut browse\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix to avoid accidentally importing the un-mutated original code\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eHandle segfault for mutant subprocesses\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded mutations for string literals\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded mutations for common string methods\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFaster mutant generation via subprocesses\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eself\u003c/code\u003e parameter for mutated class methods\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix trampoline generation for function calls with 'orig' or 'mutants' as argument names.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCopy full source directory before creating mutants\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved error message when forced fail test fails\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed issue with spaces in the python executable path\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDo not mutate \u003ccode\u003e__new__\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAnnotate mutant dicts (and fixes compatibility with Pydantic)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eReplaced parso with LibCST\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/boxed/mutmut/commit/0f2586a806e069cc335d68ccd7d6277088f69249\"\u003e\u003ccode\u003e0f2586a\u003c/code\u003e\u003c/a\u003e Release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/6a5c471e0c13f782caacfdd244f2717002a13192\"\u003e\u003ccode\u003e6a5c471\u003c/code\u003e\u003c/a\u003e Pass mutation generation errors from subprocess to main process\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/7b03f4bffc3e8ac0c85158947e4659a5831cbf63\"\u003e\u003ccode\u003e7b03f4b\u003c/code\u003e\u003c/a\u003e Update timeout values\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/3cd39fac6f800de8859b8e876d0f74cd100574c8\"\u003e\u003ccode\u003e3cd39fa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/boxed/mutmut/issues/408\"\u003e#408\u003c/a\u003e from souradeep-das/souradeep/add_tests_dir\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/3e52e5e13347589adf725de1847204aad1b22a64\"\u003e\u003ccode\u003e3e52e5e\u003c/code\u003e\u003c/a\u003e modify e2e tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/10bb45183d781504fb13925dd3baee21edcf8673\"\u003e\u003ccode\u003e10bb451\u003c/code\u003e\u003c/a\u003e merge latest\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/d4980abef4bbbcea6e9070bc0a1c92626bb9ebb4\"\u003e\u003ccode\u003ed4980ab\u003c/code\u003e\u003c/a\u003e fix: accept lists as tests_dir\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/22f3924b6b5a2ff7916c1f62aa1ed1f3341e42ee\"\u003e\u003ccode\u003e22f3924\u003c/code\u003e\u003c/a\u003e Improve diff view performance a bit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/eb37032a679e1b160b012d838f798fd7fc266e48\"\u003e\u003ccode\u003eeb37032\u003c/code\u003e\u003c/a\u003e Make rlimit signal SIGXCPU first; only fallback to SIGKILL later on\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/99ecd3209b8ed49b6dc9d97dcfe67e66f0e8e773\"\u003e\u003ccode\u003e99ecd32\u003c/code\u003e\u003c/a\u003e fix timeout checker \u0026quot;dictionary changed size during iteration\u0026quot; bug (\u003ca href=\"https://redirect.github.com/boxed/mutmut/issues/411\"\u003e#411\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boxed/mutmut/compare/3.2.2...3.3.1\"\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 `parso` from 0.8.4 to 0.8.5\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/davidhalter/parso/blob/master/CHANGELOG.rst\"\u003eparso's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.8.5 (2025-08-23)\n++++++++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a fallback grammar 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/davidhalter/parso/commit/be9f5a401feaa1a7eda935bc68b2d3baed9a30ab\"\u003e\u003ccode\u003ebe9f5a4\u003c/code\u003e\u003c/a\u003e Prepare release 0.8.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/davidhalter/parso/commit/7e4777b775206038a1aa87282c79ed04f5f1c3fd\"\u003e\u003ccode\u003e7e4777b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/davidhalter/parso/issues/234\"\u003e#234\u003c/a\u003e from A5rocks/future-compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/davidhalter/parso/commit/e99dbdd536da741d4935c427a6231f4d5eb6ea79\"\u003e\u003ccode\u003ee99dbdd\u003c/code\u003e\u003c/a\u003e Remove redundant warnings import\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/davidhalter/parso/commit/e22dc67aa10b53bbf069f825a0d40eefc727f0cb\"\u003e\u003ccode\u003ee22dc67\u003c/code\u003e\u003c/a\u003e Avoid warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/davidhalter/parso/commit/baa3c90d85a10f6abb8307246a89fc683981cee7\"\u003e\u003ccode\u003ebaa3c90\u003c/code\u003e\u003c/a\u003e Load newest grammar in face of a future grammar\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/davidhalter/parso/commit/23b1cdf73d95ae20f23e2fd198cafcd8fef529ad\"\u003e\u003ccode\u003e23b1cdf\u003c/code\u003e\u003c/a\u003e Drop Python 3.7 in CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/davidhalter/parso/commit/a73af5c709a292cbb789bf6cab38b20559f166c0\"\u003e\u003ccode\u003ea73af5c\u003c/code\u003e\u003c/a\u003e Fix pip install -e in docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/davidhalter/parso/commit/9328cffce392b4c3e907db4bbfad06ca1111b3ee\"\u003e\u003ccode\u003e9328cff\u003c/code\u003e\u003c/a\u003e Update classifiers in setup.py (\u003ca href=\"https://redirect.github.com/davidhalter/parso/issues/230\"\u003e#230\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/davidhalter/parso/commit/f670e6e7dc01e07576ec5c84cbf9fbce1a02c3eb\"\u003e\u003ccode\u003ef670e6e\u003c/code\u003e\u003c/a\u003e ENH: add grammar file for py314 (\u003ca href=\"https://redirect.github.com/davi...\n\n_Description has been truncated_","html_url":"https://github.com/github/annotated-logger/pull/77","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/github%2Fannotated-logger/issues/77","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/77/packages"},{"uuid":"3349918361","node_id":"PR_kwDOMt9I9c6lHRHg","number":75,"state":"open","title":"[pip] (deps): Bump the dev-dependencies group across 1 directory with 32 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-08-24T21:22:26.000Z","updated_at":"2025-09-14T23:01:01.720Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"[pip] (deps): Bump","group_name":"dev-dependencies","update_count":32,"packages":[{"name":"python-json-logger","old_version":"3.2.1","new_version":"3.3.0","repository_url":"https://github.com/nhairs/python-json-logger"},{"name":"certifi","old_version":"2024.12.14","new_version":"2025.8.3","repository_url":"https://github.com/certifi/python-certifi"},{"name":"charset-normalizer","old_version":"3.4.1","new_version":"3.4.3","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"makefun","old_version":"1.15.6","new_version":"1.16.0","repository_url":"https://github.com/smarie/python-makefun"},{"name":"pychoir","old_version":"0.0.27","new_version":"0.0.29","repository_url":"https://github.com/kajaste/pychoir"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"coverage","old_version":"7.6.10","new_version":"7.10.5","repository_url":"https://github.com/nedbat/coveragepy"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.0","repository_url":"https://github.com/pypa/distlib"},{"name":"exceptiongroup","old_version":"1.2.2","new_version":"1.3.0","repository_url":"https://github.com/agronholm/exceptiongroup"},{"name":"filelock","old_version":"3.16.1","new_version":"3.19.1","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"freezegun","old_version":"1.5.1","new_version":"1.5.5","repository_url":"https://github.com/spulec/freezegun"},{"name":"identify","old_version":"2.6.5","new_version":"2.6.13","repository_url":"https://github.com/pre-commit/identify"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.1.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"junit-xml","old_version":"1.8","new_version":"1.9","repository_url":"https://github.com/kyrus/python-junit-xml"},{"name":"mutmut","old_version":"3.2.2","new_version":"3.3.1","repository_url":"https://github.com/boxed/mutmut"},{"name":"packaging","old_version":"24.2","new_version":"25.0","repository_url":"https://github.com/pypa/packaging"},{"name":"parso","old_version":"0.8.4","new_version":"0.8.5","repository_url":"https://github.com/davidhalter/parso"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.3.8","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"pre-commit","old_version":"4.0.1","new_version":"4.3.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pygments","old_version":"2.19.1","new_version":"2.19.2","repository_url":"https://github.com/pygments/pygments"},{"name":"pyright","old_version":"1.1.391","new_version":"1.1.404","repository_url":"https://github.com/RobertCraigie/pyright-python"},{"name":"pytest","old_version":"8.3.4","new_version":"8.4.1","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-cov","old_version":"6.0.0","new_version":"6.2.1","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pytest-github-actions-annotate-failures","old_version":"0.2.0","new_version":"0.3.0","repository_url":"https://github.com/pytest-dev/pytest-github-actions-annotate-failures"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.14.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"rich","old_version":"13.9.4","new_version":"14.1.0","repository_url":"https://github.com/Textualize/rich"},{"name":"ruff","old_version":"0.8.6","new_version":"0.12.10","repository_url":"https://github.com/astral-sh/ruff"},{"name":"setproctitle","old_version":"1.3.4","new_version":"1.3.6","repository_url":"https://github.com/dvarrazzo/py-setproctitle"},{"name":"textual","old_version":"1.0.0","new_version":"5.3.0","repository_url":"https://github.com/Textualize/textual"},{"name":"typing-extensions","old_version":"4.12.2","new_version":"4.14.1","repository_url":"https://github.com/python/typing_extensions"},{"name":"virtualenv","old_version":"20.28.1","new_version":"20.34.0","repository_url":"https://github.com/pypa/virtualenv"}],"path":null,"ecosystem":"pip"},"body":"Bumps the dev-dependencies group with 32 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `3.2.1` | `3.3.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2024.12.14` | `2025.8.3` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.1` | `3.4.3` |\n| [makefun](https://github.com/smarie/python-makefun) | `1.15.6` | `1.16.0` |\n| [pychoir](https://github.com/kajaste/pychoir) | `0.0.27` | `0.0.29` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [coverage](https://github.com/nedbat/coveragepy) | `7.6.10` | `7.10.5` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.0` |\n| [exceptiongroup](https://github.com/agronholm/exceptiongroup) | `1.2.2` | `1.3.0` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.19.1` |\n| [freezegun](https://github.com/spulec/freezegun) | `1.5.1` | `1.5.5` |\n| [identify](https://github.com/pre-commit/identify) | `2.6.5` | `2.6.13` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.1.0` |\n| [junit-xml](https://github.com/kyrus/python-junit-xml) | `1.8` | `1.9` |\n| [mutmut](https://github.com/boxed/mutmut) | `3.2.2` | `3.3.1` |\n| [packaging](https://github.com/pypa/packaging) | `24.2` | `25.0` |\n| [parso](https://github.com/davidhalter/parso) | `0.8.4` | `0.8.5` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.3.8` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.0.1` | `4.3.0` |\n| [pygments](https://github.com/pygments/pygments) | `2.19.1` | `2.19.2` |\n| [pyright](https://github.com/RobertCraigie/pyright-python) | `1.1.391` | `1.1.404` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.4` | `8.4.1` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `6.0.0` | `6.2.1` |\n| [pytest-github-actions-annotate-failures](https://github.com/pytest-dev/pytest-github-actions-annotate-failures) | `0.2.0` | `0.3.0` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.14.1` |\n| [rich](https://github.com/Textualize/rich) | `13.9.4` | `14.1.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.8.6` | `0.12.10` |\n| [setproctitle](https://github.com/dvarrazzo/py-setproctitle) | `1.3.4` | `1.3.6` |\n| [textual](https://github.com/Textualize/textual) | `1.0.0` | `5.3.0` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.12.2` | `4.14.1` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `20.28.1` | `20.34.0` |\n\n\nUpdates `python-json-logger` from 3.2.1 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nhairs/python-json-logger/releases\"\u003epython-json-logger's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v3.2.1...v3.3.0\"\u003e3.3.0\u003c/a\u003e - 2025-03-06\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eexc_info_as_array\u003c/code\u003e and \u003ccode\u003estack_info_as_array\u003c/code\u003e options are added to \u003ccode\u003epythonjsonlogger.core.BaseJsonFormatter\u003c/code\u003e allowing both to be encoded as list of lines instead of a single multi-line string. \u003ca href=\"https://redirect.github.com/nhairs/python-json-logger/issues/35\"\u003e#35\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003emsgspec-python313-pre\u003c/code\u003e from \u003ccode\u003edev\u003c/code\u003e dependencies preventing potential RCE. Details: \u003ca href=\"https://github.com/nhairs/python-json-logger/security/advisories/GHSA-wmxh-pxcx-9w24#advisory-comment-121307\"\u003eGHSA-wmxh-pxcx-9w24\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks \u003ca href=\"https://github.com/1hakusai1\"\u003e\u003ccode\u003e@​1hakusai1\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/omnigodz\"\u003e\u003ccode\u003e@​omnigodz\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/nhairs/python-json-logger/blob/main/docs/changelog.md\"\u003epython-json-logger's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v3.2.1...v3.3.0\"\u003e3.3.0\u003c/a\u003e - 2025-03-06\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eexc_info_as_array\u003c/code\u003e and \u003ccode\u003estack_info_as_array\u003c/code\u003e options are added to \u003ccode\u003epythonjsonlogger.core.BaseJsonFormatter\u003c/code\u003e allowing both to be encoded as list of lines instead of a single multi-line string. \u003ca href=\"https://redirect.github.com/nhairs/python-json-logger/issues/35\"\u003e#35\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003emsgspec-python313-pre\u003c/code\u003e from \u003ccode\u003edev\u003c/code\u003e dependencies preventing potential RCE. Details: \u003ca href=\"https://github.com/nhairs/python-json-logger/security/advisories/GHSA-wmxh-pxcx-9w24#advisory-comment-121307\"\u003eGHSA-wmxh-pxcx-9w24\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks \u003ca href=\"https://github.com/1hakusai1\"\u003e\u003ccode\u003e@​1hakusai1\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/omnigodz\"\u003e\u003ccode\u003e@​omnigodz\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/9e6cb679dfb56cb82d9a8cc91f956efd72427055\"\u003e\u003ccode\u003e9e6cb67\u003c/code\u003e\u003c/a\u003e Release 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/db04a0f9066cc331f8d6177f828fe073c7b2a4cc\"\u003e\u003ccode\u003edb04a0f\u003c/code\u003e\u003c/a\u003e Add options to encode stack information into an array (\u003ca href=\"https://redirect.github.com/nhairs/python-json-logger/issues/39\"\u003e#39\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/0092ea0be1cd28e3c1da51eaa084c503bb3710b7\"\u003e\u003ccode\u003e0092ea0\u003c/code\u003e\u003c/a\u003e Move to uv (\u003ca href=\"https://redirect.github.com/nhairs/python-json-logger/issues/40\"\u003e#40\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/1ce81a3614d8c77389a9c048d341593e2a7467e7\"\u003e\u003ccode\u003e1ce81a3\u003c/code\u003e\u003c/a\u003e [tests] Update tests for msgspec 0.19.0 (\u003ca href=\"https://redirect.github.com/nhairs/python-json-logger/issues/41\"\u003e#41\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v3.2.1...v3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2024.12.14 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\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/e767d5938eddddf804216cec93a55c85129c5f2d\"\u003e\u003ccode\u003ee767d59\u003c/code\u003e\u003c/a\u003e 2025.06.15 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/357\"\u003e#357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/3e7076557d66b598fcca462e422dc988f09a6802\"\u003e\u003ccode\u003e3e70765\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.5.0 to 5.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/9afd2ff407b8a0638988c952a6636b8dd623af7c\"\u003e\u003ccode\u003e9afd2ff\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4.2.1 to 4.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/d7c816cbc9cf621b3ddc8cd7fa7eda3f36982620\"\u003e\u003ccode\u003ed7c816c\u003c/code\u003e\u003c/a\u003e remove code that's no longer required that 3.7 is our minimum (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/351\"\u003e#351\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/189961379209973abd0dd6304297f03e2359e1b9\"\u003e\u003ccode\u003e1899613\u003c/code\u003e\u003c/a\u003e Declare setuptools as the build backend in pyproject.toml (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/350\"\u003e#350\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/c8741423d67e1025c0bdad5225ded05cf962f207\"\u003e\u003ccode\u003ec874142\u003c/code\u003e\u003c/a\u003e update CI for ubuntu 20.04 deprecation (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/348\"\u003e#348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/275c9eb55733a464589c15fb4566fddd4598e5b2\"\u003e\u003ccode\u003e275c9eb\u003c/code\u003e\u003c/a\u003e 2025.04.26 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/347\"\u003e#347\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2024.12.14...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.1 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\u003ch2\u003eVersion 3.4.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.9\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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.1...3.4.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `makefun` from 1.15.6 to 1.16.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/smarie/python-makefun/blob/main/docs/changelog.md\"\u003emakefun's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e1.16.0 - Support for 3.14, dropped support for \u0026lt; 3.9\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved official support for python versions \u003ccode\u003e\u0026lt;3.9\u003c/code\u003e. These versions will not run in CI anymore.\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eRuntimeError\u003c/code\u003e in tests when running on python 3.14. Added python 3.14 to CI. Fixes\n\u003ca href=\"https://redirect.github.com/smarie/python-makefun/issues/112\"\u003e#112\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/smarie/python-makefun/commit/197b14827c1b7830c0288477c007e1f1592f52ad\"\u003e\u003ccode\u003e197b148\u003c/code\u003e\u003c/a\u003e Changelog for tag, ready to release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/321a39c9a8be1497ba7dfbb9c7c16a9442ae25a6\"\u003e\u003ccode\u003e321a39c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/smarie/python-makefun/issues/118\"\u003e#118\u003c/a\u003e from smarie/feature/112_support_py314\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/39f061e17a7d7472e33cec76d162381ae82b49e3\"\u003e\u003ccode\u003e39f061e\u003c/code\u003e\u003c/a\u003e With latest versions of all actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/4771aaf910459dfabb12109cf4ae37cd089fd9d6\"\u003e\u003ccode\u003e4771aaf\u003c/code\u003e\u003c/a\u003e Changed the fix to leverage pytest-asyncio, now that we do not support python...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/498ed69f5fa22baa5300b354d419fd45be55cf6e\"\u003e\u003ccode\u003e498ed69\u003c/code\u003e\u003c/a\u003e Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/87eb2ebefa88d212e4ae75f28fc0ffc2fb9194c6\"\u003e\u003ccode\u003e87eb2eb\u003c/code\u003e\u003c/a\u003e Fixed \u003ccode\u003eRuntimeError\u003c/code\u003e in tests when running on pythn 3.14. Added python 3.14 t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/4573c65b6b8405b6194361805a44ba8d9d08c41d\"\u003e\u003ccode\u003e4573c65\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/smarie/python-makefun/issues/117\"\u003e#117\u003c/a\u003e from smarie/chore/116_gh_pages_workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/db582747d0b89ea35927176910205f3f68a429d4\"\u003e\u003ccode\u003edb58274\u003c/code\u003e\u003c/a\u003e Added gh pages workflow. Fixed \u003ca href=\"https://redirect.github.com/smarie/python-makefun/issues/116\"\u003e#116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/c8990e6a660082b42f8314f96bf7369a0f6c2463\"\u003e\u003ccode\u003ec8990e6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/smarie/python-makefun/issues/114\"\u003e#114\u003c/a\u003e from smarie/feature/py35_in_ci\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/3b1e628e9e7ecf05ea9bc6a9fb73c45563a3c24a\"\u003e\u003ccode\u003e3b1e628\u003c/code\u003e\u003c/a\u003e Removed 3.14 for now\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/smarie/python-makefun/compare/1.15.6...1.16.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pychoir` from 0.0.27 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/kajaste/pychoir/releases\"\u003epychoir's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eTwenty-ninth release\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch pipenv \u0026amp; setuptools to uv by \u003ca href=\"https://github.com/kajaste\"\u003e\u003ccode\u003e@​kajaste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kajaste/pychoir/pull/97\"\u003ekajaste/pychoir#97\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/kajaste/pychoir/compare/v0.0.28...v0.0.29\"\u003ehttps://github.com/kajaste/pychoir/compare/v0.0.28...v0.0.29\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eTwenty-eighth release\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate dev deps by \u003ca href=\"https://github.com/kajaste\"\u003e\u003ccode\u003e@​kajaste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kajaste/pychoir/pull/94\"\u003ekajaste/pychoir#94\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump dev deps by \u003ca href=\"https://github.com/kajaste\"\u003e\u003ccode\u003e@​kajaste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kajaste/pychoir/pull/95\"\u003ekajaste/pychoir#95\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs \u0026amp; Makefile update by \u003ca href=\"https://github.com/kajaste\"\u003e\u003ccode\u003e@​kajaste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kajaste/pychoir/pull/96\"\u003ekajaste/pychoir#96\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/kajaste/pychoir/compare/v0.0.27...v0.0.28\"\u003ehttps://github.com/kajaste/pychoir/compare/v0.0.27...v0.0.28\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/kajaste/pychoir/commit/bf2f254bcadf03026867a6442523549f1abb16d3\"\u003e\u003ccode\u003ebf2f254\u003c/code\u003e\u003c/a\u003e Switch pipenv \u0026amp; setuptools to uv\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kajaste/pychoir/commit/c1d251d480a47f8bc29e89765c19b00b594442b2\"\u003e\u003ccode\u003ec1d251d\u003c/code\u003e\u003c/a\u003e Docs \u0026amp; Makefile update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kajaste/pychoir/commit/f6181a037d2e791bbf9306b4210a9b4934fc1bbf\"\u003e\u003ccode\u003ef6181a0\u003c/code\u003e\u003c/a\u003e Drop 3.7, add 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kajaste/pychoir/commit/f94fdad20f981f344adbdc07b9aa1cb00795b671\"\u003e\u003ccode\u003ef94fdad\u003c/code\u003e\u003c/a\u003e Bump dev deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kajaste/pychoir/commit/5a2ebd7ca625779b7beaab71d50631f9529f21eb\"\u003e\u003ccode\u003e5a2ebd7\u003c/code\u003e\u003c/a\u003e Update dev deps\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/kajaste/pychoir/compare/v0.0.27...v0.0.29\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.4 to 2.32.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.32.5\u003c/h2\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b25c87d7cb8d6a18a37fa12442b5f883f9e41741\"\u003e\u003ccode\u003eb25c87d\u003c/code\u003e\u003c/a\u003e v2.32.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/131e506079d97606e4214cc4d87b780ac478de7a\"\u003e\u003ccode\u003e131e506\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psf/requests/issues/7010\"\u003e#7010\u003c/a\u003e from psf/dependabot/github_actions/actions/checkout-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b336cb2bc616a63a93c6470c558fc1f576b77f90\"\u003e\u003ccode\u003eb336cb2\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.2.0 to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/46e939b5525d9c72b677340985582b04b128478a\"\u003e\u003ccode\u003e46e939b\u003c/code\u003e\u003c/a\u003e Update publish workflow to use \u003ccode\u003eartifact-id\u003c/code\u003e instead of \u003ccode\u003ename\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/4b9c546aa3f35fca6ca24945376fe7462bb007c4\"\u003e\u003ccode\u003e4b9c546\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psf/requests/issues/6999\"\u003e#6999\u003c/a\u003e from psf/dependabot/github_actions/step-security/har...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/7618dbef01d333f23ba4b9c4d97397b06dd89cb6\"\u003e\u003ccode\u003e7618dbe\u003c/code\u003e\u003c/a\u003e Bump step-security/harden-runner from 2.12.0 to 2.13.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2edca11103c1c27dd8b572dab544b7f48cf3b446\"\u003e\u003ccode\u003e2edca11\u003c/code\u003e\u003c/a\u003e Add support for Python 3.14 and drop support for Python 3.8 (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6993\"\u003e#6993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/fec96cd5976ad763e45bac9a033d62cca1877a00\"\u003e\u003ccode\u003efec96cd\u003c/code\u003e\u003c/a\u003e Update Makefile rules (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6996\"\u003e#6996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d58d8aa2f45c3575268d6d5250745ef69f9cf8b7\"\u003e\u003ccode\u003ed58d8aa\u003c/code\u003e\u003c/a\u003e docs: clarify timeout parameter uses seconds in Session.request (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6994\"\u003e#6994\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/91a3eabd3dcc4d7f36dd8249e4777a90ef9b4305\"\u003e\u003ccode\u003e91a3eab\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 3.28.5 to 3.29.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.4...v2.32.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.6.10 to 7.10.5\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.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\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 `issue\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/nedbat/coveragepy/commit/810abeb149fff925e49eab37ceaee60cb2878f7d\"\u003e\u003ccode\u003e810abeb\u003c/code\u003e\u003c/a\u003e chore: make upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/3c8f1b518cf933040059fd85b482827ed205e0d1\"\u003e\u003ccode\u003e3c8f1b5\u003c/code\u003e\u003c/a\u003e build: use --universal to keep platform conditions in .pip files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/107ae05233005f8a5d497d8492c6410428dbbc28\"\u003e\u003ccode\u003e107ae05\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.10.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/b5bc6d409aefc11d0277fbf8af9c930bea686ed5\"\u003e\u003ccode\u003eb5bc6d4\u003c/code\u003e\u003c/a\u003e docs: prep for 7.10.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/a5c18cc5eadc9df04005420207d53d74a94b9adf\"\u003e\u003ccode\u003ea5c18cc\u003c/code\u003e\u003c/a\u003e style: auto-generated changes shouldn't trigger ruff re-formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/1f9f84079aef5aab496381502aa818ea0574982a\"\u003e\u003ccode\u003e1f9f840\u003c/code\u003e\u003c/a\u003e build: tooling for ruff formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/9ee5b3e9e053168caa4e7bd32389b5592ad9b503\"\u003e\u003ccode\u003e9ee5b3e\u003c/code\u003e\u003c/a\u003e chore: make upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/bfeb2aec1de7c298060b0c972f86d0f1f3e4da71\"\u003e\u003ccode\u003ebfeb2ae\u003c/code\u003e\u003c/a\u003e style: fix things so pylint is happy with ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/82467f72306efdb207af09ace27b6b3ed4c7ad6f\"\u003e\u003ccode\u003e82467f7\u003c/code\u003e\u003c/a\u003e chore: \u003ccode\u003eruff format .\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/0a7b73346bc498a089df8cc7d4168dab7a326a06\"\u003e\u003ccode\u003e0a7b733\u003c/code\u003e\u003c/a\u003e refactor: remove unused things from lab/\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nedbat/coveragepy/compare/7.6.10...7.10.5\"\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 `exceptiongroup` from 1.2.2 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/agronholm/exceptiongroup/releases\"\u003eexceptiongroup's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003e**kwargs\u003c/code\u003e to function and method signatures as appropriate to match the signatures in the standard library\u003c/li\u003e\n\u003cli\u003eIn line with the stdlib typings in typeshed, updated \u003ccode\u003e(Base)ExceptionGroup\u003c/code\u003e generic types to define defaults for their generic arguments (defaulting to \u003ccode\u003eBaseExceptionGroup[BaseException]\u003c/code\u003e and \u003ccode\u003eExceptionGroup[Exception]\u003c/code\u003e) (PR by \u003ca href=\"https://github.com/mikenerone\"\u003e\u003ccode\u003e@​mikenerone\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eBaseExceptionGroup.__init__()\u003c/code\u003e to directly call \u003ccode\u003eBaseException.__init__()\u003c/code\u003e instead of the superclass \u003ccode\u003e__init__()\u003c/code\u003e in order to emulate the CPython behavior (broken or not) (PR by \u003ca href=\"https://github.com/cfbolz\"\u003e\u003ccode\u003e@​cfbolz\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged the \u003ccode\u003eexceptions\u003c/code\u003e attribute to always return the same tuple of exceptions, created from the original exceptions sequence passed to \u003ccode\u003eBaseExceptionGroup\u003c/code\u003e to match CPython behavior (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/143\"\u003e#143\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/agronholm/exceptiongroup/blob/main/CHANGES.rst\"\u003eexceptiongroup's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eVersion history\u003c/h1\u003e\n\u003cp\u003eThis library adheres to \u003ccode\u003eSemantic Versioning 2.0 \u0026lt;http://semver.org/\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e1.3.0\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003e**kwargs\u003c/code\u003e to function and method signatures as appropriate to match the\nsignatures in the standard library\u003c/li\u003e\n\u003cli\u003eIn line with the stdlib typings in typeshed, updated \u003ccode\u003e(Base)ExceptionGroup\u003c/code\u003e generic\ntypes to define defaults for their generic arguments (defaulting to\n\u003ccode\u003eBaseExceptionGroup[BaseException]\u003c/code\u003e and \u003ccode\u003eExceptionGroup[Exception]\u003c/code\u003e)\n(PR by \u003ca href=\"https://github.com/mikenerone\"\u003e\u003ccode\u003e@​mikenerone\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eBaseExceptionGroup.__init__()\u003c/code\u003e to directly call\n\u003ccode\u003eBaseException.__init__()\u003c/code\u003e instead of the superclass \u003ccode\u003e__init__()\u003c/code\u003e in order to\nemulate the CPython behavior (broken or not) (PR by \u003ca href=\"https://github.com/cfbolz\"\u003e\u003ccode\u003e@​cfbolz\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged the \u003ccode\u003eexceptions\u003c/code\u003e attribute to always return the same tuple of exceptions,\ncreated from the original exceptions sequence passed to \u003ccode\u003eBaseExceptionGroup\u003c/code\u003e to\nmatch CPython behavior\n(\u003ccode\u003e[#143](https://github.com/agronholm/exceptiongroup/issues/143) \u0026lt;https://github.com/agronholm/exceptiongroup/issues/143\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e1.2.2\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved an \u003ccode\u003eassert\u003c/code\u003e in \u003ccode\u003eexceptiongroup._formatting\u003c/code\u003e that caused compatibility\nissues with Sentry (\u003ccode\u003e[#123](https://github.com/agronholm/exceptiongroup/issues/123) \u0026lt;https://github.com/agronholm/exceptiongroup/issues/123\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e1.2.1\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated the copying of \u003ccode\u003e__notes__\u003c/code\u003e to match CPython behavior (PR by CF Bolz-Tereick)\u003c/li\u003e\n\u003cli\u003eCorrected the type annotation of the exception handler callback to accept a\n\u003ccode\u003eBaseExceptionGroup\u003c/code\u003e instead of \u003ccode\u003eBaseException\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFixed type errors on Python \u0026lt; 3.10 and the type annotation of \u003ccode\u003esuppress()\u003c/code\u003e\n(PR by John Litborn)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e1.2.0\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded special monkeypatching if \u003ccode\u003eApport \u0026lt;https://github.com/canonical/apport\u0026gt;\u003c/code\u003e_ has\noverridden \u003ccode\u003esys.excepthook\u003c/code\u003e so it will format exception groups correctly\n(PR by John Litborn)\u003c/li\u003e\n\u003cli\u003eAdded a backport of \u003ccode\u003econtextlib.suppress()\u003c/code\u003e from Python 3.12.1 which also handles\nsuppressing exceptions inside exception groups\u003c/li\u003e\n\u003cli\u003eFixed bare \u003ccode\u003eraise\u003c/code\u003e in a handler reraising the original naked exception rather than\nan exception group which is what is raised when you do a \u003ccode\u003eraise\u003c/code\u003e in an \u003ccode\u003eexcept*\u003c/code\u003e\nhandler\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e1.1.3\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ecatch()\u003c/code\u003e now raises a \u003ccode\u003eTypeError\u003c/code\u003e if passed an async exception handler instead of\njust giving a \u003ccode\u003eRuntimeWarning\u003c/code\u003e about the coroutine never being awaited. (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/66\"\u003e#66\u003c/a\u003e, PR by\nJohn Litborn)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/77fba8a871408ff2c48f536e5e73b1918239ba5f\"\u003e\u003ccode\u003e77fba8a\u003c/code\u003e\u003c/a\u003e Added the release version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/5e153aa379ac53af79cc7f5e287f77929cb4d0dc\"\u003e\u003ccode\u003e5e153aa\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Migrated test dependencies to dependency groups\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/5000bfea208ad59e3a20e2fb91a513ad559711b1\"\u003e\u003ccode\u003e5000bfe\u003c/code\u003e\u003c/a\u003e Migrated tox configuration to native TOML\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/427220d67a52585e98575103b090b5fdaf87a899\"\u003e\u003ccode\u003e427220d\u003c/code\u003e\u003c/a\u003e Updated pytest options\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/4ca264fa3605d52067c20b351a0d3b947fa1f363\"\u003e\u003ccode\u003e4ca264f\u003c/code\u003e\u003c/a\u003e Migrated test dependencies to dependency groups\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/163c3a8cb27f8a5325258b5a83e7cf8fc002c3b7\"\u003e\u003ccode\u003e163c3a8\u003c/code\u003e\u003c/a\u003e Marked test_exceptions_mutate_original_sequence as xfail on pypy3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/a1765740db2d55d1eb91d67a8fbbb355caf7881b\"\u003e\u003ccode\u003ea176574\u003c/code\u003e\u003c/a\u003e Always create the exceptions tuple at init and return it from the exceptions ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/550b79621cc35892413fa91903a1d6c7951d0449\"\u003e\u003ccode\u003e550b796\u003c/code\u003e\u003c/a\u003e Added BaseExceptionGroup.\u003cstrong\u003einit\u003c/strong\u003e, following CPython (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/142\"\u003e#142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/2a84dfd5599bca0c653143f0f4252d38afac9867\"\u003e\u003ccode\u003e2a84dfd\u003c/code\u003e\u003c/a\u003e Added typevar defaults to (Base)ExceptionGroup (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/147\"\u003e#147\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/fb9133b495fc82bc2907e8cfbdff6c6dc3087e2f\"\u003e\u003ccode\u003efb9133b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/145\"\u003e#145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/exceptiongroup/compare/1.2.2...1.3.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.16.1 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\u003ch2\u003e3.18.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIndicate that locks are exclusive/write locks. by \u003ca href=\"https://github.com/bicarlsen\"\u003e\u003ccode\u003e@​bicarlsen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/394\"\u003etox-dev/filelock#394\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport fcntl check on Emscripten by \u003ca href=\"https://github.com/juntyr\"\u003e\u003ccode\u003e@​juntyr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/398\"\u003etox-dev/filelock#398\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/bicarlsen\"\u003e\u003ccode\u003e@​bicarlsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/394\"\u003etox-dev/filelock#394\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/juntyr\"\u003e\u003ccode\u003e@​juntyr\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/398\"\u003etox-dev/filelock#398\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.17.0...3.18.0\"\u003ehttps://github.com/tox-dev/filelock/compare/3.17.0...3.18.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDrop 3.8\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.16.1...3.17.0\"\u003ehttps://github.com/tox-dev/filelock/compare/3.16.1...3.17.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.16.1...3.19.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `freezegun` from 1.5.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\u003c/blockquote\u003e\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.5.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 `identify` from 2.6.5 to 2.6.13\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/af4da9c69b07a41dfbfc1f3ec60d27d9aa0654dc\"\u003e\u003ccode\u003eaf4da9c\u003c/code\u003e\u003c/a\u003e v2.6.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/bdf9c05f99c426e7ab115f68cf62bd0a70b33012\"\u003e\u003ccode\u003ebdf9c05\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/identify/issues/530\"\u003e#530\u003c/a\u003e from dirtcrusher/feature/special_cpp_extensions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/1a6b03cde137b43d4aa6bfd5ea80a762b923efa0\"\u003e\u003ccode\u003e1a6b03c\u003c/code\u003e\u003c/a\u003e Added C++ 'ipp' and 'tpp' file extensions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/1a3399b87beba789ab56ab395737a9b7453ad58f\"\u003e\u003ccode\u003e1a3399b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/identify/issues/529\"\u003e#529\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/1097f76716bf2c93d86fea0e802c8c19df471c5c\"\u003e\u003ccode\u003e1097f76\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/identify/commit/bbfa5787afa5dce7508f4d91fea70fa1fb6b3dd8\"\u003e\u003ccode\u003ebbfa578\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/identify/issues/528\"\u003e#528\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/536d75194e326b7bdb6c5d6e0a66a6658d4a98ff\"\u003e\u003ccode\u003e536d751\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/identify/commit/e1c38fedb35173288c0b7abdabb8545e4ad46290\"\u003e\u003ccode\u003ee1c38fe\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/identify/issues/526\"\u003e#526\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/d084d035b45bdf83a9d28b64977ae4629cacf2c2\"\u003e\u003ccode\u003ed084d03\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/identify/commit/40af39f8124a4e8029ff3716c2b0bbf2e1e5fb1e\"\u003e\u003ccode\u003e40af39f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/identify/issues/524\"\u003e#524\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/identify/compare/v2.6.5...v2.6.13\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `iniconfig` from 2.0.0 to 2.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/iniconfig/releases\"\u003einiconfig's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.1.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/26\"\u003e#26\u003c/a\u003e - list individuals in license file by \u003ca href=\"https://github.com/RonnyPfannschmidt\"\u003e\u003ccode\u003e@​RonnyPfannschmidt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/52\"\u003epytest-dev/iniconfig#52\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRun tests in CI by \u003ca href=\"https://github.com/nicoddemus\"\u003e\u003ccode\u003e@​nicoddemus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/53\"\u003epytest-dev/iniconfig#53\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003epypa/gh-action-pypi-publish@release/v1\u003c/code\u003e @ GHA by \u003ca href=\"https://github.com/webknjaz\"\u003e\u003ccode\u003e@​webknjaz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/54\"\u003epytest-dev/iniconfig#54\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12-3.13 and drop EOL 3.7 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/56\"\u003epytest-dev/iniconfig#56\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/nicoddemus\"\u003e\u003ccode\u003e@​nicoddemus\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/53\"\u003epytest-dev/iniconfig#53\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/webknjaz\"\u003e\u003ccode\u003e@​webknjaz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/54\"\u003epytest-dev/iniconfig#54\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pytest-dev/iniconfig/compare/v2.0.0...v2.1.0\"\u003ehttps://github.com/pytest-dev/iniconfig/compare/v2.0.0...v2.1.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/pytest-dev/iniconfig/blob/main/CHANGELOG\"\u003einiconfig's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.1.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix artifact building - pin minimal version of hatch\u003c/li\u003e\n\u003cli\u003edrop eol python 3.8\u003c/li\u003e\n\u003cli\u003eadd python 3.12 and 3.13\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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/iniconfig/commit/34793a6417e35e511d0c17ffdd8a02ade0f9568e\"\u003e\u003ccode\u003e34793a6\u003c/code\u003e\u003c/a\u003e pre-commit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/136435d0a4345bb048dca98e7c2f4e938d74521b\"\u003e\u003ccode\u003e136435d\u003c/code\u003e\u003c/a\u003e update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/0bb99ad0f7a6b21d5eb24214a260132317a11e43\"\u003e\u003ccode\u003e0bb99ad\u003c/code\u003e\u003c/a\u003e fix \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/62\"\u003e#62\u003c/a\u003e: require a minimal hatch version with correct metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/16793eaddac67de0b8d621ae4e42e05b927e8d67\"\u003e\u003ccode\u003e16793ea\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/56\"\u003e#56\u003c/a\u003e from hugovk/add-3.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/3dc2b2d6bf03e4b7cc92949a8ef0983fdd7ee442\"\u003e\u003ccode\u003e3dc2b2d\u003c/code\u003e\u003c/a\u003e Add support for Python 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/2eb8abfd9d3843100d7f138efe5bcd989a885024\"\u003e\u003ccode\u003e2eb8abf\u003c/code\u003e\u003c/a\u003e Bump GitHub Actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/8c4bb5bf57dde613c8cdcf0e02a09b2fff630907\"\u003e\u003ccode\u003e8c4bb5b\u003c/code\u003e\u003c/a\u003e Set python-version for pre-commit to remove CI warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/58b22b2d672564ff1925df51f4a8e07486765ed2\"\u003e\u003ccode\u003e58b22b2\u003c/code\u003e\u003c/a\u003e Drop support for EOL Python 3.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/4a53042252a109bcdd64422058de91c5dffff763\"\u003e\u003ccode\u003e4a53042\u003c/code\u003e\u003c/a\u003e Add support for Python 3.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/9cae43103df70bac6fde7b9f35ad11a9f1be0cb4\"\u003e\u003ccode\u003e9cae431\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/54\"\u003e#54\u003c/a\u003e from webknjaz/patch-1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/iniconfig/compare/v2.0.0...v2.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `junit-xml` from 1.8 to 1.9\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/kyrus/python-junit-xml/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mutmut` from 3.2.2 to 3.3.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/boxed/mutmut/blob/main/HISTORY.rst\"\u003emutmut's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e3.3.1\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Increased threshold for mutant timeouts\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003etests_dir\u003c/code\u003e config. Accepts a single entry or a list of directories.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAsync generators fixes\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed bad mutations for certain string escape sequences\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance fixes\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eVarious internal bug fixes\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e3.3.0\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003ePython 3.13 compatibility!\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eNew argument \u003ccode\u003e--show-killed\u003c/code\u003e for \u003ccode\u003emutmut browse\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix to avoid accidentally importing the un-mutated original code\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eHandle segfault for mutant subprocesses\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded mutations for string literals\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded mutations for common string methods\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFaster mutant generation via subprocesses\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eself\u003c/code\u003e parameter for mutated class methods\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix trampoline generation for function calls with 'orig' or 'mutants' as argument names.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCopy full source directory before creating mutants\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved error message when forced fail test fails\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed issue with spaces in the python executable path\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDo not mutate \u003ccode\u003e__new__\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAnnotate mutant dicts (and fixes compatibility with Pydantic)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eReplaced parso with LibCST\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/boxed/mutmut/commit/0f2586a806e069cc335d68ccd7d6277088f69249\"\u003e\u003ccode\u003e0f2586a\u003c/code\u003e\u003c/a\u003e Release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/6a5c471e0c13f782caacfdd244f2717002a13192\"\u003e\u003ccode\u003e6a5c471\u003c/code\u003e\u003c/a\u003e Pass mutation generation errors from subprocess to main process\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/7b03f4bffc3e8ac0c85158947e4659a5831cbf63\"\u003e\u003ccode\u003e7b03f4b\u003c/code\u003e\u003c/a\u003e Update timeout values\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/3cd39fac6f800de8859b8e876d0f74cd100574c8\"\u003e\u003ccode\u003e3cd39fa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/boxed/mutmut/issues/408\"\u003e#408\u003c/a\u003e from souradeep-das/souradeep/add_tests_dir\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/3e52e5e13347589adf725de1847204aad1b22a64\"\u003e\u003ccode\u003e3e52e5e\u003c/code\u003e\u003c/a\u003e modify e2e tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/10bb45183d781504fb13925dd3baee21edcf8673\"\u003e\u003ccode\u003e10bb451\u003c/code\u003e\u003c/a\u003e merge latest\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/d4980abef4bbbcea6e9070bc0a1c92626bb9ebb4\"\u003e\u003ccode\u003ed4980ab\u003c/code\u003e\u003c/a\u003e fix: accept lists as tests_dir\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/22f3924b6b5a2ff7916c1f62aa1ed1f3341e42ee\"\u003e\u003ccode\u003e22f3924\u003c/code\u003e\u003c/a\u003e Improve diff view performance a bit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/eb37032a679e1b160b012d838f798fd7fc266e48\"\u003e\u003ccode\u003eeb37032\u003c/code\u003e\u003c/a\u003e Make rlimit signal SIGXCPU first; only fallback to SIGKILL later on\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/99ecd3209b8ed49b6dc9d97dcfe67e66f0e8e773\"\u003e\u003ccode\u003e99ecd32\u003c/code\u003e\u003c/a\u003e fix timeout checker \u0026quot;dictionary changed size during iteration\u0026quot; bug (\u003ca href=\"https://redirect.github.com/boxed/mutmut/issues/411\"\u003e#411\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boxed/mutmut/compare/3.2.2...3.3.1\"\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 `parso` from 0.8.4 to 0.8.5\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/davidhalter/parso/blob/master/CHANGELOG.rst\"\u003eparso's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.8.5 (2025-08-23)\n++++++++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a fallback grammar 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/davidhalter/parso/commit/be9f5a401feaa1a7eda935bc68b2d3baed9a30ab\"\u003e\u003ccode\u003ebe9f5a4\u003c/code\u003e\u003c/a\u003e Prepare release 0.8.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/davidhalter/parso/commit/7e4777b775206038a1aa87282c79ed04f5f1c3fd\"\u003e\u003ccode\u003e7e4777b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/davidhalter/parso/issues/234\"\u003e#234\u003c/a\u003e from A5rocks/future-compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/davidhalter/parso/commit/e99dbdd536da741d4935c427a6231f4d5eb6ea79\"\u003e\u003ccode\u003ee99dbdd\u003c/code\u003e\u003c/a\u003e Remove redundant warnings import\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/davidhalter/parso/commit/e22dc67aa10b53bbf069f825a0d40eefc727f0cb\"\u003e\u003ccode\u003ee22dc67\u003c/code\u003e\u003c/a\u003e Avoid warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/davidhalter/parso/commit/baa3c90d85a10f6abb8307246a89fc683981cee7\"\u003e\u003ccode\u003ebaa3c90\u003c/code\u003e\u003c/a\u003e Load newest grammar in face of a future grammar\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/davidhalter/parso/commit/23b1cdf73d95ae20f23e2fd198cafcd8fef529ad\"\u003e\u003ccode\u003e23b1cdf\u003c/code\u003e\u003c/a\u003e Drop Python 3.7 in CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/davidhalter/parso/commit/a73af5c709a292cbb789bf6cab38b20559f166c0\"\u003e\u003ccode\u003ea73af5c\u003c/code\u003e\u003c/a\u003e Fix pip install -e in docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/davidhalter/parso/commit/9328cffce392b4c3e907db4bbfad06ca1111b3ee\"\u003e\u003ccode\u003e9328cff\u003c/code\u003e\u003c/a\u003e Update classifiers in setup.py (\u003ca href=\"https://redirect.github.com/davidhalter/parso/issues/230\"\u003e#230\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/davidhalter/parso/commit/f670e6e7dc01e07576ec5c84cbf9fbce1a02c3eb\"\u003e\u003ccode\u003ef670e6e\u003c/code\u003e\u003c/a\u003e ENH: add grammar file for py314 (\u003ca href=\"https://redirect.github.com/davidhalter/parso/issues/229\"\u003e#229\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http...\n\n_Description has been truncated_","html_url":"https://github.com/github/annotated-logger/pull/75","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/github%2Fannotated-logger/issues/75","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/75/packages"},{"uuid":"2594043344","node_id":"PR_kwDOMt9I9c6anfXQ","number":64,"state":"closed","title":"[pip] (deps): Bump the dev-dependencies group across 1 directory with 30 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2025-06-22T21:08:11.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-06-15T21:08:56.000Z","updated_at":"2025-06-22T21:08:11.000Z","time_to_close":604755,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"[pip] (deps): Bump","group_name":"dev-dependencies","update_count":30,"packages":[{"name":"python-json-logger","old_version":"3.2.1","new_version":"3.3.0","repository_url":"https://github.com/nhairs/python-json-logger"},{"name":"certifi","old_version":"2024.12.14","new_version":"2025.6.15","repository_url":"https://github.com/certifi/python-certifi"},{"name":"charset-normalizer","old_version":"3.4.1","new_version":"3.4.2","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"makefun","old_version":"1.15.6","new_version":"1.16.0","repository_url":"https://github.com/smarie/python-makefun"},{"name":"pychoir","old_version":"0.0.27","new_version":"0.0.29","repository_url":"https://github.com/kajaste/pychoir"},{"name":"requests","old_version":"2.32.3","new_version":"2.32.4","repository_url":"https://github.com/psf/requests"},{"name":"urllib3","old_version":"2.3.0","new_version":"2.4.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"coverage","old_version":"7.6.10","new_version":"7.9.1","repository_url":"https://github.com/nedbat/coveragepy"},{"name":"exceptiongroup","old_version":"1.2.2","new_version":"1.3.0","repository_url":"https://github.com/agronholm/exceptiongroup"},{"name":"filelock","old_version":"3.16.1","new_version":"3.18.0","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"freezegun","old_version":"1.5.1","new_version":"1.5.2","repository_url":"https://github.com/spulec/freezegun"},{"name":"identify","old_version":"2.6.5","new_version":"2.6.12","repository_url":"https://github.com/pre-commit/identify"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.1.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"junit-xml","old_version":"1.8","new_version":"1.9","repository_url":"https://github.com/kyrus/python-junit-xml"},{"name":"mutmut","old_version":"3.2.2","new_version":"3.3.0","repository_url":"https://github.com/boxed/mutmut"},{"name":"packaging","old_version":"24.2","new_version":"25.0","repository_url":"https://github.com/pypa/packaging"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.3.8","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"pre-commit","old_version":"4.0.1","new_version":"4.2.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pyright","old_version":"1.1.391","new_version":"1.1.402","repository_url":"https://github.com/RobertCraigie/pyright-python"},{"name":"pytest","old_version":"8.3.4","new_version":"8.4.0","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-cov","old_version":"6.0.0","new_version":"6.2.1","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pytest-github-actions-annotate-failures","old_version":"0.2.0","new_version":"0.3.0","repository_url":"https://github.com/pytest-dev/pytest-github-actions-annotate-failures"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.14.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"rich","old_version":"13.9.4","new_version":"14.0.0","repository_url":"https://github.com/Textualize/rich"},{"name":"ruff","old_version":"0.8.6","new_version":"0.11.13","repository_url":"https://github.com/astral-sh/ruff"},{"name":"setproctitle","old_version":"1.3.4","new_version":"1.3.6","repository_url":"https://github.com/dvarrazzo/py-setproctitle"},{"name":"textual","old_version":"1.0.0","new_version":"3.4.0","repository_url":"https://github.com/Textualize/textual"},{"name":"typing-extensions","old_version":"4.12.2","new_version":"4.14.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"virtualenv","old_version":"20.28.1","new_version":"20.31.2","repository_url":"https://github.com/pypa/virtualenv"}],"path":null,"ecosystem":"pip"},"body":"Bumps the dev-dependencies group with 30 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `3.2.1` | `3.3.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2024.12.14` | `2025.6.15` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.1` | `3.4.2` |\n| [makefun](https://github.com/smarie/python-makefun) | `1.15.6` | `1.16.0` |\n| [pychoir](https://github.com/kajaste/pychoir) | `0.0.27` | `0.0.29` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.32.4` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.3.0` | `2.4.0` |\n| [coverage](https://github.com/nedbat/coveragepy) | `7.6.10` | `7.9.1` |\n| [exceptiongroup](https://github.com/agronholm/exceptiongroup) | `1.2.2` | `1.3.0` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.18.0` |\n| [freezegun](https://github.com/spulec/freezegun) | `1.5.1` | `1.5.2` |\n| [identify](https://github.com/pre-commit/identify) | `2.6.5` | `2.6.12` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.1.0` |\n| [junit-xml](https://github.com/kyrus/python-junit-xml) | `1.8` | `1.9` |\n| [mutmut](https://github.com/boxed/mutmut) | `3.2.2` | `3.3.0` |\n| [packaging](https://github.com/pypa/packaging) | `24.2` | `25.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.3.8` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.0.1` | `4.2.0` |\n| [pyright](https://github.com/RobertCraigie/pyright-python) | `1.1.391` | `1.1.402` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.4` | `8.4.0` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `6.0.0` | `6.2.1` |\n| [pytest-github-actions-annotate-failures](https://github.com/pytest-dev/pytest-github-actions-annotate-failures) | `0.2.0` | `0.3.0` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.14.1` |\n| [rich](https://github.com/Textualize/rich) | `13.9.4` | `14.0.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.8.6` | `0.11.13` |\n| [setproctitle](https://github.com/dvarrazzo/py-setproctitle) | `1.3.4` | `1.3.6` |\n| [textual](https://github.com/Textualize/textual) | `1.0.0` | `3.4.0` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.12.2` | `4.14.0` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `20.28.1` | `20.31.2` |\n\n\nUpdates `python-json-logger` from 3.2.1 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nhairs/python-json-logger/releases\"\u003epython-json-logger's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v3.2.1...v3.3.0\"\u003e3.3.0\u003c/a\u003e - 2025-03-06\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eexc_info_as_array\u003c/code\u003e and \u003ccode\u003estack_info_as_array\u003c/code\u003e options are added to \u003ccode\u003epythonjsonlogger.core.BaseJsonFormatter\u003c/code\u003e allowing both to be encoded as list of lines instead of a single multi-line string. \u003ca href=\"https://redirect.github.com/nhairs/python-json-logger/issues/35\"\u003e#35\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003emsgspec-python313-pre\u003c/code\u003e from \u003ccode\u003edev\u003c/code\u003e dependencies preventing potential RCE. Details: \u003ca href=\"https://github.com/nhairs/python-json-logger/security/advisories/GHSA-wmxh-pxcx-9w24#advisory-comment-121307\"\u003eGHSA-wmxh-pxcx-9w24\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks \u003ca href=\"https://github.com/1hakusai1\"\u003e\u003ccode\u003e@​1hakusai1\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/omnigodz\"\u003e\u003ccode\u003e@​omnigodz\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/nhairs/python-json-logger/blob/main/docs/changelog.md\"\u003epython-json-logger's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v3.2.1...v3.3.0\"\u003e3.3.0\u003c/a\u003e - 2025-03-06\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eexc_info_as_array\u003c/code\u003e and \u003ccode\u003estack_info_as_array\u003c/code\u003e options are added to \u003ccode\u003epythonjsonlogger.core.BaseJsonFormatter\u003c/code\u003e allowing both to be encoded as list of lines instead of a single multi-line string. \u003ca href=\"https://redirect.github.com/nhairs/python-json-logger/issues/35\"\u003e#35\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003emsgspec-python313-pre\u003c/code\u003e from \u003ccode\u003edev\u003c/code\u003e dependencies preventing potential RCE. Details: \u003ca href=\"https://github.com/nhairs/python-json-logger/security/advisories/GHSA-wmxh-pxcx-9w24#advisory-comment-121307\"\u003eGHSA-wmxh-pxcx-9w24\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks \u003ca href=\"https://github.com/1hakusai1\"\u003e\u003ccode\u003e@​1hakusai1\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/omnigodz\"\u003e\u003ccode\u003e@​omnigodz\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/9e6cb679dfb56cb82d9a8cc91f956efd72427055\"\u003e\u003ccode\u003e9e6cb67\u003c/code\u003e\u003c/a\u003e Release 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/db04a0f9066cc331f8d6177f828fe073c7b2a4cc\"\u003e\u003ccode\u003edb04a0f\u003c/code\u003e\u003c/a\u003e Add options to encode stack information into an array (\u003ca href=\"https://redirect.github.com/nhairs/python-json-logger/issues/39\"\u003e#39\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/0092ea0be1cd28e3c1da51eaa084c503bb3710b7\"\u003e\u003ccode\u003e0092ea0\u003c/code\u003e\u003c/a\u003e Move to uv (\u003ca href=\"https://redirect.github.com/nhairs/python-json-logger/issues/40\"\u003e#40\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/1ce81a3614d8c77389a9c048d341593e2a7467e7\"\u003e\u003ccode\u003e1ce81a3\u003c/code\u003e\u003c/a\u003e [tests] Update tests for msgspec 0.19.0 (\u003ca href=\"https://redirect.github.com/nhairs/python-json-logger/issues/41\"\u003e#41\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v3.2.1...v3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2024.12.14 to 2025.6.15\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/e767d5938eddddf804216cec93a55c85129c5f2d\"\u003e\u003ccode\u003ee767d59\u003c/code\u003e\u003c/a\u003e 2025.06.15 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/357\"\u003e#357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/3e7076557d66b598fcca462e422dc988f09a6802\"\u003e\u003ccode\u003e3e70765\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.5.0 to 5.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/9afd2ff407b8a0638988c952a6636b8dd623af7c\"\u003e\u003ccode\u003e9afd2ff\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4.2.1 to 4.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/d7c816cbc9cf621b3ddc8cd7fa7eda3f36982620\"\u003e\u003ccode\u003ed7c816c\u003c/code\u003e\u003c/a\u003e remove code that's no longer required that 3.7 is our minimum (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/351\"\u003e#351\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/189961379209973abd0dd6304297f03e2359e1b9\"\u003e\u003ccode\u003e1899613\u003c/code\u003e\u003c/a\u003e Declare setuptools as the build backend in pyproject.toml (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/350\"\u003e#350\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/c8741423d67e1025c0bdad5225ded05cf962f207\"\u003e\u003ccode\u003ec874142\u003c/code\u003e\u003c/a\u003e update CI for ubuntu 20.04 deprecation (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/348\"\u003e#348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/275c9eb55733a464589c15fb4566fddd4598e5b2\"\u003e\u003ccode\u003e275c9eb\u003c/code\u003e\u003c/a\u003e 2025.04.26 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/347\"\u003e#347\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/37883310b51e56570919cdc2d44becc1c6940559\"\u003e\u003ccode\u003e3788331\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.4.0 to 5.5.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/346\"\u003e#346\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/9d1f1b782000baedf57026de5b79e193bcb7ef7b\"\u003e\u003ccode\u003e9d1f1b7\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4.1.9 to 4.2.1 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/344\"\u003e#344\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/96b97a5afe26bc1adef98cb0bfe68e34948a73b6\"\u003e\u003ccode\u003e96b97a5\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 4.6.1 to 4.6.2 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/343\"\u003e#343\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2024.12.14...2025.06.15\"\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.1 to 3.4.2\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.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.9\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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/6422af1d50f1f46624deab585424e1ac4d08ba94\"\u003e\u003ccode\u003e6422af1\u003c/code\u003e\u003c/a\u003e :pencil: update release date\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/0e60ec18eb00bfe312dde86739929165839b633c\"\u003e\u003ccode\u003e0e60ec1\u003c/code\u003e\u003c/a\u003e :bookmark: Release 3.4.2 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/614\"\u003e#614\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f6630ce3b7fd34f234759a0c7a5ca413640e8ffb\"\u003e\u003ccode\u003ef6630ce\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump pypa/cibuildwheel from 2.23.2 to 2.23.3 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/617\"\u003e#617\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/677c99953f1a728de9f88d8659abff1246a80ade\"\u003e\u003ccode\u003e677c999\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump actions/download-artifact from 4.2.1 to 4.3.0 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/618\"\u003e#618\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/960ab1e676b7ef73c8c4f36c387b5a0da21e01c0\"\u003e\u003ccode\u003e960ab1e\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump actions/setup-python from 5.5.0 to 5.6.0 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/619\"\u003e#619\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/6eb632521c9b3f92df2cd944c7c524c205abfffc\"\u003e\u003ccode\u003e6eb6325\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump github/codeql-action from 3.28.10 to 3.28.16 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/620\"\u003e#620\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/c99c0f2c33ce54e41fefcae1c4fb96fa901d5cd4\"\u003e\u003ccode\u003ec99c0f2\u003c/code\u003e\u003c/a\u003e :arrow_up: Update coverage requirement from \u0026lt;7.7,\u0026gt;=7.2.7 to \u0026gt;=7.2.7,\u0026lt;7.9 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/606\"\u003e#606\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/270f28e474db75f2a5085d6da732a90c2ac338f4\"\u003e\u003ccode\u003e270f28e\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump actions/setup-python from 5.4.0 to 5.5.0 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/607\"\u003e#607\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/d4d89a092d262a37ce427ee39ba5091ffd188f0b\"\u003e\u003ccode\u003ed4d89a0\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump pypa/cibuildwheel from 2.22.0 to 2.23.2 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/608\"\u003e#608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/905fcf5cbe93e8b59c12103217434bdbc703d105\"\u003e\u003ccode\u003e905fcf5\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump slsa-framework/slsa-github-generator from 2.0.0 to 2.1.0 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/609\"\u003e#609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.1...3.4.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `makefun` from 1.15.6 to 1.16.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/smarie/python-makefun/blob/main/docs/changelog.md\"\u003emakefun's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e1.16.0 - Support for 3.14, dropped support for \u0026lt; 3.9\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved official support for python versions \u003ccode\u003e\u0026lt;3.9\u003c/code\u003e. These versions will not run in CI anymore.\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eRuntimeError\u003c/code\u003e in tests when running on python 3.14. Added python 3.14 to CI. Fixes\n\u003ca href=\"https://redirect.github.com/smarie/python-makefun/issues/112\"\u003e#112\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/smarie/python-makefun/commit/197b14827c1b7830c0288477c007e1f1592f52ad\"\u003e\u003ccode\u003e197b148\u003c/code\u003e\u003c/a\u003e Changelog for tag, ready to release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/321a39c9a8be1497ba7dfbb9c7c16a9442ae25a6\"\u003e\u003ccode\u003e321a39c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/smarie/python-makefun/issues/118\"\u003e#118\u003c/a\u003e from smarie/feature/112_support_py314\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/39f061e17a7d7472e33cec76d162381ae82b49e3\"\u003e\u003ccode\u003e39f061e\u003c/code\u003e\u003c/a\u003e With latest versions of all actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/4771aaf910459dfabb12109cf4ae37cd089fd9d6\"\u003e\u003ccode\u003e4771aaf\u003c/code\u003e\u003c/a\u003e Changed the fix to leverage pytest-asyncio, now that we do not support python...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/498ed69f5fa22baa5300b354d419fd45be55cf6e\"\u003e\u003ccode\u003e498ed69\u003c/code\u003e\u003c/a\u003e Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/87eb2ebefa88d212e4ae75f28fc0ffc2fb9194c6\"\u003e\u003ccode\u003e87eb2eb\u003c/code\u003e\u003c/a\u003e Fixed \u003ccode\u003eRuntimeError\u003c/code\u003e in tests when running on pythn 3.14. Added python 3.14 t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/4573c65b6b8405b6194361805a44ba8d9d08c41d\"\u003e\u003ccode\u003e4573c65\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/smarie/python-makefun/issues/117\"\u003e#117\u003c/a\u003e from smarie/chore/116_gh_pages_workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/db582747d0b89ea35927176910205f3f68a429d4\"\u003e\u003ccode\u003edb58274\u003c/code\u003e\u003c/a\u003e Added gh pages workflow. Fixed \u003ca href=\"https://redirect.github.com/smarie/python-makefun/issues/116\"\u003e#116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/c8990e6a660082b42f8314f96bf7369a0f6c2463\"\u003e\u003ccode\u003ec8990e6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/smarie/python-makefun/issues/114\"\u003e#114\u003c/a\u003e from smarie/feature/py35_in_ci\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/3b1e628e9e7ecf05ea9bc6a9fb73c45563a3c24a\"\u003e\u003ccode\u003e3b1e628\u003c/code\u003e\u003c/a\u003e Removed 3.14 for now\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/smarie/python-makefun/compare/1.15.6...1.16.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pychoir` from 0.0.27 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/kajaste/pychoir/releases\"\u003epychoir's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eTwenty-ninth release\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch pipenv \u0026amp; setuptools to uv by \u003ca href=\"https://github.com/kajaste\"\u003e\u003ccode\u003e@​kajaste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kajaste/pychoir/pull/97\"\u003ekajaste/pychoir#97\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/kajaste/pychoir/compare/v0.0.28...v0.0.29\"\u003ehttps://github.com/kajaste/pychoir/compare/v0.0.28...v0.0.29\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eTwenty-eighth release\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate dev deps by \u003ca href=\"https://github.com/kajaste\"\u003e\u003ccode\u003e@​kajaste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kajaste/pychoir/pull/94\"\u003ekajaste/pychoir#94\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump dev deps by \u003ca href=\"https://github.com/kajaste\"\u003e\u003ccode\u003e@​kajaste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kajaste/pychoir/pull/95\"\u003ekajaste/pychoir#95\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs \u0026amp; Makefile update by \u003ca href=\"https://github.com/kajaste\"\u003e\u003ccode\u003e@​kajaste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kajaste/pychoir/pull/96\"\u003ekajaste/pychoir#96\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/kajaste/pychoir/compare/v0.0.27...v0.0.28\"\u003ehttps://github.com/kajaste/pychoir/compare/v0.0.27...v0.0.28\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/kajaste/pychoir/commit/bf2f254bcadf03026867a6442523549f1abb16d3\"\u003e\u003ccode\u003ebf2f254\u003c/code\u003e\u003c/a\u003e Switch pipenv \u0026amp; setuptools to uv\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kajaste/pychoir/commit/c1d251d480a47f8bc29e89765c19b00b594442b2\"\u003e\u003ccode\u003ec1d251d\u003c/code\u003e\u003c/a\u003e Docs \u0026amp; Makefile update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kajaste/pychoir/commit/f6181a037d2e791bbf9306b4210a9b4934fc1bbf\"\u003e\u003ccode\u003ef6181a0\u003c/code\u003e\u003c/a\u003e Drop 3.7, add 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kajaste/pychoir/commit/f94fdad20f981f344adbdc07b9aa1cb00795b671\"\u003e\u003ccode\u003ef94fdad\u003c/code\u003e\u003c/a\u003e Bump dev deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kajaste/pychoir/commit/5a2ebd7ca625779b7beaab71d50631f9529f21eb\"\u003e\u003ccode\u003e5a2ebd7\u003c/code\u003e\u003c/a\u003e Update dev deps\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/kajaste/pychoir/compare/v0.0.27...v0.0.29\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.32.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.32.4\u003c/h2\u003e\n\u003ch2\u003e2.32.4 (2025-06-10)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2024-47081 Fixed an issue where a maliciously crafted URL and trusted\nenvironment will retrieve credentials for the wrong hostname/machine from a\nnetrc file. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6965\"\u003e#6965\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNumerous documentation improvements\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for pypy 3.11 for Linux and macOS. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6926\"\u003e#6926\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDropped support for pypy 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6926\"\u003e#6926\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.32.4 (2025-06-10)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2024-47081 Fixed an issue where a maliciously crafted URL and trusted\nenvironment will retrieve credentials for the wrong hostname/machine from a\nnetrc file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNumerous documentation improvements\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for pypy 3.11 for Linux and macOS.\u003c/li\u003e\n\u003cli\u003eDropped support for pypy 3.9 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/021dc729f0b71a3030cefdbec7fb57a0e80a6cfd\"\u003e\u003ccode\u003e021dc72\u003c/code\u003e\u003c/a\u003e Polish up release tooling for last manual release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/821770e822a20a21b207b3907ea83878bda1d396\"\u003e\u003ccode\u003e821770e\u003c/code\u003e\u003c/a\u003e Bump version and add release notes for v2.32.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/59f8aa2adf1d3d06bcbf7ce6b13743a1639a5401\"\u003e\u003ccode\u003e59f8aa2\u003c/code\u003e\u003c/a\u003e Add netrc file search information to authentication documentation (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6876\"\u003e#6876\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5b4b64c3467fd7a3c03f91ee641aaa348b6bed3b\"\u003e\u003ccode\u003e5b4b64c\u003c/code\u003e\u003c/a\u003e Add more tests to prevent regression of CVE 2024 47081\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/7bc45877a86192af77645e156eb3744f95b47dae\"\u003e\u003ccode\u003e7bc4587\u003c/code\u003e\u003c/a\u003e Add new test to check netrc auth leak (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6962\"\u003e#6962\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/96ba401c1296ab1dda74a2365ef36d88f7d144ef\"\u003e\u003ccode\u003e96ba401\u003c/code\u003e\u003c/a\u003e Only use hostname to do netrc lookup instead of netloc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/7341690e842a23cf18ded0abd9229765fa88c4e2\"\u003e\u003ccode\u003e7341690\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psf/requests/issues/6951\"\u003e#6951\u003c/a\u003e from tswast/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6716d7c9f29df636643fa2489f98890216525cb0\"\u003e\u003ccode\u003e6716d7c\u003c/code\u003e\u003c/a\u003e remove links\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a7e1c745dc23c18e836febd672416ed0c5d8d8ae\"\u003e\u003ccode\u003ea7e1c74\u003c/code\u003e\u003c/a\u003e Update docs/conf.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/c799b8167a13416833ad3b4f3298261a477e826f\"\u003e\u003ccode\u003ec799b81\u003c/code\u003e\u003c/a\u003e docs: fix dead links to kenreitz.org\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.32.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `urllib3` from 2.3.0 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/urllib3/urllib3/releases\"\u003eurllib3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.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\u003ch1\u003eFeatures\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eApplied PEP 639 by specifying the license fields in pyproject.toml. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3522\"\u003e#3522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdated exceptions to save and restore more properties during the pickle/serialization process. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3567\"\u003e#3567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003everify_flags\u003c/code\u003e option to \u003ccode\u003ecreate_urllib3_context\u003c/code\u003e with a default of \u003ccode\u003eVERIFY_X509_PARTIAL_CHAIN\u003c/code\u003e and \u003ccode\u003eVERIFY_X509_STRICT\u003c/code\u003e for Python 3.13+. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3571\"\u003e#3571\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eBugfixes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug with partial reads of streaming data in Emscripten. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3555\"\u003e#3555\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eMisc\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSwitched to uv for installing development dependecies. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3550\"\u003e#3550\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved the \u003ccode\u003emultiple.intoto.jsonl\u003c/code\u003e asset from GitHub releases. Attestation of release files since v2.3.0 can be found on PyPI. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3566\"\u003e#3566\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/urllib3/urllib3/blob/main/CHANGES.rst\"\u003eurllib3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.4.0 (2025-04-10)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eApplied PEP 639 by specifying the license fields in pyproject.toml. (\u003ccode\u003e[#3522](https://github.com/urllib3/urllib3/issues/3522) \u0026lt;https://github.com/urllib3/urllib3/issues/3522\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eUpdated exceptions to save and restore more properties during the pickle/serialization process. (\u003ccode\u003e[#3567](https://github.com/urllib3/urllib3/issues/3567) \u0026lt;https://github.com/urllib3/urllib3/issues/3567\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003everify_flags\u003c/code\u003e option to \u003ccode\u003ecreate_urllib3_context\u003c/code\u003e with a default of \u003ccode\u003eVERIFY_X509_PARTIAL_CHAIN\u003c/code\u003e and \u003ccode\u003eVERIFY_X509_STRICT\u003c/code\u003e for Python 3.13+. (\u003ccode\u003e[#3571](https://github.com/urllib3/urllib3/issues/3571) \u0026lt;https://github.com/urllib3/urllib3/issues/3571\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug with partial reads of streaming data in Emscripten. (\u003ccode\u003e[#3555](https://github.com/urllib3/urllib3/issues/3555) \u0026lt;https://github.com/urllib3/urllib3/issues/3555\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSwitched to uv for installing development dependecies. (\u003ccode\u003e[#3550](https://github.com/urllib3/urllib3/issues/3550) \u0026lt;https://github.com/urllib3/urllib3/issues/3550\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eRemoved the \u003ccode\u003emultiple.intoto.jsonl\u003c/code\u003e asset from GitHub releases. Attestation of release files since v2.3.0 can be found on PyPI. (\u003ccode\u003e[#3566](https://github.com/urllib3/urllib3/issues/3566) \u0026lt;https://github.com/urllib3/urllib3/issues/3566\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/a5ff7ac3bbb8659e2ec3ed41dd43889f06a7d7bc\"\u003e\u003ccode\u003ea5ff7ac\u003c/code\u003e\u003c/a\u003e Release 2.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/a135db29f72f828b0ef7314b856d19696a6f48ba\"\u003e\u003ccode\u003ea135db2\u003c/code\u003e\u003c/a\u003e Upgrade memray and coverage to fix macOS tests (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3589\"\u003e#3589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/8f40e71612505a9985b0a58ad793cd84ec97614a\"\u003e\u003ccode\u003e8f40e71\u003c/code\u003e\u003c/a\u003e Upgrade the publishing action to get correct licensing info on PyPI (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3585\"\u003e#3585\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/3ff4e49ddf889554cf295b4a2e1189d066b60c71\"\u003e\u003ccode\u003e3ff4e49\u003c/code\u003e\u003c/a\u003e Add a link to the 2024 annual report (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3586\"\u003e#3586\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/75709c1dbd6770618f061fd0b8a6950c7741f17b\"\u003e\u003ccode\u003e75709c1\u003c/code\u003e\u003c/a\u003e Set verify flags in \u003ccode\u003ecreate_urllib3_context\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3577\"\u003e#3577\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/5c8f82a2f1c1b7a8360f0c84b5a88f25df070811\"\u003e\u003ccode\u003e5c8f82a\u003c/code\u003e\u003c/a\u003e Bump astral-sh/setup-uv from 5.3.0 to 5.4.1 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3580\"\u003e#3580\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/42e90d894b30ef8b897708eb1cdfa24e83cf5067\"\u003e\u003ccode\u003e42e90d8\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.4.0 to 5.5.0 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3579\"\u003e#3579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/3e8f2db735dcaced6a3b777aa1966f40c018af7c\"\u003e\u003ccode\u003e3e8f2db\u003c/code\u003e\u003c/a\u003e Stop using Ubuntu 20.04 and 22.04 in CI (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3570\"\u003e#3570\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/e29db82a6df5f9a9acbb6997899f93bda79bb61e\"\u003e\u003ccode\u003ee29db82\u003c/code\u003e\u003c/a\u003e Update exceptions to have more of their attributes pickled (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3572\"\u003e#3572\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/f8a0c4360ad67aefd79317279ee90c72d5d18697\"\u003e\u003ccode\u003ef8a0c43\u003c/code\u003e\u003c/a\u003e Add PyPy 3.11 to CI\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/urllib3/urllib3/compare/2.3.0...2.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.6.10 to 7.9.1\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.9.1 — 2025-06-13\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe \u0026quot;no-ctracer\u0026quot; warning is not issued for Python pre-release versions.\nCoverage doesn't ship compiled wheels for those versions, so this was far too\nnoisy.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eOn Python 3.14+, the \u0026quot;sysmon\u0026quot; core is now the default if it's supported for\nyour configuration.  Plugins and dynamic contexts are still not supported\nwith it.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _changes_7-9-0:\u003c/p\u003e\n\u003ch2\u003eVersion 7.9.0 — 2025-06-11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a \u003ccode\u003e[run] core\u003c/code\u003e configuration setting to specify the measurement core,\nwhich was previously only available through the COVERAGE_CORE environment\nvariable. Finishes \u003ccode\u003eissue 1746\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed incorrect rendering of f-strings with doubled braces, closing \u003ccode\u003eissue 1980\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIf the C tracer core can't be imported, a warning (\u0026quot;no-ctracer\u0026quot;) is issued\nwith the reason.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe C tracer core extension module now conforms to \u003ccode\u003ePEP 489\u003c/code\u003e\u003cem\u003e, closing \u003ccode\u003eissue 1977\u003c/code\u003e\u003c/em\u003e.  Thanks, \u003ccode\u003eAdam Turner \u0026lt;pull 1978_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a \u0026quot;ValueError: min() arg is an empty sequence\u0026quot; error caused by strange\nempty modules, found by \u003ccode\u003eoss-fuzz\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1746: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1746\"\u003enedbat/coveragepy#1746\u003c/a\u003e\n.. _issue 1977: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1977\"\u003enedbat/coveragepy#1977\u003c/a\u003e\n.. _pull 1978: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/1978\"\u003enedbat/coveragepy#1978\u003c/a\u003e\n.. _issue 1980: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1980\"\u003enedbat/coveragepy#1980\u003c/a\u003e\n.. _PEP 489: \u003ca href=\"https://peps.python.org/pep-0489\"\u003ehttps://peps.python.org/pep-0489\u003c/a\u003e\n.. _oss-fuzz: \u003ca href=\"https://google.github.io/oss-fuzz/\"\u003ehttps://google.github.io/oss-fuzz/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-8-2:\u003c/p\u003e\n\u003ch2\u003eVersion 7.8.2 — 2025-05-23\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWheels are provided for Windows ARM64 on Python 3.11, 3.12, and 3.13.\nThanks, \u003ccode\u003eFinn Womack \u0026lt;pull 1972_\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1971: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/1971\"\u003enedbat/coveragepy#1971\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/nedbat/coveragepy/commit/4fa1b717978c2d9e40636a10363b618e152f4c4e\"\u003e\u003ccode\u003e4fa1b71\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.9.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/5cf757b42d1649ccbc74488471ab9270cb7d99f2\"\u003e\u003ccode\u003e5cf757b\u003c/code\u003e\u003c/a\u003e docs: prep for 7.9.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/bea6204982b75f6a20f5afbf3534bd3776e126dd\"\u003e\u003ccode\u003ebea6204\u003c/code\u003e\u003c/a\u003e fix: better defaulting of core\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/7795441563fb0afe9439a857a5e0df50336f73dd\"\u003e\u003ccode\u003e7795441\u003c/code\u003e\u003c/a\u003e fix: fewer warnings, default to sys.monitoring on 3.14+\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/18aa07456965c7d26e028aebaf825b96b7638d74\"\u003e\u003ccode\u003e18aa074\u003c/code\u003e\u003c/a\u003e fix: some custom builds don't have \u003cstrong\u003efile\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/8c5bf659f4b4412685a828c01870cfc9a23186ac\"\u003e\u003ccode\u003e8c5bf65\u003c/code\u003e\u003c/a\u003e chore: make upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/128c4f4e452f08e52fe1d6fbebb8392ae2dc7297\"\u003e\u003ccode\u003e128c4f4\u003c/code\u003e\u003c/a\u003e build: bump version to 7.9.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/452d86ffa16cd0c1b729c7d206f59bc1010aee94\"\u003e\u003ccode\u003e452d86f\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.9.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/a670927ae6d248f369d54fbe22d9546b6a25c25e\"\u003e\u003ccode\u003ea670927\u003c/code\u003e\u003c/a\u003e docs: prep for 7.9.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/3b0cb870f6abac8e4a7607094c467a7d766a44f4\"\u003e\u003ccode\u003e3b0cb87\u003c/code\u003e\u003c/a\u003e build: windows 3.14 is fixed\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nedbat/coveragepy/compare/7.6.10...7.9.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `exceptiongroup` from 1.2.2 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/agronholm/exceptiongroup/releases\"\u003eexceptiongroup's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003e**kwargs\u003c/code\u003e to function and method signatures as appropriate to match the signatures in the standard library\u003c/li\u003e\n\u003cli\u003eIn line with the stdlib typings in typeshed, updated \u003ccode\u003e(Base)ExceptionGroup\u003c/code\u003e generic types to define defaults for their generic arguments (defaulting to \u003ccode\u003eBaseExceptionGroup[BaseException]\u003c/code\u003e and \u003ccode\u003eExceptionGroup[Exception]\u003c/code\u003e) (PR by \u003ca href=\"https://github.com/mikenerone\"\u003e\u003ccode\u003e@​mikenerone\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eBaseExceptionGroup.__init__()\u003c/code\u003e to directly call \u003ccode\u003eBaseException.__init__()\u003c/code\u003e instead of the superclass \u003ccode\u003e__init__()\u003c/code\u003e in order to emulate the CPython behavior (broken or not) (PR by \u003ca href=\"https://github.com/cfbolz\"\u003e\u003ccode\u003e@​cfbolz\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged the \u003ccode\u003eexceptions\u003c/code\u003e attribute to always return the same tuple of exceptions, created from the original exceptions sequence passed to \u003ccode\u003eBaseExceptionGroup\u003c/code\u003e to match CPython behavior (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/143\"\u003e#143\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/agronholm/exceptiongroup/blob/main/CHANGES.rst\"\u003eexceptiongroup's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eVersion history\u003c/h1\u003e\n\u003cp\u003eThis library adheres to \u003ccode\u003eSemantic Versioning 2.0 \u0026lt;http://semver.org/\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e1.3.0\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003e**kwargs\u003c/code\u003e to function and method signatures as appropriate to match the\nsignatures in the standard library\u003c/li\u003e\n\u003cli\u003eIn line with the stdlib typings in typeshed, updated \u003ccode\u003e(Base)ExceptionGroup\u003c/code\u003e generic\ntypes to define defaults for their generic arguments (defaulting to\n\u003ccode\u003eBaseExceptionGroup[BaseException]\u003c/code\u003e and \u003ccode\u003eExceptionGroup[Exception]\u003c/code\u003e)\n(PR by \u003ca href=\"https://github.com/mikenerone\"\u003e\u003ccode\u003e@​mikenerone\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eBaseExceptionGroup.__init__()\u003c/code\u003e to directly call\n\u003ccode\u003eBaseException.__init__()\u003c/code\u003e instead of the superclass \u003ccode\u003e__init__()\u003c/code\u003e in order to\nemulate the CPython behavior (broken or not) (PR by \u003ca href=\"https://github.com/cfbolz\"\u003e\u003ccode\u003e@​cfbolz\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged the \u003ccode\u003eexceptions\u003c/code\u003e attribute to always return the same tuple of exceptions,\ncreated from the original exceptions sequence passed to \u003ccode\u003eBaseExceptionGroup\u003c/code\u003e to\nmatch CPython behavior\n(\u003ccode\u003e[#143](https://github.com/agronholm/exceptiongroup/issues/143) \u0026lt;https://github.com/agronholm/exceptiongroup/issues/143\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e1.2.2\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved an \u003ccode\u003eassert\u003c/code\u003e in \u003ccode\u003eexceptiongroup._formatting\u003c/code\u003e that caused compatibility\nissues with Sentry (\u003ccode\u003e[#123](https://github.com/agronholm/exceptiongroup/issues/123) \u0026lt;https://github.com/agronholm/exceptiongroup/issues/123\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e1.2.1\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated the copying of \u003ccode\u003e__notes__\u003c/code\u003e to match CPython behavior (PR by CF Bolz-Tereick)\u003c/li\u003e\n\u003cli\u003eCorrected the type annotation of the exception handler callback to accept a\n\u003ccode\u003eBaseExceptionGroup\u003c/code\u003e instead of \u003ccode\u003eBaseException\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFixed type errors on Python \u0026lt; 3.10 and the type annotation of \u003ccode\u003esuppress()\u003c/code\u003e\n(PR by John Litborn)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e1.2.0\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded special monkeypatching if \u003ccode\u003eApport \u0026lt;https://github.com/canonical/apport\u0026gt;\u003c/code\u003e_ has\noverridden \u003ccode\u003esys.excepthook\u003c/code\u003e so it will format exception groups correctly\n(PR by John Litborn)\u003c/li\u003e\n\u003cli\u003eAdded a backport of \u003ccode\u003econtextlib.suppress()\u003c/code\u003e from Python 3.12.1 which also handles\nsuppressing exceptions inside exception groups\u003c/li\u003e\n\u003cli\u003eFixed bare \u003ccode\u003eraise\u003c/code\u003e in a handler reraising the original naked exception rather than\nan exception group which is what is raised when you do a \u003ccode\u003eraise\u003c/code\u003e in an \u003ccode\u003eexcept*\u003c/code\u003e\nhandler\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e1.1.3\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ecatch()\u003c/code\u003e now raises a \u003ccode\u003eTypeError\u003c/code\u003e if passed an async exception handler instead of\njust giving a \u003ccode\u003eRuntimeWarning\u003c/code\u003e about the coroutine never being awaited. (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/66\"\u003e#66\u003c/a\u003e, PR by\nJohn Litborn)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/77fba8a871408ff2c48f536e5e73b1918239ba5f\"\u003e\u003ccode\u003e77fba8a\u003c/code\u003e\u003c/a\u003e Added the release version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/5e153aa379ac53af79cc7f5e287f77929cb4d0dc\"\u003e\u003ccode\u003e5e153aa\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Migrated test dependencies to dependency groups\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/5000bfea208ad59e3a20e2fb91a513ad559711b1\"\u003e\u003ccode\u003e5000bfe\u003c/code\u003e\u003c/a\u003e Migrated tox configuration to native TOML\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/427220d67a52585e98575103b090b5fdaf87a899\"\u003e\u003ccode\u003e427220d\u003c/code\u003e\u003c/a\u003e Updated pytest options\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/4ca264fa3605d52067c20b351a0d3b947fa1f363\"\u003e\u003ccode\u003e4ca264f\u003c/code\u003e\u003c/a\u003e Migrated test dependencies to dependency groups\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/163c3a8cb27f8a5325258b5a83e7cf8fc002c3b7\"\u003e\u003ccode\u003e163c3a8\u003c/code\u003e\u003c/a\u003e Marked test_exceptions_mutate_original_sequence as xfail on pypy3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/a1765740db2d55d1eb91d67a8fbbb355caf7881b\"\u003e\u003ccode\u003ea176574\u003c/code\u003e\u003c/a\u003e Always create the exceptions tuple at init and return it from the exceptions ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/550b79621cc35892413fa91903a1d6c7951d0449\"\u003e\u003ccode\u003e550b796\u003c/code\u003e\u003c/a\u003e Added BaseExceptionGroup.\u003cstrong\u003einit\u003c/strong\u003e, following CPython (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/142\"\u003e#142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/2a84dfd5599bca0c653143f0f4252d38afac9867\"\u003e\u003ccode\u003e2a84dfd\u003c/code\u003e\u003c/a\u003e Added typevar defaults to (Base)ExceptionGroup (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/147\"\u003e#147\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/fb9133b495fc82bc2907e8cfbdff6c6dc3087e2f\"\u003e\u003ccode\u003efb9133b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/145\"\u003e#145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/exceptiongroup/compare/1.2.2...1.3.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.16.1 to 3.18.0\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.18.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIndicate that locks are exclusive/write locks. by \u003ca href=\"https://github.com/bicarlsen\"\u003e\u003ccode\u003e@​bicarlsen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/394\"\u003etox-dev/filelock#394\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport fcntl check on Emscripten by \u003ca href=\"https://github.com/juntyr\"\u003e\u003ccode\u003e@​juntyr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/398\"\u003etox-dev/filelock#398\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/bicarlsen\"\u003e\u003ccode\u003e@​bicarlsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/394\"\u003etox-dev/filelock#394\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/juntyr\"\u003e\u003ccode\u003e@​juntyr\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/398\"\u003etox-dev/filelock#398\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.17.0...3.18.0\"\u003ehttps://github.com/tox-dev/filelock/compare/3.17.0...3.18.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDrop 3.8\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.16.1...3.17.0\"\u003ehttps://github.com/tox-dev/filelock/compare/3.16.1...3.17.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/129a1efb6a0e1c40ff7c0b094db1b888fcb46d93\"\u003e\u003ccode\u003e129a1ef\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/405\"\u003e#405\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/717d7e018c6e3c3cd00a0f35c775ebbbafda41cc\"\u003e\u003ccode\u003e717d7e0\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/403\"\u003e#403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/efba779022cf62956efe88ea3c65620098fbf75c\"\u003e\u003ccode\u003eefba779\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/401\"\u003e#401\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/82f5a2d6c260a43dc88b51121087bdfa21fb205f\"\u003e\u003ccode\u003e82f5a2d\u003c/code\u003e\u003c/a\u003e Support fcntl check on Emscripten (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/398\"\u003e#398\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/468ba431d1d40b494724f3269d3241a5d1ddd411\"\u003e\u003ccode\u003e468ba43\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/396\"\u003e#396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/0ac68266c62f3b7ae1bc5d4a35c88f1d3913b98d\"\u003e\u003ccode\u003e0ac6826\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/395\"\u003e#395\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/b5f98a66d0fb59e62894ad2b537deb877279adda\"\u003e\u003ccode\u003eb5f98a6\u003c/code\u003e\u003c/a\u003e Indicate that locks are exclusive/write locks. (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/394\"\u003e#394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/3c9b68049961d1b4aade1cc806e731f90b5d2c24\"\u003e\u003ccode\u003e3c9b680\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/393\"\u003e#393\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/2760759ac82f7e8583f708d9bf801c3a79ccd340\"\u003e\u003ccode\u003e2760759\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/18c9571afba87bb6329aef9c2c7798cbe8adfea5\"\u003e\u003ccode\u003e18c9571\u003c/code\u003e\u003c/a\u003e Bump pypa/gh-action-pypi-publish from 1.12.3 to 1.12.4 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/390\"\u003e#390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/py-filelock/compare/3.16.1...3.18.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `freezegun` from 1.5.1 to 1.5.2\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.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\u003c/blockquote\u003e\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/ba06fa43d18c24e6bd4b3bacb7edcb547e7b30ae\"\u003e\u003ccode\u003eba06fa4\u003c/code\u003e\u003c/a\u003e Increase version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/da2885db0c6bbef0d17569ddc9b0b0c7ef852f8c\"\u003e\u003ccode\u003eda2885d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/spulec/freezegun/issues/572\"\u003e#572\u003c/a\u003e from jayaddison/debian-bug-1106274/tests-datetime-tod...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/695aa15668c251c3180d0b943b62c7f2f73b4dbe\"\u003e\u003ccode\u003e695aa15\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into debian-bug-1106274/tests-datetime-today-tz-localiz...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/132ecdbe6e33f603b8d65e7160cdf8200e06391a\"\u003e\u003ccode\u003e132ecdb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/spulec/freezegun/issues/573\"\u003e#573\u003c/a\u003e from spulec/admin/indicate-py-13-compat\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/f9235ae8a00941f2d8a370717af2641a7bf268e9\"\u003e\u003ccode\u003ef9235ae\u003c/code\u003e\u003c/a\u003e Mark support for Python 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/9072d08e3ee22e98e771d8598d67373019a26fed\"\u003e\u003ccode\u003e9072d08\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/spulec/freezegun/issues/544\"\u003e#544\u003c/a\u003e from spulec/remove-py-37-support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/74a69142ddfa3ef6ca060a921938c5cda6da5d16\"\u003e\u003ccode\u003e74a6914\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/spulec/freezegun/issues/565\"\u003e#565\u003c/a\u003e from joethesaint/improve-documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/1343509cd9e53a1777fec5ccbdd7bf85a809f051\"\u003e\u003ccode\u003e1343509\u003c/code\u003e\u003c/a\u003e README: update example code for consistency with tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/9468f708256344321ff8e0fc1c783576e7da44ac\"\u003e\u003ccode\u003e9468f70\u003c/code\u003e\u003c/a\u003e Tests: fixup: replace \u003ccode\u003edatetime.today\u003c/code\u003e method calls with \u003ccode\u003edatetime.date\u003c/code\u003e clas...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/9e4012ad4565c0cf2505410134f6a2ca745a2c3d\"\u003e\u003ccode\u003e9e4012a\u003c/code\u003e\u003c/a\u003e Tests: restore some \u003ccode\u003edatetime.date\u003c/code\u003e-based comparisons\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/spulec/freezegun/compare/1.5.1...1.5.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `identify` from 2.6.5 to 2.6.12\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/51e358dd52e70925011f81db738d441617e3e0f4\"\u003e\u003ccode\u003e51e358d\u003c/code\u003e\u003c/a\u003e v2.6.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/00310d304818e0727f3894fd55ff0f4e834e1db8\"\u003e\u003ccode\u003e00310d3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/identify/issues/519\"\u003e#519\u003c/a\u003e from energyworldnet/feature/msbuild\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/a604a3a4a4ec822f5082a21664fdf391f512d961\"\u003e\u003ccode\u003ea604a3a\u003c/code\u003e\u003c/a\u003e Drop ambiguous .proj extension\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/bdd2643326d8acf348e35ca76ddc233da3f0380c\"\u003e\u003ccode\u003ebdd2643\u003c/code\u003e\u003c/a\u003e v2.6.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/d084242645bcec76d344c37faafd2f8c55081cd2\"\u003e\u003ccode\u003ed084242\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'energyworldnet/feature/xslt'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/f7947091c937ef9a2e1ab1e7be6033acafe4c168\"\u003e\u003ccode\u003ef794709\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/identify/issues/518\"\u003e#518\u003c/a\u003e from pre-commit/mxr-patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/a8cce72fd03e9e1d62c7b749b33903361ee42f54\"\u003e\u003ccode\u003ea8cce72\u003c/code\u003e\u003c/a\u003e Identify XSLT files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/4cf2cc04a94df881eedfede07932a4d95f346f37\"\u003e\u003ccode\u003e4cf2cc0\u003c/code\u003e\u003c/a\u003e Identify common MSBuild files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/4e55b743565fe30a3f7569e02ddfe71abf5144fc\"\u003e\u003ccode\u003e4e55b74\u003c/code\u003e\u003c/a\u003e Add support for \u003ccode\u003e.sqlfluff\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/e200468dd1b921e75a300545bd1e28abe1d5985c\"\u003e\u003ccode\u003ee200468\u003c/code\u003e\u003c/a\u003e v2.6.10\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/identify/compare/v2.6.5...v2.6.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `iniconfig` from 2.0.0 to 2.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/iniconfig/releases\"\u003einiconfig's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.1.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/26\"\u003e#26\u003c/a\u003e - list individuals in license file by \u003ca href=\"https://github.com/RonnyPfannschmidt\"\u003e\u003ccode\u003e@​RonnyPfannschmidt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/52\"\u003epytest-dev/iniconfig#52\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRun tests in CI by \u003ca href=\"https://github.com/nicoddemus\"\u003e\u003ccode\u003e@​nicoddemus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/53\"\u003epytest-dev/iniconfig#53\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003epypa/gh-action-pypi-publish@release/v1\u003c/code\u003e @ GHA by \u003ca href=\"https://github.com/webknjaz\"\u003e\u003ccode\u003e@​webknjaz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/54\"\u003epytest-dev/iniconfig#54\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12-3.13 and drop EOL 3.7 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/56\"\u003epytest-dev/iniconfig#56\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/nicoddemus\"\u003e\u003ccode\u003e@​nicoddemus\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/53\"\u003epytest-dev/iniconfig#53\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/webknjaz\"\u003e\u003ccode\u003e@​webknjaz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/54\"\u003epytest-dev/iniconfig#54\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pytest-dev/iniconfig/compare/v2.0.0...v2.1.0\"\u003ehttps://github.com/pytest-dev/iniconfig/compare/v2.0.0...v2.1.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/pytest-dev/iniconfig/blob/main/CHANGELOG\"\u003einiconfig's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.1.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix artifact building - pin minimal version of hatch\u003c/li\u003e\n\u003cli\u003edrop eol python 3.8\u003c/li\u003e\n\u003cli\u003eadd python 3.12 and 3.13\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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/iniconfig/commit/34793a6417e35e511d0c17ffdd8a02ade0f9568e\"\u003e\u003ccode\u003e34793a6\u003c/code\u003e\u003c/a\u003e pre-commit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/136435d0a4345bb048dca98e7c2f4e938d74521b\"\u003e\u003ccode\u003e136435d\u003c/code\u003e\u003c/a\u003e update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/0bb99ad0f7a6b21d5eb24214a260132317a11e43\"\u003e\u003ccode\u003e0bb99ad\u003c/code\u003e\u003c/a\u003e fix \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/62\"\u003e#62\u003c/a\u003e: require a minimal hatch version with correct metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/16793eaddac67de0b8d621ae4e42e05b927e8d67\"\u003e\u003ccode\u003e16793ea\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/56\"\u003e#56\u003c/a\u003e from hugovk/add-3.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/3dc2b2d6bf03e4b7cc92949a8ef0983fdd7ee442\"\u003e\u003ccode\u003e3dc2b2d\u003c/code\u003e\u003c/a\u003e Add support for Python 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/2eb8abfd9d3843100d7f138efe5bcd989a885024\"\u003e\u003ccode\u003e2eb8abf\u003c/code\u003e\u003c/a\u003e Bump GitHub Actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/8c4bb5bf57dde613c8cdcf0e02a09b2fff630907\"\u003e\u003ccode\u003e8c4bb5b\u003c/code\u003e\u003c/a\u003e Set python-version for pre-commit to remove CI warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/58b22b2d672564ff1925df51f4a8e07486765ed2\"\u003e\u003ccode\u003e58b22b2\u003c/code\u003e\u003c/a\u003e Drop support for EOL Python 3.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/4a53042252a109bcdd64422058de91c5dffff763\"\u003e\u003ccode\u003e4a53042\u003c/code\u003e\u003c/a\u003e Add support for Python 3.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/9cae43103df70bac6fde7b9f35ad11a9f1be0cb4\"\u003e\u003ccode\u003e9cae431\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/54\"\u003e#54\u003c/a\u003e from webknjaz/patch-1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/iniconfig/compare/v2.0.0...v2.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `junit-xml` from 1.8 to 1.9\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/kyrus/python-junit-xml/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mutmut` from 3.2.2 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/boxed/mutmut/blob/main/HISTORY.rst\"\u003emutmut's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e3.3.0\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Python 3.13 compatibility!\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eNew argument \u003ccode\u003e--show-killed\u003c/code\u003e for \u003ccode\u003emutmut browse\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix to avoid accidentally importing the un-mutated original code\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eHandle segfault for mutant subprocesses\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded mutations for string literals\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded mutations for common string methods\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFaster mutant generation via subprocesses\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eself\u003c/code\u003e parameter for mutated class methods\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix trampoline generation for function calls with 'orig' or 'mutants' as argument names.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCopy full source directory before creating mutants\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved error message when forced fail test fails\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed issue with spaces in the python executable path\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDo not mutate \u003ccode\u003e__new__\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAnnotate mutant dicts (and fixes compatibility with Pydantic)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eReplaced parso with LibCST\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e3.2.3\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eCrash with error message on invalid imports for \u003ccode\u003esrc\u003c/code\u003e module\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAutodetect simpler project configurations with \u003ccode\u003etest_*.py\u003c/code\u003e in the dir directly\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eHandle filenames (as opposed to dirnames) in paths_to_mutate\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAlso copy \u003ccode\u003esetup.cfg\u003c/code\u003e and \u003ccode\u003epyproject.toml\u003c/code\u003e by default\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eHandle single line \u003ccode\u003epaths_to_mutate\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/boxed/mutmut/commit/b124c6ad46b0a9a048b5e47c8b7f93d33a9f2e6a\"\u003e\u003ccode\u003eb124c6a\u003c/code\u003e\u003c/a\u003e Release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/e1110fff43b8864802a07cadf5b54b73ab789aad\"\u003e\u003ccode\u003ee1110ff\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/boxed/mutmut/issues/386\"\u003e#386\u003c/a\u003e from CHB-0r1s/main\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/e3736b152c0a40881d3b57319457a755e30c7651\"\u003e\u003ccode\u003ee3736b1\u003c/code\u003e\u003c/a\u003e feat(tests): Add nested attribute access test cases for 'a.b.lower()' -\u0026gt; 'a.b...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/c481bf17e2b0bca22161327c98f21d57e18717bf\"\u003e\u003ccode\u003ec481bf1\u003c/code\u003e\u003c/a\u003e fix: some libcst best practice\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/092912c3332c4d9139453cb6f23b76fae1ef869c\"\u003e\u003ccode\u003e092912c\u003c/code\u003e\u003c/a\u003e fix(tests): This test included string methods functional as upper(), so in si...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/d65d70c1d2b4c4bd0b849e23afcb71fcdc5939be\"\u003e\u003ccode\u003ed65d70c\u003c/code\u003e\u003c/a\u003e feat(str_call_mut): add str methods call mutations and tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/b7b4f90ca5969442b7a56abd4d8c7e62708a5cc6\"\u003e\u003ccode\u003eb7b4f90\u003c/code\u003e\u003c/a\u003e Add .upper() .lower() and .capitalize() as mutations (\u003ca href=\"https://redirect.github.com/boxed/mutmut/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/b41c2b3eef47a9d9b748667e5641d2e69424988f\"\u003e\u003ccode\u003eb41c2b3\u003c/code\u003e\u003c/a\u003e Set process start_method to fork for MacOS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/b42824d724d62421b804ddcb13a2ffc100f7337f\"\u003e\u003ccode\u003eb42824d\u003c/code\u003e\u003c/a\u003e .\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/a732ffb4ab81f54482ac750a0480f5998e4e8490\"\u003e\u003ccode\u003ea732ffb\u003c/code\u003e\u003c/a\u003e Forgot to update Stats\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boxed/mutmut/compare/3.2.2...3.3.0\"\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 `platformdirs` from 4.3.6 to 4.3.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/platformdirs/releases\"\u003eplatformdirs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.3.8\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd missing examples and fix order of examples in README by \u003ca href=\"https://github.com/gene1wood\"\u003e\u003ccode\u003e@​gene1wood\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/355\"\u003etox-dev/platformdirs#355\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gene1wood\"\u003e\u003ccode\u003e@​gene1wood\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/355\"\u003etox-dev/platformdirs#355\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.3.7...4.3.8\"\u003ehttps://github.com/tox-dev/platformdirs/compare/4.3.7...4.3.8\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.3.7\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChunk dependabot updates into a single PR by \u003ca href=\"https://github.com/ofek\"\u003e\u003ccode\u003e@​ofek\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/311\"\u003etox-dev/platformdirs#311\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 3.8 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/330\"\u003etox-dev/platformdirs#330\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.3.6...4.3.7\"\u003ehttps://github.com/tox-dev/platformdirs/compare/4.3.6...4.3.7\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/22089f1e1ff477037cd7b3e03ad38ae2bf251031\"\u003e\u003ccode\u003e22089f1\u003c/code\u003e\u003c/a\u003e Add missing examples and fix order of examples in README (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/29398b1ef0d602929102b5a3cc4aca25ff954f2a\"\u003e\u003ccode\u003e29398b1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/354\"\u003e#354\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/70114b05f1144a451247a465b65caa34d9a88375\"\u003e\u003ccode\u003e70114b0\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/353\"\u003e#353\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/48916117e8d756a51468d6ead75aa645a6a378c6\"\u003e\u003ccode\u003e4891611\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/351\"\u003e#351\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/707be6f8dd2784d092f6de6530f6c0d64faee2f3\"\u003e\u003ccode\u003e707be6f\u003c/code\u003e\u003c/a\u003e Bump astral-sh/setup-uv from 5 to 6 in the all group (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/352\"\u003e#352\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/5519a4fa93059949cf1078fac01cf5dce12c3b50\"\u003e\u003ccode\u003e5519a4f\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/349\"\u003e#349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/063...\n\n_Description has been truncated_","html_url":"https://github.com/github/annotated-logger/pull/64","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/github%2Fannotated-logger/issues/64","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/64/packages"},{"uuid":"2558684262","node_id":"PR_kwDOMt9I9c6Ygmxm","number":61,"state":"open","title":"[pip] (deps): Bump the dev-dependencies group across 1 directory with 29 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-06-01T22:01:09.000Z","updated_at":"2025-06-01T22:01:10.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"[pip] (deps): Bump","group_name":"dev-dependencies","update_count":29,"packages":[{"name":"python-json-logger","old_version":"3.2.1","new_version":"3.3.0","repository_url":"https://github.com/nhairs/python-json-logger"},{"name":"certifi","old_version":"2024.12.14","new_version":"2025.4.26","repository_url":"https://github.com/certifi/python-certifi"},{"name":"charset-normalizer","old_version":"3.4.1","new_version":"3.4.2","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"makefun","old_version":"1.15.6","new_version":"1.16.0","repository_url":"https://github.com/smarie/python-makefun"},{"name":"pychoir","old_version":"0.0.27","new_version":"0.0.29","repository_url":"https://github.com/kajaste/pychoir"},{"name":"urllib3","old_version":"2.3.0","new_version":"2.4.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"coverage","old_version":"7.6.10","new_version":"7.8.2","repository_url":"https://github.com/nedbat/coveragepy"},{"name":"exceptiongroup","old_version":"1.2.2","new_version":"1.3.0","repository_url":"https://github.com/agronholm/exceptiongroup"},{"name":"filelock","old_version":"3.16.1","new_version":"3.18.0","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"freezegun","old_version":"1.5.1","new_version":"1.5.2","repository_url":"https://github.com/spulec/freezegun"},{"name":"identify","old_version":"2.6.5","new_version":"2.6.12","repository_url":"https://github.com/pre-commit/identify"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.1.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"junit-xml","old_version":"1.8","new_version":"1.9","repository_url":"https://github.com/kyrus/python-junit-xml"},{"name":"mutmut","old_version":"3.2.2","new_version":"3.3.0","repository_url":"https://github.com/boxed/mutmut"},{"name":"packaging","old_version":"24.2","new_version":"25.0","repository_url":"https://github.com/pypa/packaging"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.3.8","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"pre-commit","old_version":"4.0.1","new_version":"4.2.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pyright","old_version":"1.1.391","new_version":"1.1.401","repository_url":"https://github.com/RobertCraigie/pyright-python"},{"name":"pytest","old_version":"8.3.4","new_version":"8.3.5","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-cov","old_version":"6.0.0","new_version":"6.1.1","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pytest-github-actions-annotate-failures","old_version":"0.2.0","new_version":"0.3.0","repository_url":"https://github.com/pytest-dev/pytest-github-actions-annotate-failures"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.14.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"rich","old_version":"13.9.4","new_version":"14.0.0","repository_url":"https://github.com/Textualize/rich"},{"name":"ruff","old_version":"0.8.6","new_version":"0.11.12","repository_url":"https://github.com/astral-sh/ruff"},{"name":"setproctitle","old_version":"1.3.4","new_version":"1.3.6","repository_url":"https://github.com/dvarrazzo/py-setproctitle"},{"name":"textual","old_version":"1.0.0","new_version":"3.3.0","repository_url":"https://github.com/Textualize/textual"},{"name":"typing-extensions","old_version":"4.12.2","new_version":"4.13.2","repository_url":"https://github.com/python/typing_extensions"},{"name":"virtualenv","old_version":"20.28.1","new_version":"20.31.2","repository_url":"https://github.com/pypa/virtualenv"}],"path":null,"ecosystem":"pip"},"body":"Bumps the dev-dependencies group with 29 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `3.2.1` | `3.3.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2024.12.14` | `2025.4.26` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.1` | `3.4.2` |\n| [makefun](https://github.com/smarie/python-makefun) | `1.15.6` | `1.16.0` |\n| [pychoir](https://github.com/kajaste/pychoir) | `0.0.27` | `0.0.29` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.3.0` | `2.4.0` |\n| [coverage](https://github.com/nedbat/coveragepy) | `7.6.10` | `7.8.2` |\n| [exceptiongroup](https://github.com/agronholm/exceptiongroup) | `1.2.2` | `1.3.0` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.18.0` |\n| [freezegun](https://github.com/spulec/freezegun) | `1.5.1` | `1.5.2` |\n| [identify](https://github.com/pre-commit/identify) | `2.6.5` | `2.6.12` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.1.0` |\n| [junit-xml](https://github.com/kyrus/python-junit-xml) | `1.8` | `1.9` |\n| [mutmut](https://github.com/boxed/mutmut) | `3.2.2` | `3.3.0` |\n| [packaging](https://github.com/pypa/packaging) | `24.2` | `25.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.3.8` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.0.1` | `4.2.0` |\n| [pyright](https://github.com/RobertCraigie/pyright-python) | `1.1.391` | `1.1.401` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.4` | `8.3.5` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `6.0.0` | `6.1.1` |\n| [pytest-github-actions-annotate-failures](https://github.com/pytest-dev/pytest-github-actions-annotate-failures) | `0.2.0` | `0.3.0` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.14.1` |\n| [rich](https://github.com/Textualize/rich) | `13.9.4` | `14.0.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.8.6` | `0.11.12` |\n| [setproctitle](https://github.com/dvarrazzo/py-setproctitle) | `1.3.4` | `1.3.6` |\n| [textual](https://github.com/Textualize/textual) | `1.0.0` | `3.3.0` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.12.2` | `4.13.2` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `20.28.1` | `20.31.2` |\n\n\nUpdates `python-json-logger` from 3.2.1 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nhairs/python-json-logger/releases\"\u003epython-json-logger's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v3.2.1...v3.3.0\"\u003e3.3.0\u003c/a\u003e - 2025-03-06\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eexc_info_as_array\u003c/code\u003e and \u003ccode\u003estack_info_as_array\u003c/code\u003e options are added to \u003ccode\u003epythonjsonlogger.core.BaseJsonFormatter\u003c/code\u003e allowing both to be encoded as list of lines instead of a single multi-line string. \u003ca href=\"https://redirect.github.com/nhairs/python-json-logger/issues/35\"\u003e#35\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003emsgspec-python313-pre\u003c/code\u003e from \u003ccode\u003edev\u003c/code\u003e dependencies preventing potential RCE. Details: \u003ca href=\"https://github.com/nhairs/python-json-logger/security/advisories/GHSA-wmxh-pxcx-9w24#advisory-comment-121307\"\u003eGHSA-wmxh-pxcx-9w24\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks \u003ca href=\"https://github.com/1hakusai1\"\u003e\u003ccode\u003e@​1hakusai1\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/omnigodz\"\u003e\u003ccode\u003e@​omnigodz\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/nhairs/python-json-logger/blob/main/docs/changelog.md\"\u003epython-json-logger's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v3.2.1...v3.3.0\"\u003e3.3.0\u003c/a\u003e - 2025-03-06\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eexc_info_as_array\u003c/code\u003e and \u003ccode\u003estack_info_as_array\u003c/code\u003e options are added to \u003ccode\u003epythonjsonlogger.core.BaseJsonFormatter\u003c/code\u003e allowing both to be encoded as list of lines instead of a single multi-line string. \u003ca href=\"https://redirect.github.com/nhairs/python-json-logger/issues/35\"\u003e#35\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003emsgspec-python313-pre\u003c/code\u003e from \u003ccode\u003edev\u003c/code\u003e dependencies preventing potential RCE. Details: \u003ca href=\"https://github.com/nhairs/python-json-logger/security/advisories/GHSA-wmxh-pxcx-9w24#advisory-comment-121307\"\u003eGHSA-wmxh-pxcx-9w24\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks \u003ca href=\"https://github.com/1hakusai1\"\u003e\u003ccode\u003e@​1hakusai1\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/omnigodz\"\u003e\u003ccode\u003e@​omnigodz\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/9e6cb679dfb56cb82d9a8cc91f956efd72427055\"\u003e\u003ccode\u003e9e6cb67\u003c/code\u003e\u003c/a\u003e Release 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/db04a0f9066cc331f8d6177f828fe073c7b2a4cc\"\u003e\u003ccode\u003edb04a0f\u003c/code\u003e\u003c/a\u003e Add options to encode stack information into an array (\u003ca href=\"https://redirect.github.com/nhairs/python-json-logger/issues/39\"\u003e#39\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/0092ea0be1cd28e3c1da51eaa084c503bb3710b7\"\u003e\u003ccode\u003e0092ea0\u003c/code\u003e\u003c/a\u003e Move to uv (\u003ca href=\"https://redirect.github.com/nhairs/python-json-logger/issues/40\"\u003e#40\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/1ce81a3614d8c77389a9c048d341593e2a7467e7\"\u003e\u003ccode\u003e1ce81a3\u003c/code\u003e\u003c/a\u003e [tests] Update tests for msgspec 0.19.0 (\u003ca href=\"https://redirect.github.com/nhairs/python-json-logger/issues/41\"\u003e#41\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v3.2.1...v3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2024.12.14 to 2025.4.26\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/275c9eb55733a464589c15fb4566fddd4598e5b2\"\u003e\u003ccode\u003e275c9eb\u003c/code\u003e\u003c/a\u003e 2025.04.26 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/347\"\u003e#347\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/37883310b51e56570919cdc2d44becc1c6940559\"\u003e\u003ccode\u003e3788331\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.4.0 to 5.5.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/346\"\u003e#346\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/9d1f1b782000baedf57026de5b79e193bcb7ef7b\"\u003e\u003ccode\u003e9d1f1b7\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4.1.9 to 4.2.1 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/344\"\u003e#344\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/96b97a5afe26bc1adef98cb0bfe68e34948a73b6\"\u003e\u003ccode\u003e96b97a5\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 4.6.1 to 4.6.2 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/343\"\u003e#343\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/c054ed3ac3d3505efc929b71cfd87a257bbdb6b3\"\u003e\u003ccode\u003ec054ed3\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 7.0.7 to 7.0.8 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/342\"\u003e#342\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/44547fc77121b12bb276b44b3b2b49cfcbeac06f\"\u003e\u003ccode\u003e44547fc\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4.1.8 to 4.1.9 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/341\"\u003e#341\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/5ea51247afecf1bf4ebfa8f2db3082e89a8bfaed\"\u003e\u003ccode\u003e5ea5124\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 4.6.0 to 4.6.1 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/340\"\u003e#340\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/2f142b7ae0b2d13fee4ba4b9fbd73a9cd5069060\"\u003e\u003ccode\u003e2f142b7\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 7.0.6 to 7.0.7 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/339\"\u003e#339\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/80d2ebdc77d2d005f408f789fe2fb1fe5f4e0265\"\u003e\u003ccode\u003e80d2ebd\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.3.0 to 5.4.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/337\"\u003e#337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/088f93122ea7c91cfdaeea7fa76ab2f850b8064d\"\u003e\u003ccode\u003e088f931\u003c/code\u003e\u003c/a\u003e 2025.01.31 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/336\"\u003e#336\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2024.12.14...2025.04.26\"\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.1 to 3.4.2\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.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.9\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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/6422af1d50f1f46624deab585424e1ac4d08ba94\"\u003e\u003ccode\u003e6422af1\u003c/code\u003e\u003c/a\u003e :pencil: update release date\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/0e60ec18eb00bfe312dde86739929165839b633c\"\u003e\u003ccode\u003e0e60ec1\u003c/code\u003e\u003c/a\u003e :bookmark: Release 3.4.2 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/614\"\u003e#614\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f6630ce3b7fd34f234759a0c7a5ca413640e8ffb\"\u003e\u003ccode\u003ef6630ce\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump pypa/cibuildwheel from 2.23.2 to 2.23.3 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/617\"\u003e#617\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/677c99953f1a728de9f88d8659abff1246a80ade\"\u003e\u003ccode\u003e677c999\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump actions/download-artifact from 4.2.1 to 4.3.0 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/618\"\u003e#618\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/960ab1e676b7ef73c8c4f36c387b5a0da21e01c0\"\u003e\u003ccode\u003e960ab1e\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump actions/setup-python from 5.5.0 to 5.6.0 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/619\"\u003e#619\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/6eb632521c9b3f92df2cd944c7c524c205abfffc\"\u003e\u003ccode\u003e6eb6325\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump github/codeql-action from 3.28.10 to 3.28.16 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/620\"\u003e#620\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/c99c0f2c33ce54e41fefcae1c4fb96fa901d5cd4\"\u003e\u003ccode\u003ec99c0f2\u003c/code\u003e\u003c/a\u003e :arrow_up: Update coverage requirement from \u0026lt;7.7,\u0026gt;=7.2.7 to \u0026gt;=7.2.7,\u0026lt;7.9 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/606\"\u003e#606\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/270f28e474db75f2a5085d6da732a90c2ac338f4\"\u003e\u003ccode\u003e270f28e\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump actions/setup-python from 5.4.0 to 5.5.0 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/607\"\u003e#607\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/d4d89a092d262a37ce427ee39ba5091ffd188f0b\"\u003e\u003ccode\u003ed4d89a0\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump pypa/cibuildwheel from 2.22.0 to 2.23.2 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/608\"\u003e#608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/905fcf5cbe93e8b59c12103217434bdbc703d105\"\u003e\u003ccode\u003e905fcf5\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump slsa-framework/slsa-github-generator from 2.0.0 to 2.1.0 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/609\"\u003e#609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.1...3.4.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `makefun` from 1.15.6 to 1.16.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/smarie/python-makefun/blob/main/docs/changelog.md\"\u003emakefun's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e1.16.0 - Support for 3.14, dropped support for \u0026lt; 3.9\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved official support for python versions \u003ccode\u003e\u0026lt;3.9\u003c/code\u003e. These versions will not run in CI anymore.\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eRuntimeError\u003c/code\u003e in tests when running on python 3.14. Added python 3.14 to CI. Fixes\n\u003ca href=\"https://redirect.github.com/smarie/python-makefun/issues/112\"\u003e#112\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/smarie/python-makefun/commit/197b14827c1b7830c0288477c007e1f1592f52ad\"\u003e\u003ccode\u003e197b148\u003c/code\u003e\u003c/a\u003e Changelog for tag, ready to release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/321a39c9a8be1497ba7dfbb9c7c16a9442ae25a6\"\u003e\u003ccode\u003e321a39c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/smarie/python-makefun/issues/118\"\u003e#118\u003c/a\u003e from smarie/feature/112_support_py314\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/39f061e17a7d7472e33cec76d162381ae82b49e3\"\u003e\u003ccode\u003e39f061e\u003c/code\u003e\u003c/a\u003e With latest versions of all actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/4771aaf910459dfabb12109cf4ae37cd089fd9d6\"\u003e\u003ccode\u003e4771aaf\u003c/code\u003e\u003c/a\u003e Changed the fix to leverage pytest-asyncio, now that we do not support python...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/498ed69f5fa22baa5300b354d419fd45be55cf6e\"\u003e\u003ccode\u003e498ed69\u003c/code\u003e\u003c/a\u003e Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/87eb2ebefa88d212e4ae75f28fc0ffc2fb9194c6\"\u003e\u003ccode\u003e87eb2eb\u003c/code\u003e\u003c/a\u003e Fixed \u003ccode\u003eRuntimeError\u003c/code\u003e in tests when running on pythn 3.14. Added python 3.14 t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/4573c65b6b8405b6194361805a44ba8d9d08c41d\"\u003e\u003ccode\u003e4573c65\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/smarie/python-makefun/issues/117\"\u003e#117\u003c/a\u003e from smarie/chore/116_gh_pages_workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/db582747d0b89ea35927176910205f3f68a429d4\"\u003e\u003ccode\u003edb58274\u003c/code\u003e\u003c/a\u003e Added gh pages workflow. Fixed \u003ca href=\"https://redirect.github.com/smarie/python-makefun/issues/116\"\u003e#116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/c8990e6a660082b42f8314f96bf7369a0f6c2463\"\u003e\u003ccode\u003ec8990e6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/smarie/python-makefun/issues/114\"\u003e#114\u003c/a\u003e from smarie/feature/py35_in_ci\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/3b1e628e9e7ecf05ea9bc6a9fb73c45563a3c24a\"\u003e\u003ccode\u003e3b1e628\u003c/code\u003e\u003c/a\u003e Removed 3.14 for now\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/smarie/python-makefun/compare/1.15.6...1.16.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pychoir` from 0.0.27 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/kajaste/pychoir/releases\"\u003epychoir's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eTwenty-ninth release\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch pipenv \u0026amp; setuptools to uv by \u003ca href=\"https://github.com/kajaste\"\u003e\u003ccode\u003e@​kajaste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kajaste/pychoir/pull/97\"\u003ekajaste/pychoir#97\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/kajaste/pychoir/compare/v0.0.28...v0.0.29\"\u003ehttps://github.com/kajaste/pychoir/compare/v0.0.28...v0.0.29\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eTwenty-eighth release\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate dev deps by \u003ca href=\"https://github.com/kajaste\"\u003e\u003ccode\u003e@​kajaste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kajaste/pychoir/pull/94\"\u003ekajaste/pychoir#94\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump dev deps by \u003ca href=\"https://github.com/kajaste\"\u003e\u003ccode\u003e@​kajaste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kajaste/pychoir/pull/95\"\u003ekajaste/pychoir#95\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs \u0026amp; Makefile update by \u003ca href=\"https://github.com/kajaste\"\u003e\u003ccode\u003e@​kajaste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kajaste/pychoir/pull/96\"\u003ekajaste/pychoir#96\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/kajaste/pychoir/compare/v0.0.27...v0.0.28\"\u003ehttps://github.com/kajaste/pychoir/compare/v0.0.27...v0.0.28\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/kajaste/pychoir/commit/bf2f254bcadf03026867a6442523549f1abb16d3\"\u003e\u003ccode\u003ebf2f254\u003c/code\u003e\u003c/a\u003e Switch pipenv \u0026amp; setuptools to uv\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kajaste/pychoir/commit/c1d251d480a47f8bc29e89765c19b00b594442b2\"\u003e\u003ccode\u003ec1d251d\u003c/code\u003e\u003c/a\u003e Docs \u0026amp; Makefile update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kajaste/pychoir/commit/f6181a037d2e791bbf9306b4210a9b4934fc1bbf\"\u003e\u003ccode\u003ef6181a0\u003c/code\u003e\u003c/a\u003e Drop 3.7, add 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kajaste/pychoir/commit/f94fdad20f981f344adbdc07b9aa1cb00795b671\"\u003e\u003ccode\u003ef94fdad\u003c/code\u003e\u003c/a\u003e Bump dev deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kajaste/pychoir/commit/5a2ebd7ca625779b7beaab71d50631f9529f21eb\"\u003e\u003ccode\u003e5a2ebd7\u003c/code\u003e\u003c/a\u003e Update dev deps\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/kajaste/pychoir/compare/v0.0.27...v0.0.29\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `urllib3` from 2.3.0 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/urllib3/urllib3/releases\"\u003eurllib3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.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\u003ch1\u003eFeatures\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eApplied PEP 639 by specifying the license fields in pyproject.toml. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3522\"\u003e#3522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdated exceptions to save and restore more properties during the pickle/serialization process. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3567\"\u003e#3567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003everify_flags\u003c/code\u003e option to \u003ccode\u003ecreate_urllib3_context\u003c/code\u003e with a default of \u003ccode\u003eVERIFY_X509_PARTIAL_CHAIN\u003c/code\u003e and \u003ccode\u003eVERIFY_X509_STRICT\u003c/code\u003e for Python 3.13+. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3571\"\u003e#3571\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eBugfixes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug with partial reads of streaming data in Emscripten. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3555\"\u003e#3555\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eMisc\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSwitched to uv for installing development dependecies. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3550\"\u003e#3550\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved the \u003ccode\u003emultiple.intoto.jsonl\u003c/code\u003e asset from GitHub releases. Attestation of release files since v2.3.0 can be found on PyPI. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3566\"\u003e#3566\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/urllib3/urllib3/blob/main/CHANGES.rst\"\u003eurllib3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.4.0 (2025-04-10)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eApplied PEP 639 by specifying the license fields in pyproject.toml. (\u003ccode\u003e[#3522](https://github.com/urllib3/urllib3/issues/3522) \u0026lt;https://github.com/urllib3/urllib3/issues/3522\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eUpdated exceptions to save and restore more properties during the pickle/serialization process. (\u003ccode\u003e[#3567](https://github.com/urllib3/urllib3/issues/3567) \u0026lt;https://github.com/urllib3/urllib3/issues/3567\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003everify_flags\u003c/code\u003e option to \u003ccode\u003ecreate_urllib3_context\u003c/code\u003e with a default of \u003ccode\u003eVERIFY_X509_PARTIAL_CHAIN\u003c/code\u003e and \u003ccode\u003eVERIFY_X509_STRICT\u003c/code\u003e for Python 3.13+. (\u003ccode\u003e[#3571](https://github.com/urllib3/urllib3/issues/3571) \u0026lt;https://github.com/urllib3/urllib3/issues/3571\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug with partial reads of streaming data in Emscripten. (\u003ccode\u003e[#3555](https://github.com/urllib3/urllib3/issues/3555) \u0026lt;https://github.com/urllib3/urllib3/issues/3555\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSwitched to uv for installing development dependecies. (\u003ccode\u003e[#3550](https://github.com/urllib3/urllib3/issues/3550) \u0026lt;https://github.com/urllib3/urllib3/issues/3550\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eRemoved the \u003ccode\u003emultiple.intoto.jsonl\u003c/code\u003e asset from GitHub releases. Attestation of release files since v2.3.0 can be found on PyPI. (\u003ccode\u003e[#3566](https://github.com/urllib3/urllib3/issues/3566) \u0026lt;https://github.com/urllib3/urllib3/issues/3566\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/a5ff7ac3bbb8659e2ec3ed41dd43889f06a7d7bc\"\u003e\u003ccode\u003ea5ff7ac\u003c/code\u003e\u003c/a\u003e Release 2.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/a135db29f72f828b0ef7314b856d19696a6f48ba\"\u003e\u003ccode\u003ea135db2\u003c/code\u003e\u003c/a\u003e Upgrade memray and coverage to fix macOS tests (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3589\"\u003e#3589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/8f40e71612505a9985b0a58ad793cd84ec97614a\"\u003e\u003ccode\u003e8f40e71\u003c/code\u003e\u003c/a\u003e Upgrade the publishing action to get correct licensing info on PyPI (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3585\"\u003e#3585\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/3ff4e49ddf889554cf295b4a2e1189d066b60c71\"\u003e\u003ccode\u003e3ff4e49\u003c/code\u003e\u003c/a\u003e Add a link to the 2024 annual report (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3586\"\u003e#3586\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/75709c1dbd6770618f061fd0b8a6950c7741f17b\"\u003e\u003ccode\u003e75709c1\u003c/code\u003e\u003c/a\u003e Set verify flags in \u003ccode\u003ecreate_urllib3_context\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3577\"\u003e#3577\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/5c8f82a2f1c1b7a8360f0c84b5a88f25df070811\"\u003e\u003ccode\u003e5c8f82a\u003c/code\u003e\u003c/a\u003e Bump astral-sh/setup-uv from 5.3.0 to 5.4.1 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3580\"\u003e#3580\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/42e90d894b30ef8b897708eb1cdfa24e83cf5067\"\u003e\u003ccode\u003e42e90d8\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.4.0 to 5.5.0 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3579\"\u003e#3579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/3e8f2db735dcaced6a3b777aa1966f40c018af7c\"\u003e\u003ccode\u003e3e8f2db\u003c/code\u003e\u003c/a\u003e Stop using Ubuntu 20.04 and 22.04 in CI (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3570\"\u003e#3570\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/e29db82a6df5f9a9acbb6997899f93bda79bb61e\"\u003e\u003ccode\u003ee29db82\u003c/code\u003e\u003c/a\u003e Update exceptions to have more of their attributes pickled (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3572\"\u003e#3572\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/f8a0c4360ad67aefd79317279ee90c72d5d18697\"\u003e\u003ccode\u003ef8a0c43\u003c/code\u003e\u003c/a\u003e Add PyPy 3.11 to CI\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/urllib3/urllib3/compare/2.3.0...2.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.6.10 to 7.8.2\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.8.2 — 2025-05-23\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWheels are provided for Windows ARM64 on Python 3.11, 3.12, and 3.13.\nThanks, \u003ccode\u003eFinn Womack \u0026lt;pull 1972_\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1971: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/1971\"\u003enedbat/coveragepy#1971\u003c/a\u003e\n.. _pull 1972: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/1972\"\u003enedbat/coveragepy#1972\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-8-1:\u003c/p\u003e\n\u003ch2\u003eVersion 7.8.1 — 2025-05-21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eA number of EncodingWarnings were fixed that could appear if you've enabled\nPYTHONWARNDEFAULTENCODING, fixing \u003ccode\u003eissue 1966\u003c/code\u003e\u003cem\u003e.  Thanks, \u003ccode\u003eHenry Schreiner \u0026lt;pull 1967_\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a race condition when using sys.monitoring with free-threading Python,\nclosing \u003ccode\u003eissue 1970\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1966: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1966\"\u003enedbat/coveragepy#1966\u003c/a\u003e\n.. _pull 1967: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/1967\"\u003enedbat/coveragepy#1967\u003c/a\u003e\n.. _issue 1970: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1970\"\u003enedbat/coveragepy#1970\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-8-0:\u003c/p\u003e\n\u003ch2\u003eVersion 7.8.0 — 2025-03-30\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a new \u003ccode\u003esource_dirs\u003c/code\u003e setting for symmetry with the existing\n\u003ccode\u003esource_pkgs\u003c/code\u003e setting. It's preferable to the existing \u003ccode\u003esource\u003c/code\u003e setting,\nbecause you'll get a clear error when directories don't exist. Fixes \u003ccode\u003eissue 1942\u003c/code\u003e\u003cem\u003e.  Thanks, \u003ccode\u003eJeremy Fleischman \u0026lt;pull 1943_\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the PYTHONSAFEPATH environment variable new in Python 3.11 is properly\nsupported, closing \u003ccode\u003eissue 1696\u003c/code\u003e\u003cem\u003e.  Thanks, \u003ccode\u003ePhilipp A. \u0026lt;pull 1700_\u0026gt;\u003c/code\u003e\u003c/em\u003e.  This\nworks properly except for a detail when using the \u003ccode\u003ecoverage\u003c/code\u003e command on\nWindows.  There you can use \u003ccode\u003epython -m coverage\u003c/code\u003e instead if you need exact\nemulation.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1696: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1696\"\u003enedbat/coveragepy#1696\u003c/a\u003e\n.. _pull 1700: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/1700\"\u003enedbat/coveragepy#1700\u003c/a\u003e\n.. _issue 1942: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1942\"\u003enedbat/coveragepy#1942\u003c/a\u003e\n.. _pull 1943: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/1943\"\u003enedbat/coveragepy#1943\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-7-1:\u003c/p\u003e\n\u003ch2\u003eVersion 7.7.1 — 2025-03-21\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/51ab2e503faebf7b302850f0b0329103f0efd1f4\"\u003e\u003ccode\u003e51ab2e5\u003c/code\u003e\u003c/a\u003e build: have to keep expected dist counts in sync\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/be7bbf236aaec0875e73948b2f50d6ec9ac97311\"\u003e\u003ccode\u003ebe7bbf2\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.8.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/3cee850f3b8a7bff52fa4dd5575abe8b67b1f2ec\"\u003e\u003ccode\u003e3cee850\u003c/code\u003e\u003c/a\u003e docs: prep for 7.8.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/39bc6b0dc8550d1457a60683200cbdfb6786ffc6\"\u003e\u003ccode\u003e39bc6b0\u003c/code\u003e\u003c/a\u003e docs: provide more details if the kit matrix is edited.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/a608fb310d0eb34c6d6d004a1b62b01c6f8afd33\"\u003e\u003ccode\u003ea608fb3\u003c/code\u003e\u003c/a\u003e build: add support for Windows arm64 (\u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1972\"\u003e#1972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/2fe622506356424406ddcac01bf1775eca5a92d3\"\u003e\u003ccode\u003e2fe6225\u003c/code\u003e\u003c/a\u003e build: run \u003ccode\u003etox lint\u003c/code\u003e if actions have changed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/3d93a78e1df4b9ab88bbf03f84de40873ddb5541\"\u003e\u003ccode\u003e3d93a78\u003c/code\u003e\u003c/a\u003e docs: docs need scriv for making github releases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/0c443a2775aa64fda77c6e34fcc5144f5000db9c\"\u003e\u003ccode\u003e0c443a2\u003c/code\u003e\u003c/a\u003e build: bump version to 7.8.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/ed98b8708ccc380bcb1490cd73b3e476f69c234f\"\u003e\u003ccode\u003eed98b87\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/b98bc9b9878ff8c23bcaa0d7c5b2a55269c6783f\"\u003e\u003ccode\u003eb98bc9b\u003c/code\u003e\u003c/a\u003e docs: prep for 7.8.1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nedbat/coveragepy/compare/7.6.10...7.8.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `exceptiongroup` from 1.2.2 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/agronholm/exceptiongroup/releases\"\u003eexceptiongroup's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003e**kwargs\u003c/code\u003e to function and method signatures as appropriate to match the signatures in the standard library\u003c/li\u003e\n\u003cli\u003eIn line with the stdlib typings in typeshed, updated \u003ccode\u003e(Base)ExceptionGroup\u003c/code\u003e generic types to define defaults for their generic arguments (defaulting to \u003ccode\u003eBaseExceptionGroup[BaseException]\u003c/code\u003e and \u003ccode\u003eExceptionGroup[Exception]\u003c/code\u003e) (PR by \u003ca href=\"https://github.com/mikenerone\"\u003e\u003ccode\u003e@​mikenerone\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eBaseExceptionGroup.__init__()\u003c/code\u003e to directly call \u003ccode\u003eBaseException.__init__()\u003c/code\u003e instead of the superclass \u003ccode\u003e__init__()\u003c/code\u003e in order to emulate the CPython behavior (broken or not) (PR by \u003ca href=\"https://github.com/cfbolz\"\u003e\u003ccode\u003e@​cfbolz\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged the \u003ccode\u003eexceptions\u003c/code\u003e attribute to always return the same tuple of exceptions, created from the original exceptions sequence passed to \u003ccode\u003eBaseExceptionGroup\u003c/code\u003e to match CPython behavior (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/143\"\u003e#143\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/agronholm/exceptiongroup/blob/main/CHANGES.rst\"\u003eexceptiongroup's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eVersion history\u003c/h1\u003e\n\u003cp\u003eThis library adheres to \u003ccode\u003eSemantic Versioning 2.0 \u0026lt;http://semver.org/\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e1.3.0\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003e**kwargs\u003c/code\u003e to function and method signatures as appropriate to match the\nsignatures in the standard library\u003c/li\u003e\n\u003cli\u003eIn line with the stdlib typings in typeshed, updated \u003ccode\u003e(Base)ExceptionGroup\u003c/code\u003e generic\ntypes to define defaults for their generic arguments (defaulting to\n\u003ccode\u003eBaseExceptionGroup[BaseException]\u003c/code\u003e and \u003ccode\u003eExceptionGroup[Exception]\u003c/code\u003e)\n(PR by \u003ca href=\"https://github.com/mikenerone\"\u003e\u003ccode\u003e@​mikenerone\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eBaseExceptionGroup.__init__()\u003c/code\u003e to directly call\n\u003ccode\u003eBaseException.__init__()\u003c/code\u003e instead of the superclass \u003ccode\u003e__init__()\u003c/code\u003e in order to\nemulate the CPython behavior (broken or not) (PR by \u003ca href=\"https://github.com/cfbolz\"\u003e\u003ccode\u003e@​cfbolz\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged the \u003ccode\u003eexceptions\u003c/code\u003e attribute to always return the same tuple of exceptions,\ncreated from the original exceptions sequence passed to \u003ccode\u003eBaseExceptionGroup\u003c/code\u003e to\nmatch CPython behavior\n(\u003ccode\u003e[#143](https://github.com/agronholm/exceptiongroup/issues/143) \u0026lt;https://github.com/agronholm/exceptiongroup/issues/143\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e1.2.2\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved an \u003ccode\u003eassert\u003c/code\u003e in \u003ccode\u003eexceptiongroup._formatting\u003c/code\u003e that caused compatibility\nissues with Sentry (\u003ccode\u003e[#123](https://github.com/agronholm/exceptiongroup/issues/123) \u0026lt;https://github.com/agronholm/exceptiongroup/issues/123\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e1.2.1\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated the copying of \u003ccode\u003e__notes__\u003c/code\u003e to match CPython behavior (PR by CF Bolz-Tereick)\u003c/li\u003e\n\u003cli\u003eCorrected the type annotation of the exception handler callback to accept a\n\u003ccode\u003eBaseExceptionGroup\u003c/code\u003e instead of \u003ccode\u003eBaseException\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFixed type errors on Python \u0026lt; 3.10 and the type annotation of \u003ccode\u003esuppress()\u003c/code\u003e\n(PR by John Litborn)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e1.2.0\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded special monkeypatching if \u003ccode\u003eApport \u0026lt;https://github.com/canonical/apport\u0026gt;\u003c/code\u003e_ has\noverridden \u003ccode\u003esys.excepthook\u003c/code\u003e so it will format exception groups correctly\n(PR by John Litborn)\u003c/li\u003e\n\u003cli\u003eAdded a backport of \u003ccode\u003econtextlib.suppress()\u003c/code\u003e from Python 3.12.1 which also handles\nsuppressing exceptions inside exception groups\u003c/li\u003e\n\u003cli\u003eFixed bare \u003ccode\u003eraise\u003c/code\u003e in a handler reraising the original naked exception rather than\nan exception group which is what is raised when you do a \u003ccode\u003eraise\u003c/code\u003e in an \u003ccode\u003eexcept*\u003c/code\u003e\nhandler\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e1.1.3\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ecatch()\u003c/code\u003e now raises a \u003ccode\u003eTypeError\u003c/code\u003e if passed an async exception handler instead of\njust giving a \u003ccode\u003eRuntimeWarning\u003c/code\u003e about the coroutine never being awaited. (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/66\"\u003e#66\u003c/a\u003e, PR by\nJohn Litborn)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/77fba8a871408ff2c48f536e5e73b1918239ba5f\"\u003e\u003ccode\u003e77fba8a\u003c/code\u003e\u003c/a\u003e Added the release version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/5e153aa379ac53af79cc7f5e287f77929cb4d0dc\"\u003e\u003ccode\u003e5e153aa\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Migrated test dependencies to dependency groups\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/5000bfea208ad59e3a20e2fb91a513ad559711b1\"\u003e\u003ccode\u003e5000bfe\u003c/code\u003e\u003c/a\u003e Migrated tox configuration to native TOML\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/427220d67a52585e98575103b090b5fdaf87a899\"\u003e\u003ccode\u003e427220d\u003c/code\u003e\u003c/a\u003e Updated pytest options\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/4ca264fa3605d52067c20b351a0d3b947fa1f363\"\u003e\u003ccode\u003e4ca264f\u003c/code\u003e\u003c/a\u003e Migrated test dependencies to dependency groups\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/163c3a8cb27f8a5325258b5a83e7cf8fc002c3b7\"\u003e\u003ccode\u003e163c3a8\u003c/code\u003e\u003c/a\u003e Marked test_exceptions_mutate_original_sequence as xfail on pypy3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/a1765740db2d55d1eb91d67a8fbbb355caf7881b\"\u003e\u003ccode\u003ea176574\u003c/code\u003e\u003c/a\u003e Always create the exceptions tuple at init and return it from the exceptions ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/550b79621cc35892413fa91903a1d6c7951d0449\"\u003e\u003ccode\u003e550b796\u003c/code\u003e\u003c/a\u003e Added BaseExceptionGroup.\u003cstrong\u003einit\u003c/strong\u003e, following CPython (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/142\"\u003e#142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/2a84dfd5599bca0c653143f0f4252d38afac9867\"\u003e\u003ccode\u003e2a84dfd\u003c/code\u003e\u003c/a\u003e Added typevar defaults to (Base)ExceptionGroup (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/147\"\u003e#147\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/fb9133b495fc82bc2907e8cfbdff6c6dc3087e2f\"\u003e\u003ccode\u003efb9133b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/145\"\u003e#145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/exceptiongroup/compare/1.2.2...1.3.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.16.1 to 3.18.0\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.18.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIndicate that locks are exclusive/write locks. by \u003ca href=\"https://github.com/bicarlsen\"\u003e\u003ccode\u003e@​bicarlsen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/394\"\u003etox-dev/filelock#394\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport fcntl check on Emscripten by \u003ca href=\"https://github.com/juntyr\"\u003e\u003ccode\u003e@​juntyr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/398\"\u003etox-dev/filelock#398\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/bicarlsen\"\u003e\u003ccode\u003e@​bicarlsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/394\"\u003etox-dev/filelock#394\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/juntyr\"\u003e\u003ccode\u003e@​juntyr\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/398\"\u003etox-dev/filelock#398\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.17.0...3.18.0\"\u003ehttps://github.com/tox-dev/filelock/compare/3.17.0...3.18.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDrop 3.8\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.16.1...3.17.0\"\u003ehttps://github.com/tox-dev/filelock/compare/3.16.1...3.17.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/129a1efb6a0e1c40ff7c0b094db1b888fcb46d93\"\u003e\u003ccode\u003e129a1ef\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/405\"\u003e#405\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/717d7e018c6e3c3cd00a0f35c775ebbbafda41cc\"\u003e\u003ccode\u003e717d7e0\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/403\"\u003e#403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/efba779022cf62956efe88ea3c65620098fbf75c\"\u003e\u003ccode\u003eefba779\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/401\"\u003e#401\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/82f5a2d6c260a43dc88b51121087bdfa21fb205f\"\u003e\u003ccode\u003e82f5a2d\u003c/code\u003e\u003c/a\u003e Support fcntl check on Emscripten (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/398\"\u003e#398\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/468ba431d1d40b494724f3269d3241a5d1ddd411\"\u003e\u003ccode\u003e468ba43\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/396\"\u003e#396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/0ac68266c62f3b7ae1bc5d4a35c88f1d3913b98d\"\u003e\u003ccode\u003e0ac6826\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/395\"\u003e#395\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/b5f98a66d0fb59e62894ad2b537deb877279adda\"\u003e\u003ccode\u003eb5f98a6\u003c/code\u003e\u003c/a\u003e Indicate that locks are exclusive/write locks. (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/394\"\u003e#394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/3c9b68049961d1b4aade1cc806e731f90b5d2c24\"\u003e\u003ccode\u003e3c9b680\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/393\"\u003e#393\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/2760759ac82f7e8583f708d9bf801c3a79ccd340\"\u003e\u003ccode\u003e2760759\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/18c9571afba87bb6329aef9c2c7798cbe8adfea5\"\u003e\u003ccode\u003e18c9571\u003c/code\u003e\u003c/a\u003e Bump pypa/gh-action-pypi-publish from 1.12.3 to 1.12.4 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/390\"\u003e#390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/py-filelock/compare/3.16.1...3.18.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `freezegun` from 1.5.1 to 1.5.2\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.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\u003c/blockquote\u003e\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/ba06fa43d18c24e6bd4b3bacb7edcb547e7b30ae\"\u003e\u003ccode\u003eba06fa4\u003c/code\u003e\u003c/a\u003e Increase version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/da2885db0c6bbef0d17569ddc9b0b0c7ef852f8c\"\u003e\u003ccode\u003eda2885d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/spulec/freezegun/issues/572\"\u003e#572\u003c/a\u003e from jayaddison/debian-bug-1106274/tests-datetime-tod...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/695aa15668c251c3180d0b943b62c7f2f73b4dbe\"\u003e\u003ccode\u003e695aa15\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into debian-bug-1106274/tests-datetime-today-tz-localiz...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/132ecdbe6e33f603b8d65e7160cdf8200e06391a\"\u003e\u003ccode\u003e132ecdb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/spulec/freezegun/issues/573\"\u003e#573\u003c/a\u003e from spulec/admin/indicate-py-13-compat\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/f9235ae8a00941f2d8a370717af2641a7bf268e9\"\u003e\u003ccode\u003ef9235ae\u003c/code\u003e\u003c/a\u003e Mark support for Python 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/9072d08e3ee22e98e771d8598d67373019a26fed\"\u003e\u003ccode\u003e9072d08\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/spulec/freezegun/issues/544\"\u003e#544\u003c/a\u003e from spulec/remove-py-37-support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/74a69142ddfa3ef6ca060a921938c5cda6da5d16\"\u003e\u003ccode\u003e74a6914\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/spulec/freezegun/issues/565\"\u003e#565\u003c/a\u003e from joethesaint/improve-documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/1343509cd9e53a1777fec5ccbdd7bf85a809f051\"\u003e\u003ccode\u003e1343509\u003c/code\u003e\u003c/a\u003e README: update example code for consistency with tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/9468f708256344321ff8e0fc1c783576e7da44ac\"\u003e\u003ccode\u003e9468f70\u003c/code\u003e\u003c/a\u003e Tests: fixup: replace \u003ccode\u003edatetime.today\u003c/code\u003e method calls with \u003ccode\u003edatetime.date\u003c/code\u003e clas...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/9e4012ad4565c0cf2505410134f6a2ca745a2c3d\"\u003e\u003ccode\u003e9e4012a\u003c/code\u003e\u003c/a\u003e Tests: restore some \u003ccode\u003edatetime.date\u003c/code\u003e-based comparisons\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/spulec/freezegun/compare/1.5.1...1.5.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `identify` from 2.6.5 to 2.6.12\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/51e358dd52e70925011f81db738d441617e3e0f4\"\u003e\u003ccode\u003e51e358d\u003c/code\u003e\u003c/a\u003e v2.6.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/00310d304818e0727f3894fd55ff0f4e834e1db8\"\u003e\u003ccode\u003e00310d3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/identify/issues/519\"\u003e#519\u003c/a\u003e from energyworldnet/feature/msbuild\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/a604a3a4a4ec822f5082a21664fdf391f512d961\"\u003e\u003ccode\u003ea604a3a\u003c/code\u003e\u003c/a\u003e Drop ambiguous .proj extension\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/bdd2643326d8acf348e35ca76ddc233da3f0380c\"\u003e\u003ccode\u003ebdd2643\u003c/code\u003e\u003c/a\u003e v2.6.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/d084242645bcec76d344c37faafd2f8c55081cd2\"\u003e\u003ccode\u003ed084242\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'energyworldnet/feature/xslt'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/f7947091c937ef9a2e1ab1e7be6033acafe4c168\"\u003e\u003ccode\u003ef794709\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/identify/issues/518\"\u003e#518\u003c/a\u003e from pre-commit/mxr-patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/a8cce72fd03e9e1d62c7b749b33903361ee42f54\"\u003e\u003ccode\u003ea8cce72\u003c/code\u003e\u003c/a\u003e Identify XSLT files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/4cf2cc04a94df881eedfede07932a4d95f346f37\"\u003e\u003ccode\u003e4cf2cc0\u003c/code\u003e\u003c/a\u003e Identify common MSBuild files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/4e55b743565fe30a3f7569e02ddfe71abf5144fc\"\u003e\u003ccode\u003e4e55b74\u003c/code\u003e\u003c/a\u003e Add support for \u003ccode\u003e.sqlfluff\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/e200468dd1b921e75a300545bd1e28abe1d5985c\"\u003e\u003ccode\u003ee200468\u003c/code\u003e\u003c/a\u003e v2.6.10\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/identify/compare/v2.6.5...v2.6.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `iniconfig` from 2.0.0 to 2.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/iniconfig/releases\"\u003einiconfig's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.1.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/26\"\u003e#26\u003c/a\u003e - list individuals in license file by \u003ca href=\"https://github.com/RonnyPfannschmidt\"\u003e\u003ccode\u003e@​RonnyPfannschmidt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/52\"\u003epytest-dev/iniconfig#52\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRun tests in CI by \u003ca href=\"https://github.com/nicoddemus\"\u003e\u003ccode\u003e@​nicoddemus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/53\"\u003epytest-dev/iniconfig#53\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003epypa/gh-action-pypi-publish@release/v1\u003c/code\u003e @ GHA by \u003ca href=\"https://github.com/webknjaz\"\u003e\u003ccode\u003e@​webknjaz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/54\"\u003epytest-dev/iniconfig#54\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12-3.13 and drop EOL 3.7 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/56\"\u003epytest-dev/iniconfig#56\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/nicoddemus\"\u003e\u003ccode\u003e@​nicoddemus\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/53\"\u003epytest-dev/iniconfig#53\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/webknjaz\"\u003e\u003ccode\u003e@​webknjaz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/54\"\u003epytest-dev/iniconfig#54\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pytest-dev/iniconfig/compare/v2.0.0...v2.1.0\"\u003ehttps://github.com/pytest-dev/iniconfig/compare/v2.0.0...v2.1.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/pytest-dev/iniconfig/blob/main/CHANGELOG\"\u003einiconfig's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.1.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix artifact building - pin minimal version of hatch\u003c/li\u003e\n\u003cli\u003edrop eol python 3.8\u003c/li\u003e\n\u003cli\u003eadd python 3.12 and 3.13\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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/iniconfig/commit/34793a6417e35e511d0c17ffdd8a02ade0f9568e\"\u003e\u003ccode\u003e34793a6\u003c/code\u003e\u003c/a\u003e pre-commit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/136435d0a4345bb048dca98e7c2f4e938d74521b\"\u003e\u003ccode\u003e136435d\u003c/code\u003e\u003c/a\u003e update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/0bb99ad0f7a6b21d5eb24214a260132317a11e43\"\u003e\u003ccode\u003e0bb99ad\u003c/code\u003e\u003c/a\u003e fix \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/62\"\u003e#62\u003c/a\u003e: require a minimal hatch version with correct metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/16793eaddac67de0b8d621ae4e42e05b927e8d67\"\u003e\u003ccode\u003e16793ea\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/56\"\u003e#56\u003c/a\u003e from hugovk/add-3.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/3dc2b2d6bf03e4b7cc92949a8ef0983fdd7ee442\"\u003e\u003ccode\u003e3dc2b2d\u003c/code\u003e\u003c/a\u003e Add support for Python 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/2eb8abfd9d3843100d7f138efe5bcd989a885024\"\u003e\u003ccode\u003e2eb8abf\u003c/code\u003e\u003c/a\u003e Bump GitHub Actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/8c4bb5bf57dde613c8cdcf0e02a09b2fff630907\"\u003e\u003ccode\u003e8c4bb5b\u003c/code\u003e\u003c/a\u003e Set python-version for pre-commit to remove CI warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/58b22b2d672564ff1925df51f4a8e07486765ed2\"\u003e\u003ccode\u003e58b22b2\u003c/code\u003e\u003c/a\u003e Drop support for EOL Python 3.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/4a53042252a109bcdd64422058de91c5dffff763\"\u003e\u003ccode\u003e4a53042\u003c/code\u003e\u003c/a\u003e Add support for Python 3.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/9cae43103df70bac6fde7b9f35ad11a9f1be0cb4\"\u003e\u003ccode\u003e9cae431\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/54\"\u003e#54\u003c/a\u003e from webknjaz/patch-1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/iniconfig/compare/v2.0.0...v2.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `junit-xml` from 1.8 to 1.9\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/kyrus/python-junit-xml/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mutmut` from 3.2.2 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/boxed/mutmut/blob/main/HISTORY.rst\"\u003emutmut's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e3.3.0\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Python 3.13 compatibility!\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eNew argument \u003ccode\u003e--show-killed\u003c/code\u003e for \u003ccode\u003emutmut browse\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix to avoid accidentally importing the un-mutated original code\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eHandle segfault for mutant subprocesses\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded mutations for string literals\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded mutations for common string methods\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFaster mutant generation via subprocesses\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eself\u003c/code\u003e parameter for mutated class methods\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix trampoline generation for function calls with 'orig' or 'mutants' as argument names.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCopy full source directory before creating mutants\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved error message when forced fail test fails\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed issue with spaces in the python executable path\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDo not mutate \u003ccode\u003e__new__\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAnnotate mutant dicts (and fixes compatibility with Pydantic)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eReplaced parso with LibCST\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e3.2.3\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eCrash with error message on invalid imports for \u003ccode\u003esrc\u003c/code\u003e module\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAutodetect simpler project configurations with \u003ccode\u003etest_*.py\u003c/code\u003e in the dir directly\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eHandle filenames (as opposed to dirnames) in paths_to_mutate\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAlso copy \u003ccode\u003esetup.cfg\u003c/code\u003e and \u003ccode\u003epyproject.toml\u003c/code\u003e by default\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eHandle single line \u003ccode\u003epaths_to_mutate\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/boxed/mutmut/commit/b124c6ad46b0a9a048b5e47c8b7f93d33a9f2e6a\"\u003e\u003ccode\u003eb124c6a\u003c/code\u003e\u003c/a\u003e Release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/e1110fff43b8864802a07cadf5b54b73ab789aad\"\u003e\u003ccode\u003ee1110ff\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/boxed/mutmut/issues/386\"\u003e#386\u003c/a\u003e from CHB-0r1s/main\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/e3736b152c0a40881d3b57319457a755e30c7651\"\u003e\u003ccode\u003ee3736b1\u003c/code\u003e\u003c/a\u003e feat(tests): Add nested attribute access test cases for 'a.b.lower()' -\u0026gt; 'a.b...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/c481bf17e2b0bca22161327c98f21d57e18717bf\"\u003e\u003ccode\u003ec481bf1\u003c/code\u003e\u003c/a\u003e fix: some libcst best practice\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/092912c3332c4d9139453cb6f23b76fae1ef869c\"\u003e\u003ccode\u003e092912c\u003c/code\u003e\u003c/a\u003e fix(tests): This test included string methods functional as upper(), so in si...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/d65d70c1d2b4c4bd0b849e23afcb71fcdc5939be\"\u003e\u003ccode\u003ed65d70c\u003c/code\u003e\u003c/a\u003e feat(str_call_mut): add str methods call mutations and tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/b7b4f90ca5969442b7a56abd4d8c7e62708a5cc6\"\u003e\u003ccode\u003eb7b4f90\u003c/code\u003e\u003c/a\u003e Add .upper() .lower() and .capitalize() as mutations (\u003ca href=\"https://redirect.github.com/boxed/mutmut/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/b41c2b3eef47a9d9b748667e5641d2e69424988f\"\u003e\u003ccode\u003eb41c2b3\u003c/code\u003e\u003c/a\u003e Set process start_method to fork for MacOS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/b42824d724d62421b804ddcb13a2ffc100f7337f\"\u003e\u003ccode\u003eb42824d\u003c/code\u003e\u003c/a\u003e .\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/a732ffb4ab81f54482ac750a0480f5998e4e8490\"\u003e\u003ccode\u003ea732ffb\u003c/code\u003e\u003c/a\u003e Forgot to update Stats\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boxed/mutmut/compare/3.2.2...3.3.0\"\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 `platformdirs` from 4.3.6 to 4.3.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/platformdirs/releases\"\u003eplatformdirs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.3.8\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd missing examples and fix order of examples in README by \u003ca href=\"https://github.com/gene1wood\"\u003e\u003ccode\u003e@​gene1wood\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/355\"\u003etox-dev/platformdirs#355\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gene1wood\"\u003e\u003ccode\u003e@​gene1wood\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/355\"\u003etox-dev/platformdirs#355\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.3.7...4.3.8\"\u003ehttps://github.com/tox-dev/platformdirs/compare/4.3.7...4.3.8\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.3.7\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChunk dependabot updates into a single PR by \u003ca href=\"https://github.com/ofek\"\u003e\u003ccode\u003e@​ofek\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/311\"\u003etox-dev/platformdirs#311\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 3.8 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/330\"\u003etox-dev/platformdirs#330\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.3.6...4.3.7\"\u003ehttps://github.com/tox-dev/platformdirs/compare/4.3.6...4.3.7\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/22089f1e1ff477037cd7b3e03ad38ae2bf251031\"\u003e\u003ccode\u003e22089f1\u003c/code\u003e\u003c/a\u003e Add missing examples and fix order of examples in README (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/29398b1ef0d602929102b5a3cc4aca25ff954f2a\"\u003e\u003ccode\u003e29398b1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/354\"\u003e#354\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/70114b05f1144a451247a465b65caa34d9a88375\"\u003e\u003ccode\u003e70114b0\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/353\"\u003e#353\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/48916117e8d756a51468d6ead75aa645a6a378c6\"\u003e\u003ccode\u003e4891611\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/351\"\u003e#351\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/707be6f8dd2784d092f6de6530f6c0d64faee2f3\"\u003e\u003ccode\u003e707be6f\u003c/code\u003e\u003c/a\u003e Bump astral-sh/setup-uv from 5 to 6 in the all group (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/352\"\u003e#352\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/5519a4fa93059949cf1078fac01cf5dce12c3b50\"\u003e\u003ccode\u003e5519a4f\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/349\"\u003e#349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/063275e097e2910d56291b168e5d827237be5cc5\"\u003e\u003ccode\u003e063275e\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/346\"\u003e#346\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/39fc38448d9d8a5a5be489115122669a76403012\"\u003e\u003ccode\u003e39fc384\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/345\"\u003e#345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/00c695b99a2776e0f271bfcb43d15f908bbf361b\"\u003e\u003ccode\u003e00c695b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/342\"\u003e#342\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/6a81b38d7926f8ba99ebf82c837034bdd8d27039\"\u003e\u003ccode\u003e6a81b38\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/341\"\u003e#341\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.3.6...4.3.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pluggy` from 1.5.0 to 1.6.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pluggy/blob/main/CHANGELOG.rst\"\u003epluggy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003epluggy 1.6.0 (2025-05-15)\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#556](https://github.com/pytest-dev/pluggy/issues/556) \u0026lt;https://github.com/pytest-dev/pluggy/issues/556\u0026gt;\u003c/code\u003e_: Python 3.8 is no longer supported.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003e[#504](https://github.com/pytest-dev/pluggy/issues/504) \u0026lt;https://github.com/pytest-dev/pluggy/issues/504\u0026gt;\u003c/code\u003e_: Fix a regression in pluggy 1.1.0 where using :func:\u003ccode\u003eresult.get_result() \u0026lt;pluggy.Result.get_result\u0026gt;\u003c/code\u003e on the same failed :class:\u003ccode\u003e~pluggy.Result\u003c/code\u003e causes the exception's traceback to get longer and longer.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003e[#544](https://github.com/pytest-dev/pluggy/issues/544) \u0026lt;https://github.com/pytest-dev/pluggy/issues/544\u0026gt;\u003c/code\u003e_: Correctly pass :class:\u003ccode\u003eStopIteration\u003c/code\u003e through hook wrappers.\u003c/p\u003e\n\u003cp\u003eRaising a :class:\u003ccode\u003eStopIteration\u003c/code\u003e in a generator triggers a :class:\u003ccode\u003eRuntimeError\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eIf the :class:\u003ccode\u003eRuntimeError\u003c/code\u003e of a generator has the passed in :class:\u003ccode\u003eStopIteration\u003c/code\u003e as cause\nresume with that :class:\u003ccode\u003eStopIteration\u003c/code\u003e as normal exception instead of failing with the :class:\u003ccode\u003eRuntimeError\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003e[#573](https://github.com/pytest-dev/pluggy/issues/573) \u0026lt;https://github.com/pytest-dev/pluggy/issues/573\u0026gt;\u003c/code\u003e_: Fix python 3.14 SyntaxError by rearranging code.\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/pluggy/commit/fd08ab5f811a9b2fa9124ae8cbbd393221151e2c\"\u003e\u003ccode\u003efd08ab5\u003c/code\u003e\u003c/a\u003e Preparing release 1.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pluggy/commit/c240362152d6f354a4056bfd6d28560e226fb70b\"\u003e\u003ccode\u003ec240362\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pytest-dev/pluggy/issues/578\"\u003e#578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pluggy/commit/0ceb558860b5e228b67adbe8c19a36...\n\n_Description has been truncated_","html_url":"https://github.com/github/annotated-logger/pull/61","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/github%2Fannotated-logger/issues/61","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/61/packages"},{"uuid":"2542655357","node_id":"PR_kwDOMt9I9c6Xjdd9","number":60,"state":"closed","title":"[pip] (deps): Bump the dev-dependencies group across 1 directory with 28 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2025-06-01T22:00:21.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-05-25T21:30:10.000Z","updated_at":"2025-06-01T22:00:21.000Z","time_to_close":606611,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"[pip] (deps): Bump","group_name":"dev-dependencies","update_count":28,"packages":[{"name":"python-json-logger","old_version":"3.2.1","new_version":"3.3.0","repository_url":"https://github.com/nhairs/python-json-logger"},{"name":"certifi","old_version":"2024.12.14","new_version":"2025.4.26","repository_url":"https://github.com/certifi/python-certifi"},{"name":"charset-normalizer","old_version":"3.4.1","new_version":"3.4.2","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"makefun","old_version":"1.15.6","new_version":"1.16.0","repository_url":"https://github.com/smarie/python-makefun"},{"name":"pychoir","old_version":"0.0.27","new_version":"0.0.29","repository_url":"https://github.com/kajaste/pychoir"},{"name":"urllib3","old_version":"2.3.0","new_version":"2.4.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"coverage","old_version":"7.6.10","new_version":"7.8.2","repository_url":"https://github.com/nedbat/coveragepy"},{"name":"exceptiongroup","old_version":"1.2.2","new_version":"1.3.0","repository_url":"https://github.com/agronholm/exceptiongroup"},{"name":"filelock","old_version":"3.16.1","new_version":"3.18.0","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"freezegun","old_version":"1.5.1","new_version":"1.5.2","repository_url":"https://github.com/spulec/freezegun"},{"name":"identify","old_version":"2.6.5","new_version":"2.6.12","repository_url":"https://github.com/pre-commit/identify"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.1.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"junit-xml","old_version":"1.8","new_version":"1.9","repository_url":"https://github.com/kyrus/python-junit-xml"},{"name":"mutmut","old_version":"3.2.2","new_version":"3.3.0","repository_url":"https://github.com/boxed/mutmut"},{"name":"packaging","old_version":"24.2","new_version":"25.0","repository_url":"https://github.com/pypa/packaging"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.3.8","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"pre-commit","old_version":"4.0.1","new_version":"4.2.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pyright","old_version":"1.1.391","new_version":"1.1.401","repository_url":"https://github.com/RobertCraigie/pyright-python"},{"name":"pytest","old_version":"8.3.4","new_version":"8.3.5","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-cov","old_version":"6.0.0","new_version":"6.1.1","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pytest-github-actions-annotate-failures","old_version":"0.2.0","new_version":"0.3.0","repository_url":"https://github.com/pytest-dev/pytest-github-actions-annotate-failures"},{"name":"rich","old_version":"13.9.4","new_version":"14.0.0","repository_url":"https://github.com/Textualize/rich"},{"name":"ruff","old_version":"0.8.6","new_version":"0.11.11","repository_url":"https://github.com/astral-sh/ruff"},{"name":"setproctitle","old_version":"1.3.4","new_version":"1.3.6","repository_url":"https://github.com/dvarrazzo/py-setproctitle"},{"name":"textual","old_version":"1.0.0","new_version":"3.2.0","repository_url":"https://github.com/Textualize/textual"},{"name":"typing-extensions","old_version":"4.12.2","new_version":"4.13.2","repository_url":"https://github.com/python/typing_extensions"},{"name":"virtualenv","old_version":"20.28.1","new_version":"20.31.2","repository_url":"https://github.com/pypa/virtualenv"}],"path":null,"ecosystem":"pip"},"body":"Bumps the dev-dependencies group with 28 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `3.2.1` | `3.3.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2024.12.14` | `2025.4.26` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.1` | `3.4.2` |\n| [makefun](https://github.com/smarie/python-makefun) | `1.15.6` | `1.16.0` |\n| [pychoir](https://github.com/kajaste/pychoir) | `0.0.27` | `0.0.29` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.3.0` | `2.4.0` |\n| [coverage](https://github.com/nedbat/coveragepy) | `7.6.10` | `7.8.2` |\n| [exceptiongroup](https://github.com/agronholm/exceptiongroup) | `1.2.2` | `1.3.0` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.18.0` |\n| [freezegun](https://github.com/spulec/freezegun) | `1.5.1` | `1.5.2` |\n| [identify](https://github.com/pre-commit/identify) | `2.6.5` | `2.6.12` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.1.0` |\n| [junit-xml](https://github.com/kyrus/python-junit-xml) | `1.8` | `1.9` |\n| [mutmut](https://github.com/boxed/mutmut) | `3.2.2` | `3.3.0` |\n| [packaging](https://github.com/pypa/packaging) | `24.2` | `25.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.3.8` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.0.1` | `4.2.0` |\n| [pyright](https://github.com/RobertCraigie/pyright-python) | `1.1.391` | `1.1.401` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.4` | `8.3.5` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `6.0.0` | `6.1.1` |\n| [pytest-github-actions-annotate-failures](https://github.com/pytest-dev/pytest-github-actions-annotate-failures) | `0.2.0` | `0.3.0` |\n| [rich](https://github.com/Textualize/rich) | `13.9.4` | `14.0.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.8.6` | `0.11.11` |\n| [setproctitle](https://github.com/dvarrazzo/py-setproctitle) | `1.3.4` | `1.3.6` |\n| [textual](https://github.com/Textualize/textual) | `1.0.0` | `3.2.0` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.12.2` | `4.13.2` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `20.28.1` | `20.31.2` |\n\n\nUpdates `python-json-logger` from 3.2.1 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nhairs/python-json-logger/releases\"\u003epython-json-logger's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v3.2.1...v3.3.0\"\u003e3.3.0\u003c/a\u003e - 2025-03-06\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eexc_info_as_array\u003c/code\u003e and \u003ccode\u003estack_info_as_array\u003c/code\u003e options are added to \u003ccode\u003epythonjsonlogger.core.BaseJsonFormatter\u003c/code\u003e allowing both to be encoded as list of lines instead of a single multi-line string. \u003ca href=\"https://redirect.github.com/nhairs/python-json-logger/issues/35\"\u003e#35\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003emsgspec-python313-pre\u003c/code\u003e from \u003ccode\u003edev\u003c/code\u003e dependencies preventing potential RCE. Details: \u003ca href=\"https://github.com/nhairs/python-json-logger/security/advisories/GHSA-wmxh-pxcx-9w24#advisory-comment-121307\"\u003eGHSA-wmxh-pxcx-9w24\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks \u003ca href=\"https://github.com/1hakusai1\"\u003e\u003ccode\u003e@​1hakusai1\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/omnigodz\"\u003e\u003ccode\u003e@​omnigodz\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/nhairs/python-json-logger/blob/main/docs/changelog.md\"\u003epython-json-logger's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v3.2.1...v3.3.0\"\u003e3.3.0\u003c/a\u003e - 2025-03-06\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eexc_info_as_array\u003c/code\u003e and \u003ccode\u003estack_info_as_array\u003c/code\u003e options are added to \u003ccode\u003epythonjsonlogger.core.BaseJsonFormatter\u003c/code\u003e allowing both to be encoded as list of lines instead of a single multi-line string. \u003ca href=\"https://redirect.github.com/nhairs/python-json-logger/issues/35\"\u003e#35\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003emsgspec-python313-pre\u003c/code\u003e from \u003ccode\u003edev\u003c/code\u003e dependencies preventing potential RCE. Details: \u003ca href=\"https://github.com/nhairs/python-json-logger/security/advisories/GHSA-wmxh-pxcx-9w24#advisory-comment-121307\"\u003eGHSA-wmxh-pxcx-9w24\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks \u003ca href=\"https://github.com/1hakusai1\"\u003e\u003ccode\u003e@​1hakusai1\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/omnigodz\"\u003e\u003ccode\u003e@​omnigodz\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/9e6cb679dfb56cb82d9a8cc91f956efd72427055\"\u003e\u003ccode\u003e9e6cb67\u003c/code\u003e\u003c/a\u003e Release 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/db04a0f9066cc331f8d6177f828fe073c7b2a4cc\"\u003e\u003ccode\u003edb04a0f\u003c/code\u003e\u003c/a\u003e Add options to encode stack information into an array (\u003ca href=\"https://redirect.github.com/nhairs/python-json-logger/issues/39\"\u003e#39\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/0092ea0be1cd28e3c1da51eaa084c503bb3710b7\"\u003e\u003ccode\u003e0092ea0\u003c/code\u003e\u003c/a\u003e Move to uv (\u003ca href=\"https://redirect.github.com/nhairs/python-json-logger/issues/40\"\u003e#40\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/1ce81a3614d8c77389a9c048d341593e2a7467e7\"\u003e\u003ccode\u003e1ce81a3\u003c/code\u003e\u003c/a\u003e [tests] Update tests for msgspec 0.19.0 (\u003ca href=\"https://redirect.github.com/nhairs/python-json-logger/issues/41\"\u003e#41\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v3.2.1...v3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2024.12.14 to 2025.4.26\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/275c9eb55733a464589c15fb4566fddd4598e5b2\"\u003e\u003ccode\u003e275c9eb\u003c/code\u003e\u003c/a\u003e 2025.04.26 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/347\"\u003e#347\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/37883310b51e56570919cdc2d44becc1c6940559\"\u003e\u003ccode\u003e3788331\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.4.0 to 5.5.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/346\"\u003e#346\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/9d1f1b782000baedf57026de5b79e193bcb7ef7b\"\u003e\u003ccode\u003e9d1f1b7\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4.1.9 to 4.2.1 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/344\"\u003e#344\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/96b97a5afe26bc1adef98cb0bfe68e34948a73b6\"\u003e\u003ccode\u003e96b97a5\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 4.6.1 to 4.6.2 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/343\"\u003e#343\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/c054ed3ac3d3505efc929b71cfd87a257bbdb6b3\"\u003e\u003ccode\u003ec054ed3\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 7.0.7 to 7.0.8 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/342\"\u003e#342\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/44547fc77121b12bb276b44b3b2b49cfcbeac06f\"\u003e\u003ccode\u003e44547fc\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4.1.8 to 4.1.9 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/341\"\u003e#341\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/5ea51247afecf1bf4ebfa8f2db3082e89a8bfaed\"\u003e\u003ccode\u003e5ea5124\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 4.6.0 to 4.6.1 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/340\"\u003e#340\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/2f142b7ae0b2d13fee4ba4b9fbd73a9cd5069060\"\u003e\u003ccode\u003e2f142b7\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 7.0.6 to 7.0.7 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/339\"\u003e#339\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/80d2ebdc77d2d005f408f789fe2fb1fe5f4e0265\"\u003e\u003ccode\u003e80d2ebd\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.3.0 to 5.4.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/337\"\u003e#337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/088f93122ea7c91cfdaeea7fa76ab2f850b8064d\"\u003e\u003ccode\u003e088f931\u003c/code\u003e\u003c/a\u003e 2025.01.31 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/336\"\u003e#336\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2024.12.14...2025.04.26\"\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.1 to 3.4.2\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.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.9\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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/6422af1d50f1f46624deab585424e1ac4d08ba94\"\u003e\u003ccode\u003e6422af1\u003c/code\u003e\u003c/a\u003e :pencil: update release date\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/0e60ec18eb00bfe312dde86739929165839b633c\"\u003e\u003ccode\u003e0e60ec1\u003c/code\u003e\u003c/a\u003e :bookmark: Release 3.4.2 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/614\"\u003e#614\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f6630ce3b7fd34f234759a0c7a5ca413640e8ffb\"\u003e\u003ccode\u003ef6630ce\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump pypa/cibuildwheel from 2.23.2 to 2.23.3 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/617\"\u003e#617\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/677c99953f1a728de9f88d8659abff1246a80ade\"\u003e\u003ccode\u003e677c999\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump actions/download-artifact from 4.2.1 to 4.3.0 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/618\"\u003e#618\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/960ab1e676b7ef73c8c4f36c387b5a0da21e01c0\"\u003e\u003ccode\u003e960ab1e\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump actions/setup-python from 5.5.0 to 5.6.0 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/619\"\u003e#619\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/6eb632521c9b3f92df2cd944c7c524c205abfffc\"\u003e\u003ccode\u003e6eb6325\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump github/codeql-action from 3.28.10 to 3.28.16 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/620\"\u003e#620\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/c99c0f2c33ce54e41fefcae1c4fb96fa901d5cd4\"\u003e\u003ccode\u003ec99c0f2\u003c/code\u003e\u003c/a\u003e :arrow_up: Update coverage requirement from \u0026lt;7.7,\u0026gt;=7.2.7 to \u0026gt;=7.2.7,\u0026lt;7.9 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/606\"\u003e#606\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/270f28e474db75f2a5085d6da732a90c2ac338f4\"\u003e\u003ccode\u003e270f28e\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump actions/setup-python from 5.4.0 to 5.5.0 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/607\"\u003e#607\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/d4d89a092d262a37ce427ee39ba5091ffd188f0b\"\u003e\u003ccode\u003ed4d89a0\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump pypa/cibuildwheel from 2.22.0 to 2.23.2 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/608\"\u003e#608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/905fcf5cbe93e8b59c12103217434bdbc703d105\"\u003e\u003ccode\u003e905fcf5\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump slsa-framework/slsa-github-generator from 2.0.0 to 2.1.0 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/609\"\u003e#609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.1...3.4.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `makefun` from 1.15.6 to 1.16.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/smarie/python-makefun/blob/main/docs/changelog.md\"\u003emakefun's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e1.16.0 - Support for 3.14, dropped support for \u0026lt; 3.9\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved official support for python versions \u003ccode\u003e\u0026lt;3.9\u003c/code\u003e. These versions will not run in CI anymore.\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eRuntimeError\u003c/code\u003e in tests when running on python 3.14. Added python 3.14 to CI. Fixes\n\u003ca href=\"https://redirect.github.com/smarie/python-makefun/issues/112\"\u003e#112\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/smarie/python-makefun/commit/197b14827c1b7830c0288477c007e1f1592f52ad\"\u003e\u003ccode\u003e197b148\u003c/code\u003e\u003c/a\u003e Changelog for tag, ready to release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/321a39c9a8be1497ba7dfbb9c7c16a9442ae25a6\"\u003e\u003ccode\u003e321a39c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/smarie/python-makefun/issues/118\"\u003e#118\u003c/a\u003e from smarie/feature/112_support_py314\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/39f061e17a7d7472e33cec76d162381ae82b49e3\"\u003e\u003ccode\u003e39f061e\u003c/code\u003e\u003c/a\u003e With latest versions of all actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/4771aaf910459dfabb12109cf4ae37cd089fd9d6\"\u003e\u003ccode\u003e4771aaf\u003c/code\u003e\u003c/a\u003e Changed the fix to leverage pytest-asyncio, now that we do not support python...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/498ed69f5fa22baa5300b354d419fd45be55cf6e\"\u003e\u003ccode\u003e498ed69\u003c/code\u003e\u003c/a\u003e Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/87eb2ebefa88d212e4ae75f28fc0ffc2fb9194c6\"\u003e\u003ccode\u003e87eb2eb\u003c/code\u003e\u003c/a\u003e Fixed \u003ccode\u003eRuntimeError\u003c/code\u003e in tests when running on pythn 3.14. Added python 3.14 t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/4573c65b6b8405b6194361805a44ba8d9d08c41d\"\u003e\u003ccode\u003e4573c65\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/smarie/python-makefun/issues/117\"\u003e#117\u003c/a\u003e from smarie/chore/116_gh_pages_workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/db582747d0b89ea35927176910205f3f68a429d4\"\u003e\u003ccode\u003edb58274\u003c/code\u003e\u003c/a\u003e Added gh pages workflow. Fixed \u003ca href=\"https://redirect.github.com/smarie/python-makefun/issues/116\"\u003e#116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/c8990e6a660082b42f8314f96bf7369a0f6c2463\"\u003e\u003ccode\u003ec8990e6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/smarie/python-makefun/issues/114\"\u003e#114\u003c/a\u003e from smarie/feature/py35_in_ci\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/3b1e628e9e7ecf05ea9bc6a9fb73c45563a3c24a\"\u003e\u003ccode\u003e3b1e628\u003c/code\u003e\u003c/a\u003e Removed 3.14 for now\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/smarie/python-makefun/compare/1.15.6...1.16.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pychoir` from 0.0.27 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/kajaste/pychoir/releases\"\u003epychoir's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eTwenty-ninth release\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch pipenv \u0026amp; setuptools to uv by \u003ca href=\"https://github.com/kajaste\"\u003e\u003ccode\u003e@​kajaste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kajaste/pychoir/pull/97\"\u003ekajaste/pychoir#97\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/kajaste/pychoir/compare/v0.0.28...v0.0.29\"\u003ehttps://github.com/kajaste/pychoir/compare/v0.0.28...v0.0.29\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eTwenty-eighth release\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate dev deps by \u003ca href=\"https://github.com/kajaste\"\u003e\u003ccode\u003e@​kajaste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kajaste/pychoir/pull/94\"\u003ekajaste/pychoir#94\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump dev deps by \u003ca href=\"https://github.com/kajaste\"\u003e\u003ccode\u003e@​kajaste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kajaste/pychoir/pull/95\"\u003ekajaste/pychoir#95\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs \u0026amp; Makefile update by \u003ca href=\"https://github.com/kajaste\"\u003e\u003ccode\u003e@​kajaste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kajaste/pychoir/pull/96\"\u003ekajaste/pychoir#96\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/kajaste/pychoir/compare/v0.0.27...v0.0.28\"\u003ehttps://github.com/kajaste/pychoir/compare/v0.0.27...v0.0.28\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/kajaste/pychoir/commit/bf2f254bcadf03026867a6442523549f1abb16d3\"\u003e\u003ccode\u003ebf2f254\u003c/code\u003e\u003c/a\u003e Switch pipenv \u0026amp; setuptools to uv\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kajaste/pychoir/commit/c1d251d480a47f8bc29e89765c19b00b594442b2\"\u003e\u003ccode\u003ec1d251d\u003c/code\u003e\u003c/a\u003e Docs \u0026amp; Makefile update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kajaste/pychoir/commit/f6181a037d2e791bbf9306b4210a9b4934fc1bbf\"\u003e\u003ccode\u003ef6181a0\u003c/code\u003e\u003c/a\u003e Drop 3.7, add 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kajaste/pychoir/commit/f94fdad20f981f344adbdc07b9aa1cb00795b671\"\u003e\u003ccode\u003ef94fdad\u003c/code\u003e\u003c/a\u003e Bump dev deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kajaste/pychoir/commit/5a2ebd7ca625779b7beaab71d50631f9529f21eb\"\u003e\u003ccode\u003e5a2ebd7\u003c/code\u003e\u003c/a\u003e Update dev deps\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/kajaste/pychoir/compare/v0.0.27...v0.0.29\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `urllib3` from 2.3.0 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/urllib3/urllib3/releases\"\u003eurllib3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.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\u003ch1\u003eFeatures\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eApplied PEP 639 by specifying the license fields in pyproject.toml. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3522\"\u003e#3522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdated exceptions to save and restore more properties during the pickle/serialization process. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3567\"\u003e#3567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003everify_flags\u003c/code\u003e option to \u003ccode\u003ecreate_urllib3_context\u003c/code\u003e with a default of \u003ccode\u003eVERIFY_X509_PARTIAL_CHAIN\u003c/code\u003e and \u003ccode\u003eVERIFY_X509_STRICT\u003c/code\u003e for Python 3.13+. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3571\"\u003e#3571\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eBugfixes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug with partial reads of streaming data in Emscripten. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3555\"\u003e#3555\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eMisc\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSwitched to uv for installing development dependecies. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3550\"\u003e#3550\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved the \u003ccode\u003emultiple.intoto.jsonl\u003c/code\u003e asset from GitHub releases. Attestation of release files since v2.3.0 can be found on PyPI. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3566\"\u003e#3566\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/urllib3/urllib3/blob/main/CHANGES.rst\"\u003eurllib3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.4.0 (2025-04-10)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eApplied PEP 639 by specifying the license fields in pyproject.toml. (\u003ccode\u003e[#3522](https://github.com/urllib3/urllib3/issues/3522) \u0026lt;https://github.com/urllib3/urllib3/issues/3522\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eUpdated exceptions to save and restore more properties during the pickle/serialization process. (\u003ccode\u003e[#3567](https://github.com/urllib3/urllib3/issues/3567) \u0026lt;https://github.com/urllib3/urllib3/issues/3567\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003everify_flags\u003c/code\u003e option to \u003ccode\u003ecreate_urllib3_context\u003c/code\u003e with a default of \u003ccode\u003eVERIFY_X509_PARTIAL_CHAIN\u003c/code\u003e and \u003ccode\u003eVERIFY_X509_STRICT\u003c/code\u003e for Python 3.13+. (\u003ccode\u003e[#3571](https://github.com/urllib3/urllib3/issues/3571) \u0026lt;https://github.com/urllib3/urllib3/issues/3571\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug with partial reads of streaming data in Emscripten. (\u003ccode\u003e[#3555](https://github.com/urllib3/urllib3/issues/3555) \u0026lt;https://github.com/urllib3/urllib3/issues/3555\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSwitched to uv for installing development dependecies. (\u003ccode\u003e[#3550](https://github.com/urllib3/urllib3/issues/3550) \u0026lt;https://github.com/urllib3/urllib3/issues/3550\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eRemoved the \u003ccode\u003emultiple.intoto.jsonl\u003c/code\u003e asset from GitHub releases. Attestation of release files since v2.3.0 can be found on PyPI. (\u003ccode\u003e[#3566](https://github.com/urllib3/urllib3/issues/3566) \u0026lt;https://github.com/urllib3/urllib3/issues/3566\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/a5ff7ac3bbb8659e2ec3ed41dd43889f06a7d7bc\"\u003e\u003ccode\u003ea5ff7ac\u003c/code\u003e\u003c/a\u003e Release 2.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/a135db29f72f828b0ef7314b856d19696a6f48ba\"\u003e\u003ccode\u003ea135db2\u003c/code\u003e\u003c/a\u003e Upgrade memray and coverage to fix macOS tests (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3589\"\u003e#3589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/8f40e71612505a9985b0a58ad793cd84ec97614a\"\u003e\u003ccode\u003e8f40e71\u003c/code\u003e\u003c/a\u003e Upgrade the publishing action to get correct licensing info on PyPI (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3585\"\u003e#3585\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/3ff4e49ddf889554cf295b4a2e1189d066b60c71\"\u003e\u003ccode\u003e3ff4e49\u003c/code\u003e\u003c/a\u003e Add a link to the 2024 annual report (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3586\"\u003e#3586\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/75709c1dbd6770618f061fd0b8a6950c7741f17b\"\u003e\u003ccode\u003e75709c1\u003c/code\u003e\u003c/a\u003e Set verify flags in \u003ccode\u003ecreate_urllib3_context\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3577\"\u003e#3577\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/5c8f82a2f1c1b7a8360f0c84b5a88f25df070811\"\u003e\u003ccode\u003e5c8f82a\u003c/code\u003e\u003c/a\u003e Bump astral-sh/setup-uv from 5.3.0 to 5.4.1 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3580\"\u003e#3580\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/42e90d894b30ef8b897708eb1cdfa24e83cf5067\"\u003e\u003ccode\u003e42e90d8\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.4.0 to 5.5.0 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3579\"\u003e#3579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/3e8f2db735dcaced6a3b777aa1966f40c018af7c\"\u003e\u003ccode\u003e3e8f2db\u003c/code\u003e\u003c/a\u003e Stop using Ubuntu 20.04 and 22.04 in CI (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3570\"\u003e#3570\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/e29db82a6df5f9a9acbb6997899f93bda79bb61e\"\u003e\u003ccode\u003ee29db82\u003c/code\u003e\u003c/a\u003e Update exceptions to have more of their attributes pickled (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3572\"\u003e#3572\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/f8a0c4360ad67aefd79317279ee90c72d5d18697\"\u003e\u003ccode\u003ef8a0c43\u003c/code\u003e\u003c/a\u003e Add PyPy 3.11 to CI\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/urllib3/urllib3/compare/2.3.0...2.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.6.10 to 7.8.2\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.8.2 — 2025-05-23\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWheels are provided for Windows ARM64 on Python 3.11, 3.12, and 3.13.\nThanks, \u003ccode\u003eFinn Womack \u0026lt;pull 1972_\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1971: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/1971\"\u003enedbat/coveragepy#1971\u003c/a\u003e\n.. _pull 1972: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/1972\"\u003enedbat/coveragepy#1972\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-8-1:\u003c/p\u003e\n\u003ch2\u003eVersion 7.8.1 — 2025-05-21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eA number of EncodingWarnings were fixed that could appear if you've enabled\nPYTHONWARNDEFAULTENCODING, fixing \u003ccode\u003eissue 1966\u003c/code\u003e\u003cem\u003e.  Thanks, \u003ccode\u003eHenry Schreiner \u0026lt;pull 1967_\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a race condition when using sys.monitoring with free-threading Python,\nclosing \u003ccode\u003eissue 1970\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1966: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1966\"\u003enedbat/coveragepy#1966\u003c/a\u003e\n.. _pull 1967: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/1967\"\u003enedbat/coveragepy#1967\u003c/a\u003e\n.. _issue 1970: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1970\"\u003enedbat/coveragepy#1970\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-8-0:\u003c/p\u003e\n\u003ch2\u003eVersion 7.8.0 — 2025-03-30\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a new \u003ccode\u003esource_dirs\u003c/code\u003e setting for symmetry with the existing\n\u003ccode\u003esource_pkgs\u003c/code\u003e setting. It's preferable to the existing \u003ccode\u003esource\u003c/code\u003e setting,\nbecause you'll get a clear error when directories don't exist. Fixes \u003ccode\u003eissue 1942\u003c/code\u003e\u003cem\u003e.  Thanks, \u003ccode\u003eJeremy Fleischman \u0026lt;pull 1943_\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the PYTHONSAFEPATH environment variable new in Python 3.11 is properly\nsupported, closing \u003ccode\u003eissue 1696\u003c/code\u003e\u003cem\u003e.  Thanks, \u003ccode\u003ePhilipp A. \u0026lt;pull 1700_\u0026gt;\u003c/code\u003e\u003c/em\u003e.  This\nworks properly except for a detail when using the \u003ccode\u003ecoverage\u003c/code\u003e command on\nWindows.  There you can use \u003ccode\u003epython -m coverage\u003c/code\u003e instead if you need exact\nemulation.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1696: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1696\"\u003enedbat/coveragepy#1696\u003c/a\u003e\n.. _pull 1700: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/1700\"\u003enedbat/coveragepy#1700\u003c/a\u003e\n.. _issue 1942: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1942\"\u003enedbat/coveragepy#1942\u003c/a\u003e\n.. _pull 1943: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/1943\"\u003enedbat/coveragepy#1943\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-7-1:\u003c/p\u003e\n\u003ch2\u003eVersion 7.7.1 — 2025-03-21\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/51ab2e503faebf7b302850f0b0329103f0efd1f4\"\u003e\u003ccode\u003e51ab2e5\u003c/code\u003e\u003c/a\u003e build: have to keep expected dist counts in sync\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/be7bbf236aaec0875e73948b2f50d6ec9ac97311\"\u003e\u003ccode\u003ebe7bbf2\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.8.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/3cee850f3b8a7bff52fa4dd5575abe8b67b1f2ec\"\u003e\u003ccode\u003e3cee850\u003c/code\u003e\u003c/a\u003e docs: prep for 7.8.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/39bc6b0dc8550d1457a60683200cbdfb6786ffc6\"\u003e\u003ccode\u003e39bc6b0\u003c/code\u003e\u003c/a\u003e docs: provide more details if the kit matrix is edited.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/a608fb310d0eb34c6d6d004a1b62b01c6f8afd33\"\u003e\u003ccode\u003ea608fb3\u003c/code\u003e\u003c/a\u003e build: add support for Windows arm64 (\u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1972\"\u003e#1972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/2fe622506356424406ddcac01bf1775eca5a92d3\"\u003e\u003ccode\u003e2fe6225\u003c/code\u003e\u003c/a\u003e build: run \u003ccode\u003etox lint\u003c/code\u003e if actions have changed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/3d93a78e1df4b9ab88bbf03f84de40873ddb5541\"\u003e\u003ccode\u003e3d93a78\u003c/code\u003e\u003c/a\u003e docs: docs need scriv for making github releases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/0c443a2775aa64fda77c6e34fcc5144f5000db9c\"\u003e\u003ccode\u003e0c443a2\u003c/code\u003e\u003c/a\u003e build: bump version to 7.8.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/ed98b8708ccc380bcb1490cd73b3e476f69c234f\"\u003e\u003ccode\u003eed98b87\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/b98bc9b9878ff8c23bcaa0d7c5b2a55269c6783f\"\u003e\u003ccode\u003eb98bc9b\u003c/code\u003e\u003c/a\u003e docs: prep for 7.8.1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nedbat/coveragepy/compare/7.6.10...7.8.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `exceptiongroup` from 1.2.2 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/agronholm/exceptiongroup/releases\"\u003eexceptiongroup's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003e**kwargs\u003c/code\u003e to function and method signatures as appropriate to match the signatures in the standard library\u003c/li\u003e\n\u003cli\u003eIn line with the stdlib typings in typeshed, updated \u003ccode\u003e(Base)ExceptionGroup\u003c/code\u003e generic types to define defaults for their generic arguments (defaulting to \u003ccode\u003eBaseExceptionGroup[BaseException]\u003c/code\u003e and \u003ccode\u003eExceptionGroup[Exception]\u003c/code\u003e) (PR by \u003ca href=\"https://github.com/mikenerone\"\u003e\u003ccode\u003e@​mikenerone\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eBaseExceptionGroup.__init__()\u003c/code\u003e to directly call \u003ccode\u003eBaseException.__init__()\u003c/code\u003e instead of the superclass \u003ccode\u003e__init__()\u003c/code\u003e in order to emulate the CPython behavior (broken or not) (PR by \u003ca href=\"https://github.com/cfbolz\"\u003e\u003ccode\u003e@​cfbolz\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged the \u003ccode\u003eexceptions\u003c/code\u003e attribute to always return the same tuple of exceptions, created from the original exceptions sequence passed to \u003ccode\u003eBaseExceptionGroup\u003c/code\u003e to match CPython behavior (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/143\"\u003e#143\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/agronholm/exceptiongroup/blob/main/CHANGES.rst\"\u003eexceptiongroup's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eVersion history\u003c/h1\u003e\n\u003cp\u003eThis library adheres to \u003ccode\u003eSemantic Versioning 2.0 \u0026lt;http://semver.org/\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e1.3.0\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003e**kwargs\u003c/code\u003e to function and method signatures as appropriate to match the\nsignatures in the standard library\u003c/li\u003e\n\u003cli\u003eIn line with the stdlib typings in typeshed, updated \u003ccode\u003e(Base)ExceptionGroup\u003c/code\u003e generic\ntypes to define defaults for their generic arguments (defaulting to\n\u003ccode\u003eBaseExceptionGroup[BaseException]\u003c/code\u003e and \u003ccode\u003eExceptionGroup[Exception]\u003c/code\u003e)\n(PR by \u003ca href=\"https://github.com/mikenerone\"\u003e\u003ccode\u003e@​mikenerone\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eBaseExceptionGroup.__init__()\u003c/code\u003e to directly call\n\u003ccode\u003eBaseException.__init__()\u003c/code\u003e instead of the superclass \u003ccode\u003e__init__()\u003c/code\u003e in order to\nemulate the CPython behavior (broken or not) (PR by \u003ca href=\"https://github.com/cfbolz\"\u003e\u003ccode\u003e@​cfbolz\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged the \u003ccode\u003eexceptions\u003c/code\u003e attribute to always return the same tuple of exceptions,\ncreated from the original exceptions sequence passed to \u003ccode\u003eBaseExceptionGroup\u003c/code\u003e to\nmatch CPython behavior\n(\u003ccode\u003e[#143](https://github.com/agronholm/exceptiongroup/issues/143) \u0026lt;https://github.com/agronholm/exceptiongroup/issues/143\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e1.2.2\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved an \u003ccode\u003eassert\u003c/code\u003e in \u003ccode\u003eexceptiongroup._formatting\u003c/code\u003e that caused compatibility\nissues with Sentry (\u003ccode\u003e[#123](https://github.com/agronholm/exceptiongroup/issues/123) \u0026lt;https://github.com/agronholm/exceptiongroup/issues/123\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e1.2.1\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated the copying of \u003ccode\u003e__notes__\u003c/code\u003e to match CPython behavior (PR by CF Bolz-Tereick)\u003c/li\u003e\n\u003cli\u003eCorrected the type annotation of the exception handler callback to accept a\n\u003ccode\u003eBaseExceptionGroup\u003c/code\u003e instead of \u003ccode\u003eBaseException\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFixed type errors on Python \u0026lt; 3.10 and the type annotation of \u003ccode\u003esuppress()\u003c/code\u003e\n(PR by John Litborn)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e1.2.0\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded special monkeypatching if \u003ccode\u003eApport \u0026lt;https://github.com/canonical/apport\u0026gt;\u003c/code\u003e_ has\noverridden \u003ccode\u003esys.excepthook\u003c/code\u003e so it will format exception groups correctly\n(PR by John Litborn)\u003c/li\u003e\n\u003cli\u003eAdded a backport of \u003ccode\u003econtextlib.suppress()\u003c/code\u003e from Python 3.12.1 which also handles\nsuppressing exceptions inside exception groups\u003c/li\u003e\n\u003cli\u003eFixed bare \u003ccode\u003eraise\u003c/code\u003e in a handler reraising the original naked exception rather than\nan exception group which is what is raised when you do a \u003ccode\u003eraise\u003c/code\u003e in an \u003ccode\u003eexcept*\u003c/code\u003e\nhandler\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e1.1.3\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ecatch()\u003c/code\u003e now raises a \u003ccode\u003eTypeError\u003c/code\u003e if passed an async exception handler instead of\njust giving a \u003ccode\u003eRuntimeWarning\u003c/code\u003e about the coroutine never being awaited. (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/66\"\u003e#66\u003c/a\u003e, PR by\nJohn Litborn)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/77fba8a871408ff2c48f536e5e73b1918239ba5f\"\u003e\u003ccode\u003e77fba8a\u003c/code\u003e\u003c/a\u003e Added the release version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/5e153aa379ac53af79cc7f5e287f77929cb4d0dc\"\u003e\u003ccode\u003e5e153aa\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Migrated test dependencies to dependency groups\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/5000bfea208ad59e3a20e2fb91a513ad559711b1\"\u003e\u003ccode\u003e5000bfe\u003c/code\u003e\u003c/a\u003e Migrated tox configuration to native TOML\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/427220d67a52585e98575103b090b5fdaf87a899\"\u003e\u003ccode\u003e427220d\u003c/code\u003e\u003c/a\u003e Updated pytest options\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/4ca264fa3605d52067c20b351a0d3b947fa1f363\"\u003e\u003ccode\u003e4ca264f\u003c/code\u003e\u003c/a\u003e Migrated test dependencies to dependency groups\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/163c3a8cb27f8a5325258b5a83e7cf8fc002c3b7\"\u003e\u003ccode\u003e163c3a8\u003c/code\u003e\u003c/a\u003e Marked test_exceptions_mutate_original_sequence as xfail on pypy3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/a1765740db2d55d1eb91d67a8fbbb355caf7881b\"\u003e\u003ccode\u003ea176574\u003c/code\u003e\u003c/a\u003e Always create the exceptions tuple at init and return it from the exceptions ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/550b79621cc35892413fa91903a1d6c7951d0449\"\u003e\u003ccode\u003e550b796\u003c/code\u003e\u003c/a\u003e Added BaseExceptionGroup.\u003cstrong\u003einit\u003c/strong\u003e, following CPython (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/142\"\u003e#142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/2a84dfd5599bca0c653143f0f4252d38afac9867\"\u003e\u003ccode\u003e2a84dfd\u003c/code\u003e\u003c/a\u003e Added typevar defaults to (Base)ExceptionGroup (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/147\"\u003e#147\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/fb9133b495fc82bc2907e8cfbdff6c6dc3087e2f\"\u003e\u003ccode\u003efb9133b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/145\"\u003e#145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/exceptiongroup/compare/1.2.2...1.3.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.16.1 to 3.18.0\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.18.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIndicate that locks are exclusive/write locks. by \u003ca href=\"https://github.com/bicarlsen\"\u003e\u003ccode\u003e@​bicarlsen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/394\"\u003etox-dev/filelock#394\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport fcntl check on Emscripten by \u003ca href=\"https://github.com/juntyr\"\u003e\u003ccode\u003e@​juntyr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/398\"\u003etox-dev/filelock#398\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/bicarlsen\"\u003e\u003ccode\u003e@​bicarlsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/394\"\u003etox-dev/filelock#394\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/juntyr\"\u003e\u003ccode\u003e@​juntyr\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/398\"\u003etox-dev/filelock#398\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.17.0...3.18.0\"\u003ehttps://github.com/tox-dev/filelock/compare/3.17.0...3.18.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDrop 3.8\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.16.1...3.17.0\"\u003ehttps://github.com/tox-dev/filelock/compare/3.16.1...3.17.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/129a1efb6a0e1c40ff7c0b094db1b888fcb46d93\"\u003e\u003ccode\u003e129a1ef\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/405\"\u003e#405\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/717d7e018c6e3c3cd00a0f35c775ebbbafda41cc\"\u003e\u003ccode\u003e717d7e0\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/403\"\u003e#403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/efba779022cf62956efe88ea3c65620098fbf75c\"\u003e\u003ccode\u003eefba779\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/401\"\u003e#401\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/82f5a2d6c260a43dc88b51121087bdfa21fb205f\"\u003e\u003ccode\u003e82f5a2d\u003c/code\u003e\u003c/a\u003e Support fcntl check on Emscripten (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/398\"\u003e#398\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/468ba431d1d40b494724f3269d3241a5d1ddd411\"\u003e\u003ccode\u003e468ba43\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/396\"\u003e#396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/0ac68266c62f3b7ae1bc5d4a35c88f1d3913b98d\"\u003e\u003ccode\u003e0ac6826\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/395\"\u003e#395\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/b5f98a66d0fb59e62894ad2b537deb877279adda\"\u003e\u003ccode\u003eb5f98a6\u003c/code\u003e\u003c/a\u003e Indicate that locks are exclusive/write locks. (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/394\"\u003e#394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/3c9b68049961d1b4aade1cc806e731f90b5d2c24\"\u003e\u003ccode\u003e3c9b680\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/393\"\u003e#393\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/2760759ac82f7e8583f708d9bf801c3a79ccd340\"\u003e\u003ccode\u003e2760759\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/18c9571afba87bb6329aef9c2c7798cbe8adfea5\"\u003e\u003ccode\u003e18c9571\u003c/code\u003e\u003c/a\u003e Bump pypa/gh-action-pypi-publish from 1.12.3 to 1.12.4 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/390\"\u003e#390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/py-filelock/compare/3.16.1...3.18.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `freezegun` from 1.5.1 to 1.5.2\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.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\u003c/blockquote\u003e\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/ba06fa43d18c24e6bd4b3bacb7edcb547e7b30ae\"\u003e\u003ccode\u003eba06fa4\u003c/code\u003e\u003c/a\u003e Increase version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/da2885db0c6bbef0d17569ddc9b0b0c7ef852f8c\"\u003e\u003ccode\u003eda2885d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/spulec/freezegun/issues/572\"\u003e#572\u003c/a\u003e from jayaddison/debian-bug-1106274/tests-datetime-tod...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/695aa15668c251c3180d0b943b62c7f2f73b4dbe\"\u003e\u003ccode\u003e695aa15\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into debian-bug-1106274/tests-datetime-today-tz-localiz...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/132ecdbe6e33f603b8d65e7160cdf8200e06391a\"\u003e\u003ccode\u003e132ecdb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/spulec/freezegun/issues/573\"\u003e#573\u003c/a\u003e from spulec/admin/indicate-py-13-compat\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/f9235ae8a00941f2d8a370717af2641a7bf268e9\"\u003e\u003ccode\u003ef9235ae\u003c/code\u003e\u003c/a\u003e Mark support for Python 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/9072d08e3ee22e98e771d8598d67373019a26fed\"\u003e\u003ccode\u003e9072d08\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/spulec/freezegun/issues/544\"\u003e#544\u003c/a\u003e from spulec/remove-py-37-support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/74a69142ddfa3ef6ca060a921938c5cda6da5d16\"\u003e\u003ccode\u003e74a6914\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/spulec/freezegun/issues/565\"\u003e#565\u003c/a\u003e from joethesaint/improve-documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/1343509cd9e53a1777fec5ccbdd7bf85a809f051\"\u003e\u003ccode\u003e1343509\u003c/code\u003e\u003c/a\u003e README: update example code for consistency with tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/9468f708256344321ff8e0fc1c783576e7da44ac\"\u003e\u003ccode\u003e9468f70\u003c/code\u003e\u003c/a\u003e Tests: fixup: replace \u003ccode\u003edatetime.today\u003c/code\u003e method calls with \u003ccode\u003edatetime.date\u003c/code\u003e clas...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/9e4012ad4565c0cf2505410134f6a2ca745a2c3d\"\u003e\u003ccode\u003e9e4012a\u003c/code\u003e\u003c/a\u003e Tests: restore some \u003ccode\u003edatetime.date\u003c/code\u003e-based comparisons\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/spulec/freezegun/compare/1.5.1...1.5.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `identify` from 2.6.5 to 2.6.12\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/51e358dd52e70925011f81db738d441617e3e0f4\"\u003e\u003ccode\u003e51e358d\u003c/code\u003e\u003c/a\u003e v2.6.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/00310d304818e0727f3894fd55ff0f4e834e1db8\"\u003e\u003ccode\u003e00310d3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/identify/issues/519\"\u003e#519\u003c/a\u003e from energyworldnet/feature/msbuild\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/a604a3a4a4ec822f5082a21664fdf391f512d961\"\u003e\u003ccode\u003ea604a3a\u003c/code\u003e\u003c/a\u003e Drop ambiguous .proj extension\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/bdd2643326d8acf348e35ca76ddc233da3f0380c\"\u003e\u003ccode\u003ebdd2643\u003c/code\u003e\u003c/a\u003e v2.6.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/d084242645bcec76d344c37faafd2f8c55081cd2\"\u003e\u003ccode\u003ed084242\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'energyworldnet/feature/xslt'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/f7947091c937ef9a2e1ab1e7be6033acafe4c168\"\u003e\u003ccode\u003ef794709\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/identify/issues/518\"\u003e#518\u003c/a\u003e from pre-commit/mxr-patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/a8cce72fd03e9e1d62c7b749b33903361ee42f54\"\u003e\u003ccode\u003ea8cce72\u003c/code\u003e\u003c/a\u003e Identify XSLT files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/4cf2cc04a94df881eedfede07932a4d95f346f37\"\u003e\u003ccode\u003e4cf2cc0\u003c/code\u003e\u003c/a\u003e Identify common MSBuild files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/4e55b743565fe30a3f7569e02ddfe71abf5144fc\"\u003e\u003ccode\u003e4e55b74\u003c/code\u003e\u003c/a\u003e Add support for \u003ccode\u003e.sqlfluff\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/e200468dd1b921e75a300545bd1e28abe1d5985c\"\u003e\u003ccode\u003ee200468\u003c/code\u003e\u003c/a\u003e v2.6.10\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/identify/compare/v2.6.5...v2.6.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `iniconfig` from 2.0.0 to 2.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/iniconfig/releases\"\u003einiconfig's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.1.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/26\"\u003e#26\u003c/a\u003e - list individuals in license file by \u003ca href=\"https://github.com/RonnyPfannschmidt\"\u003e\u003ccode\u003e@​RonnyPfannschmidt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/52\"\u003epytest-dev/iniconfig#52\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRun tests in CI by \u003ca href=\"https://github.com/nicoddemus\"\u003e\u003ccode\u003e@​nicoddemus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/53\"\u003epytest-dev/iniconfig#53\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003epypa/gh-action-pypi-publish@release/v1\u003c/code\u003e @ GHA by \u003ca href=\"https://github.com/webknjaz\"\u003e\u003ccode\u003e@​webknjaz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/54\"\u003epytest-dev/iniconfig#54\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12-3.13 and drop EOL 3.7 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/56\"\u003epytest-dev/iniconfig#56\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/nicoddemus\"\u003e\u003ccode\u003e@​nicoddemus\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/53\"\u003epytest-dev/iniconfig#53\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/webknjaz\"\u003e\u003ccode\u003e@​webknjaz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/54\"\u003epytest-dev/iniconfig#54\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pytest-dev/iniconfig/compare/v2.0.0...v2.1.0\"\u003ehttps://github.com/pytest-dev/iniconfig/compare/v2.0.0...v2.1.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/pytest-dev/iniconfig/blob/main/CHANGELOG\"\u003einiconfig's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.1.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix artifact building - pin minimal version of hatch\u003c/li\u003e\n\u003cli\u003edrop eol python 3.8\u003c/li\u003e\n\u003cli\u003eadd python 3.12 and 3.13\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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/iniconfig/commit/34793a6417e35e511d0c17ffdd8a02ade0f9568e\"\u003e\u003ccode\u003e34793a6\u003c/code\u003e\u003c/a\u003e pre-commit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/136435d0a4345bb048dca98e7c2f4e938d74521b\"\u003e\u003ccode\u003e136435d\u003c/code\u003e\u003c/a\u003e update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/0bb99ad0f7a6b21d5eb24214a260132317a11e43\"\u003e\u003ccode\u003e0bb99ad\u003c/code\u003e\u003c/a\u003e fix \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/62\"\u003e#62\u003c/a\u003e: require a minimal hatch version with correct metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/16793eaddac67de0b8d621ae4e42e05b927e8d67\"\u003e\u003ccode\u003e16793ea\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/56\"\u003e#56\u003c/a\u003e from hugovk/add-3.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/3dc2b2d6bf03e4b7cc92949a8ef0983fdd7ee442\"\u003e\u003ccode\u003e3dc2b2d\u003c/code\u003e\u003c/a\u003e Add support for Python 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/2eb8abfd9d3843100d7f138efe5bcd989a885024\"\u003e\u003ccode\u003e2eb8abf\u003c/code\u003e\u003c/a\u003e Bump GitHub Actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/8c4bb5bf57dde613c8cdcf0e02a09b2fff630907\"\u003e\u003ccode\u003e8c4bb5b\u003c/code\u003e\u003c/a\u003e Set python-version for pre-commit to remove CI warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/58b22b2d672564ff1925df51f4a8e07486765ed2\"\u003e\u003ccode\u003e58b22b2\u003c/code\u003e\u003c/a\u003e Drop support for EOL Python 3.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/4a53042252a109bcdd64422058de91c5dffff763\"\u003e\u003ccode\u003e4a53042\u003c/code\u003e\u003c/a\u003e Add support for Python 3.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/9cae43103df70bac6fde7b9f35ad11a9f1be0cb4\"\u003e\u003ccode\u003e9cae431\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/54\"\u003e#54\u003c/a\u003e from webknjaz/patch-1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/iniconfig/compare/v2.0.0...v2.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `junit-xml` from 1.8 to 1.9\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/kyrus/python-junit-xml/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mutmut` from 3.2.2 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/boxed/mutmut/blob/main/HISTORY.rst\"\u003emutmut's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e3.3.0\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Python 3.13 compatibility!\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eNew argument \u003ccode\u003e--show-killed\u003c/code\u003e for \u003ccode\u003emutmut browse\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix to avoid accidentally importing the un-mutated original code\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eHandle segfault for mutant subprocesses\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded mutations for string literals\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded mutations for common string methods\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFaster mutant generation via subprocesses\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eself\u003c/code\u003e parameter for mutated class methods\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix trampoline generation for function calls with 'orig' or 'mutants' as argument names.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCopy full source directory before creating mutants\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved error message when forced fail test fails\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed issue with spaces in the python executable path\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDo not mutate \u003ccode\u003e__new__\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAnnotate mutant dicts (and fixes compatibility with Pydantic)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eReplaced parso with LibCST\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e3.2.3\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eCrash with error message on invalid imports for \u003ccode\u003esrc\u003c/code\u003e module\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAutodetect simpler project configurations with \u003ccode\u003etest_*.py\u003c/code\u003e in the dir directly\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eHandle filenames (as opposed to dirnames) in paths_to_mutate\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAlso copy \u003ccode\u003esetup.cfg\u003c/code\u003e and \u003ccode\u003epyproject.toml\u003c/code\u003e by default\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eHandle single line \u003ccode\u003epaths_to_mutate\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/boxed/mutmut/commit/b124c6ad46b0a9a048b5e47c8b7f93d33a9f2e6a\"\u003e\u003ccode\u003eb124c6a\u003c/code\u003e\u003c/a\u003e Release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/e1110fff43b8864802a07cadf5b54b73ab789aad\"\u003e\u003ccode\u003ee1110ff\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/boxed/mutmut/issues/386\"\u003e#386\u003c/a\u003e from CHB-0r1s/main\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/e3736b152c0a40881d3b57319457a755e30c7651\"\u003e\u003ccode\u003ee3736b1\u003c/code\u003e\u003c/a\u003e feat(tests): Add nested attribute access test cases for 'a.b.lower()' -\u0026gt; 'a.b...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/c481bf17e2b0bca22161327c98f21d57e18717bf\"\u003e\u003ccode\u003ec481bf1\u003c/code\u003e\u003c/a\u003e fix: some libcst best practice\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/092912c3332c4d9139453cb6f23b76fae1ef869c\"\u003e\u003ccode\u003e092912c\u003c/code\u003e\u003c/a\u003e fix(tests): This test included string methods functional as upper(), so in si...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/d65d70c1d2b4c4bd0b849e23afcb71fcdc5939be\"\u003e\u003ccode\u003ed65d70c\u003c/code\u003e\u003c/a\u003e feat(str_call_mut): add str methods call mutations and tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/b7b4f90ca5969442b7a56abd4d8c7e62708a5cc6\"\u003e\u003ccode\u003eb7b4f90\u003c/code\u003e\u003c/a\u003e Add .upper() .lower() and .capitalize() as mutations (\u003ca href=\"https://redirect.github.com/boxed/mutmut/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/b41c2b3eef47a9d9b748667e5641d2e69424988f\"\u003e\u003ccode\u003eb41c2b3\u003c/code\u003e\u003c/a\u003e Set process start_method to fork for MacOS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/b42824d724d62421b804ddcb13a2ffc100f7337f\"\u003e\u003ccode\u003eb42824d\u003c/code\u003e\u003c/a\u003e .\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/a732ffb4ab81f54482ac750a0480f5998e4e8490\"\u003e\u003ccode\u003ea732ffb\u003c/code\u003e\u003c/a\u003e Forgot to update Stats\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boxed/mutmut/compare/3.2.2...3.3.0\"\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 `platformdirs` from 4.3.6 to 4.3.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/platformdirs/releases\"\u003eplatformdirs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.3.8\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd missing examples and fix order of examples in README by \u003ca href=\"https://github.com/gene1wood\"\u003e\u003ccode\u003e@​gene1wood\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/355\"\u003etox-dev/platformdirs#355\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gene1wood\"\u003e\u003ccode\u003e@​gene1wood\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/355\"\u003etox-dev/platformdirs#355\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.3.7...4.3.8\"\u003ehttps://github.com/tox-dev/platformdirs/compare/4.3.7...4.3.8\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.3.7\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChunk dependabot updates into a single PR by \u003ca href=\"https://github.com/ofek\"\u003e\u003ccode\u003e@​ofek\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/311\"\u003etox-dev/platformdirs#311\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 3.8 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/330\"\u003etox-dev/platformdirs#330\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.3.6...4.3.7\"\u003ehttps://github.com/tox-dev/platformdirs/compare/4.3.6...4.3.7\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/22089f1e1ff477037cd7b3e03ad38ae2bf251031\"\u003e\u003ccode\u003e22089f1\u003c/code\u003e\u003c/a\u003e Add missing examples and fix order of examples in README (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/29398b1ef0d602929102b5a3cc4aca25ff954f2a\"\u003e\u003ccode\u003e29398b1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/354\"\u003e#354\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/70114b05f1144a451247a465b65caa34d9a88375\"\u003e\u003ccode\u003e70114b0\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/353\"\u003e#353\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/48916117e8d756a51468d6ead75aa645a6a378c6\"\u003e\u003ccode\u003e4891611\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/351\"\u003e#351\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/707be6f8dd2784d092f6de6530f6c0d64faee2f3\"\u003e\u003ccode\u003e707be6f\u003c/code\u003e\u003c/a\u003e Bump astral-sh/setup-uv from 5 to 6 in the all group (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/352\"\u003e#352\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/5519a4fa93059949cf1078fac01cf5dce12c3b50\"\u003e\u003ccode\u003e5519a4f\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/349\"\u003e#349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/063275e097e2910d56291b168e5d827237be5cc5\"\u003e\u003ccode\u003e063275e\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/346\"\u003e#346\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/39fc38448d9d8a5a5be489115122669a76403012\"\u003e\u003ccode\u003e39fc384\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/345\"\u003e#345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/00c695b99a2776e0f271bfcb43d15f908bbf361b\"\u003e\u003ccode\u003e00c695b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/342\"\u003e#342\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/6a81b38d7926f8ba99ebf82c837034bdd8d27039\"\u003e\u003ccode\u003e6a81b38\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/341\"\u003e#341\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.3.6...4.3.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pluggy` from 1.5.0 to 1.6.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pluggy/blob/main/CHANGELOG.rst\"\u003epluggy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003epluggy 1.6.0 (2025-05-15)\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#556](https://github.com/pytest-dev/pluggy/issues/556) \u0026lt;https://github.com/pytest-dev/pluggy/issues/556\u0026gt;\u003c/code\u003e_: Python 3.8 is no longer supported.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003e[#504](https://github.com/pytest-dev/pluggy/issues/504) \u0026lt;https://github.com/pytest-dev/pluggy/issues/504\u0026gt;\u003c/code\u003e_: Fix a regression in pluggy 1.1.0 where using :func:\u003ccode\u003eresult.get_result() \u0026lt;pluggy.Result.get_result\u0026gt;\u003c/code\u003e on the same failed :class:\u003ccode\u003e~pluggy.Result\u003c/code\u003e causes the exception's traceback to get longer and longer.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003e[#544](https://github.com/pytest-dev/pluggy/issues/544) \u0026lt;https://github.com/pytest-dev/pluggy/issues/544\u0026gt;\u003c/code\u003e_: Correctly pass :class:\u003ccode\u003eStopIteration\u003c/code\u003e through hook wrappers.\u003c/p\u003e\n\u003cp\u003eRaising a :class:\u003ccode\u003eStopIteration\u003c/code\u003e in a generator triggers a :class:\u003ccode\u003eRuntimeError\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eIf the :class:\u003ccode\u003eRuntimeError\u003c/code\u003e of a generator has the passed in :class:\u003ccode\u003eStopIteration\u003c/code\u003e as cause\nresume with that :class:\u003ccode\u003eStopIteration\u003c/code\u003e as normal exception instead of failing with the :class:\u003ccode\u003eRuntimeError\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003e[#573](https://github.com/pytest-dev/pluggy/issues/573) \u0026lt;https://github.com/pytest-dev/pluggy/issues/573\u0026gt;\u003c/code\u003e_: Fix python 3.14 SyntaxError by rearranging code.\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/pluggy/commit/fd08ab5f811a9b2fa9124ae8cbbd393221151e2c\"\u003e\u003ccode\u003efd08ab5\u003c/code\u003e\u003c/a\u003e Preparing release 1.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pluggy/commit/c240362152d6f354a4056bfd6d28560e226fb70b\"\u003e\u003ccode\u003ec240362\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pytest-dev/pluggy/issues/578\"\u003e#578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pluggy/commit/0ceb558860b5e228b67adbe8c19a368802e7d324\"\u003e\u003ccode\u003e0ceb558\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.g...\n\n_Description has been truncated_","html_url":"https://github.com/github/annotated-logger/pull/60","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/github%2Fannotated-logger/issues/60","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/60/packages"}],"issue_packages":[{"old_version":"0.0.29","new_version":"0.0.30","update_type":"patch","path":null,"pr_created_at":"2026-04-26T21:05:13.000Z","version_change":"0.0.29 → 0.0.30","issue":{"uuid":"4331979472","node_id":"PR_kwDOMt9I9c7VxRRl","number":130,"state":"closed","title":"[pip] (deps): Bump the dev-dependencies group across 1 directory with 17 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-05-10T21:04:32.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-26T21:05:13.000Z","updated_at":"2026-05-10T21:04:34.000Z","time_to_close":1209559,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"[pip] (deps): Bump","group_name":"dev-dependencies","update_count":17,"packages":[{"name":"python-json-logger","old_version":"4.0.0","new_version":"4.1.0","repository_url":"https://github.com/nhairs/python-json-logger"},{"name":"certifi","old_version":"2026.2.25","new_version":"2026.4.22","repository_url":"https://github.com/certifi/python-certifi"},{"name":"charset-normalizer","old_version":"3.4.6","new_version":"3.4.7","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"idna","old_version":"3.11","new_version":"3.13","repository_url":"https://github.com/kjd/idna"},{"name":"pychoir","old_version":"0.0.29","new_version":"0.0.30","repository_url":"https://github.com/kajaste/pychoir"},{"name":"requests","old_version":"2.33.0","new_version":"2.33.1","repository_url":"https://github.com/psf/requests"},{"name":"filelock","old_version":"3.25.2","new_version":"3.29.0","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"identify","old_version":"2.6.18","new_version":"2.6.19","repository_url":"https://github.com/pre-commit/identify"},{"name":"packaging","old_version":"26.0","new_version":"26.2","repository_url":"https://github.com/pypa/packaging"},{"name":"platformdirs","old_version":"4.9.4","new_version":"4.9.6","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pre-commit","old_version":"4.5.1","new_version":"4.6.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pygments","old_version":"2.19.2","new_version":"2.20.0","repository_url":"https://github.com/pygments/pygments"},{"name":"pyright","old_version":"1.1.408","new_version":"1.1.409","repository_url":"https://github.com/RobertCraigie/pyright-python"},{"name":"pytest","old_version":"9.0.2","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-randomly","old_version":"4.0.1","new_version":"4.1.0","repository_url":"https://github.com/pytest-dev/pytest-randomly"},{"name":"ruff","old_version":"0.15.7","new_version":"0.15.12","repository_url":"https://github.com/astral-sh/ruff"},{"name":"virtualenv","old_version":"21.2.0","new_version":"21.2.4","repository_url":"https://github.com/pypa/virtualenv"}],"path":null,"ecosystem":"pip"},"body":"Bumps the dev-dependencies group with 17 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.0.0` | `4.1.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2026.2.25` | `2026.4.22` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.6` | `3.4.7` |\n| [idna](https://github.com/kjd/idna) | `3.11` | `3.13` |\n| [pychoir](https://github.com/kajaste/pychoir) | `0.0.29` | `0.0.30` |\n| [requests](https://github.com/psf/requests) | `2.33.0` | `2.33.1` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.25.2` | `3.29.0` |\n| [identify](https://github.com/pre-commit/identify) | `2.6.18` | `2.6.19` |\n| [packaging](https://github.com/pypa/packaging) | `26.0` | `26.2` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.9.4` | `4.9.6` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.5.1` | `4.6.0` |\n| [pygments](https://github.com/pygments/pygments) | `2.19.2` | `2.20.0` |\n| [pyright](https://github.com/RobertCraigie/pyright-python) | `1.1.408` | `1.1.409` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.2` | `9.0.3` |\n| [pytest-randomly](https://github.com/pytest-dev/pytest-randomly) | `4.0.1` | `4.1.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.7` | `0.15.12` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `21.2.0` | `21.2.4` |\n\n\nUpdates `python-json-logger` from 4.0.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/nhairs/python-json-logger/releases\"\u003epython-json-logger's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.1.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v4.0.0...v4.1.0\"\u003e4.1.0\u003c/a\u003e - 2026-03-29\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14, PyPy 3.11\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for Python 3.8, 3.9 (includes PyPy versions).\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/nhairs/python-json-logger/blob/main/docs/changelog.md\"\u003epython-json-logger's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v4.0.0...v4.1.0\"\u003e4.1.0\u003c/a\u003e - 2026-03-29\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14, PyPy 3.11\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for Python 3.8, 3.9 (includes PyPy versions).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/d80c68da770154d9662975b789cabcc9a3e99408\"\u003e\u003ccode\u003ed80c68d\u003c/code\u003e\u003c/a\u003e Release v4.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/b589b2a576ac058dc55be934159b67060a288756\"\u003e\u003ccode\u003eb589b2a\u003c/code\u003e\u003c/a\u003e [pyproject] Update license table to PEP 639 format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/2bb784a92250c60035a7e4536d1ef48cd02e50d5\"\u003e\u003ccode\u003e2bb784a\u003c/code\u003e\u003c/a\u003e Update code unlocked by Python 3.10 minimum version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/79599b5a6ad5e38c18c468fd0e4ac790961d6b5f\"\u003e\u003ccode\u003e79599b5\u003c/code\u003e\u003c/a\u003e Drop python 3.8, 3.9 support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/622650c1f543e7909e8711e4a30c96cc2aa6e332\"\u003e\u003ccode\u003e622650c\u003c/code\u003e\u003c/a\u003e [docs.contributing] Update unsupported JSON encoders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/06165bb03f9892fc24762acabf6b1b0b35c6b56b\"\u003e\u003ccode\u003e06165bb\u003c/code\u003e\u003c/a\u003e [tests.test_formatters] Add non-printable bytes to test_common_types_encoded\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/61f88a9fe7cee3409db9c589b03b15c2ffdc3ffa\"\u003e\u003ccode\u003e61f88a9\u003c/code\u003e\u003c/a\u003e [docs.contributing] Clarify which packages have been considered and rejected\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/0add524a24c6210807a66e0f9149200b32cc98a9\"\u003e\u003ccode\u003e0add524\u003c/code\u003e\u003c/a\u003e [docs.contributing] Clarify when we will add support for new third-party pack...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/eee9505610a64276341a03f2a0b0dee5f500916b\"\u003e\u003ccode\u003eeee9505\u003c/code\u003e\u003c/a\u003e [pylint] Remove old command\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/804592648f8d0e56f7f41112d2945cf52d1d2a6b\"\u003e\u003ccode\u003e8045926\u003c/code\u003e\u003c/a\u003e [mypy] Don't ignore orjson\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v4.0.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 `certifi` from 2026.2.25 to 2026.4.22\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/5dddfb072243da27adde885b73ba9b809c3224ca\"\u003e\u003ccode\u003e5dddfb0\u003c/code\u003e\u003c/a\u003e 2026.04.22 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/410\"\u003e#410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/f99eccdaf87f7c10e521a58a700ca3eb94a0787e\"\u003e\u003ccode\u003ef99eccd\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 8.1.0 to 8.1.1 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/404\"\u003e#404\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/918bed055f7291719512af186c1c24710f845660\"\u003e\u003ccode\u003e918bed0\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 7.0.0 to 7.0.1 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/405\"\u003e#405\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/0a49067eb434e53e1f8df5f7707d5dc05ef9def4\"\u003e\u003ccode\u003e0a49067\u003c/code\u003e\u003c/a\u003e Bump pypa/gh-action-pypi-publish from 1.13.0 to 1.14.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/403\"\u003e#403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/acf6ce8e39e3b125f4349e11904295e4fe4c1bed\"\u003e\u003ccode\u003eacf6ce8\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 8.0.0 to 8.0.1 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/398\"\u003e#398\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/feb0ed26163a9417ea0fb8eb52d47e79fcf202ab\"\u003e\u003ccode\u003efeb0ed2\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 7.0.0 to 8.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/397\"\u003e#397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/d9c11a50369cc377abb40f7909ded3d6da4d98a3\"\u003e\u003ccode\u003ed9c11a5\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 6.0.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/396\"\u003e#396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2026.02.25...2026.04.22\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.4.6 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\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.6...3.4.7\"\u003e3.4.7\u003c/a\u003e (2026-04-02)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePre-built optimized version using mypy[c] v1.20.\u003c/li\u003e\n\u003cli\u003eRelax \u003ccode\u003esetuptools\u003c/code\u003e constraint to \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;82.1\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCorrectly remove SIG remnant in utf-7 decoded string. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/718\"\u003e#718\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/0f07891bf516b5d5231f1bd4dd2d8da7d4d09a9a\"\u003e\u003ccode\u003e0f07891\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/729\"\u003e#729\u003c/a\u003e from jawah/release-3.4.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/fdbeb299479e8f4d737e4d227cd0b2bd5d273dc0\"\u003e\u003ccode\u003efdbeb29\u003c/code\u003e\u003c/a\u003e chore: update dev, and ci requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/b66f922bfbdbdd9dd46af18a8964d4fb888756d4\"\u003e\u003ccode\u003eb66f922\u003c/code\u003e\u003c/a\u003e chore: add ft classifier\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f94249d0a2c712f2d03124f4de6b77f5e03aaa96\"\u003e\u003ccode\u003ef94249d\u003c/code\u003e\u003c/a\u003e chore: add test cases for utf_7 recent fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/95c866f6c984bbd043e7e3ed0628aa4f3f8d5a26\"\u003e\u003ccode\u003e95c866f\u003c/code\u003e\u003c/a\u003e chore: bump version to 3.4.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/4f429bb764c7e893f99bb4bceb60856da1baacfb\"\u003e\u003ccode\u003e4f429bb\u003c/code\u003e\u003c/a\u003e chore: bump mypy pre-commit to v1.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/b579cd6cab9bd83aa3fc0ca169d4df022bf4888c\"\u003e\u003ccode\u003eb579cd6\u003c/code\u003e\u003c/a\u003e fix: correctly remove SIG remnant in utf-7 decoded string\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/58bf944a77cc0883fc46a6ee8edac3549fea5d59\"\u003e\u003ccode\u003e58bf944\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump github/codeql-action from 4.32.4 to 4.35.1 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/728\"\u003e#728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/44cf8a1b676a2532a8f1694e62e4f4f98f9132e1\"\u003e\u003ccode\u003e44cf8a1\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump actions/download-artifact from 8.0.0 to 8.0.1 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/726\"\u003e#726\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/362bc20073f737b1ba4ca2f68cffb0c4cc024d20\"\u003e\u003ccode\u003e362bc20\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump docker/setup-qemu-action from 3.7.0 to 4.0.0 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/725\"\u003e#725\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.6...3.4.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `idna` from 3.11 to 3.13\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kjd/idna/blob/master/HISTORY.rst\"\u003eidna's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e3.13 (2026-04-22)\n+++++++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCorrect classification error for codepoint U+A7F1\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e3.12 (2026-04-21)\n+++++++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate to Unicode 17.0.0.\u003c/li\u003e\n\u003cli\u003eIssue a deprecation warning for the transitional argument.\u003c/li\u003e\n\u003cli\u003eAdded lazy-loading to provide some performance improvements.\u003c/li\u003e\n\u003cli\u003eRemoved vestiges of code related to Python 2 support, including\nsegmentation of data structures specific to Jython.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to Rodrigo Nogueira for contributions to this release.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/89cdfd27338896cee6b1ee18e64c96ac28684ce0\"\u003e\u003ccode\u003e89cdfd2\u003c/code\u003e\u003c/a\u003e Release v3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/1eb068687543118147417a8d8a70674e2c172891\"\u003e\u003ccode\u003e1eb0686\u003c/code\u003e\u003c/a\u003e Pre-release 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/5f20d1e41eea3b3873d18d83d7a384784f72a92e\"\u003e\u003ccode\u003e5f20d1e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kjd/idna/issues/220\"\u003e#220\u003c/a\u003e from kjd/unicode-next\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/4ea84252ab21e62a79e5a3273746112b5dcfb810\"\u003e\u003ccode\u003e4ea8425\u003c/code\u003e\u003c/a\u003e Regenerate idnadata.py with correct NFKC_CF data\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/fd47341a08bbdcffda33694211ca4de10170cd41\"\u003e\u003ccode\u003efd47341\u003c/code\u003e\u003c/a\u003e Use NFKC_CF from Unicode data files instead of Python's unicodedata module\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/a5304a4cdbd7b31595f8ac42ffdfa88f5b936467\"\u003e\u003ccode\u003ea5304a4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kjd/idna/issues/219\"\u003e#219\u003c/a\u003e from kjd/release-3.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/d80d6f9254d699961fa2c669a1534cde9d4ee5b6\"\u003e\u003ccode\u003ed80d6f9\u003c/code\u003e\u003c/a\u003e Release v3.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/1bb44ddb3f2a9dcf97a6ac11aba34e5b6ed31291\"\u003e\u003ccode\u003e1bb44dd\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kjd/idna/issues/218\"\u003e#218\u003c/a\u003e from kjd/release-candidate-3.12rc0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/909c49d15b8d159be163bccc7972116baffdb47b\"\u003e\u003ccode\u003e909c49d\u003c/code\u003e\u003c/a\u003e Release candidate for 3.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/c5459a10370f005dc09921aee3201b5a45699f9d\"\u003e\u003ccode\u003ec5459a1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kjd/idna/issues/217\"\u003e#217\u003c/a\u003e from kjd/housekeeping-2\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kjd/idna/compare/v3.11...v3.13\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pychoir` from 0.0.29 to 0.0.30\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kajaste/pychoir/releases\"\u003epychoir's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eThirtieth release\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.14\u003c/li\u003e\n\u003cli\u003eDev deps update\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kajaste/pychoir/commit/99ff3e53501eec9926d2983ef235df19b198fa18\"\u003e\u003ccode\u003e99ff3e5\u003c/code\u003e\u003c/a\u003e Upgrade dev deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kajaste/pychoir/commit/33c9ef8a18903498945e83df576e768af1a7bc3a\"\u003e\u003ccode\u003e33c9ef8\u003c/code\u003e\u003c/a\u003e Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kajaste/pychoir/commit/1089c0a6ec678127d9df24459868363002f8b77a\"\u003e\u003ccode\u003e1089c0a\u003c/code\u003e\u003c/a\u003e Automatic package versioning from tag\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/kajaste/pychoir/compare/v0.0.29...v0.0.30\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.33.0 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\u003c/blockquote\u003e\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\u003c/blockquote\u003e\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\u003eSee full diff in \u003ca href=\"https://github.com/psf/requests/compare/v2.33.0...v2.33.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.25.2 to 3.29.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/py-filelock/releases\"\u003efilelock's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.29.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 fix(async): use single-thread executor for lock consistency 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/533\"\u003etox-dev/filelock#533\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(soft): enable stale lock detection on Windows 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/534\"\u003etox-dev/filelock#534\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.28.0...3.29.0\"\u003ehttps://github.com/tox-dev/filelock/compare/3.28.0...3.29.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.28.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 fix(ci): unbreak release workflow, publish to PyPI again 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/529\"\u003etox-dev/filelock#529\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.27.0...3.28.0\"\u003ehttps://github.com/tox-dev/filelock/compare/3.27.0...3.28.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.27.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e✨ feat(rw): add SoftReadWriteLock for NFS and HPC clusters 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/528\"\u003etox-dev/filelock#528\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.26.1...3.27.0\"\u003ehttps://github.com/tox-dev/filelock/compare/3.26.1...3.27.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.26.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 fix(asyncio): add \u003cstrong\u003eexit\u003c/strong\u003e to BaseAsyncFileLock and fix \u003cstrong\u003edel\u003c/strong\u003e loop handling by \u003ca href=\"https://github.com/naarob\"\u003e\u003ccode\u003e@​naarob\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/518\"\u003etox-dev/filelock#518\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/naarob\"\u003e\u003ccode\u003e@​naarob\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/518\"\u003etox-dev/filelock#518\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.26.0...3.26.1\"\u003ehttps://github.com/tox-dev/filelock/compare/3.26.0...3.26.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.26.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e🔒 ci(workflows): add zizmor security auditing 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/517\"\u003etox-dev/filelock#517\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🔧 fix(ci): restore git credentials for release job by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/520\"\u003etox-dev/filelock#520\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(soft): add PID inspection and lock breaking 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/524\"\u003etox-dev/filelock#524\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.25.2...3.26.0\"\u003ehttps://github.com/tox-dev/filelock/compare/3.25.2...3.26.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/tox-dev/filelock/blob/main/docs/changelog.rst\"\u003efilelock's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e###########\nChangelog\n###########\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e3.29.0 (2026-04-19)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e✨ feat(soft): enable stale lock detection on Windows :pr:\u003ccode\u003e534\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(async): use single-thread executor for lock consistency :pr:\u003ccode\u003e533\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/upload-artifact from 7.0.0 to 7.0.1 :pr:\u003ccode\u003e530\u003c/code\u003e - by :user:\u003ccode\u003edependabot[bot]\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e3.28.0 (2026-04-14)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 fix(ci): unbreak release workflow, publish to PyPI again :pr:\u003ccode\u003e529\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e3.26.1 (2026-04-09)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 fix(asyncio): add \u003cstrong\u003eexit\u003c/strong\u003e to BaseAsyncFileLock and fix \u003cstrong\u003edel\u003c/strong\u003e loop handling :pr:\u003ccode\u003e518\u003c/code\u003e - by :user:\u003ccode\u003enaarob\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump pypa/gh-action-pypi-publish from 1.13.0 to 1.14.0 :pr:\u003ccode\u003e525\u003c/code\u003e - by :user:\u003ccode\u003edependabot[bot]\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e3.26.0 (2026-04-06)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e✨ feat(soft): add PID inspection and lock breaking :pr:\u003ccode\u003e524\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate :pr:\u003ccode\u003e523\u003c/code\u003e - by :user:\u003ccode\u003epre-commit-ci[bot]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump astral-sh/setup-uv from 7.6.0 to 8.0.0 :pr:\u003ccode\u003e522\u003c/code\u003e - by :user:\u003ccode\u003edependabot[bot]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove persist-credentials: false from release job :pr:\u003ccode\u003e520\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate :pr:\u003ccode\u003e519\u003c/code\u003e - by :user:\u003ccode\u003epre-commit-ci[bot]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e🔒 ci(workflows): add zizmor security auditing :pr:\u003ccode\u003e517\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate :pr:\u003ccode\u003e516\u003c/code\u003e - by :user:\u003ccode\u003epre-commit-ci[bot]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate :pr:\u003ccode\u003e514\u003c/code\u003e - by :user:\u003ccode\u003epre-commit-ci[bot]\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e3.25.2 (2026-03-11)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 fix(unix): suppress EIO on close in Docker bind mounts :pr:\u003ccode\u003e513\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e3.25.1 (2026-03-09)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate :pr:\u003ccode\u003e510\u003c/code\u003e - by :user:\u003ccode\u003epre-commit-ci[bot]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(win): restore best-effort lock file cleanup on release :pr:\u003ccode\u003e511\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/469b47f192b0a9f8c8b795d9b9f57212c716959b\"\u003e\u003ccode\u003e469b47f\u003c/code\u003e\u003c/a\u003e Release 3.29.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/e85d07281987e0855ba67c03dfdef342ec1097d5\"\u003e\u003ccode\u003ee85d072\u003c/code\u003e\u003c/a\u003e ✨ feat(soft): enable stale lock detection on Windows (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/534\"\u003e#534\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/f5ee1712ced6916b2768812ee378183319339944\"\u003e\u003ccode\u003ef5ee171\u003c/code\u003e\u003c/a\u003e 🐛 fix(async): use single-thread executor for lock consistency (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/533\"\u003e#533\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/2a954588cdf462a786835eeb102240ce79fecc8b\"\u003e\u003ccode\u003e2a95458\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/upload-artifact from 7.0.0 to 7.0.1 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/530\"\u003e#530\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/55de20c0819652362881906fa289feff5a323c19\"\u003e\u003ccode\u003e55de20c\u003c/code\u003e\u003c/a\u003e Release 3.28.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/476b0e4a92776fe530b5d993247342f039004174\"\u003e\u003ccode\u003e476b0e4\u003c/code\u003e\u003c/a\u003e 🐛 fix(ci): unbreak release workflow, publish to PyPI again (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/529\"\u003e#529\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/824713edc32b54efd66566907f97c1238502810e\"\u003e\u003ccode\u003e824713e\u003c/code\u003e\u003c/a\u003e ✨ feat(rw): add SoftReadWriteLock for NFS and HPC clusters (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/528\"\u003e#528\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/9879de9298db93ffba0a9f58d9de75e9e2a00fc1\"\u003e\u003ccode\u003e9879de9\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/527\"\u003e#527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/4cfab498b6916f89be46152efa4a72e9731be98f\"\u003e\u003ccode\u003e4cfab49\u003c/code\u003e\u003c/a\u003e Release 3.26.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/734c9f26e8107ad24886129fc68865f0b46cf71f\"\u003e\u003ccode\u003e734c9f2\u003c/code\u003e\u003c/a\u003e 🐛 fix(asyncio): add \u003cstrong\u003eexit\u003c/strong\u003e to BaseAsyncFileLock and fix \u003cstrong\u003edel\u003c/strong\u003e loop handli...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/py-filelock/compare/3.25.2...3.29.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `identify` from 2.6.18 to 2.6.19\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/b39f637a1b9032568e5b21b0474c3583acf1c530\"\u003e\u003ccode\u003eb39f637\u003c/code\u003e\u003c/a\u003e v2.6.19\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/c9768886c7fc78a2f8c7d0d9447064ff7a008eb9\"\u003e\u003ccode\u003ec976888\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/identify/issues/588\"\u003e#588\u003c/a\u003e from hofbi/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/6110d73a67ca4807b6331d21784a92313b9c082b\"\u003e\u003ccode\u003e6110d73\u003c/code\u003e\u003c/a\u003e Add support for 'tif' file extension\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/ccbd337ae1b4c0d03565cd6dd64076c0b4ff7929\"\u003e\u003ccode\u003eccbd337\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/identify/issues/587\"\u003e#587\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/f5af2649530b5cbfdfcf6ac9d3e4f65e198747c2\"\u003e\u003ccode\u003ef5af264\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/identify/commit/a0be59827ac05537a9f8a4e1895133d44f2a4319\"\u003e\u003ccode\u003ea0be598\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/identify/issues/586\"\u003e#586\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/b1840430b285dab369b4b96480614cf429a6a50e\"\u003e\u003ccode\u003eb184043\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pre-commit/identify/compare/v2.6.18...v2.6.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `packaging` from 26.0 to 26.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/releases\"\u003epackaging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix incorrect sysconfig var name for pyemscripten by \u003ca href=\"https://github.com/ryanking13\"\u003e\u003ccode\u003e@​ryanking13\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1160\"\u003epypa/packaging#1160\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eVersion\u003c/code\u003e, \u003ccode\u003eSpecifier\u003c/code\u003e, \u003ccode\u003eSpecifierSet\u003c/code\u003e, \u003ccode\u003eTag\u003c/code\u003e, \u003ccode\u003eMarker\u003c/code\u003e, and \u003ccode\u003eRequirement\u003c/code\u003e pickle-safe\nand backward-compatible with pickles created in 25.0-26.1 (including references to the removed\n\u003ccode\u003epackaging._structures\u003c/code\u003e module) by \u003ca href=\"https://github.com/eachimei\"\u003e\u003ccode\u003e@​eachimei\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1163\"\u003epypa/packaging#1163\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1168\"\u003epypa/packaging#1168\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1170\"\u003epypa/packaging#1170\u003c/a\u003e, and \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1171\"\u003epypa/packaging#1171\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: re-export ExceptionGroup for now by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1164\"\u003epypa/packaging#1164\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003edocs: add errors section and fix missing details by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1159\"\u003epypa/packaging#1159\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs(dev): document property-based test suite by \u003ca href=\"https://github.com/r266-tech\"\u003e\u003ccode\u003e@​r266-tech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1167\"\u003epypa/packaging#1167\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typo in DirectUrl documentation by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1169\"\u003epypa/packaging#1169\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs(specifiers): add is_unsatisfiable() usage example by \u003ca href=\"https://github.com/r266-tech\"\u003e\u003ccode\u003e@​r266-tech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1166\"\u003epypa/packaging#1166\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnable the auditor persona on zizmor by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1158\"\u003epypa/packaging#1158\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest new pickle guarantees by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1174\"\u003epypa/packaging#1174\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse native uv integration in rtd by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1175\"\u003epypa/packaging#1175\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ryanking13\"\u003e\u003ccode\u003e@​ryanking13\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1160\"\u003epypa/packaging#1160\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eachimei\"\u003e\u003ccode\u003e@​eachimei\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1163\"\u003epypa/packaging#1163\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pypa/packaging/compare/26.1...26.2\"\u003ehttps://github.com/pypa/packaging/compare/26.1...26.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e26.1\u003c/h2\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cdel\u003ePEP 783: add handling for Emscripten wheel tags by \u003ca href=\"https://github.com/hoodmane\"\u003e\u003ccode\u003e@​hoodmane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/804\"\u003epypa/packaging#804\u003c/a\u003e\u003c/del\u003e (old name used in implementation, will be fixed in next release)\u003c/li\u003e\n\u003cli\u003ePEP 803: add handling for the \u003ccode\u003eabi3.abi3t\u003c/code\u003e free-threading tag by \u003ca href=\"https://github.com/ngoldbaum\"\u003e\u003ccode\u003e@​ngoldbaum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1099\"\u003epypa/packaging#1099\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePEP 723: add \u003ccode\u003epackaging.dependency_groups\u003c/code\u003e module, based on the \u003ccode\u003edependency-groups\u003c/code\u003e package by \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1065\"\u003epypa/packaging#1065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.direct_url\u003c/code\u003e module by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/944\"\u003epypa/packaging#944\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.errors\u003c/code\u003e module by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1071\"\u003epypa/packaging#1071\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSpecifierSet.is_unsatisfiable\u003c/code\u003e using ranges (new internals that will be expanded in future versions) by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1119\"\u003epypa/packaging#1119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ecreate_compatible_tags_selector\u003c/code\u003e to select compatible tags by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1110\"\u003epypa/packaging#1110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003ekey\u003c/code\u003e argument to \u003ccode\u003eSpecifierSet.filter()\u003c/code\u003e by \u003ca href=\"https://github.com/frostming\"\u003e\u003ccode\u003e@​frostming\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1068\"\u003epypa/packaging#1068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e\u0026amp;\u003c/code\u003e and \u003ccode\u003e|\u003c/code\u003e for \u003ccode\u003eMarker\u003c/code\u003e's by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1146\"\u003epypa/packaging#1146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize \u003ccode\u003eVersion.__replace__\u003c/code\u003e and add \u003ccode\u003eVersion.from_parts\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1078\"\u003epypa/packaging#1078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd an option to validate compressed tag set sort order in \u003ccode\u003eparse_wheel_filename\u003c/code\u003e by \u003ca href=\"https://github.com/r266-tech\"\u003e\u003ccode\u003e@​r266-tech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1150\"\u003epypa/packaging#1150\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNarrow exclusion of pre-releases for \u003ccode\u003e\u0026lt;V.postN\u003c/code\u003e to match spec by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1140\"\u003epypa/packaging#1140\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/blob/main/CHANGELOG.rst\"\u003epackaging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e26.2 - 2026-04-24\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nFixes:\n\u003cul\u003e\n\u003cli\u003eFix incorrect sysconfig var name for pyemscripten in (:pull:\u003ccode\u003e1160\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eVersion\u003c/code\u003e, \u003ccode\u003eSpecifier\u003c/code\u003e, \u003ccode\u003eSpecifierSet\u003c/code\u003e, \u003ccode\u003eTag\u003c/code\u003e, \u003ccode\u003eMarker\u003c/code\u003e, and \u003ccode\u003eRequirement\u003c/code\u003e pickle-safe\u003cbr /\u003e\nand backward-compatible with pickles created in 25.0-26.1 (including references to the removed\u003cbr /\u003e\n\u003ccode\u003epackaging._structures\u003c/code\u003e module) (:pull:\u003ccode\u003e1163\u003c/code\u003e, :pull:\u003ccode\u003e1168\u003c/code\u003e, :pull:\u003ccode\u003e1170\u003c/code\u003e, :pull:\u003ccode\u003e1171\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eRe-export \u003ccode\u003eExceptionGroup\u003c/code\u003e in metadata for now in (:pull:\u003ccode\u003e1164\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd errors section and fix missing details in (:pull:\u003ccode\u003e1159\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDocument our property-based test suite in (:pull:\u003ccode\u003e1167\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix a \u003ccode\u003eDirectUrl\u003c/code\u003e typo in (:pull:\u003ccode\u003e1167\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd example of \u003ccode\u003eis_unsatisfiable\u003c/code\u003e in (:pull:\u003ccode\u003e1166\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInternal:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnable the auditor persona on zizmor in (:pull:\u003ccode\u003e1158\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eTest new pickle guarantees in (:pull:\u003ccode\u003e1174\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse new native ReadTheDocs uv integration in (:pull:\u003ccode\u003e1175\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e26.1 - 2026-04-14\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePEP 783: add handling for Emscripten wheel tags in (:pull:\u003ccode\u003e804\u003c/code\u003e) (old name used in implementation, fixed in next release)\u003c/li\u003e\n\u003cli\u003ePEP 803: add handling for the \u003ccode\u003eabi3.abi3t\u003c/code\u003e free-threading tag in (:pull:\u003ccode\u003e1099\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePEP 723: add \u003ccode\u003epackaging.dependency_groups\u003c/code\u003e module, based on the \u003ccode\u003edependency-groups\u003c/code\u003e package in (:pull:\u003ccode\u003e1065\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.direct_url\u003c/code\u003e module in (:pull:\u003ccode\u003e944\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.errors\u003c/code\u003e module in (:pull:\u003ccode\u003e1071\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSpecifierSet.is_unsatisfiable\u003c/code\u003e using ranges (new internals that will be expanded in future versions) in (:pull:\u003ccode\u003e1119\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ecreate_compatible_tags_selector\u003c/code\u003e to select compatible tags in (:pull:\u003ccode\u003e1110\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003ekey\u003c/code\u003e argument to \u003ccode\u003eSpecifierSet.filter()\u003c/code\u003e in (:pull:\u003ccode\u003e1068\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e\u0026amp;\u003c/code\u003e and \u003ccode\u003e|\u003c/code\u003e for \u003ccode\u003eMarker\u003c/code\u003e's in (:pull:\u003ccode\u003e1146\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eNormalize \u003ccode\u003eVersion.__replace__\u003c/code\u003e and add \u003ccode\u003eVersion.from_parts\u003c/code\u003e in (:pull:\u003ccode\u003e1078\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd an option to validate compressed tag set sort order in \u003ccode\u003eparse_wheel_filename\u003c/code\u003e in (:pull:\u003ccode\u003e1150\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNarrow exclusion of pre-releases for \u003ccode\u003e\u0026lt;V.postN\u003c/code\u003e to match spec in (:pull:\u003ccode\u003e1140\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eNarrow exclusion of post-releases for \u003ccode\u003e\u0026gt;V\u003c/code\u003e to match spec in (:pull:\u003ccode\u003e1141\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003eformat_full_version\u003c/code\u003e to \u003ccode\u003e_format_full_version\u003c/code\u003e to make it visibly private in (:pull:\u003ccode\u003e1125\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eRestrict local version to ASCII in (:pull:\u003ccode\u003e1102\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePylock (PEP 751) updates:\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/84a87ee42483d7352f9502d78a9553da8859aa7a\"\u003e\u003ccode\u003e84a87ee\u003c/code\u003e\u003c/a\u003e Bump for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/4a616b65bed23c8c6d58e6b0fc1a4434d4ff1f14\"\u003e\u003ccode\u003e4a616b6\u003c/code\u003e\u003c/a\u003e docs: a few more updates to prepare for 26.2 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1176\"\u003e#1176\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/9de6f44f1e82d4595edf3aad1c4f6f98c85935a0\"\u003e\u003ccode\u003e9de6f44\u003c/code\u003e\u003c/a\u003e ci: use native uv integration in rtd (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1175\"\u003e#1175\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/bc76e14debd1a2799d1ca8f9d9c9823f35bfa466\"\u003e\u003ccode\u003ebc76e14\u003c/code\u003e\u003c/a\u003e chore: update changelog for 26.2 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1161\"\u003e#1161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/3f00091c08f0aa830e33ed7db00f16f11c8ac97f\"\u003e\u003ccode\u003e3f00091\u003c/code\u003e\u003c/a\u003e tests: add a pickle check (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1174\"\u003e#1174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/48a8a069805291186522de3eff73ea80a8ca96ad\"\u003e\u003ccode\u003e48a8a06\u003c/code\u003e\u003c/a\u003e fix: make Requirements/Markers pickle-safe (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1171\"\u003e#1171\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/823b44ed1f904084a77ae3adf0ef130af6365f84\"\u003e\u003ccode\u003e823b44e\u003c/code\u003e\u003c/a\u003e fix: make Tags pickle-safe (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1170\"\u003e#1170\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/4bed32d920ca7211dd65fdf0a1ee06376e9c4733\"\u003e\u003ccode\u003e4bed32d\u003c/code\u003e\u003c/a\u003e fix: make Specifier / SpecifierSet pickle-safe (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1168\"\u003e#1168\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/963118e37caae97bc8b72f72956c7fb4ca9857ec\"\u003e\u003ccode\u003e963118e\u003c/code\u003e\u003c/a\u003e fix: re-export ExceptionGroup for now (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1164\"\u003e#1164\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/66e34a80256c96dea11da143682950c84b8133bb\"\u003e\u003ccode\u003e66e34a8\u003c/code\u003e\u003c/a\u003e docs(specifiers): add is_unsatisfiable() usage example (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1166\"\u003e#1166\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/packaging/compare/26.0...26.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `platformdirs` from 4.9.4 to 4.9.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/platformdirs/releases\"\u003eplatformdirs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.9.6\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 fix(release): use double quotes for tag variable expansion by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/477\"\u003etox-dev/platformdirs#477\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.9.5...4.9.6\"\u003ehttps://github.com/tox-dev/platformdirs/compare/4.9.5...4.9.6\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/platformdirs/blob/main/docs/changelog.rst\"\u003eplatformdirs's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e###########\nChangelog\n###########\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e4.9.6 (2026-04-09)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 fix(release): use double quotes for tag variable expansion :pr:\u003ccode\u003e477\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e4.9.5 (2026-04-06)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e📝 docs(appauthor): clarify None vs False on Windows :pr:\u003ccode\u003e476\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eSeparates implementations of macOS dirs that share a default :pr:\u003ccode\u003e473\u003c/code\u003e - by :user:\u003ccode\u003eGoddesen\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove persist-credentials: false from release job :pr:\u003ccode\u003e472\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003efix: do not duplicate site dirs in Unix.iter_{config,site}_dirs() when use_site_for_root is active :pr:\u003ccode\u003e469\u003c/code\u003e - by\n:user:\u003ccode\u003eviccie30\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e🔧 fix(type): resolve ty 0.0.25 type errors :pr:\u003ccode\u003e468\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e🔒 ci(workflows): add zizmor security auditing :pr:\u003ccode\u003e467\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(release): generate docstrfmt-compatible changelog entries :pr:\u003ccode\u003e463\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e4.9.4 (2026-03-05)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate :pr:\u003ccode\u003e461\u003c/code\u003e - by :user:\u003ccode\u003epre-commit-ci[bot]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUpdate README.md\u003c/li\u003e\n\u003cli\u003e📝 docs: add project logo to documentation :pr:\u003ccode\u003e459\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eStandardize .github files to .yaml suffix\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump the all group with 2 updates :pr:\u003ccode\u003e457\u003c/code\u003e - by :user:\u003ccode\u003edependabot[bot]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eMove SECURITY.md to .github/SECURITY.md\u003c/li\u003e\n\u003cli\u003eAdd permissions to workflows :pr:\u003ccode\u003e455\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd security policy\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate :pr:\u003ccode\u003e454\u003c/code\u003e - by :user:\u003ccode\u003epre-commit-ci[bot]\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e4.9.2 (2026-02-16)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e📝 docs: restructure following Diataxis framework :pr:\u003ccode\u003e448\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e📝 docs(platforms): fix RST formatting and TOC hierarchy :pr:\u003ccode\u003e447\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e4.9.1 (2026-02-14)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003e📝 docs: enhance README, fix issues, and reorganize platforms.rst :pr:\u003ccode\u003e445\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/56efd776d68a94898b319c108933d0cfbff813af\"\u003e\u003ccode\u003e56efd77\u003c/code\u003e\u003c/a\u003e Release 4.9.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/d5d812a02102c633a39f3dfdddbc6bb1670b13ae\"\u003e\u003ccode\u003ed5d812a\u003c/code\u003e\u003c/a\u003e 🐛 fix(release): use double quotes for tag variable expansion (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/477\"\u003e#477\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/c2b0cee3a8261b3a75b283b9ef148d2425d48d35\"\u003e\u003ccode\u003ec2b0cee\u003c/code\u003e\u003c/a\u003e build(deps): bump pypa/gh-action-pypi-publish from 1.13.0 to 1.14.0 in the al...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/7688069a09e03bb4e97fe0f9cf3aebedc8a6f7f9\"\u003e\u003ccode\u003e7688069\u003c/code\u003e\u003c/a\u003e Release 4.9.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/104d28b48c59b327a7832b23509187eef2764af8\"\u003e\u003ccode\u003e104d28b\u003c/code\u003e\u003c/a\u003e 📝 docs(appauthor): clarify None vs False on Windows (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/476\"\u003e#476\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/0955048684241725bb2eae8a2ba5bc7f7f46c9a0\"\u003e\u003ccode\u003e0955048\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/475\"\u003e#475\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/bd3c76602f88284eb832c7f5297c354ea7ac5906\"\u003e\u003ccode\u003ebd3c766\u003c/code\u003e\u003c/a\u003e build(deps): bump astral-sh/setup-uv from 7.6.0 to 8.0.0 in the all group (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/474\"\u003e#474\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/749ac3f33ffc5af04fb8bb046bbbcc4d5aa562c9\"\u003e\u003ccode\u003e749ac3f\u003c/code\u003e\u003c/a\u003e Separates implementations of macOS dirs that share a default (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/473\"\u003e#473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/cb8815684f15c58ad1b87c8b1d34f9bf2d79780e\"\u003e\u003ccode\u003ecb88156\u003c/code\u003e\u003c/a\u003e Remove persist-credentials: false from release job (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/472\"\u003e#472\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/a501eabd7dd0e56116c38fa9dba15f3c0b60010a\"\u003e\u003ccode\u003ea501eab\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/470\"\u003e#470\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.9.4...4.9.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit` from 4.5.1 to 4.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.6.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epre-commit hook-impl\u003c/code\u003e: allow \u003ccode\u003e--hook-dir\u003c/code\u003e to be missing to enable easier usage with \u003ccode\u003egit\u003c/code\u003e 2.54+ git hooks.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3662\"\u003e#3662\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epre-commit hook-impl\u003c/code\u003e: \u003ccode\u003e--hook-type\u003c/code\u003e is required.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3661\"\u003e#3661\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.6.0 - 2026-04-21\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epre-commit hook-impl\u003c/code\u003e: allow \u003ccode\u003e--hook-dir\u003c/code\u003e to be missing to enable easier\nusage with \u003ccode\u003egit\u003c/code\u003e 2.54+ git hooks.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3662\"\u003e#3662\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epre-commit hook-impl\u003c/code\u003e: \u003ccode\u003e--hook-type\u003c/code\u003e is required.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3661\"\u003e#3661\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/f35134b05028ec938ac605ae500fdf95462655d3\"\u003e\u003ccode\u003ef35134b\u003c/code\u003e\u003c/a\u003e v4.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2a51ffcb81f6c8ed2e6467913c3343a8800f3ab9\"\u003e\u003ccode\u003e2a51ffc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3662\"\u003e#3662\u003c/a\u003e from pre-commit/hook-impl-optional-hook-dir\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/d7dee322abfc765b042f2e3b872aab3c3a867610\"\u003e\u003ccode\u003ed7dee32\u003c/code\u003e\u003c/a\u003e make --hook-dir optional for hook-impl\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/965aeb1c680e8b526342153547f0ec014484c63d\"\u003e\u003ccode\u003e965aeb1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3661\"\u003e#3661\u003c/a\u003e from pre-commit/hook-impl-required\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2eacc064aa9b5bb33d3a0d84a234b475e34f3096\"\u003e\u003ccode\u003e2eacc06\u003c/code\u003e\u003c/a\u003e --hook-type is required for hook-impl\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/f5678bf4ac35cffc0ff7174ad85f7fdc2a5c977e\"\u003e\u003ccode\u003ef5678bf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3657\"\u003e#3657\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/054cc5bd6bb1b20faa1eefe09f0de3b68fceee94\"\u003e\u003ccode\u003e054cc5b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/5c0f3024d2524f6e029a4c333392fd9be9fb27f6\"\u003e\u003ccode\u003e5c0f302\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3652\"\u003e#3652\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/a5d91142676630f8130020b35e166e0c0e92b8f4\"\u003e\u003ccode\u003ea5d9114\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/129a1f5ca1eaee0c952a5e7a07faae305c5e15bc\"\u003e\u003ccode\u003e129a1f5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3641\"\u003e#3641\u003c/a\u003e from pre-commit/mxr-patch-1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.5.1...v4.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pygments` from 2.19.2 to 2.20.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pygments/pygments/releases\"\u003epygments's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.20.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eNew lexers:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRell (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2914\"\u003e#2914\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated lexers:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003earchetype: Fix catastrophic backtracking in GUID and ID patterns (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3064\"\u003e#3064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eASN.1: Recognize minus sign and fix range operator (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3014\"\u003e#3014\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3060\"\u003e#3060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eC++: Add C++26 keywords (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2955\"\u003e#2955\u003c/a\u003e), add integer literal suffixes (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2966\"\u003e#2966\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComponentPascal: Fix \u003ccode\u003eanalyse_text\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3028\"\u003e#3028\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3032\"\u003e#3032\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCoq renamed to Rocq (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2883\"\u003e#2883\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2908\"\u003e#2908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCython: Various improvements (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2932\"\u003e#2932\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2933\"\u003e#2933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDebian control: Improve architecture parsing (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3052\"\u003e#3052\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDevicetree: Add support for overlay/fragments (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3021\"\u003e#3021\u003c/a\u003e), add bytestring support (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3022\"\u003e#3022\u003c/a\u003e), fix catastrophic backtracking (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3057\"\u003e#3057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFennel: Various improvements (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2911\"\u003e#2911\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHaskell: Handle escape sequences in character literals (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3069\"\u003e#3069\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/1795\"\u003e#1795\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eJava: Add module keywords (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2955\"\u003e#2955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLean4: Add operators \u003ccode\u003e]'\u003c/code\u003e, \u003ccode\u003e]?\u003c/code\u003e, \u003ccode\u003e]!\u003c/code\u003e  (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2946\"\u003e#2946\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLESS: Support single-line comments (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3005\"\u003e#3005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLilyPond: Update to 2.25.29 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2974\"\u003e#2974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLLVM: Support C-style comments (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3023\"\u003e#3023\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2978\"\u003e#2978\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLua(u): Fix catastrophic backtracking (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3047\"\u003e#3047\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMacaulay2: Update to 1.25.05 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2893\"\u003e#2893\u003c/a\u003e), 1.25.11 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2988\"\u003e#2988\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMathematica: Various improvements (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2957\"\u003e#2957\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emeson: Add additional operators (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2919\"\u003e#2919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMySQL: Update keywords (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2970\"\u003e#2970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eorg-Mode: Support both schedule and deadline (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2899\"\u003e#2899\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePHP: Add \u003ccode\u003e__PROPERTY__\u003c/code\u003e magic constant (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2924\"\u003e#2924\u003c/a\u003e), add reserved keywords (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3002\"\u003e#3002\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePostgreSQL: Add more keywords (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2985\"\u003e#2985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eprotobuf: Fix namespace tokenization (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2929\"\u003e#2929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePython: Add \u003ccode\u003et\u003c/code\u003e-string support (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2973\"\u003e#2973\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3009\"\u003e#3009\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3010\"\u003e#3010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTablegen: Fix infinite loop (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2972\"\u003e#2972\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTera Term macro: Add commands introduced in v5.3 through v5.6 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2951\"\u003e#2951\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTOML: Support TOML 1.1.0 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3026\"\u003e#3026\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3027\"\u003e#3027\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTurtle: Allow empty comment lines (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2980\"\u003e#2980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eXML: Added \u003ccode\u003e.xbrl\u003c/code\u003e as file ending (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2890\"\u003e#2890\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2891\"\u003e#2891\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrop Python 3.8, and add Python 3.14 as a supported version (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2987\"\u003e#2987\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3012\"\u003e#3012\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eVarious improvements to \u003ccode\u003eautopygmentize\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2894\"\u003e#2894\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate \u003ccode\u003eonedark\u003c/code\u003e style to support more token types (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2977\"\u003e#2977\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate \u003ccode\u003ertt\u003c/code\u003e style to support more token types (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2895\"\u003e#2895\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCache entry points to improve performance (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2979\"\u003e#2979\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003exterm-256\u003c/code\u003e color table (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3043\"\u003e#3043\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003ekwargs\u003c/code\u003e dictionary getting mutated on each call (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3044\"\u003e#3044\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pygments/pygments/blob/master/CHANGES\"\u003epygments's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 2.20.0\u003c/h2\u003e\n\u003cp\u003e(released March 29th, 2026)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eNew lexers:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRell (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2914\"\u003e#2914\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated lexers:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003earchetype: Fix catastrophic backtracking in GUID and ID patterns (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3064\"\u003e#3064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eASN.1: Recognize minus sign and fix range operator (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3014\"\u003e#3014\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3060\"\u003e#3060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eC++: Add C++26 keywords (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2955\"\u003e#2955\u003c/a\u003e), add integer literal suffixes (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2966\"\u003e#2966\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComponentPascal: Fix \u003ccode\u003eanalyse_text\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3028\"\u003e#3028\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3032\"\u003e#3032\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCoq renamed to Rocq (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2883\"\u003e#2883\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2908\"\u003e#2908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCython: Various improvements (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2932\"\u003e#2932\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2933\"\u003e#2933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDebian control: Improve architecture parsing (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3052\"\u003e#3052\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDevicetree: Add support for overlay/fragments (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3021\"\u003e#3021\u003c/a\u003e), add bytestring support (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3022\"\u003e#3022\u003c/a\u003e), fix catastrophic backtracking (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3057\"\u003e#3057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFennel: Various improvements (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2911\"\u003e#2911\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHaskell: Handle escape sequences in character literals (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3069\"\u003e#3069\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/1795\"\u003e#1795\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eJava: Add module keywords (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2955\"\u003e#2955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLean4: Add operators \u003ccode\u003e]'\u003c/code\u003e, \u003ccode\u003e]?\u003c/code\u003e, \u003ccode\u003e]!\u003c/code\u003e  (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2946\"\u003e#2946\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLESS: Support single-line comments (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3005\"\u003e#3005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLilyPond: Update to 2.25.29 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2974\"\u003e#2974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLLVM: Support C-style comments (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3023\"\u003e#3023\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2978\"\u003e#2978\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLua(u): Fix catastrophic backtracking (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3047\"\u003e#3047\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMacaulay2: Update to 1.25.05 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2893\"\u003e#2893\u003c/a\u003e), 1.25.11 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2988\"\u003e#2988\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMathematica: Various improvements (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2957\"\u003e#2957\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emeson: Add additional operators (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2919\"\u003e#2919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMySQL: Update keywords (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2970\"\u003e#2970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eorg-Mode: Support both schedule and deadline (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2899\"\u003e#2899\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePHP: Add \u003ccode\u003e__PROPERTY__\u003c/code\u003e magic constant (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2924\"\u003e#2924\u003c/a\u003e), add reserved keywords (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3002\"\u003e#3002\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePostgreSQL: Add more keywords (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2985\"\u003e#2985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eprotobuf: Fix namespace tokenization (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2929\"\u003e#2929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePython: Add \u003ccode\u003et\u003c/code\u003e-string support (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2973\"\u003e#2973\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3009\"\u003e#3009\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3010\"\u003e#3010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTablegen: Fix infinite loop (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2972\"\u003e#2972\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTera Term macro: Add commands introduced in v5.3 through v5.6 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2951\"\u003e#2951\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTOML: Support TOML 1.1.0 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3026\"\u003e#3026\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3027\"\u003e#3027\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTurtle: Allow empty comment lines (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2980\"\u003e#2980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eXML: Added \u003ccode\u003e.xbrl\u003c/code\u003e as file ending (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2890\"\u003e#2890\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2891\"\u003e#2891\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrop Python 3.8, and add Python 3.14 as a supported version (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2987\"\u003e#2987\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3012\"\u003e#3012\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eVarious improvements to \u003ccode\u003eautopygmentize\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2894\"\u003e#2894\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate \u003ccode\u003eonedark\u003c/code\u003e style to support more token types (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2977\"\u003e#2977\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate \u003ccode\u003ertt\u003c/code\u003e style to support more token types (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2895\"\u003e#2895\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCache entry points to improve performance (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2979\"\u003e#2979\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003exterm-256\u003c/code\u003e color table (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3043\"\u003e#3043\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003ekwargs\u003c/code\u003e dictionary getting mutated on each call (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3044\"\u003e#3044\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/708197d82827ba2d5ca78bcbb653c7102ce86dcd\"\u003e\u003ccode\u003e708197d\u003c/code\u003e\u003c/a\u003e Fix underline length.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/1d4538ae8621d766ecc91ff59caf76ab75983abc\"\u003e\u003ccode\u003e1d4538a\u003c/code\u003e\u003c/a\u003e Prepare 2.20 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/2ceaee4e634eebae2d10a47fd05406871f6bac8f\"\u003e\u003ccode\u003e2ceaee4\u003c/code\u003e\u003c/a\u003e Update CHANGES.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/e3a3c54b58c7f80bc4db887e471d4f91c77844ed\"\u003e\u003ccode\u003ee3a3c54\u003c/code\u003e\u003c/a\u003e Fix Haskell lexer: handle escape sequences in character literals (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3069\"\u003e#3069\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/d7c3453e342dac319f58e4091f4ef183cc49d802\"\u003e\u003ccode\u003ed7c3453\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3071\"\u003e#3071\u003c/a\u003e from pygments/harden-html-formatter\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/0f97e7c37d44abfa4ddfddf44a3290fdad586034\"\u003e\u003ccode\u003e0f97e7c\u003c/code\u003e\u003c/a\u003e Harden the HTML formatter against CSS.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/9f981b2ba42b88ca5bdcebf12cd01efd7cd80aec\"\u003e\u003ccode\u003e9f981b2\u003c/code\u003e\u003c/a\u003e Update CHANGES.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/1d889151024e9a53f3702a60558b29b070306e9e\"\u003e\u003ccode\u003e1d88915\u003c/code\u003e\u003c/a\u003e Update CHANGES.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/c3d93adb9827fc054c3c12b47bde31c781a36a93\"\u003e\u003ccode\u003ec3d93ad\u003c/code\u003e\u003c/a\u003e Fix ASN.1 lexer: recognize minus sign a...\n\n_Description has been truncated_","html_url":"https://github.com/github/annotated-logger/pull/130","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/github%2Fannotated-logger/issues/130","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/130/packages"}},{"old_version":"0.0.27","new_version":"0.0.29","update_type":"patch","path":null,"pr_created_at":"2025-09-28T21:07:37.000Z","version_change":"0.0.27 → 0.0.29","issue":{"uuid":"2868412854","node_id":"PR_kwDOMt9I9c6q-IG2","number":78,"state":"open","title":"[pip] (deps): Bump the dev-dependencies group across 1 directory with 34 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-28T21:07:37.000Z","updated_at":"2025-09-28T21:07:38.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"[pip] (deps): Bump","group_name":"dev-dependencies","update_count":34,"packages":[{"name":"python-json-logger","old_version":"3.2.1","new_version":"3.3.0","repository_url":"https://github.com/nhairs/python-json-logger"},{"name":"certifi","old_version":"2024.12.14","new_version":"2025.8.3","repository_url":"https://github.com/certifi/python-certifi"},{"name":"charset-normalizer","old_version":"3.4.1","new_version":"3.4.3","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"makefun","old_version":"1.15.6","new_version":"1.16.0","repository_url":"https://github.com/smarie/python-makefun"},{"name":"pychoir","old_version":"0.0.27","new_version":"0.0.29","repository_url":"https://github.com/kajaste/pychoir"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"coverage","old_version":"7.6.10","new_version":"7.10.7","repository_url":"https://github.com/nedbat/coveragepy"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.0","repository_url":"https://github.com/pypa/distlib"},{"name":"exceptiongroup","old_version":"1.2.2","new_version":"1.3.0","repository_url":"https://github.com/agronholm/exceptiongroup"},{"name":"filelock","old_version":"3.16.1","new_version":"3.19.1","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"freezegun","old_version":"1.5.1","new_version":"1.5.5","repository_url":"https://github.com/spulec/freezegun"},{"name":"identify","old_version":"2.6.5","new_version":"2.6.14","repository_url":"https://github.com/pre-commit/identify"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.1.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"junit-xml","old_version":"1.8","new_version":"1.9","repository_url":"https://github.com/kyrus/python-junit-xml"},{"name":"mutmut","old_version":"3.2.2","new_version":"3.3.1","repository_url":"https://github.com/boxed/mutmut"},{"name":"packaging","old_version":"24.2","new_version":"25.0","repository_url":"https://github.com/pypa/packaging"},{"name":"parso","old_version":"0.8.4","new_version":"0.8.5","repository_url":"https://github.com/davidhalter/parso"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.4.0","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"pre-commit","old_version":"4.0.1","new_version":"4.3.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pygments","old_version":"2.19.1","new_version":"2.19.2","repository_url":"https://github.com/pygments/pygments"},{"name":"pyright","old_version":"1.1.391","new_version":"1.1.405","repository_url":"https://github.com/RobertCraigie/pyright-python"},{"name":"pytest","old_version":"8.3.4","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-cov","old_version":"6.0.0","new_version":"7.0.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pytest-github-actions-annotate-failures","old_version":"0.2.0","new_version":"0.3.0","repository_url":"https://github.com/pytest-dev/pytest-github-actions-annotate-failures"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-randomly","old_version":"3.16.0","new_version":"4.0.1","repository_url":"https://github.com/pytest-dev/pytest-randomly"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"rich","old_version":"13.9.4","new_version":"14.1.0","repository_url":"https://github.com/Textualize/rich"},{"name":"ruff","old_version":"0.8.6","new_version":"0.13.2","repository_url":"https://github.com/astral-sh/ruff"},{"name":"setproctitle","old_version":"1.3.4","new_version":"1.3.7","repository_url":"https://github.com/dvarrazzo/py-setproctitle"},{"name":"textual","old_version":"1.0.0","new_version":"6.1.0","repository_url":"https://github.com/Textualize/textual"},{"name":"typing-extensions","old_version":"4.12.2","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"virtualenv","old_version":"20.28.1","new_version":"20.34.0","repository_url":"https://github.com/pypa/virtualenv"}],"path":null,"ecosystem":"pip"},"body":"Bumps the dev-dependencies group with 34 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `3.2.1` | `3.3.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2024.12.14` | `2025.8.3` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.1` | `3.4.3` |\n| [makefun](https://github.com/smarie/python-makefun) | `1.15.6` | `1.16.0` |\n| [pychoir](https://github.com/kajaste/pychoir) | `0.0.27` | `0.0.29` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [coverage](https://github.com/nedbat/coveragepy) | `7.6.10` | `7.10.7` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.0` |\n| [exceptiongroup](https://github.com/agronholm/exceptiongroup) | `1.2.2` | `1.3.0` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.19.1` |\n| [freezegun](https://github.com/spulec/freezegun) | `1.5.1` | `1.5.5` |\n| [identify](https://github.com/pre-commit/identify) | `2.6.5` | `2.6.14` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.1.0` |\n| [junit-xml](https://github.com/kyrus/python-junit-xml) | `1.8` | `1.9` |\n| [mutmut](https://github.com/boxed/mutmut) | `3.2.2` | `3.3.1` |\n| [packaging](https://github.com/pypa/packaging) | `24.2` | `25.0` |\n| [parso](https://github.com/davidhalter/parso) | `0.8.4` | `0.8.5` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.4.0` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.0.1` | `4.3.0` |\n| [pygments](https://github.com/pygments/pygments) | `2.19.1` | `2.19.2` |\n| [pyright](https://github.com/RobertCraigie/pyright-python) | `1.1.391` | `1.1.405` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.4` | `8.4.2` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `6.0.0` | `7.0.0` |\n| [pytest-github-actions-annotate-failures](https://github.com/pytest-dev/pytest-github-actions-annotate-failures) | `0.2.0` | `0.3.0` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [pytest-randomly](https://github.com/pytest-dev/pytest-randomly) | `3.16.0` | `4.0.1` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [rich](https://github.com/Textualize/rich) | `13.9.4` | `14.1.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.8.6` | `0.13.2` |\n| [setproctitle](https://github.com/dvarrazzo/py-setproctitle) | `1.3.4` | `1.3.7` |\n| [textual](https://github.com/Textualize/textual) | `1.0.0` | `6.1.0` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.12.2` | `4.15.0` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `20.28.1` | `20.34.0` |\n\n\nUpdates `python-json-logger` from 3.2.1 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nhairs/python-json-logger/releases\"\u003epython-json-logger's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v3.2.1...v3.3.0\"\u003e3.3.0\u003c/a\u003e - 2025-03-06\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eexc_info_as_array\u003c/code\u003e and \u003ccode\u003estack_info_as_array\u003c/code\u003e options are added to \u003ccode\u003epythonjsonlogger.core.BaseJsonFormatter\u003c/code\u003e allowing both to be encoded as list of lines instead of a single multi-line string. \u003ca href=\"https://redirect.github.com/nhairs/python-json-logger/issues/35\"\u003e#35\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003emsgspec-python313-pre\u003c/code\u003e from \u003ccode\u003edev\u003c/code\u003e dependencies preventing potential RCE. Details: \u003ca href=\"https://github.com/nhairs/python-json-logger/security/advisories/GHSA-wmxh-pxcx-9w24#advisory-comment-121307\"\u003eGHSA-wmxh-pxcx-9w24\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks \u003ca href=\"https://github.com/1hakusai1\"\u003e\u003ccode\u003e@​1hakusai1\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/omnigodz\"\u003e\u003ccode\u003e@​omnigodz\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/nhairs/python-json-logger/blob/main/docs/changelog.md\"\u003epython-json-logger's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v3.2.1...v3.3.0\"\u003e3.3.0\u003c/a\u003e - 2025-03-06\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eexc_info_as_array\u003c/code\u003e and \u003ccode\u003estack_info_as_array\u003c/code\u003e options are added to \u003ccode\u003epythonjsonlogger.core.BaseJsonFormatter\u003c/code\u003e allowing both to be encoded as list of lines instead of a single multi-line string. \u003ca href=\"https://redirect.github.com/nhairs/python-json-logger/issues/35\"\u003e#35\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003emsgspec-python313-pre\u003c/code\u003e from \u003ccode\u003edev\u003c/code\u003e dependencies preventing potential RCE. Details: \u003ca href=\"https://github.com/nhairs/python-json-logger/security/advisories/GHSA-wmxh-pxcx-9w24#advisory-comment-121307\"\u003eGHSA-wmxh-pxcx-9w24\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks \u003ca href=\"https://github.com/1hakusai1\"\u003e\u003ccode\u003e@​1hakusai1\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/omnigodz\"\u003e\u003ccode\u003e@​omnigodz\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/9e6cb679dfb56cb82d9a8cc91f956efd72427055\"\u003e\u003ccode\u003e9e6cb67\u003c/code\u003e\u003c/a\u003e Release 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/db04a0f9066cc331f8d6177f828fe073c7b2a4cc\"\u003e\u003ccode\u003edb04a0f\u003c/code\u003e\u003c/a\u003e Add options to encode stack information into an array (\u003ca href=\"https://redirect.github.com/nhairs/python-json-logger/issues/39\"\u003e#39\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/0092ea0be1cd28e3c1da51eaa084c503bb3710b7\"\u003e\u003ccode\u003e0092ea0\u003c/code\u003e\u003c/a\u003e Move to uv (\u003ca href=\"https://redirect.github.com/nhairs/python-json-logger/issues/40\"\u003e#40\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/1ce81a3614d8c77389a9c048d341593e2a7467e7\"\u003e\u003ccode\u003e1ce81a3\u003c/code\u003e\u003c/a\u003e [tests] Update tests for msgspec 0.19.0 (\u003ca href=\"https://redirect.github.com/nhairs/python-json-logger/issues/41\"\u003e#41\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v3.2.1...v3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2024.12.14 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\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/e767d5938eddddf804216cec93a55c85129c5f2d\"\u003e\u003ccode\u003ee767d59\u003c/code\u003e\u003c/a\u003e 2025.06.15 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/357\"\u003e#357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/3e7076557d66b598fcca462e422dc988f09a6802\"\u003e\u003ccode\u003e3e70765\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.5.0 to 5.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/9afd2ff407b8a0638988c952a6636b8dd623af7c\"\u003e\u003ccode\u003e9afd2ff\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4.2.1 to 4.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/d7c816cbc9cf621b3ddc8cd7fa7eda3f36982620\"\u003e\u003ccode\u003ed7c816c\u003c/code\u003e\u003c/a\u003e remove code that's no longer required that 3.7 is our minimum (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/351\"\u003e#351\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/189961379209973abd0dd6304297f03e2359e1b9\"\u003e\u003ccode\u003e1899613\u003c/code\u003e\u003c/a\u003e Declare setuptools as the build backend in pyproject.toml (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/350\"\u003e#350\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/c8741423d67e1025c0bdad5225ded05cf962f207\"\u003e\u003ccode\u003ec874142\u003c/code\u003e\u003c/a\u003e update CI for ubuntu 20.04 deprecation (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/348\"\u003e#348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/275c9eb55733a464589c15fb4566fddd4598e5b2\"\u003e\u003ccode\u003e275c9eb\u003c/code\u003e\u003c/a\u003e 2025.04.26 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/347\"\u003e#347\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2024.12.14...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.1 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\u003ch2\u003eVersion 3.4.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.9\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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.1...3.4.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `makefun` from 1.15.6 to 1.16.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/smarie/python-makefun/blob/main/docs/changelog.md\"\u003emakefun's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e1.16.0 - Support for 3.14, dropped support for \u0026lt; 3.9\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved official support for python versions \u003ccode\u003e\u0026lt;3.9\u003c/code\u003e. These versions will not run in CI anymore.\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eRuntimeError\u003c/code\u003e in tests when running on python 3.14. Added python 3.14 to CI. Fixes\n\u003ca href=\"https://redirect.github.com/smarie/python-makefun/issues/112\"\u003e#112\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/smarie/python-makefun/commit/197b14827c1b7830c0288477c007e1f1592f52ad\"\u003e\u003ccode\u003e197b148\u003c/code\u003e\u003c/a\u003e Changelog for tag, ready to release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/321a39c9a8be1497ba7dfbb9c7c16a9442ae25a6\"\u003e\u003ccode\u003e321a39c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/smarie/python-makefun/issues/118\"\u003e#118\u003c/a\u003e from smarie/feature/112_support_py314\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/39f061e17a7d7472e33cec76d162381ae82b49e3\"\u003e\u003ccode\u003e39f061e\u003c/code\u003e\u003c/a\u003e With latest versions of all actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/4771aaf910459dfabb12109cf4ae37cd089fd9d6\"\u003e\u003ccode\u003e4771aaf\u003c/code\u003e\u003c/a\u003e Changed the fix to leverage pytest-asyncio, now that we do not support python...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/498ed69f5fa22baa5300b354d419fd45be55cf6e\"\u003e\u003ccode\u003e498ed69\u003c/code\u003e\u003c/a\u003e Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/87eb2ebefa88d212e4ae75f28fc0ffc2fb9194c6\"\u003e\u003ccode\u003e87eb2eb\u003c/code\u003e\u003c/a\u003e Fixed \u003ccode\u003eRuntimeError\u003c/code\u003e in tests when running on pythn 3.14. Added python 3.14 t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/4573c65b6b8405b6194361805a44ba8d9d08c41d\"\u003e\u003ccode\u003e4573c65\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/smarie/python-makefun/issues/117\"\u003e#117\u003c/a\u003e from smarie/chore/116_gh_pages_workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/db582747d0b89ea35927176910205f3f68a429d4\"\u003e\u003ccode\u003edb58274\u003c/code\u003e\u003c/a\u003e Added gh pages workflow. Fixed \u003ca href=\"https://redirect.github.com/smarie/python-makefun/issues/116\"\u003e#116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/c8990e6a660082b42f8314f96bf7369a0f6c2463\"\u003e\u003ccode\u003ec8990e6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/smarie/python-makefun/issues/114\"\u003e#114\u003c/a\u003e from smarie/feature/py35_in_ci\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/3b1e628e9e7ecf05ea9bc6a9fb73c45563a3c24a\"\u003e\u003ccode\u003e3b1e628\u003c/code\u003e\u003c/a\u003e Removed 3.14 for now\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/smarie/python-makefun/compare/1.15.6...1.16.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pychoir` from 0.0.27 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/kajaste/pychoir/releases\"\u003epychoir's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eTwenty-ninth release\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch pipenv \u0026amp; setuptools to uv by \u003ca href=\"https://github.com/kajaste\"\u003e\u003ccode\u003e@​kajaste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kajaste/pychoir/pull/97\"\u003ekajaste/pychoir#97\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/kajaste/pychoir/compare/v0.0.28...v0.0.29\"\u003ehttps://github.com/kajaste/pychoir/compare/v0.0.28...v0.0.29\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eTwenty-eighth release\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate dev deps by \u003ca href=\"https://github.com/kajaste\"\u003e\u003ccode\u003e@​kajaste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kajaste/pychoir/pull/94\"\u003ekajaste/pychoir#94\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump dev deps by \u003ca href=\"https://github.com/kajaste\"\u003e\u003ccode\u003e@​kajaste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kajaste/pychoir/pull/95\"\u003ekajaste/pychoir#95\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs \u0026amp; Makefile update by \u003ca href=\"https://github.com/kajaste\"\u003e\u003ccode\u003e@​kajaste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kajaste/pychoir/pull/96\"\u003ekajaste/pychoir#96\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/kajaste/pychoir/compare/v0.0.27...v0.0.28\"\u003ehttps://github.com/kajaste/pychoir/compare/v0.0.27...v0.0.28\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/kajaste/pychoir/commit/bf2f254bcadf03026867a6442523549f1abb16d3\"\u003e\u003ccode\u003ebf2f254\u003c/code\u003e\u003c/a\u003e Switch pipenv \u0026amp; setuptools to uv\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kajaste/pychoir/commit/c1d251d480a47f8bc29e89765c19b00b594442b2\"\u003e\u003ccode\u003ec1d251d\u003c/code\u003e\u003c/a\u003e Docs \u0026amp; Makefile update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kajaste/pychoir/commit/f6181a037d2e791bbf9306b4210a9b4934fc1bbf\"\u003e\u003ccode\u003ef6181a0\u003c/code\u003e\u003c/a\u003e Drop 3.7, add 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kajaste/pychoir/commit/f94fdad20f981f344adbdc07b9aa1cb00795b671\"\u003e\u003ccode\u003ef94fdad\u003c/code\u003e\u003c/a\u003e Bump dev deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kajaste/pychoir/commit/5a2ebd7ca625779b7beaab71d50631f9529f21eb\"\u003e\u003ccode\u003e5a2ebd7\u003c/code\u003e\u003c/a\u003e Update dev deps\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/kajaste/pychoir/compare/v0.0.27...v0.0.29\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.4 to 2.32.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.32.5\u003c/h2\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b25c87d7cb8d6a18a37fa12442b5f883f9e41741\"\u003e\u003ccode\u003eb25c87d\u003c/code\u003e\u003c/a\u003e v2.32.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/131e506079d97606e4214cc4d87b780ac478de7a\"\u003e\u003ccode\u003e131e506\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psf/requests/issues/7010\"\u003e#7010\u003c/a\u003e from psf/dependabot/github_actions/actions/checkout-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b336cb2bc616a63a93c6470c558fc1f576b77f90\"\u003e\u003ccode\u003eb336cb2\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.2.0 to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/46e939b5525d9c72b677340985582b04b128478a\"\u003e\u003ccode\u003e46e939b\u003c/code\u003e\u003c/a\u003e Update publish workflow to use \u003ccode\u003eartifact-id\u003c/code\u003e instead of \u003ccode\u003ename\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/4b9c546aa3f35fca6ca24945376fe7462bb007c4\"\u003e\u003ccode\u003e4b9c546\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psf/requests/issues/6999\"\u003e#6999\u003c/a\u003e from psf/dependabot/github_actions/step-security/har...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/7618dbef01d333f23ba4b9c4d97397b06dd89cb6\"\u003e\u003ccode\u003e7618dbe\u003c/code\u003e\u003c/a\u003e Bump step-security/harden-runner from 2.12.0 to 2.13.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2edca11103c1c27dd8b572dab544b7f48cf3b446\"\u003e\u003ccode\u003e2edca11\u003c/code\u003e\u003c/a\u003e Add support for Python 3.14 and drop support for Python 3.8 (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6993\"\u003e#6993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/fec96cd5976ad763e45bac9a033d62cca1877a00\"\u003e\u003ccode\u003efec96cd\u003c/code\u003e\u003c/a\u003e Update Makefile rules (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6996\"\u003e#6996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d58d8aa2f45c3575268d6d5250745ef69f9cf8b7\"\u003e\u003ccode\u003ed58d8aa\u003c/code\u003e\u003c/a\u003e docs: clarify timeout parameter uses seconds in Session.request (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6994\"\u003e#6994\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/91a3eabd3dcc4d7f36dd8249e4777a90ef9b4305\"\u003e\u003ccode\u003e91a3eab\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 3.28.5 to 3.29.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.4...v2.32.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.6.10 to 7.10.7\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.7 — 2025-09-21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance: with branch coverage in large files, generating HTML, JSON, or\nLCOV reports could take far too long due to some quadratic behavior when\ncreating the function and class index pages.  This is now fixed, closing\n\u003ccode\u003eissue 2048\u003c/code\u003e_.  Thanks to Daniel Diniz for help diagnosing the problem.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMost warnings and a few errors now have links to a page in the docs\nexplaining the specific message.  Closes \u003ccode\u003eissue 1921\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1921: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1921\"\u003enedbat/coveragepy#1921\u003c/a\u003e\n.. _issue 2048: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2048\"\u003enedbat/coveragepy#2048\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-10-6:\u003c/p\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\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/92a2af54e6bc948a9c536bd9b12bab70fb055904\"\u003e\u003ccode\u003e92a2af5\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.10.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/952afdaca658d5e1acdd533c727448a0b218caf0\"\u003e\u003ccode\u003e952afda\u003c/code\u003e\u003c/a\u003e docs: prep for 7.10.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/a301761e69da97b27662f395974d26f78fa8b2b5\"\u003e\u003ccode\u003ea301761\u003c/code\u003e\u003c/a\u003e build: riscv64 wheels (\u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2055\"\u003e#2055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/5daff8d38786aa540ff9bec622eb3389f117f911\"\u003e\u003ccode\u003e5daff8d\u003c/code\u003e\u003c/a\u003e docs: now source is formatted with ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/04bbc3acfd914fdd99ffec9873bc03bdc7329357\"\u003e\u003ccode\u003e04bbc3a\u003c/code\u003e\u003c/a\u003e docs: discuss cog in the contributing docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/c181b9315f59a81667da47cf3d760d0253872238\"\u003e\u003ccode\u003ec181b93\u003c/code\u003e\u003c/a\u003e build: use cog --check-fail-msg to instruct devs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/33c4ba196f49e0ee86ab0ff473c0876c0bacd5fa\"\u003e\u003ccode\u003e33c4ba1\u003c/code\u003e\u003c/a\u003e chore: make upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/0744b73b6b503ccf2cb75aba095c023672b921a8\"\u003e\u003ccode\u003e0744b73\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group across 1 directory with 2 updates (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/0d5a112fc54c1d5a07f3f2ec451779808902c9af\"\u003e\u003ccode\u003e0d5a112\u003c/code\u003e\u003c/a\u003e perf: bulk narrowing to avoid N**2. \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2048\"\u003e#2048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/a868ed9269ca474748130f5c6360cd2aae66ffc8\"\u003e\u003ccode\u003ea868ed9\u003c/code\u003e\u003c/a\u003e docs: mention Python Discord on the index page\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nedbat/coveragepy/compare/7.6.10...7.10.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 `exceptiongroup` from 1.2.2 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/agronholm/exceptiongroup/releases\"\u003eexceptiongroup's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003e**kwargs\u003c/code\u003e to function and method signatures as appropriate to match the signatures in the standard library\u003c/li\u003e\n\u003cli\u003eIn line with the stdlib typings in typeshed, updated \u003ccode\u003e(Base)ExceptionGroup\u003c/code\u003e generic types to define defaults for their generic arguments (defaulting to \u003ccode\u003eBaseExceptionGroup[BaseException]\u003c/code\u003e and \u003ccode\u003eExceptionGroup[Exception]\u003c/code\u003e) (PR by \u003ca href=\"https://github.com/mikenerone\"\u003e\u003ccode\u003e@​mikenerone\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eBaseExceptionGroup.__init__()\u003c/code\u003e to directly call \u003ccode\u003eBaseException.__init__()\u003c/code\u003e instead of the superclass \u003ccode\u003e__init__()\u003c/code\u003e in order to emulate the CPython behavior (broken or not) (PR by \u003ca href=\"https://github.com/cfbolz\"\u003e\u003ccode\u003e@​cfbolz\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged the \u003ccode\u003eexceptions\u003c/code\u003e attribute to always return the same tuple of exceptions, created from the original exceptions sequence passed to \u003ccode\u003eBaseExceptionGroup\u003c/code\u003e to match CPython behavior (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/143\"\u003e#143\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/agronholm/exceptiongroup/blob/main/CHANGES.rst\"\u003eexceptiongroup's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eVersion history\u003c/h1\u003e\n\u003cp\u003eThis library adheres to \u003ccode\u003eSemantic Versioning 2.0 \u0026lt;http://semver.org/\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e1.3.0\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003e**kwargs\u003c/code\u003e to function and method signatures as appropriate to match the\nsignatures in the standard library\u003c/li\u003e\n\u003cli\u003eIn line with the stdlib typings in typeshed, updated \u003ccode\u003e(Base)ExceptionGroup\u003c/code\u003e generic\ntypes to define defaults for their generic arguments (defaulting to\n\u003ccode\u003eBaseExceptionGroup[BaseException]\u003c/code\u003e and \u003ccode\u003eExceptionGroup[Exception]\u003c/code\u003e)\n(PR by \u003ca href=\"https://github.com/mikenerone\"\u003e\u003ccode\u003e@​mikenerone\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eBaseExceptionGroup.__init__()\u003c/code\u003e to directly call\n\u003ccode\u003eBaseException.__init__()\u003c/code\u003e instead of the superclass \u003ccode\u003e__init__()\u003c/code\u003e in order to\nemulate the CPython behavior (broken or not) (PR by \u003ca href=\"https://github.com/cfbolz\"\u003e\u003ccode\u003e@​cfbolz\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged the \u003ccode\u003eexceptions\u003c/code\u003e attribute to always return the same tuple of exceptions,\ncreated from the original exceptions sequence passed to \u003ccode\u003eBaseExceptionGroup\u003c/code\u003e to\nmatch CPython behavior\n(\u003ccode\u003e[#143](https://github.com/agronholm/exceptiongroup/issues/143) \u0026lt;https://github.com/agronholm/exceptiongroup/issues/143\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e1.2.2\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved an \u003ccode\u003eassert\u003c/code\u003e in \u003ccode\u003eexceptiongroup._formatting\u003c/code\u003e that caused compatibility\nissues with Sentry (\u003ccode\u003e[#123](https://github.com/agronholm/exceptiongroup/issues/123) \u0026lt;https://github.com/agronholm/exceptiongroup/issues/123\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e1.2.1\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated the copying of \u003ccode\u003e__notes__\u003c/code\u003e to match CPython behavior (PR by CF Bolz-Tereick)\u003c/li\u003e\n\u003cli\u003eCorrected the type annotation of the exception handler callback to accept a\n\u003ccode\u003eBaseExceptionGroup\u003c/code\u003e instead of \u003ccode\u003eBaseException\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFixed type errors on Python \u0026lt; 3.10 and the type annotation of \u003ccode\u003esuppress()\u003c/code\u003e\n(PR by John Litborn)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e1.2.0\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded special monkeypatching if \u003ccode\u003eApport \u0026lt;https://github.com/canonical/apport\u0026gt;\u003c/code\u003e_ has\noverridden \u003ccode\u003esys.excepthook\u003c/code\u003e so it will format exception groups correctly\n(PR by John Litborn)\u003c/li\u003e\n\u003cli\u003eAdded a backport of \u003ccode\u003econtextlib.suppress()\u003c/code\u003e from Python 3.12.1 which also handles\nsuppressing exceptions inside exception groups\u003c/li\u003e\n\u003cli\u003eFixed bare \u003ccode\u003eraise\u003c/code\u003e in a handler reraising the original naked exception rather than\nan exception group which is what is raised when you do a \u003ccode\u003eraise\u003c/code\u003e in an \u003ccode\u003eexcept*\u003c/code\u003e\nhandler\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e1.1.3\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ecatch()\u003c/code\u003e now raises a \u003ccode\u003eTypeError\u003c/code\u003e if passed an async exception handler instead of\njust giving a \u003ccode\u003eRuntimeWarning\u003c/code\u003e about the coroutine never being awaited. (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/66\"\u003e#66\u003c/a\u003e, PR by\nJohn Litborn)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/77fba8a871408ff2c48f536e5e73b1918239ba5f\"\u003e\u003ccode\u003e77fba8a\u003c/code\u003e\u003c/a\u003e Added the release version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/5e153aa379ac53af79cc7f5e287f77929cb4d0dc\"\u003e\u003ccode\u003e5e153aa\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Migrated test dependencies to dependency groups\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/5000bfea208ad59e3a20e2fb91a513ad559711b1\"\u003e\u003ccode\u003e5000bfe\u003c/code\u003e\u003c/a\u003e Migrated tox configuration to native TOML\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/427220d67a52585e98575103b090b5fdaf87a899\"\u003e\u003ccode\u003e427220d\u003c/code\u003e\u003c/a\u003e Updated pytest options\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/4ca264fa3605d52067c20b351a0d3b947fa1f363\"\u003e\u003ccode\u003e4ca264f\u003c/code\u003e\u003c/a\u003e Migrated test dependencies to dependency groups\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/163c3a8cb27f8a5325258b5a83e7cf8fc002c3b7\"\u003e\u003ccode\u003e163c3a8\u003c/code\u003e\u003c/a\u003e Marked test_exceptions_mutate_original_sequence as xfail on pypy3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/a1765740db2d55d1eb91d67a8fbbb355caf7881b\"\u003e\u003ccode\u003ea176574\u003c/code\u003e\u003c/a\u003e Always create the exceptions tuple at init and return it from the exceptions ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/550b79621cc35892413fa91903a1d6c7951d0449\"\u003e\u003ccode\u003e550b796\u003c/code\u003e\u003c/a\u003e Added BaseExceptionGroup.\u003cstrong\u003einit\u003c/strong\u003e, following CPython (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/142\"\u003e#142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/2a84dfd5599bca0c653143f0f4252d38afac9867\"\u003e\u003ccode\u003e2a84dfd\u003c/code\u003e\u003c/a\u003e Added typevar defaults to (Base)ExceptionGroup (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/147\"\u003e#147\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/fb9133b495fc82bc2907e8cfbdff6c6dc3087e2f\"\u003e\u003ccode\u003efb9133b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/145\"\u003e#145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/exceptiongroup/compare/1.2.2...1.3.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.16.1 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\u003ch2\u003e3.18.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIndicate that locks are exclusive/write locks. by \u003ca href=\"https://github.com/bicarlsen\"\u003e\u003ccode\u003e@​bicarlsen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/394\"\u003etox-dev/filelock#394\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport fcntl check on Emscripten by \u003ca href=\"https://github.com/juntyr\"\u003e\u003ccode\u003e@​juntyr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/398\"\u003etox-dev/filelock#398\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/bicarlsen\"\u003e\u003ccode\u003e@​bicarlsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/394\"\u003etox-dev/filelock#394\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/juntyr\"\u003e\u003ccode\u003e@​juntyr\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/398\"\u003etox-dev/filelock#398\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.17.0...3.18.0\"\u003ehttps://github.com/tox-dev/filelock/compare/3.17.0...3.18.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDrop 3.8\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.16.1...3.17.0\"\u003ehttps://github.com/tox-dev/filelock/compare/3.16.1...3.17.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.16.1...3.19.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `freezegun` from 1.5.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\u003c/blockquote\u003e\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.5.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 `identify` from 2.6.5 to 2.6.14\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/6667ae3392c3e2178469779352012d4518c8cdc0\"\u003e\u003ccode\u003e6667ae3\u003c/code\u003e\u003c/a\u003e v2.6.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/0ce88278a87decaf8a7b266074a0044a8fb8dd5c\"\u003e\u003ccode\u003e0ce8827\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/identify/issues/537\"\u003e#537\u003c/a\u003e from LNSD/add-meson-options-support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/29d1fcc8d1dafe99cf82e4c3a6200acdd17490fd\"\u003e\u003ccode\u003e29d1fcc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/identify/issues/536\"\u003e#536\u003c/a\u003e from mike325/fix/add_robot_filetype\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/daf602344d904fd56a85ae76f0a2594ddcebc479\"\u003e\u003ccode\u003edaf6023\u003c/code\u003e\u003c/a\u003e Add support for \u003ccode\u003emeson.options\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/6d493646beb1b740c4b871dd7692b5ab453c1beb\"\u003e\u003ccode\u003e6d49364\u003c/code\u003e\u003c/a\u003e fix: add robot filetype\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/53fdb98ef92dc697d7b84cf07dbb3e6e5d7493f6\"\u003e\u003ccode\u003e53fdb98\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/identify/issues/531\"\u003e#531\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/ffc2322be9c429f69761a777a2f9f1adc87680d0\"\u003e\u003ccode\u003effc2322\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/identify/commit/af4da9c69b07a41dfbfc1f3ec60d27d9aa0654dc\"\u003e\u003ccode\u003eaf4da9c\u003c/code\u003e\u003c/a\u003e v2.6.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/bdf9c05f99c426e7ab115f68cf62bd0a70b33012\"\u003e\u003ccode\u003ebdf9c05\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/identify/issues/530\"\u003e#530\u003c/a\u003e from dirtcrusher/feature/special_cpp_extensions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/1a6b03cde137b43d4aa6bfd5ea80a762b923efa0\"\u003e\u003ccode\u003e1a6b03c\u003c/code\u003e\u003c/a\u003e Added C++ 'ipp' and 'tpp' file extensions\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/identify/compare/v2.6.5...v2.6.14\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `iniconfig` from 2.0.0 to 2.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/iniconfig/releases\"\u003einiconfig's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.1.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/26\"\u003e#26\u003c/a\u003e - list individuals in license file by \u003ca href=\"https://github.com/RonnyPfannschmidt\"\u003e\u003ccode\u003e@​RonnyPfannschmidt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/52\"\u003epytest-dev/iniconfig#52\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRun tests in CI by \u003ca href=\"https://github.com/nicoddemus\"\u003e\u003ccode\u003e@​nicoddemus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/53\"\u003epytest-dev/iniconfig#53\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003epypa/gh-action-pypi-publish@release/v1\u003c/code\u003e @ GHA by \u003ca href=\"https://github.com/webknjaz\"\u003e\u003ccode\u003e@​webknjaz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/54\"\u003epytest-dev/iniconfig#54\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12-3.13 and drop EOL 3.7 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/56\"\u003epytest-dev/iniconfig#56\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/nicoddemus\"\u003e\u003ccode\u003e@​nicoddemus\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/53\"\u003epytest-dev/iniconfig#53\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/webknjaz\"\u003e\u003ccode\u003e@​webknjaz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/54\"\u003epytest-dev/iniconfig#54\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pytest-dev/iniconfig/compare/v2.0.0...v2.1.0\"\u003ehttps://github.com/pytest-dev/iniconfig/compare/v2.0.0...v2.1.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/pytest-dev/iniconfig/blob/main/CHANGELOG\"\u003einiconfig's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.1.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix artifact building - pin minimal version of hatch\u003c/li\u003e\n\u003cli\u003edrop eol python 3.8\u003c/li\u003e\n\u003cli\u003eadd python 3.12 and 3.13\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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/iniconfig/commit/34793a6417e35e511d0c17ffdd8a02ade0f9568e\"\u003e\u003ccode\u003e34793a6\u003c/code\u003e\u003c/a\u003e pre-commit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/136435d0a4345bb048dca98e7c2f4e938d74521b\"\u003e\u003ccode\u003e136435d\u003c/code\u003e\u003c/a\u003e update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/0bb99ad0f7a6b21d5eb24214a260132317a11e43\"\u003e\u003ccode\u003e0bb99ad\u003c/code\u003e\u003c/a\u003e fix \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/62\"\u003e#62\u003c/a\u003e: require a minimal hatch version with correct metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/16793eaddac67de0b8d621ae4e42e05b927e8d67\"\u003e\u003ccode\u003e16793ea\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/56\"\u003e#56\u003c/a\u003e from hugovk/add-3.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/3dc2b2d6bf03e4b7cc92949a8ef0983fdd7ee442\"\u003e\u003ccode\u003e3dc2b2d\u003c/code\u003e\u003c/a\u003e Add support for Python 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/2eb8abfd9d3843100d7f138efe5bcd989a885024\"\u003e\u003ccode\u003e2eb8abf\u003c/code\u003e\u003c/a\u003e Bump GitHub Actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/8c4bb5bf57dde613c8cdcf0e02a09b2fff630907\"\u003e\u003ccode\u003e8c4bb5b\u003c/code\u003e\u003c/a\u003e Set python-version for pre-commit to remove CI warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/58b22b2d672564ff1925df51f4a8e07486765ed2\"\u003e\u003ccode\u003e58b22b2\u003c/code\u003e\u003c/a\u003e Drop support for EOL Python 3.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/4a53042252a109bcdd64422058de91c5dffff763\"\u003e\u003ccode\u003e4a53042\u003c/code\u003e\u003c/a\u003e Add support for Python 3.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/9cae43103df70bac6fde7b9f35ad11a9f1be0cb4\"\u003e\u003ccode\u003e9cae431\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/54\"\u003e#54\u003c/a\u003e from webknjaz/patch-1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/iniconfig/compare/v2.0.0...v2.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `junit-xml` from 1.8 to 1.9\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/kyrus/python-junit-xml/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mutmut` from 3.2.2 to 3.3.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/boxed/mutmut/blob/main/HISTORY.rst\"\u003emutmut's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e3.3.1\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Increased threshold for mutant timeouts\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003etests_dir\u003c/code\u003e config. Accepts a single entry or a list of directories.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAsync generators fixes\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed bad mutations for certain string escape sequences\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance fixes\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eVarious internal bug fixes\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e3.3.0\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003ePython 3.13 compatibility!\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eNew argument \u003ccode\u003e--show-killed\u003c/code\u003e for \u003ccode\u003emutmut browse\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix to avoid accidentally importing the un-mutated original code\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eHandle segfault for mutant subprocesses\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded mutations for string literals\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded mutations for common string methods\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFaster mutant generation via subprocesses\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eself\u003c/code\u003e parameter for mutated class methods\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix trampoline generation for function calls with 'orig' or 'mutants' as argument names.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCopy full source directory before creating mutants\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved error message when forced fail test fails\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed issue with spaces in the python executable path\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDo not mutate \u003ccode\u003e__new__\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAnnotate mutant dicts (and fixes compatibility with Pydantic)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eReplaced parso with LibCST\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/boxed/mutmut/commit/0f2586a806e069cc335d68ccd7d6277088f69249\"\u003e\u003ccode\u003e0f2586a\u003c/code\u003e\u003c/a\u003e Release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/6a5c471e0c13f782caacfdd244f2717002a13192\"\u003e\u003ccode\u003e6a5c471\u003c/code\u003e\u003c/a\u003e Pass mutation generation errors from subprocess to main process\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/7b03f4bffc3e8ac0c85158947e4659a5831cbf63\"\u003e\u003ccode\u003e7b03f4b\u003c/code\u003e\u003c/a\u003e Update timeout values\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/3cd39fac6f800de8859b8e876d0f74cd100574c8\"\u003e\u003ccode\u003e3cd39fa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/boxed/mutmut/issues/408\"\u003e#408\u003c/a\u003e from souradeep-das/souradeep/add_tests_dir\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/3e52e5e13347589adf725de1847204aad1b22a64\"\u003e\u003ccode\u003e3e52e5e\u003c/code\u003e\u003c/a\u003e modify e2e tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/10bb45183d781504fb13925dd3baee21edcf8673\"\u003e\u003ccode\u003e10bb451\u003c/code\u003e\u003c/a\u003e merge latest\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/d4980abef4bbbcea6e9070bc0a1c92626bb9ebb4\"\u003e\u003ccode\u003ed4980ab\u003c/code\u003e\u003c/a\u003e fix: accept lists as tests_dir\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/22f3924b6b5a2ff7916c1f62aa1ed1f3341e42ee\"\u003e\u003ccode\u003e22f3924\u003c/code\u003e\u003c/a\u003e Improve diff view performance a bit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/eb37032a679e1b160b012d838f798fd7fc266e48\"\u003e\u003ccode\u003eeb37032\u003c/code\u003e\u003c/a\u003e Make rlimit signal SIGXCPU first; only fallback to SIGKILL later on\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/99ecd3209b8ed49b6dc9d97dcfe67e66f0e8e773\"\u003e\u003ccode\u003e99ecd32\u003c/code\u003e\u003c/a\u003e fix timeout checker \u0026quot;dictionary changed size during iteration\u0026quot; bug (\u003ca href=\"https://redirect.github.com/boxed/mutmut/issues/411\"\u003e#411\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boxed/mutmut/compare/3.2.2...3.3.1\"\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 `parso` from 0.8.4 to 0.8.5\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/davidhalter/parso/blob/master/CHANGELOG.rst\"\u003eparso's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.8.5 (2025-08-23)\n++++++++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a fallback grammar 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/davidhalter/parso/commit/be9f5a401feaa1a7eda935bc68b2d3baed9a30ab\"\u003e\u003ccode\u003ebe9f5a4\u003c/code\u003e\u003c/a\u003e Prepare release 0.8.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/davidhalter/parso/commit/7e4777b775206038a1aa87282c79ed04f5f1c3fd\"\u003e\u003ccode\u003e7e4777b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/davidhalter/parso/issues/234\"\u003e#234\u003c/a\u003e from A5rocks/future-compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/davidhalter/parso/commit/e99dbdd536da741d4935c427a6231f4d5eb6ea79\"\u003e\u003ccode\u003ee99dbdd\u003c/code\u003e\u003c/a\u003e Remove redundant warnings import\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/davidhalter/parso/commit/e22dc67aa10b53bbf069f825a0d40eefc727f0cb\"\u003e\u003ccode\u003ee22dc67\u003c/code\u003e\u003c/a\u003e Avoid warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/davidhalter/parso/commit/baa3c90d85a10f6abb8307246a89fc683981cee7\"\u003e\u003ccode\u003ebaa3c90\u003c/code\u003e\u003c/a\u003e Load newest grammar in face of a future grammar\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/davidhalter/parso/commit/23b1cdf73d95ae20f23e2fd198cafcd8fef529ad\"\u003e\u003ccode\u003e23b1cdf\u003c/code\u003e\u003c/a\u003e Drop Python 3.7 in CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/davidhalter/parso/commit/a73af5c709a292cbb789bf6cab38b20559f166c0\"\u003e\u003ccode\u003ea73af5c\u003c/code\u003e\u003c/a\u003e Fix pip install -e in docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/davidhalter/parso/commit/9328cffce392b4c3e907db4bbfad06ca1111b3ee\"\u003e\u003ccode\u003e9328cff\u003c/code\u003e\u003c/a\u003e Update classifiers in setup.py (\u003ca href=\"https://redirect.github.com/davidhalter/parso/issues/230\"\u003e#230\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/davidhalter/parso/commit/f670e6e7dc01e07576ec5c84cbf9fbce1a02c3eb\"\u003e\u003ccode\u003ef670e6e\u003c/code\u003e\u003c/a\u003e ENH: add grammar file for py314 (\u003ca href=\"https://redi...\n\n_Description has been truncated_","html_url":"https://github.com/github/annotated-logger/pull/78","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/github%2Fannotated-logger/issues/78","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/78/packages"}},{"old_version":"0.0.27","new_version":"0.0.29","update_type":"patch","path":null,"pr_created_at":"2025-09-14T21:06:59.000Z","version_change":"0.0.27 → 0.0.29","issue":{"uuid":"3415584727","node_id":"PR_kwDOMt9I9c6ogxBU","number":77,"state":"open","title":"[pip] (deps): Bump the dev-dependencies group across 1 directory with 33 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-14T21:06:59.000Z","updated_at":"2025-09-14T21:08:38.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"[pip] (deps): Bump","group_name":"dev-dependencies","update_count":33,"packages":[{"name":"python-json-logger","old_version":"3.2.1","new_version":"3.3.0","repository_url":"https://github.com/nhairs/python-json-logger"},{"name":"certifi","old_version":"2024.12.14","new_version":"2025.8.3","repository_url":"https://github.com/certifi/python-certifi"},{"name":"charset-normalizer","old_version":"3.4.1","new_version":"3.4.3","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"makefun","old_version":"1.15.6","new_version":"1.16.0","repository_url":"https://github.com/smarie/python-makefun"},{"name":"pychoir","old_version":"0.0.27","new_version":"0.0.29","repository_url":"https://github.com/kajaste/pychoir"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"coverage","old_version":"7.6.10","new_version":"7.10.6","repository_url":"https://github.com/nedbat/coveragepy"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.0","repository_url":"https://github.com/pypa/distlib"},{"name":"exceptiongroup","old_version":"1.2.2","new_version":"1.3.0","repository_url":"https://github.com/agronholm/exceptiongroup"},{"name":"filelock","old_version":"3.16.1","new_version":"3.19.1","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"freezegun","old_version":"1.5.1","new_version":"1.5.5","repository_url":"https://github.com/spulec/freezegun"},{"name":"identify","old_version":"2.6.5","new_version":"2.6.14","repository_url":"https://github.com/pre-commit/identify"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.1.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"junit-xml","old_version":"1.8","new_version":"1.9","repository_url":"https://github.com/kyrus/python-junit-xml"},{"name":"mutmut","old_version":"3.2.2","new_version":"3.3.1","repository_url":"https://github.com/boxed/mutmut"},{"name":"packaging","old_version":"24.2","new_version":"25.0","repository_url":"https://github.com/pypa/packaging"},{"name":"parso","old_version":"0.8.4","new_version":"0.8.5","repository_url":"https://github.com/davidhalter/parso"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.4.0","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"pre-commit","old_version":"4.0.1","new_version":"4.3.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pygments","old_version":"2.19.1","new_version":"2.19.2","repository_url":"https://github.com/pygments/pygments"},{"name":"pyright","old_version":"1.1.391","new_version":"1.1.405","repository_url":"https://github.com/RobertCraigie/pyright-python"},{"name":"pytest","old_version":"8.3.4","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-cov","old_version":"6.0.0","new_version":"7.0.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pytest-github-actions-annotate-failures","old_version":"0.2.0","new_version":"0.3.0","repository_url":"https://github.com/pytest-dev/pytest-github-actions-annotate-failures"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.0","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-randomly","old_version":"3.16.0","new_version":"4.0.1","repository_url":"https://github.com/pytest-dev/pytest-randomly"},{"name":"rich","old_version":"13.9.4","new_version":"14.1.0","repository_url":"https://github.com/Textualize/rich"},{"name":"ruff","old_version":"0.8.6","new_version":"0.13.0","repository_url":"https://github.com/astral-sh/ruff"},{"name":"setproctitle","old_version":"1.3.4","new_version":"1.3.7","repository_url":"https://github.com/dvarrazzo/py-setproctitle"},{"name":"textual","old_version":"1.0.0","new_version":"6.1.0","repository_url":"https://github.com/Textualize/textual"},{"name":"typing-extensions","old_version":"4.12.2","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"virtualenv","old_version":"20.28.1","new_version":"20.34.0","repository_url":"https://github.com/pypa/virtualenv"}],"path":null,"ecosystem":"pip"},"body":"Bumps the dev-dependencies group with 33 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `3.2.1` | `3.3.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2024.12.14` | `2025.8.3` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.1` | `3.4.3` |\n| [makefun](https://github.com/smarie/python-makefun) | `1.15.6` | `1.16.0` |\n| [pychoir](https://github.com/kajaste/pychoir) | `0.0.27` | `0.0.29` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [coverage](https://github.com/nedbat/coveragepy) | `7.6.10` | `7.10.6` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.0` |\n| [exceptiongroup](https://github.com/agronholm/exceptiongroup) | `1.2.2` | `1.3.0` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.19.1` |\n| [freezegun](https://github.com/spulec/freezegun) | `1.5.1` | `1.5.5` |\n| [identify](https://github.com/pre-commit/identify) | `2.6.5` | `2.6.14` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.1.0` |\n| [junit-xml](https://github.com/kyrus/python-junit-xml) | `1.8` | `1.9` |\n| [mutmut](https://github.com/boxed/mutmut) | `3.2.2` | `3.3.1` |\n| [packaging](https://github.com/pypa/packaging) | `24.2` | `25.0` |\n| [parso](https://github.com/davidhalter/parso) | `0.8.4` | `0.8.5` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.4.0` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.0.1` | `4.3.0` |\n| [pygments](https://github.com/pygments/pygments) | `2.19.1` | `2.19.2` |\n| [pyright](https://github.com/RobertCraigie/pyright-python) | `1.1.391` | `1.1.405` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.4` | `8.4.2` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `6.0.0` | `7.0.0` |\n| [pytest-github-actions-annotate-failures](https://github.com/pytest-dev/pytest-github-actions-annotate-failures) | `0.2.0` | `0.3.0` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.0` |\n| [pytest-randomly](https://github.com/pytest-dev/pytest-randomly) | `3.16.0` | `4.0.1` |\n| [rich](https://github.com/Textualize/rich) | `13.9.4` | `14.1.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.8.6` | `0.13.0` |\n| [setproctitle](https://github.com/dvarrazzo/py-setproctitle) | `1.3.4` | `1.3.7` |\n| [textual](https://github.com/Textualize/textual) | `1.0.0` | `6.1.0` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.12.2` | `4.15.0` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `20.28.1` | `20.34.0` |\n\n\nUpdates `python-json-logger` from 3.2.1 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nhairs/python-json-logger/releases\"\u003epython-json-logger's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v3.2.1...v3.3.0\"\u003e3.3.0\u003c/a\u003e - 2025-03-06\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eexc_info_as_array\u003c/code\u003e and \u003ccode\u003estack_info_as_array\u003c/code\u003e options are added to \u003ccode\u003epythonjsonlogger.core.BaseJsonFormatter\u003c/code\u003e allowing both to be encoded as list of lines instead of a single multi-line string. \u003ca href=\"https://redirect.github.com/nhairs/python-json-logger/issues/35\"\u003e#35\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003emsgspec-python313-pre\u003c/code\u003e from \u003ccode\u003edev\u003c/code\u003e dependencies preventing potential RCE. Details: \u003ca href=\"https://github.com/nhairs/python-json-logger/security/advisories/GHSA-wmxh-pxcx-9w24#advisory-comment-121307\"\u003eGHSA-wmxh-pxcx-9w24\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks \u003ca href=\"https://github.com/1hakusai1\"\u003e\u003ccode\u003e@​1hakusai1\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/omnigodz\"\u003e\u003ccode\u003e@​omnigodz\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/nhairs/python-json-logger/blob/main/docs/changelog.md\"\u003epython-json-logger's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v3.2.1...v3.3.0\"\u003e3.3.0\u003c/a\u003e - 2025-03-06\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eexc_info_as_array\u003c/code\u003e and \u003ccode\u003estack_info_as_array\u003c/code\u003e options are added to \u003ccode\u003epythonjsonlogger.core.BaseJsonFormatter\u003c/code\u003e allowing both to be encoded as list of lines instead of a single multi-line string. \u003ca href=\"https://redirect.github.com/nhairs/python-json-logger/issues/35\"\u003e#35\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003emsgspec-python313-pre\u003c/code\u003e from \u003ccode\u003edev\u003c/code\u003e dependencies preventing potential RCE. Details: \u003ca href=\"https://github.com/nhairs/python-json-logger/security/advisories/GHSA-wmxh-pxcx-9w24#advisory-comment-121307\"\u003eGHSA-wmxh-pxcx-9w24\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks \u003ca href=\"https://github.com/1hakusai1\"\u003e\u003ccode\u003e@​1hakusai1\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/omnigodz\"\u003e\u003ccode\u003e@​omnigodz\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/9e6cb679dfb56cb82d9a8cc91f956efd72427055\"\u003e\u003ccode\u003e9e6cb67\u003c/code\u003e\u003c/a\u003e Release 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/db04a0f9066cc331f8d6177f828fe073c7b2a4cc\"\u003e\u003ccode\u003edb04a0f\u003c/code\u003e\u003c/a\u003e Add options to encode stack information into an array (\u003ca href=\"https://redirect.github.com/nhairs/python-json-logger/issues/39\"\u003e#39\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/0092ea0be1cd28e3c1da51eaa084c503bb3710b7\"\u003e\u003ccode\u003e0092ea0\u003c/code\u003e\u003c/a\u003e Move to uv (\u003ca href=\"https://redirect.github.com/nhairs/python-json-logger/issues/40\"\u003e#40\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/1ce81a3614d8c77389a9c048d341593e2a7467e7\"\u003e\u003ccode\u003e1ce81a3\u003c/code\u003e\u003c/a\u003e [tests] Update tests for msgspec 0.19.0 (\u003ca href=\"https://redirect.github.com/nhairs/python-json-logger/issues/41\"\u003e#41\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v3.2.1...v3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2024.12.14 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\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/e767d5938eddddf804216cec93a55c85129c5f2d\"\u003e\u003ccode\u003ee767d59\u003c/code\u003e\u003c/a\u003e 2025.06.15 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/357\"\u003e#357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/3e7076557d66b598fcca462e422dc988f09a6802\"\u003e\u003ccode\u003e3e70765\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.5.0 to 5.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/9afd2ff407b8a0638988c952a6636b8dd623af7c\"\u003e\u003ccode\u003e9afd2ff\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4.2.1 to 4.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/d7c816cbc9cf621b3ddc8cd7fa7eda3f36982620\"\u003e\u003ccode\u003ed7c816c\u003c/code\u003e\u003c/a\u003e remove code that's no longer required that 3.7 is our minimum (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/351\"\u003e#351\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/189961379209973abd0dd6304297f03e2359e1b9\"\u003e\u003ccode\u003e1899613\u003c/code\u003e\u003c/a\u003e Declare setuptools as the build backend in pyproject.toml (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/350\"\u003e#350\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/c8741423d67e1025c0bdad5225ded05cf962f207\"\u003e\u003ccode\u003ec874142\u003c/code\u003e\u003c/a\u003e update CI for ubuntu 20.04 deprecation (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/348\"\u003e#348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/275c9eb55733a464589c15fb4566fddd4598e5b2\"\u003e\u003ccode\u003e275c9eb\u003c/code\u003e\u003c/a\u003e 2025.04.26 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/347\"\u003e#347\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2024.12.14...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.1 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\u003ch2\u003eVersion 3.4.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.9\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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.1...3.4.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `makefun` from 1.15.6 to 1.16.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/smarie/python-makefun/blob/main/docs/changelog.md\"\u003emakefun's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e1.16.0 - Support for 3.14, dropped support for \u0026lt; 3.9\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved official support for python versions \u003ccode\u003e\u0026lt;3.9\u003c/code\u003e. These versions will not run in CI anymore.\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eRuntimeError\u003c/code\u003e in tests when running on python 3.14. Added python 3.14 to CI. Fixes\n\u003ca href=\"https://redirect.github.com/smarie/python-makefun/issues/112\"\u003e#112\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/smarie/python-makefun/commit/197b14827c1b7830c0288477c007e1f1592f52ad\"\u003e\u003ccode\u003e197b148\u003c/code\u003e\u003c/a\u003e Changelog for tag, ready to release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/321a39c9a8be1497ba7dfbb9c7c16a9442ae25a6\"\u003e\u003ccode\u003e321a39c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/smarie/python-makefun/issues/118\"\u003e#118\u003c/a\u003e from smarie/feature/112_support_py314\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/39f061e17a7d7472e33cec76d162381ae82b49e3\"\u003e\u003ccode\u003e39f061e\u003c/code\u003e\u003c/a\u003e With latest versions of all actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/4771aaf910459dfabb12109cf4ae37cd089fd9d6\"\u003e\u003ccode\u003e4771aaf\u003c/code\u003e\u003c/a\u003e Changed the fix to leverage pytest-asyncio, now that we do not support python...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/498ed69f5fa22baa5300b354d419fd45be55cf6e\"\u003e\u003ccode\u003e498ed69\u003c/code\u003e\u003c/a\u003e Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/87eb2ebefa88d212e4ae75f28fc0ffc2fb9194c6\"\u003e\u003ccode\u003e87eb2eb\u003c/code\u003e\u003c/a\u003e Fixed \u003ccode\u003eRuntimeError\u003c/code\u003e in tests when running on pythn 3.14. Added python 3.14 t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/4573c65b6b8405b6194361805a44ba8d9d08c41d\"\u003e\u003ccode\u003e4573c65\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/smarie/python-makefun/issues/117\"\u003e#117\u003c/a\u003e from smarie/chore/116_gh_pages_workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/db582747d0b89ea35927176910205f3f68a429d4\"\u003e\u003ccode\u003edb58274\u003c/code\u003e\u003c/a\u003e Added gh pages workflow. Fixed \u003ca href=\"https://redirect.github.com/smarie/python-makefun/issues/116\"\u003e#116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/c8990e6a660082b42f8314f96bf7369a0f6c2463\"\u003e\u003ccode\u003ec8990e6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/smarie/python-makefun/issues/114\"\u003e#114\u003c/a\u003e from smarie/feature/py35_in_ci\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/3b1e628e9e7ecf05ea9bc6a9fb73c45563a3c24a\"\u003e\u003ccode\u003e3b1e628\u003c/code\u003e\u003c/a\u003e Removed 3.14 for now\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/smarie/python-makefun/compare/1.15.6...1.16.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pychoir` from 0.0.27 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/kajaste/pychoir/releases\"\u003epychoir's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eTwenty-ninth release\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch pipenv \u0026amp; setuptools to uv by \u003ca href=\"https://github.com/kajaste\"\u003e\u003ccode\u003e@​kajaste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kajaste/pychoir/pull/97\"\u003ekajaste/pychoir#97\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/kajaste/pychoir/compare/v0.0.28...v0.0.29\"\u003ehttps://github.com/kajaste/pychoir/compare/v0.0.28...v0.0.29\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eTwenty-eighth release\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate dev deps by \u003ca href=\"https://github.com/kajaste\"\u003e\u003ccode\u003e@​kajaste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kajaste/pychoir/pull/94\"\u003ekajaste/pychoir#94\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump dev deps by \u003ca href=\"https://github.com/kajaste\"\u003e\u003ccode\u003e@​kajaste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kajaste/pychoir/pull/95\"\u003ekajaste/pychoir#95\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs \u0026amp; Makefile update by \u003ca href=\"https://github.com/kajaste\"\u003e\u003ccode\u003e@​kajaste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kajaste/pychoir/pull/96\"\u003ekajaste/pychoir#96\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/kajaste/pychoir/compare/v0.0.27...v0.0.28\"\u003ehttps://github.com/kajaste/pychoir/compare/v0.0.27...v0.0.28\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/kajaste/pychoir/commit/bf2f254bcadf03026867a6442523549f1abb16d3\"\u003e\u003ccode\u003ebf2f254\u003c/code\u003e\u003c/a\u003e Switch pipenv \u0026amp; setuptools to uv\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kajaste/pychoir/commit/c1d251d480a47f8bc29e89765c19b00b594442b2\"\u003e\u003ccode\u003ec1d251d\u003c/code\u003e\u003c/a\u003e Docs \u0026amp; Makefile update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kajaste/pychoir/commit/f6181a037d2e791bbf9306b4210a9b4934fc1bbf\"\u003e\u003ccode\u003ef6181a0\u003c/code\u003e\u003c/a\u003e Drop 3.7, add 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kajaste/pychoir/commit/f94fdad20f981f344adbdc07b9aa1cb00795b671\"\u003e\u003ccode\u003ef94fdad\u003c/code\u003e\u003c/a\u003e Bump dev deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kajaste/pychoir/commit/5a2ebd7ca625779b7beaab71d50631f9529f21eb\"\u003e\u003ccode\u003e5a2ebd7\u003c/code\u003e\u003c/a\u003e Update dev deps\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/kajaste/pychoir/compare/v0.0.27...v0.0.29\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.4 to 2.32.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.32.5\u003c/h2\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b25c87d7cb8d6a18a37fa12442b5f883f9e41741\"\u003e\u003ccode\u003eb25c87d\u003c/code\u003e\u003c/a\u003e v2.32.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/131e506079d97606e4214cc4d87b780ac478de7a\"\u003e\u003ccode\u003e131e506\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psf/requests/issues/7010\"\u003e#7010\u003c/a\u003e from psf/dependabot/github_actions/actions/checkout-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b336cb2bc616a63a93c6470c558fc1f576b77f90\"\u003e\u003ccode\u003eb336cb2\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.2.0 to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/46e939b5525d9c72b677340985582b04b128478a\"\u003e\u003ccode\u003e46e939b\u003c/code\u003e\u003c/a\u003e Update publish workflow to use \u003ccode\u003eartifact-id\u003c/code\u003e instead of \u003ccode\u003ename\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/4b9c546aa3f35fca6ca24945376fe7462bb007c4\"\u003e\u003ccode\u003e4b9c546\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psf/requests/issues/6999\"\u003e#6999\u003c/a\u003e from psf/dependabot/github_actions/step-security/har...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/7618dbef01d333f23ba4b9c4d97397b06dd89cb6\"\u003e\u003ccode\u003e7618dbe\u003c/code\u003e\u003c/a\u003e Bump step-security/harden-runner from 2.12.0 to 2.13.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2edca11103c1c27dd8b572dab544b7f48cf3b446\"\u003e\u003ccode\u003e2edca11\u003c/code\u003e\u003c/a\u003e Add support for Python 3.14 and drop support for Python 3.8 (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6993\"\u003e#6993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/fec96cd5976ad763e45bac9a033d62cca1877a00\"\u003e\u003ccode\u003efec96cd\u003c/code\u003e\u003c/a\u003e Update Makefile rules (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6996\"\u003e#6996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d58d8aa2f45c3575268d6d5250745ef69f9cf8b7\"\u003e\u003ccode\u003ed58d8aa\u003c/code\u003e\u003c/a\u003e docs: clarify timeout parameter uses seconds in Session.request (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6994\"\u003e#6994\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/91a3eabd3dcc4d7f36dd8249e4777a90ef9b4305\"\u003e\u003ccode\u003e91a3eab\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 3.28.5 to 3.29.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.4...v2.32.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.6.10 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.6.10...7.10.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 `exceptiongroup` from 1.2.2 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/agronholm/exceptiongroup/releases\"\u003eexceptiongroup's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003e**kwargs\u003c/code\u003e to function and method signatures as appropriate to match the signatures in the standard library\u003c/li\u003e\n\u003cli\u003eIn line with the stdlib typings in typeshed, updated \u003ccode\u003e(Base)ExceptionGroup\u003c/code\u003e generic types to define defaults for their generic arguments (defaulting to \u003ccode\u003eBaseExceptionGroup[BaseException]\u003c/code\u003e and \u003ccode\u003eExceptionGroup[Exception]\u003c/code\u003e) (PR by \u003ca href=\"https://github.com/mikenerone\"\u003e\u003ccode\u003e@​mikenerone\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eBaseExceptionGroup.__init__()\u003c/code\u003e to directly call \u003ccode\u003eBaseException.__init__()\u003c/code\u003e instead of the superclass \u003ccode\u003e__init__()\u003c/code\u003e in order to emulate the CPython behavior (broken or not) (PR by \u003ca href=\"https://github.com/cfbolz\"\u003e\u003ccode\u003e@​cfbolz\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged the \u003ccode\u003eexceptions\u003c/code\u003e attribute to always return the same tuple of exceptions, created from the original exceptions sequence passed to \u003ccode\u003eBaseExceptionGroup\u003c/code\u003e to match CPython behavior (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/143\"\u003e#143\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/agronholm/exceptiongroup/blob/main/CHANGES.rst\"\u003eexceptiongroup's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eVersion history\u003c/h1\u003e\n\u003cp\u003eThis library adheres to \u003ccode\u003eSemantic Versioning 2.0 \u0026lt;http://semver.org/\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e1.3.0\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003e**kwargs\u003c/code\u003e to function and method signatures as appropriate to match the\nsignatures in the standard library\u003c/li\u003e\n\u003cli\u003eIn line with the stdlib typings in typeshed, updated \u003ccode\u003e(Base)ExceptionGroup\u003c/code\u003e generic\ntypes to define defaults for their generic arguments (defaulting to\n\u003ccode\u003eBaseExceptionGroup[BaseException]\u003c/code\u003e and \u003ccode\u003eExceptionGroup[Exception]\u003c/code\u003e)\n(PR by \u003ca href=\"https://github.com/mikenerone\"\u003e\u003ccode\u003e@​mikenerone\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eBaseExceptionGroup.__init__()\u003c/code\u003e to directly call\n\u003ccode\u003eBaseException.__init__()\u003c/code\u003e instead of the superclass \u003ccode\u003e__init__()\u003c/code\u003e in order to\nemulate the CPython behavior (broken or not) (PR by \u003ca href=\"https://github.com/cfbolz\"\u003e\u003ccode\u003e@​cfbolz\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged the \u003ccode\u003eexceptions\u003c/code\u003e attribute to always return the same tuple of exceptions,\ncreated from the original exceptions sequence passed to \u003ccode\u003eBaseExceptionGroup\u003c/code\u003e to\nmatch CPython behavior\n(\u003ccode\u003e[#143](https://github.com/agronholm/exceptiongroup/issues/143) \u0026lt;https://github.com/agronholm/exceptiongroup/issues/143\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e1.2.2\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved an \u003ccode\u003eassert\u003c/code\u003e in \u003ccode\u003eexceptiongroup._formatting\u003c/code\u003e that caused compatibility\nissues with Sentry (\u003ccode\u003e[#123](https://github.com/agronholm/exceptiongroup/issues/123) \u0026lt;https://github.com/agronholm/exceptiongroup/issues/123\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e1.2.1\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated the copying of \u003ccode\u003e__notes__\u003c/code\u003e to match CPython behavior (PR by CF Bolz-Tereick)\u003c/li\u003e\n\u003cli\u003eCorrected the type annotation of the exception handler callback to accept a\n\u003ccode\u003eBaseExceptionGroup\u003c/code\u003e instead of \u003ccode\u003eBaseException\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFixed type errors on Python \u0026lt; 3.10 and the type annotation of \u003ccode\u003esuppress()\u003c/code\u003e\n(PR by John Litborn)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e1.2.0\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded special monkeypatching if \u003ccode\u003eApport \u0026lt;https://github.com/canonical/apport\u0026gt;\u003c/code\u003e_ has\noverridden \u003ccode\u003esys.excepthook\u003c/code\u003e so it will format exception groups correctly\n(PR by John Litborn)\u003c/li\u003e\n\u003cli\u003eAdded a backport of \u003ccode\u003econtextlib.suppress()\u003c/code\u003e from Python 3.12.1 which also handles\nsuppressing exceptions inside exception groups\u003c/li\u003e\n\u003cli\u003eFixed bare \u003ccode\u003eraise\u003c/code\u003e in a handler reraising the original naked exception rather than\nan exception group which is what is raised when you do a \u003ccode\u003eraise\u003c/code\u003e in an \u003ccode\u003eexcept*\u003c/code\u003e\nhandler\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e1.1.3\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ecatch()\u003c/code\u003e now raises a \u003ccode\u003eTypeError\u003c/code\u003e if passed an async exception handler instead of\njust giving a \u003ccode\u003eRuntimeWarning\u003c/code\u003e about the coroutine never being awaited. (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/66\"\u003e#66\u003c/a\u003e, PR by\nJohn Litborn)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/77fba8a871408ff2c48f536e5e73b1918239ba5f\"\u003e\u003ccode\u003e77fba8a\u003c/code\u003e\u003c/a\u003e Added the release version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/5e153aa379ac53af79cc7f5e287f77929cb4d0dc\"\u003e\u003ccode\u003e5e153aa\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Migrated test dependencies to dependency groups\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/5000bfea208ad59e3a20e2fb91a513ad559711b1\"\u003e\u003ccode\u003e5000bfe\u003c/code\u003e\u003c/a\u003e Migrated tox configuration to native TOML\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/427220d67a52585e98575103b090b5fdaf87a899\"\u003e\u003ccode\u003e427220d\u003c/code\u003e\u003c/a\u003e Updated pytest options\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/4ca264fa3605d52067c20b351a0d3b947fa1f363\"\u003e\u003ccode\u003e4ca264f\u003c/code\u003e\u003c/a\u003e Migrated test dependencies to dependency groups\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/163c3a8cb27f8a5325258b5a83e7cf8fc002c3b7\"\u003e\u003ccode\u003e163c3a8\u003c/code\u003e\u003c/a\u003e Marked test_exceptions_mutate_original_sequence as xfail on pypy3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/a1765740db2d55d1eb91d67a8fbbb355caf7881b\"\u003e\u003ccode\u003ea176574\u003c/code\u003e\u003c/a\u003e Always create the exceptions tuple at init and return it from the exceptions ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/550b79621cc35892413fa91903a1d6c7951d0449\"\u003e\u003ccode\u003e550b796\u003c/code\u003e\u003c/a\u003e Added BaseExceptionGroup.\u003cstrong\u003einit\u003c/strong\u003e, following CPython (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/142\"\u003e#142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/2a84dfd5599bca0c653143f0f4252d38afac9867\"\u003e\u003ccode\u003e2a84dfd\u003c/code\u003e\u003c/a\u003e Added typevar defaults to (Base)ExceptionGroup (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/147\"\u003e#147\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/fb9133b495fc82bc2907e8cfbdff6c6dc3087e2f\"\u003e\u003ccode\u003efb9133b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/145\"\u003e#145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/exceptiongroup/compare/1.2.2...1.3.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.16.1 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\u003ch2\u003e3.18.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIndicate that locks are exclusive/write locks. by \u003ca href=\"https://github.com/bicarlsen\"\u003e\u003ccode\u003e@​bicarlsen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/394\"\u003etox-dev/filelock#394\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport fcntl check on Emscripten by \u003ca href=\"https://github.com/juntyr\"\u003e\u003ccode\u003e@​juntyr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/398\"\u003etox-dev/filelock#398\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/bicarlsen\"\u003e\u003ccode\u003e@​bicarlsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/394\"\u003etox-dev/filelock#394\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/juntyr\"\u003e\u003ccode\u003e@​juntyr\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/398\"\u003etox-dev/filelock#398\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.17.0...3.18.0\"\u003ehttps://github.com/tox-dev/filelock/compare/3.17.0...3.18.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDrop 3.8\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.16.1...3.17.0\"\u003ehttps://github.com/tox-dev/filelock/compare/3.16.1...3.17.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.16.1...3.19.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `freezegun` from 1.5.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\u003c/blockquote\u003e\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.5.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 `identify` from 2.6.5 to 2.6.14\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/6667ae3392c3e2178469779352012d4518c8cdc0\"\u003e\u003ccode\u003e6667ae3\u003c/code\u003e\u003c/a\u003e v2.6.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/0ce88278a87decaf8a7b266074a0044a8fb8dd5c\"\u003e\u003ccode\u003e0ce8827\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/identify/issues/537\"\u003e#537\u003c/a\u003e from LNSD/add-meson-options-support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/29d1fcc8d1dafe99cf82e4c3a6200acdd17490fd\"\u003e\u003ccode\u003e29d1fcc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/identify/issues/536\"\u003e#536\u003c/a\u003e from mike325/fix/add_robot_filetype\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/daf602344d904fd56a85ae76f0a2594ddcebc479\"\u003e\u003ccode\u003edaf6023\u003c/code\u003e\u003c/a\u003e Add support for \u003ccode\u003emeson.options\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/6d493646beb1b740c4b871dd7692b5ab453c1beb\"\u003e\u003ccode\u003e6d49364\u003c/code\u003e\u003c/a\u003e fix: add robot filetype\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/53fdb98ef92dc697d7b84cf07dbb3e6e5d7493f6\"\u003e\u003ccode\u003e53fdb98\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/identify/issues/531\"\u003e#531\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/ffc2322be9c429f69761a777a2f9f1adc87680d0\"\u003e\u003ccode\u003effc2322\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/identify/commit/af4da9c69b07a41dfbfc1f3ec60d27d9aa0654dc\"\u003e\u003ccode\u003eaf4da9c\u003c/code\u003e\u003c/a\u003e v2.6.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/bdf9c05f99c426e7ab115f68cf62bd0a70b33012\"\u003e\u003ccode\u003ebdf9c05\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/identify/issues/530\"\u003e#530\u003c/a\u003e from dirtcrusher/feature/special_cpp_extensions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/1a6b03cde137b43d4aa6bfd5ea80a762b923efa0\"\u003e\u003ccode\u003e1a6b03c\u003c/code\u003e\u003c/a\u003e Added C++ 'ipp' and 'tpp' file extensions\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/identify/compare/v2.6.5...v2.6.14\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `iniconfig` from 2.0.0 to 2.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/iniconfig/releases\"\u003einiconfig's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.1.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/26\"\u003e#26\u003c/a\u003e - list individuals in license file by \u003ca href=\"https://github.com/RonnyPfannschmidt\"\u003e\u003ccode\u003e@​RonnyPfannschmidt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/52\"\u003epytest-dev/iniconfig#52\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRun tests in CI by \u003ca href=\"https://github.com/nicoddemus\"\u003e\u003ccode\u003e@​nicoddemus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/53\"\u003epytest-dev/iniconfig#53\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003epypa/gh-action-pypi-publish@release/v1\u003c/code\u003e @ GHA by \u003ca href=\"https://github.com/webknjaz\"\u003e\u003ccode\u003e@​webknjaz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/54\"\u003epytest-dev/iniconfig#54\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12-3.13 and drop EOL 3.7 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/56\"\u003epytest-dev/iniconfig#56\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/nicoddemus\"\u003e\u003ccode\u003e@​nicoddemus\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/53\"\u003epytest-dev/iniconfig#53\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/webknjaz\"\u003e\u003ccode\u003e@​webknjaz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/54\"\u003epytest-dev/iniconfig#54\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pytest-dev/iniconfig/compare/v2.0.0...v2.1.0\"\u003ehttps://github.com/pytest-dev/iniconfig/compare/v2.0.0...v2.1.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/pytest-dev/iniconfig/blob/main/CHANGELOG\"\u003einiconfig's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.1.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix artifact building - pin minimal version of hatch\u003c/li\u003e\n\u003cli\u003edrop eol python 3.8\u003c/li\u003e\n\u003cli\u003eadd python 3.12 and 3.13\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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/iniconfig/commit/34793a6417e35e511d0c17ffdd8a02ade0f9568e\"\u003e\u003ccode\u003e34793a6\u003c/code\u003e\u003c/a\u003e pre-commit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/136435d0a4345bb048dca98e7c2f4e938d74521b\"\u003e\u003ccode\u003e136435d\u003c/code\u003e\u003c/a\u003e update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/0bb99ad0f7a6b21d5eb24214a260132317a11e43\"\u003e\u003ccode\u003e0bb99ad\u003c/code\u003e\u003c/a\u003e fix \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/62\"\u003e#62\u003c/a\u003e: require a minimal hatch version with correct metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/16793eaddac67de0b8d621ae4e42e05b927e8d67\"\u003e\u003ccode\u003e16793ea\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/56\"\u003e#56\u003c/a\u003e from hugovk/add-3.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/3dc2b2d6bf03e4b7cc92949a8ef0983fdd7ee442\"\u003e\u003ccode\u003e3dc2b2d\u003c/code\u003e\u003c/a\u003e Add support for Python 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/2eb8abfd9d3843100d7f138efe5bcd989a885024\"\u003e\u003ccode\u003e2eb8abf\u003c/code\u003e\u003c/a\u003e Bump GitHub Actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/8c4bb5bf57dde613c8cdcf0e02a09b2fff630907\"\u003e\u003ccode\u003e8c4bb5b\u003c/code\u003e\u003c/a\u003e Set python-version for pre-commit to remove CI warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/58b22b2d672564ff1925df51f4a8e07486765ed2\"\u003e\u003ccode\u003e58b22b2\u003c/code\u003e\u003c/a\u003e Drop support for EOL Python 3.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/4a53042252a109bcdd64422058de91c5dffff763\"\u003e\u003ccode\u003e4a53042\u003c/code\u003e\u003c/a\u003e Add support for Python 3.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/9cae43103df70bac6fde7b9f35ad11a9f1be0cb4\"\u003e\u003ccode\u003e9cae431\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/54\"\u003e#54\u003c/a\u003e from webknjaz/patch-1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/iniconfig/compare/v2.0.0...v2.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `junit-xml` from 1.8 to 1.9\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/kyrus/python-junit-xml/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mutmut` from 3.2.2 to 3.3.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/boxed/mutmut/blob/main/HISTORY.rst\"\u003emutmut's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e3.3.1\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Increased threshold for mutant timeouts\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003etests_dir\u003c/code\u003e config. Accepts a single entry or a list of directories.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAsync generators fixes\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed bad mutations for certain string escape sequences\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance fixes\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eVarious internal bug fixes\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e3.3.0\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003ePython 3.13 compatibility!\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eNew argument \u003ccode\u003e--show-killed\u003c/code\u003e for \u003ccode\u003emutmut browse\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix to avoid accidentally importing the un-mutated original code\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eHandle segfault for mutant subprocesses\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded mutations for string literals\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded mutations for common string methods\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFaster mutant generation via subprocesses\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eself\u003c/code\u003e parameter for mutated class methods\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix trampoline generation for function calls with 'orig' or 'mutants' as argument names.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCopy full source directory before creating mutants\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved error message when forced fail test fails\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed issue with spaces in the python executable path\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDo not mutate \u003ccode\u003e__new__\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAnnotate mutant dicts (and fixes compatibility with Pydantic)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eReplaced parso with LibCST\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/boxed/mutmut/commit/0f2586a806e069cc335d68ccd7d6277088f69249\"\u003e\u003ccode\u003e0f2586a\u003c/code\u003e\u003c/a\u003e Release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/6a5c471e0c13f782caacfdd244f2717002a13192\"\u003e\u003ccode\u003e6a5c471\u003c/code\u003e\u003c/a\u003e Pass mutation generation errors from subprocess to main process\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/7b03f4bffc3e8ac0c85158947e4659a5831cbf63\"\u003e\u003ccode\u003e7b03f4b\u003c/code\u003e\u003c/a\u003e Update timeout values\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/3cd39fac6f800de8859b8e876d0f74cd100574c8\"\u003e\u003ccode\u003e3cd39fa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/boxed/mutmut/issues/408\"\u003e#408\u003c/a\u003e from souradeep-das/souradeep/add_tests_dir\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/3e52e5e13347589adf725de1847204aad1b22a64\"\u003e\u003ccode\u003e3e52e5e\u003c/code\u003e\u003c/a\u003e modify e2e tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/10bb45183d781504fb13925dd3baee21edcf8673\"\u003e\u003ccode\u003e10bb451\u003c/code\u003e\u003c/a\u003e merge latest\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/d4980abef4bbbcea6e9070bc0a1c92626bb9ebb4\"\u003e\u003ccode\u003ed4980ab\u003c/code\u003e\u003c/a\u003e fix: accept lists as tests_dir\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/22f3924b6b5a2ff7916c1f62aa1ed1f3341e42ee\"\u003e\u003ccode\u003e22f3924\u003c/code\u003e\u003c/a\u003e Improve diff view performance a bit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/eb37032a679e1b160b012d838f798fd7fc266e48\"\u003e\u003ccode\u003eeb37032\u003c/code\u003e\u003c/a\u003e Make rlimit signal SIGXCPU first; only fallback to SIGKILL later on\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/99ecd3209b8ed49b6dc9d97dcfe67e66f0e8e773\"\u003e\u003ccode\u003e99ecd32\u003c/code\u003e\u003c/a\u003e fix timeout checker \u0026quot;dictionary changed size during iteration\u0026quot; bug (\u003ca href=\"https://redirect.github.com/boxed/mutmut/issues/411\"\u003e#411\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boxed/mutmut/compare/3.2.2...3.3.1\"\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 `parso` from 0.8.4 to 0.8.5\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/davidhalter/parso/blob/master/CHANGELOG.rst\"\u003eparso's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.8.5 (2025-08-23)\n++++++++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a fallback grammar 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/davidhalter/parso/commit/be9f5a401feaa1a7eda935bc68b2d3baed9a30ab\"\u003e\u003ccode\u003ebe9f5a4\u003c/code\u003e\u003c/a\u003e Prepare release 0.8.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/davidhalter/parso/commit/7e4777b775206038a1aa87282c79ed04f5f1c3fd\"\u003e\u003ccode\u003e7e4777b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/davidhalter/parso/issues/234\"\u003e#234\u003c/a\u003e from A5rocks/future-compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/davidhalter/parso/commit/e99dbdd536da741d4935c427a6231f4d5eb6ea79\"\u003e\u003ccode\u003ee99dbdd\u003c/code\u003e\u003c/a\u003e Remove redundant warnings import\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/davidhalter/parso/commit/e22dc67aa10b53bbf069f825a0d40eefc727f0cb\"\u003e\u003ccode\u003ee22dc67\u003c/code\u003e\u003c/a\u003e Avoid warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/davidhalter/parso/commit/baa3c90d85a10f6abb8307246a89fc683981cee7\"\u003e\u003ccode\u003ebaa3c90\u003c/code\u003e\u003c/a\u003e Load newest grammar in face of a future grammar\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/davidhalter/parso/commit/23b1cdf73d95ae20f23e2fd198cafcd8fef529ad\"\u003e\u003ccode\u003e23b1cdf\u003c/code\u003e\u003c/a\u003e Drop Python 3.7 in CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/davidhalter/parso/commit/a73af5c709a292cbb789bf6cab38b20559f166c0\"\u003e\u003ccode\u003ea73af5c\u003c/code\u003e\u003c/a\u003e Fix pip install -e in docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/davidhalter/parso/commit/9328cffce392b4c3e907db4bbfad06ca1111b3ee\"\u003e\u003ccode\u003e9328cff\u003c/code\u003e\u003c/a\u003e Update classifiers in setup.py (\u003ca href=\"https://redirect.github.com/davidhalter/parso/issues/230\"\u003e#230\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/davidhalter/parso/commit/f670e6e7dc01e07576ec5c84cbf9fbce1a02c3eb\"\u003e\u003ccode\u003ef670e6e\u003c/code\u003e\u003c/a\u003e ENH: add grammar file for py314 (\u003ca href=\"https://redirect.github.com/davi...\n\n_Description has been truncated_","html_url":"https://github.com/github/annotated-logger/pull/77","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/github%2Fannotated-logger/issues/77","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/77/packages"}},{"old_version":"0.0.27","new_version":"0.0.29","update_type":"patch","path":null,"pr_created_at":"2025-08-24T21:22:26.000Z","version_change":"0.0.27 → 0.0.29","issue":{"uuid":"3349918361","node_id":"PR_kwDOMt9I9c6lHRHg","number":75,"state":"open","title":"[pip] (deps): Bump the dev-dependencies group across 1 directory with 32 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-08-24T21:22:26.000Z","updated_at":"2025-09-14T23:01:01.720Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"[pip] (deps): Bump","group_name":"dev-dependencies","update_count":32,"packages":[{"name":"python-json-logger","old_version":"3.2.1","new_version":"3.3.0","repository_url":"https://github.com/nhairs/python-json-logger"},{"name":"certifi","old_version":"2024.12.14","new_version":"2025.8.3","repository_url":"https://github.com/certifi/python-certifi"},{"name":"charset-normalizer","old_version":"3.4.1","new_version":"3.4.3","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"makefun","old_version":"1.15.6","new_version":"1.16.0","repository_url":"https://github.com/smarie/python-makefun"},{"name":"pychoir","old_version":"0.0.27","new_version":"0.0.29","repository_url":"https://github.com/kajaste/pychoir"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"coverage","old_version":"7.6.10","new_version":"7.10.5","repository_url":"https://github.com/nedbat/coveragepy"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.0","repository_url":"https://github.com/pypa/distlib"},{"name":"exceptiongroup","old_version":"1.2.2","new_version":"1.3.0","repository_url":"https://github.com/agronholm/exceptiongroup"},{"name":"filelock","old_version":"3.16.1","new_version":"3.19.1","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"freezegun","old_version":"1.5.1","new_version":"1.5.5","repository_url":"https://github.com/spulec/freezegun"},{"name":"identify","old_version":"2.6.5","new_version":"2.6.13","repository_url":"https://github.com/pre-commit/identify"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.1.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"junit-xml","old_version":"1.8","new_version":"1.9","repository_url":"https://github.com/kyrus/python-junit-xml"},{"name":"mutmut","old_version":"3.2.2","new_version":"3.3.1","repository_url":"https://github.com/boxed/mutmut"},{"name":"packaging","old_version":"24.2","new_version":"25.0","repository_url":"https://github.com/pypa/packaging"},{"name":"parso","old_version":"0.8.4","new_version":"0.8.5","repository_url":"https://github.com/davidhalter/parso"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.3.8","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"pre-commit","old_version":"4.0.1","new_version":"4.3.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pygments","old_version":"2.19.1","new_version":"2.19.2","repository_url":"https://github.com/pygments/pygments"},{"name":"pyright","old_version":"1.1.391","new_version":"1.1.404","repository_url":"https://github.com/RobertCraigie/pyright-python"},{"name":"pytest","old_version":"8.3.4","new_version":"8.4.1","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-cov","old_version":"6.0.0","new_version":"6.2.1","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pytest-github-actions-annotate-failures","old_version":"0.2.0","new_version":"0.3.0","repository_url":"https://github.com/pytest-dev/pytest-github-actions-annotate-failures"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.14.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"rich","old_version":"13.9.4","new_version":"14.1.0","repository_url":"https://github.com/Textualize/rich"},{"name":"ruff","old_version":"0.8.6","new_version":"0.12.10","repository_url":"https://github.com/astral-sh/ruff"},{"name":"setproctitle","old_version":"1.3.4","new_version":"1.3.6","repository_url":"https://github.com/dvarrazzo/py-setproctitle"},{"name":"textual","old_version":"1.0.0","new_version":"5.3.0","repository_url":"https://github.com/Textualize/textual"},{"name":"typing-extensions","old_version":"4.12.2","new_version":"4.14.1","repository_url":"https://github.com/python/typing_extensions"},{"name":"virtualenv","old_version":"20.28.1","new_version":"20.34.0","repository_url":"https://github.com/pypa/virtualenv"}],"path":null,"ecosystem":"pip"},"body":"Bumps the dev-dependencies group with 32 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `3.2.1` | `3.3.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2024.12.14` | `2025.8.3` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.1` | `3.4.3` |\n| [makefun](https://github.com/smarie/python-makefun) | `1.15.6` | `1.16.0` |\n| [pychoir](https://github.com/kajaste/pychoir) | `0.0.27` | `0.0.29` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [coverage](https://github.com/nedbat/coveragepy) | `7.6.10` | `7.10.5` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.0` |\n| [exceptiongroup](https://github.com/agronholm/exceptiongroup) | `1.2.2` | `1.3.0` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.19.1` |\n| [freezegun](https://github.com/spulec/freezegun) | `1.5.1` | `1.5.5` |\n| [identify](https://github.com/pre-commit/identify) | `2.6.5` | `2.6.13` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.1.0` |\n| [junit-xml](https://github.com/kyrus/python-junit-xml) | `1.8` | `1.9` |\n| [mutmut](https://github.com/boxed/mutmut) | `3.2.2` | `3.3.1` |\n| [packaging](https://github.com/pypa/packaging) | `24.2` | `25.0` |\n| [parso](https://github.com/davidhalter/parso) | `0.8.4` | `0.8.5` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.3.8` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.0.1` | `4.3.0` |\n| [pygments](https://github.com/pygments/pygments) | `2.19.1` | `2.19.2` |\n| [pyright](https://github.com/RobertCraigie/pyright-python) | `1.1.391` | `1.1.404` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.4` | `8.4.1` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `6.0.0` | `6.2.1` |\n| [pytest-github-actions-annotate-failures](https://github.com/pytest-dev/pytest-github-actions-annotate-failures) | `0.2.0` | `0.3.0` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.14.1` |\n| [rich](https://github.com/Textualize/rich) | `13.9.4` | `14.1.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.8.6` | `0.12.10` |\n| [setproctitle](https://github.com/dvarrazzo/py-setproctitle) | `1.3.4` | `1.3.6` |\n| [textual](https://github.com/Textualize/textual) | `1.0.0` | `5.3.0` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.12.2` | `4.14.1` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `20.28.1` | `20.34.0` |\n\n\nUpdates `python-json-logger` from 3.2.1 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nhairs/python-json-logger/releases\"\u003epython-json-logger's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v3.2.1...v3.3.0\"\u003e3.3.0\u003c/a\u003e - 2025-03-06\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eexc_info_as_array\u003c/code\u003e and \u003ccode\u003estack_info_as_array\u003c/code\u003e options are added to \u003ccode\u003epythonjsonlogger.core.BaseJsonFormatter\u003c/code\u003e allowing both to be encoded as list of lines instead of a single multi-line string. \u003ca href=\"https://redirect.github.com/nhairs/python-json-logger/issues/35\"\u003e#35\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003emsgspec-python313-pre\u003c/code\u003e from \u003ccode\u003edev\u003c/code\u003e dependencies preventing potential RCE. Details: \u003ca href=\"https://github.com/nhairs/python-json-logger/security/advisories/GHSA-wmxh-pxcx-9w24#advisory-comment-121307\"\u003eGHSA-wmxh-pxcx-9w24\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks \u003ca href=\"https://github.com/1hakusai1\"\u003e\u003ccode\u003e@​1hakusai1\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/omnigodz\"\u003e\u003ccode\u003e@​omnigodz\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/nhairs/python-json-logger/blob/main/docs/changelog.md\"\u003epython-json-logger's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v3.2.1...v3.3.0\"\u003e3.3.0\u003c/a\u003e - 2025-03-06\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eexc_info_as_array\u003c/code\u003e and \u003ccode\u003estack_info_as_array\u003c/code\u003e options are added to \u003ccode\u003epythonjsonlogger.core.BaseJsonFormatter\u003c/code\u003e allowing both to be encoded as list of lines instead of a single multi-line string. \u003ca href=\"https://redirect.github.com/nhairs/python-json-logger/issues/35\"\u003e#35\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003emsgspec-python313-pre\u003c/code\u003e from \u003ccode\u003edev\u003c/code\u003e dependencies preventing potential RCE. Details: \u003ca href=\"https://github.com/nhairs/python-json-logger/security/advisories/GHSA-wmxh-pxcx-9w24#advisory-comment-121307\"\u003eGHSA-wmxh-pxcx-9w24\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks \u003ca href=\"https://github.com/1hakusai1\"\u003e\u003ccode\u003e@​1hakusai1\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/omnigodz\"\u003e\u003ccode\u003e@​omnigodz\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/9e6cb679dfb56cb82d9a8cc91f956efd72427055\"\u003e\u003ccode\u003e9e6cb67\u003c/code\u003e\u003c/a\u003e Release 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/db04a0f9066cc331f8d6177f828fe073c7b2a4cc\"\u003e\u003ccode\u003edb04a0f\u003c/code\u003e\u003c/a\u003e Add options to encode stack information into an array (\u003ca href=\"https://redirect.github.com/nhairs/python-json-logger/issues/39\"\u003e#39\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/0092ea0be1cd28e3c1da51eaa084c503bb3710b7\"\u003e\u003ccode\u003e0092ea0\u003c/code\u003e\u003c/a\u003e Move to uv (\u003ca href=\"https://redirect.github.com/nhairs/python-json-logger/issues/40\"\u003e#40\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/1ce81a3614d8c77389a9c048d341593e2a7467e7\"\u003e\u003ccode\u003e1ce81a3\u003c/code\u003e\u003c/a\u003e [tests] Update tests for msgspec 0.19.0 (\u003ca href=\"https://redirect.github.com/nhairs/python-json-logger/issues/41\"\u003e#41\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v3.2.1...v3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2024.12.14 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\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/e767d5938eddddf804216cec93a55c85129c5f2d\"\u003e\u003ccode\u003ee767d59\u003c/code\u003e\u003c/a\u003e 2025.06.15 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/357\"\u003e#357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/3e7076557d66b598fcca462e422dc988f09a6802\"\u003e\u003ccode\u003e3e70765\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.5.0 to 5.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/9afd2ff407b8a0638988c952a6636b8dd623af7c\"\u003e\u003ccode\u003e9afd2ff\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4.2.1 to 4.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/d7c816cbc9cf621b3ddc8cd7fa7eda3f36982620\"\u003e\u003ccode\u003ed7c816c\u003c/code\u003e\u003c/a\u003e remove code that's no longer required that 3.7 is our minimum (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/351\"\u003e#351\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/189961379209973abd0dd6304297f03e2359e1b9\"\u003e\u003ccode\u003e1899613\u003c/code\u003e\u003c/a\u003e Declare setuptools as the build backend in pyproject.toml (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/350\"\u003e#350\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/c8741423d67e1025c0bdad5225ded05cf962f207\"\u003e\u003ccode\u003ec874142\u003c/code\u003e\u003c/a\u003e update CI for ubuntu 20.04 deprecation (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/348\"\u003e#348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/275c9eb55733a464589c15fb4566fddd4598e5b2\"\u003e\u003ccode\u003e275c9eb\u003c/code\u003e\u003c/a\u003e 2025.04.26 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/347\"\u003e#347\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2024.12.14...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.1 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\u003ch2\u003eVersion 3.4.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.9\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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.1...3.4.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `makefun` from 1.15.6 to 1.16.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/smarie/python-makefun/blob/main/docs/changelog.md\"\u003emakefun's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e1.16.0 - Support for 3.14, dropped support for \u0026lt; 3.9\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved official support for python versions \u003ccode\u003e\u0026lt;3.9\u003c/code\u003e. These versions will not run in CI anymore.\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eRuntimeError\u003c/code\u003e in tests when running on python 3.14. Added python 3.14 to CI. Fixes\n\u003ca href=\"https://redirect.github.com/smarie/python-makefun/issues/112\"\u003e#112\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/smarie/python-makefun/commit/197b14827c1b7830c0288477c007e1f1592f52ad\"\u003e\u003ccode\u003e197b148\u003c/code\u003e\u003c/a\u003e Changelog for tag, ready to release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/321a39c9a8be1497ba7dfbb9c7c16a9442ae25a6\"\u003e\u003ccode\u003e321a39c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/smarie/python-makefun/issues/118\"\u003e#118\u003c/a\u003e from smarie/feature/112_support_py314\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/39f061e17a7d7472e33cec76d162381ae82b49e3\"\u003e\u003ccode\u003e39f061e\u003c/code\u003e\u003c/a\u003e With latest versions of all actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/4771aaf910459dfabb12109cf4ae37cd089fd9d6\"\u003e\u003ccode\u003e4771aaf\u003c/code\u003e\u003c/a\u003e Changed the fix to leverage pytest-asyncio, now that we do not support python...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/498ed69f5fa22baa5300b354d419fd45be55cf6e\"\u003e\u003ccode\u003e498ed69\u003c/code\u003e\u003c/a\u003e Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/87eb2ebefa88d212e4ae75f28fc0ffc2fb9194c6\"\u003e\u003ccode\u003e87eb2eb\u003c/code\u003e\u003c/a\u003e Fixed \u003ccode\u003eRuntimeError\u003c/code\u003e in tests when running on pythn 3.14. Added python 3.14 t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/4573c65b6b8405b6194361805a44ba8d9d08c41d\"\u003e\u003ccode\u003e4573c65\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/smarie/python-makefun/issues/117\"\u003e#117\u003c/a\u003e from smarie/chore/116_gh_pages_workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/db582747d0b89ea35927176910205f3f68a429d4\"\u003e\u003ccode\u003edb58274\u003c/code\u003e\u003c/a\u003e Added gh pages workflow. Fixed \u003ca href=\"https://redirect.github.com/smarie/python-makefun/issues/116\"\u003e#116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/c8990e6a660082b42f8314f96bf7369a0f6c2463\"\u003e\u003ccode\u003ec8990e6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/smarie/python-makefun/issues/114\"\u003e#114\u003c/a\u003e from smarie/feature/py35_in_ci\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/3b1e628e9e7ecf05ea9bc6a9fb73c45563a3c24a\"\u003e\u003ccode\u003e3b1e628\u003c/code\u003e\u003c/a\u003e Removed 3.14 for now\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/smarie/python-makefun/compare/1.15.6...1.16.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pychoir` from 0.0.27 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/kajaste/pychoir/releases\"\u003epychoir's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eTwenty-ninth release\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch pipenv \u0026amp; setuptools to uv by \u003ca href=\"https://github.com/kajaste\"\u003e\u003ccode\u003e@​kajaste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kajaste/pychoir/pull/97\"\u003ekajaste/pychoir#97\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/kajaste/pychoir/compare/v0.0.28...v0.0.29\"\u003ehttps://github.com/kajaste/pychoir/compare/v0.0.28...v0.0.29\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eTwenty-eighth release\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate dev deps by \u003ca href=\"https://github.com/kajaste\"\u003e\u003ccode\u003e@​kajaste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kajaste/pychoir/pull/94\"\u003ekajaste/pychoir#94\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump dev deps by \u003ca href=\"https://github.com/kajaste\"\u003e\u003ccode\u003e@​kajaste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kajaste/pychoir/pull/95\"\u003ekajaste/pychoir#95\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs \u0026amp; Makefile update by \u003ca href=\"https://github.com/kajaste\"\u003e\u003ccode\u003e@​kajaste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kajaste/pychoir/pull/96\"\u003ekajaste/pychoir#96\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/kajaste/pychoir/compare/v0.0.27...v0.0.28\"\u003ehttps://github.com/kajaste/pychoir/compare/v0.0.27...v0.0.28\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/kajaste/pychoir/commit/bf2f254bcadf03026867a6442523549f1abb16d3\"\u003e\u003ccode\u003ebf2f254\u003c/code\u003e\u003c/a\u003e Switch pipenv \u0026amp; setuptools to uv\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kajaste/pychoir/commit/c1d251d480a47f8bc29e89765c19b00b594442b2\"\u003e\u003ccode\u003ec1d251d\u003c/code\u003e\u003c/a\u003e Docs \u0026amp; Makefile update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kajaste/pychoir/commit/f6181a037d2e791bbf9306b4210a9b4934fc1bbf\"\u003e\u003ccode\u003ef6181a0\u003c/code\u003e\u003c/a\u003e Drop 3.7, add 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kajaste/pychoir/commit/f94fdad20f981f344adbdc07b9aa1cb00795b671\"\u003e\u003ccode\u003ef94fdad\u003c/code\u003e\u003c/a\u003e Bump dev deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kajaste/pychoir/commit/5a2ebd7ca625779b7beaab71d50631f9529f21eb\"\u003e\u003ccode\u003e5a2ebd7\u003c/code\u003e\u003c/a\u003e Update dev deps\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/kajaste/pychoir/compare/v0.0.27...v0.0.29\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.4 to 2.32.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.32.5\u003c/h2\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b25c87d7cb8d6a18a37fa12442b5f883f9e41741\"\u003e\u003ccode\u003eb25c87d\u003c/code\u003e\u003c/a\u003e v2.32.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/131e506079d97606e4214cc4d87b780ac478de7a\"\u003e\u003ccode\u003e131e506\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psf/requests/issues/7010\"\u003e#7010\u003c/a\u003e from psf/dependabot/github_actions/actions/checkout-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b336cb2bc616a63a93c6470c558fc1f576b77f90\"\u003e\u003ccode\u003eb336cb2\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.2.0 to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/46e939b5525d9c72b677340985582b04b128478a\"\u003e\u003ccode\u003e46e939b\u003c/code\u003e\u003c/a\u003e Update publish workflow to use \u003ccode\u003eartifact-id\u003c/code\u003e instead of \u003ccode\u003ename\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/4b9c546aa3f35fca6ca24945376fe7462bb007c4\"\u003e\u003ccode\u003e4b9c546\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psf/requests/issues/6999\"\u003e#6999\u003c/a\u003e from psf/dependabot/github_actions/step-security/har...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/7618dbef01d333f23ba4b9c4d97397b06dd89cb6\"\u003e\u003ccode\u003e7618dbe\u003c/code\u003e\u003c/a\u003e Bump step-security/harden-runner from 2.12.0 to 2.13.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2edca11103c1c27dd8b572dab544b7f48cf3b446\"\u003e\u003ccode\u003e2edca11\u003c/code\u003e\u003c/a\u003e Add support for Python 3.14 and drop support for Python 3.8 (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6993\"\u003e#6993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/fec96cd5976ad763e45bac9a033d62cca1877a00\"\u003e\u003ccode\u003efec96cd\u003c/code\u003e\u003c/a\u003e Update Makefile rules (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6996\"\u003e#6996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d58d8aa2f45c3575268d6d5250745ef69f9cf8b7\"\u003e\u003ccode\u003ed58d8aa\u003c/code\u003e\u003c/a\u003e docs: clarify timeout parameter uses seconds in Session.request (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6994\"\u003e#6994\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/91a3eabd3dcc4d7f36dd8249e4777a90ef9b4305\"\u003e\u003ccode\u003e91a3eab\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 3.28.5 to 3.29.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.4...v2.32.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.6.10 to 7.10.5\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.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\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 `issue\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/nedbat/coveragepy/commit/810abeb149fff925e49eab37ceaee60cb2878f7d\"\u003e\u003ccode\u003e810abeb\u003c/code\u003e\u003c/a\u003e chore: make upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/3c8f1b518cf933040059fd85b482827ed205e0d1\"\u003e\u003ccode\u003e3c8f1b5\u003c/code\u003e\u003c/a\u003e build: use --universal to keep platform conditions in .pip files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/107ae05233005f8a5d497d8492c6410428dbbc28\"\u003e\u003ccode\u003e107ae05\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.10.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/b5bc6d409aefc11d0277fbf8af9c930bea686ed5\"\u003e\u003ccode\u003eb5bc6d4\u003c/code\u003e\u003c/a\u003e docs: prep for 7.10.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/a5c18cc5eadc9df04005420207d53d74a94b9adf\"\u003e\u003ccode\u003ea5c18cc\u003c/code\u003e\u003c/a\u003e style: auto-generated changes shouldn't trigger ruff re-formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/1f9f84079aef5aab496381502aa818ea0574982a\"\u003e\u003ccode\u003e1f9f840\u003c/code\u003e\u003c/a\u003e build: tooling for ruff formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/9ee5b3e9e053168caa4e7bd32389b5592ad9b503\"\u003e\u003ccode\u003e9ee5b3e\u003c/code\u003e\u003c/a\u003e chore: make upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/bfeb2aec1de7c298060b0c972f86d0f1f3e4da71\"\u003e\u003ccode\u003ebfeb2ae\u003c/code\u003e\u003c/a\u003e style: fix things so pylint is happy with ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/82467f72306efdb207af09ace27b6b3ed4c7ad6f\"\u003e\u003ccode\u003e82467f7\u003c/code\u003e\u003c/a\u003e chore: \u003ccode\u003eruff format .\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/0a7b73346bc498a089df8cc7d4168dab7a326a06\"\u003e\u003ccode\u003e0a7b733\u003c/code\u003e\u003c/a\u003e refactor: remove unused things from lab/\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nedbat/coveragepy/compare/7.6.10...7.10.5\"\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 `exceptiongroup` from 1.2.2 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/agronholm/exceptiongroup/releases\"\u003eexceptiongroup's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003e**kwargs\u003c/code\u003e to function and method signatures as appropriate to match the signatures in the standard library\u003c/li\u003e\n\u003cli\u003eIn line with the stdlib typings in typeshed, updated \u003ccode\u003e(Base)ExceptionGroup\u003c/code\u003e generic types to define defaults for their generic arguments (defaulting to \u003ccode\u003eBaseExceptionGroup[BaseException]\u003c/code\u003e and \u003ccode\u003eExceptionGroup[Exception]\u003c/code\u003e) (PR by \u003ca href=\"https://github.com/mikenerone\"\u003e\u003ccode\u003e@​mikenerone\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eBaseExceptionGroup.__init__()\u003c/code\u003e to directly call \u003ccode\u003eBaseException.__init__()\u003c/code\u003e instead of the superclass \u003ccode\u003e__init__()\u003c/code\u003e in order to emulate the CPython behavior (broken or not) (PR by \u003ca href=\"https://github.com/cfbolz\"\u003e\u003ccode\u003e@​cfbolz\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged the \u003ccode\u003eexceptions\u003c/code\u003e attribute to always return the same tuple of exceptions, created from the original exceptions sequence passed to \u003ccode\u003eBaseExceptionGroup\u003c/code\u003e to match CPython behavior (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/143\"\u003e#143\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/agronholm/exceptiongroup/blob/main/CHANGES.rst\"\u003eexceptiongroup's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eVersion history\u003c/h1\u003e\n\u003cp\u003eThis library adheres to \u003ccode\u003eSemantic Versioning 2.0 \u0026lt;http://semver.org/\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e1.3.0\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003e**kwargs\u003c/code\u003e to function and method signatures as appropriate to match the\nsignatures in the standard library\u003c/li\u003e\n\u003cli\u003eIn line with the stdlib typings in typeshed, updated \u003ccode\u003e(Base)ExceptionGroup\u003c/code\u003e generic\ntypes to define defaults for their generic arguments (defaulting to\n\u003ccode\u003eBaseExceptionGroup[BaseException]\u003c/code\u003e and \u003ccode\u003eExceptionGroup[Exception]\u003c/code\u003e)\n(PR by \u003ca href=\"https://github.com/mikenerone\"\u003e\u003ccode\u003e@​mikenerone\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eBaseExceptionGroup.__init__()\u003c/code\u003e to directly call\n\u003ccode\u003eBaseException.__init__()\u003c/code\u003e instead of the superclass \u003ccode\u003e__init__()\u003c/code\u003e in order to\nemulate the CPython behavior (broken or not) (PR by \u003ca href=\"https://github.com/cfbolz\"\u003e\u003ccode\u003e@​cfbolz\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged the \u003ccode\u003eexceptions\u003c/code\u003e attribute to always return the same tuple of exceptions,\ncreated from the original exceptions sequence passed to \u003ccode\u003eBaseExceptionGroup\u003c/code\u003e to\nmatch CPython behavior\n(\u003ccode\u003e[#143](https://github.com/agronholm/exceptiongroup/issues/143) \u0026lt;https://github.com/agronholm/exceptiongroup/issues/143\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e1.2.2\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved an \u003ccode\u003eassert\u003c/code\u003e in \u003ccode\u003eexceptiongroup._formatting\u003c/code\u003e that caused compatibility\nissues with Sentry (\u003ccode\u003e[#123](https://github.com/agronholm/exceptiongroup/issues/123) \u0026lt;https://github.com/agronholm/exceptiongroup/issues/123\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e1.2.1\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated the copying of \u003ccode\u003e__notes__\u003c/code\u003e to match CPython behavior (PR by CF Bolz-Tereick)\u003c/li\u003e\n\u003cli\u003eCorrected the type annotation of the exception handler callback to accept a\n\u003ccode\u003eBaseExceptionGroup\u003c/code\u003e instead of \u003ccode\u003eBaseException\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFixed type errors on Python \u0026lt; 3.10 and the type annotation of \u003ccode\u003esuppress()\u003c/code\u003e\n(PR by John Litborn)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e1.2.0\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded special monkeypatching if \u003ccode\u003eApport \u0026lt;https://github.com/canonical/apport\u0026gt;\u003c/code\u003e_ has\noverridden \u003ccode\u003esys.excepthook\u003c/code\u003e so it will format exception groups correctly\n(PR by John Litborn)\u003c/li\u003e\n\u003cli\u003eAdded a backport of \u003ccode\u003econtextlib.suppress()\u003c/code\u003e from Python 3.12.1 which also handles\nsuppressing exceptions inside exception groups\u003c/li\u003e\n\u003cli\u003eFixed bare \u003ccode\u003eraise\u003c/code\u003e in a handler reraising the original naked exception rather than\nan exception group which is what is raised when you do a \u003ccode\u003eraise\u003c/code\u003e in an \u003ccode\u003eexcept*\u003c/code\u003e\nhandler\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e1.1.3\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ecatch()\u003c/code\u003e now raises a \u003ccode\u003eTypeError\u003c/code\u003e if passed an async exception handler instead of\njust giving a \u003ccode\u003eRuntimeWarning\u003c/code\u003e about the coroutine never being awaited. (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/66\"\u003e#66\u003c/a\u003e, PR by\nJohn Litborn)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/77fba8a871408ff2c48f536e5e73b1918239ba5f\"\u003e\u003ccode\u003e77fba8a\u003c/code\u003e\u003c/a\u003e Added the release version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/5e153aa379ac53af79cc7f5e287f77929cb4d0dc\"\u003e\u003ccode\u003e5e153aa\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Migrated test dependencies to dependency groups\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/5000bfea208ad59e3a20e2fb91a513ad559711b1\"\u003e\u003ccode\u003e5000bfe\u003c/code\u003e\u003c/a\u003e Migrated tox configuration to native TOML\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/427220d67a52585e98575103b090b5fdaf87a899\"\u003e\u003ccode\u003e427220d\u003c/code\u003e\u003c/a\u003e Updated pytest options\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/4ca264fa3605d52067c20b351a0d3b947fa1f363\"\u003e\u003ccode\u003e4ca264f\u003c/code\u003e\u003c/a\u003e Migrated test dependencies to dependency groups\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/163c3a8cb27f8a5325258b5a83e7cf8fc002c3b7\"\u003e\u003ccode\u003e163c3a8\u003c/code\u003e\u003c/a\u003e Marked test_exceptions_mutate_original_sequence as xfail on pypy3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/a1765740db2d55d1eb91d67a8fbbb355caf7881b\"\u003e\u003ccode\u003ea176574\u003c/code\u003e\u003c/a\u003e Always create the exceptions tuple at init and return it from the exceptions ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/550b79621cc35892413fa91903a1d6c7951d0449\"\u003e\u003ccode\u003e550b796\u003c/code\u003e\u003c/a\u003e Added BaseExceptionGroup.\u003cstrong\u003einit\u003c/strong\u003e, following CPython (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/142\"\u003e#142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/2a84dfd5599bca0c653143f0f4252d38afac9867\"\u003e\u003ccode\u003e2a84dfd\u003c/code\u003e\u003c/a\u003e Added typevar defaults to (Base)ExceptionGroup (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/147\"\u003e#147\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/fb9133b495fc82bc2907e8cfbdff6c6dc3087e2f\"\u003e\u003ccode\u003efb9133b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/145\"\u003e#145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/exceptiongroup/compare/1.2.2...1.3.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.16.1 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\u003ch2\u003e3.18.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIndicate that locks are exclusive/write locks. by \u003ca href=\"https://github.com/bicarlsen\"\u003e\u003ccode\u003e@​bicarlsen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/394\"\u003etox-dev/filelock#394\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport fcntl check on Emscripten by \u003ca href=\"https://github.com/juntyr\"\u003e\u003ccode\u003e@​juntyr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/398\"\u003etox-dev/filelock#398\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/bicarlsen\"\u003e\u003ccode\u003e@​bicarlsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/394\"\u003etox-dev/filelock#394\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/juntyr\"\u003e\u003ccode\u003e@​juntyr\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/398\"\u003etox-dev/filelock#398\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.17.0...3.18.0\"\u003ehttps://github.com/tox-dev/filelock/compare/3.17.0...3.18.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDrop 3.8\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.16.1...3.17.0\"\u003ehttps://github.com/tox-dev/filelock/compare/3.16.1...3.17.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.16.1...3.19.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `freezegun` from 1.5.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\u003c/blockquote\u003e\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.5.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 `identify` from 2.6.5 to 2.6.13\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/af4da9c69b07a41dfbfc1f3ec60d27d9aa0654dc\"\u003e\u003ccode\u003eaf4da9c\u003c/code\u003e\u003c/a\u003e v2.6.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/bdf9c05f99c426e7ab115f68cf62bd0a70b33012\"\u003e\u003ccode\u003ebdf9c05\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/identify/issues/530\"\u003e#530\u003c/a\u003e from dirtcrusher/feature/special_cpp_extensions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/1a6b03cde137b43d4aa6bfd5ea80a762b923efa0\"\u003e\u003ccode\u003e1a6b03c\u003c/code\u003e\u003c/a\u003e Added C++ 'ipp' and 'tpp' file extensions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/1a3399b87beba789ab56ab395737a9b7453ad58f\"\u003e\u003ccode\u003e1a3399b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/identify/issues/529\"\u003e#529\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/1097f76716bf2c93d86fea0e802c8c19df471c5c\"\u003e\u003ccode\u003e1097f76\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/identify/commit/bbfa5787afa5dce7508f4d91fea70fa1fb6b3dd8\"\u003e\u003ccode\u003ebbfa578\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/identify/issues/528\"\u003e#528\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/536d75194e326b7bdb6c5d6e0a66a6658d4a98ff\"\u003e\u003ccode\u003e536d751\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/identify/commit/e1c38fedb35173288c0b7abdabb8545e4ad46290\"\u003e\u003ccode\u003ee1c38fe\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/identify/issues/526\"\u003e#526\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/d084d035b45bdf83a9d28b64977ae4629cacf2c2\"\u003e\u003ccode\u003ed084d03\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/identify/commit/40af39f8124a4e8029ff3716c2b0bbf2e1e5fb1e\"\u003e\u003ccode\u003e40af39f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/identify/issues/524\"\u003e#524\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/identify/compare/v2.6.5...v2.6.13\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `iniconfig` from 2.0.0 to 2.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/iniconfig/releases\"\u003einiconfig's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.1.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/26\"\u003e#26\u003c/a\u003e - list individuals in license file by \u003ca href=\"https://github.com/RonnyPfannschmidt\"\u003e\u003ccode\u003e@​RonnyPfannschmidt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/52\"\u003epytest-dev/iniconfig#52\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRun tests in CI by \u003ca href=\"https://github.com/nicoddemus\"\u003e\u003ccode\u003e@​nicoddemus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/53\"\u003epytest-dev/iniconfig#53\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003epypa/gh-action-pypi-publish@release/v1\u003c/code\u003e @ GHA by \u003ca href=\"https://github.com/webknjaz\"\u003e\u003ccode\u003e@​webknjaz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/54\"\u003epytest-dev/iniconfig#54\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12-3.13 and drop EOL 3.7 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/56\"\u003epytest-dev/iniconfig#56\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/nicoddemus\"\u003e\u003ccode\u003e@​nicoddemus\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/53\"\u003epytest-dev/iniconfig#53\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/webknjaz\"\u003e\u003ccode\u003e@​webknjaz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/54\"\u003epytest-dev/iniconfig#54\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pytest-dev/iniconfig/compare/v2.0.0...v2.1.0\"\u003ehttps://github.com/pytest-dev/iniconfig/compare/v2.0.0...v2.1.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/pytest-dev/iniconfig/blob/main/CHANGELOG\"\u003einiconfig's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.1.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix artifact building - pin minimal version of hatch\u003c/li\u003e\n\u003cli\u003edrop eol python 3.8\u003c/li\u003e\n\u003cli\u003eadd python 3.12 and 3.13\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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/iniconfig/commit/34793a6417e35e511d0c17ffdd8a02ade0f9568e\"\u003e\u003ccode\u003e34793a6\u003c/code\u003e\u003c/a\u003e pre-commit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/136435d0a4345bb048dca98e7c2f4e938d74521b\"\u003e\u003ccode\u003e136435d\u003c/code\u003e\u003c/a\u003e update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/0bb99ad0f7a6b21d5eb24214a260132317a11e43\"\u003e\u003ccode\u003e0bb99ad\u003c/code\u003e\u003c/a\u003e fix \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/62\"\u003e#62\u003c/a\u003e: require a minimal hatch version with correct metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/16793eaddac67de0b8d621ae4e42e05b927e8d67\"\u003e\u003ccode\u003e16793ea\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/56\"\u003e#56\u003c/a\u003e from hugovk/add-3.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/3dc2b2d6bf03e4b7cc92949a8ef0983fdd7ee442\"\u003e\u003ccode\u003e3dc2b2d\u003c/code\u003e\u003c/a\u003e Add support for Python 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/2eb8abfd9d3843100d7f138efe5bcd989a885024\"\u003e\u003ccode\u003e2eb8abf\u003c/code\u003e\u003c/a\u003e Bump GitHub Actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/8c4bb5bf57dde613c8cdcf0e02a09b2fff630907\"\u003e\u003ccode\u003e8c4bb5b\u003c/code\u003e\u003c/a\u003e Set python-version for pre-commit to remove CI warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/58b22b2d672564ff1925df51f4a8e07486765ed2\"\u003e\u003ccode\u003e58b22b2\u003c/code\u003e\u003c/a\u003e Drop support for EOL Python 3.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/4a53042252a109bcdd64422058de91c5dffff763\"\u003e\u003ccode\u003e4a53042\u003c/code\u003e\u003c/a\u003e Add support for Python 3.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/9cae43103df70bac6fde7b9f35ad11a9f1be0cb4\"\u003e\u003ccode\u003e9cae431\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/54\"\u003e#54\u003c/a\u003e from webknjaz/patch-1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/iniconfig/compare/v2.0.0...v2.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `junit-xml` from 1.8 to 1.9\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/kyrus/python-junit-xml/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mutmut` from 3.2.2 to 3.3.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/boxed/mutmut/blob/main/HISTORY.rst\"\u003emutmut's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e3.3.1\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Increased threshold for mutant timeouts\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003etests_dir\u003c/code\u003e config. Accepts a single entry or a list of directories.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAsync generators fixes\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed bad mutations for certain string escape sequences\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance fixes\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eVarious internal bug fixes\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e3.3.0\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003ePython 3.13 compatibility!\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eNew argument \u003ccode\u003e--show-killed\u003c/code\u003e for \u003ccode\u003emutmut browse\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix to avoid accidentally importing the un-mutated original code\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eHandle segfault for mutant subprocesses\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded mutations for string literals\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded mutations for common string methods\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFaster mutant generation via subprocesses\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eself\u003c/code\u003e parameter for mutated class methods\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix trampoline generation for function calls with 'orig' or 'mutants' as argument names.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCopy full source directory before creating mutants\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved error message when forced fail test fails\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed issue with spaces in the python executable path\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDo not mutate \u003ccode\u003e__new__\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAnnotate mutant dicts (and fixes compatibility with Pydantic)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eReplaced parso with LibCST\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/boxed/mutmut/commit/0f2586a806e069cc335d68ccd7d6277088f69249\"\u003e\u003ccode\u003e0f2586a\u003c/code\u003e\u003c/a\u003e Release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/6a5c471e0c13f782caacfdd244f2717002a13192\"\u003e\u003ccode\u003e6a5c471\u003c/code\u003e\u003c/a\u003e Pass mutation generation errors from subprocess to main process\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/7b03f4bffc3e8ac0c85158947e4659a5831cbf63\"\u003e\u003ccode\u003e7b03f4b\u003c/code\u003e\u003c/a\u003e Update timeout values\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/3cd39fac6f800de8859b8e876d0f74cd100574c8\"\u003e\u003ccode\u003e3cd39fa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/boxed/mutmut/issues/408\"\u003e#408\u003c/a\u003e from souradeep-das/souradeep/add_tests_dir\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/3e52e5e13347589adf725de1847204aad1b22a64\"\u003e\u003ccode\u003e3e52e5e\u003c/code\u003e\u003c/a\u003e modify e2e tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/10bb45183d781504fb13925dd3baee21edcf8673\"\u003e\u003ccode\u003e10bb451\u003c/code\u003e\u003c/a\u003e merge latest\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/d4980abef4bbbcea6e9070bc0a1c92626bb9ebb4\"\u003e\u003ccode\u003ed4980ab\u003c/code\u003e\u003c/a\u003e fix: accept lists as tests_dir\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/22f3924b6b5a2ff7916c1f62aa1ed1f3341e42ee\"\u003e\u003ccode\u003e22f3924\u003c/code\u003e\u003c/a\u003e Improve diff view performance a bit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/eb37032a679e1b160b012d838f798fd7fc266e48\"\u003e\u003ccode\u003eeb37032\u003c/code\u003e\u003c/a\u003e Make rlimit signal SIGXCPU first; only fallback to SIGKILL later on\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/99ecd3209b8ed49b6dc9d97dcfe67e66f0e8e773\"\u003e\u003ccode\u003e99ecd32\u003c/code\u003e\u003c/a\u003e fix timeout checker \u0026quot;dictionary changed size during iteration\u0026quot; bug (\u003ca href=\"https://redirect.github.com/boxed/mutmut/issues/411\"\u003e#411\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boxed/mutmut/compare/3.2.2...3.3.1\"\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 `parso` from 0.8.4 to 0.8.5\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/davidhalter/parso/blob/master/CHANGELOG.rst\"\u003eparso's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.8.5 (2025-08-23)\n++++++++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a fallback grammar 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/davidhalter/parso/commit/be9f5a401feaa1a7eda935bc68b2d3baed9a30ab\"\u003e\u003ccode\u003ebe9f5a4\u003c/code\u003e\u003c/a\u003e Prepare release 0.8.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/davidhalter/parso/commit/7e4777b775206038a1aa87282c79ed04f5f1c3fd\"\u003e\u003ccode\u003e7e4777b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/davidhalter/parso/issues/234\"\u003e#234\u003c/a\u003e from A5rocks/future-compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/davidhalter/parso/commit/e99dbdd536da741d4935c427a6231f4d5eb6ea79\"\u003e\u003ccode\u003ee99dbdd\u003c/code\u003e\u003c/a\u003e Remove redundant warnings import\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/davidhalter/parso/commit/e22dc67aa10b53bbf069f825a0d40eefc727f0cb\"\u003e\u003ccode\u003ee22dc67\u003c/code\u003e\u003c/a\u003e Avoid warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/davidhalter/parso/commit/baa3c90d85a10f6abb8307246a89fc683981cee7\"\u003e\u003ccode\u003ebaa3c90\u003c/code\u003e\u003c/a\u003e Load newest grammar in face of a future grammar\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/davidhalter/parso/commit/23b1cdf73d95ae20f23e2fd198cafcd8fef529ad\"\u003e\u003ccode\u003e23b1cdf\u003c/code\u003e\u003c/a\u003e Drop Python 3.7 in CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/davidhalter/parso/commit/a73af5c709a292cbb789bf6cab38b20559f166c0\"\u003e\u003ccode\u003ea73af5c\u003c/code\u003e\u003c/a\u003e Fix pip install -e in docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/davidhalter/parso/commit/9328cffce392b4c3e907db4bbfad06ca1111b3ee\"\u003e\u003ccode\u003e9328cff\u003c/code\u003e\u003c/a\u003e Update classifiers in setup.py (\u003ca href=\"https://redirect.github.com/davidhalter/parso/issues/230\"\u003e#230\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/davidhalter/parso/commit/f670e6e7dc01e07576ec5c84cbf9fbce1a02c3eb\"\u003e\u003ccode\u003ef670e6e\u003c/code\u003e\u003c/a\u003e ENH: add grammar file for py314 (\u003ca href=\"https://redirect.github.com/davidhalter/parso/issues/229\"\u003e#229\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http...\n\n_Description has been truncated_","html_url":"https://github.com/github/annotated-logger/pull/75","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/github%2Fannotated-logger/issues/75","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/75/packages"}},{"old_version":"0.0.27","new_version":"0.0.29","update_type":"patch","path":null,"pr_created_at":"2025-06-15T21:08:56.000Z","version_change":"0.0.27 → 0.0.29","issue":{"uuid":"2594043344","node_id":"PR_kwDOMt9I9c6anfXQ","number":64,"state":"closed","title":"[pip] (deps): Bump the dev-dependencies group across 1 directory with 30 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2025-06-22T21:08:11.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-06-15T21:08:56.000Z","updated_at":"2025-06-22T21:08:11.000Z","time_to_close":604755,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"[pip] (deps): Bump","group_name":"dev-dependencies","update_count":30,"packages":[{"name":"python-json-logger","old_version":"3.2.1","new_version":"3.3.0","repository_url":"https://github.com/nhairs/python-json-logger"},{"name":"certifi","old_version":"2024.12.14","new_version":"2025.6.15","repository_url":"https://github.com/certifi/python-certifi"},{"name":"charset-normalizer","old_version":"3.4.1","new_version":"3.4.2","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"makefun","old_version":"1.15.6","new_version":"1.16.0","repository_url":"https://github.com/smarie/python-makefun"},{"name":"pychoir","old_version":"0.0.27","new_version":"0.0.29","repository_url":"https://github.com/kajaste/pychoir"},{"name":"requests","old_version":"2.32.3","new_version":"2.32.4","repository_url":"https://github.com/psf/requests"},{"name":"urllib3","old_version":"2.3.0","new_version":"2.4.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"coverage","old_version":"7.6.10","new_version":"7.9.1","repository_url":"https://github.com/nedbat/coveragepy"},{"name":"exceptiongroup","old_version":"1.2.2","new_version":"1.3.0","repository_url":"https://github.com/agronholm/exceptiongroup"},{"name":"filelock","old_version":"3.16.1","new_version":"3.18.0","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"freezegun","old_version":"1.5.1","new_version":"1.5.2","repository_url":"https://github.com/spulec/freezegun"},{"name":"identify","old_version":"2.6.5","new_version":"2.6.12","repository_url":"https://github.com/pre-commit/identify"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.1.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"junit-xml","old_version":"1.8","new_version":"1.9","repository_url":"https://github.com/kyrus/python-junit-xml"},{"name":"mutmut","old_version":"3.2.2","new_version":"3.3.0","repository_url":"https://github.com/boxed/mutmut"},{"name":"packaging","old_version":"24.2","new_version":"25.0","repository_url":"https://github.com/pypa/packaging"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.3.8","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"pre-commit","old_version":"4.0.1","new_version":"4.2.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pyright","old_version":"1.1.391","new_version":"1.1.402","repository_url":"https://github.com/RobertCraigie/pyright-python"},{"name":"pytest","old_version":"8.3.4","new_version":"8.4.0","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-cov","old_version":"6.0.0","new_version":"6.2.1","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pytest-github-actions-annotate-failures","old_version":"0.2.0","new_version":"0.3.0","repository_url":"https://github.com/pytest-dev/pytest-github-actions-annotate-failures"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.14.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"rich","old_version":"13.9.4","new_version":"14.0.0","repository_url":"https://github.com/Textualize/rich"},{"name":"ruff","old_version":"0.8.6","new_version":"0.11.13","repository_url":"https://github.com/astral-sh/ruff"},{"name":"setproctitle","old_version":"1.3.4","new_version":"1.3.6","repository_url":"https://github.com/dvarrazzo/py-setproctitle"},{"name":"textual","old_version":"1.0.0","new_version":"3.4.0","repository_url":"https://github.com/Textualize/textual"},{"name":"typing-extensions","old_version":"4.12.2","new_version":"4.14.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"virtualenv","old_version":"20.28.1","new_version":"20.31.2","repository_url":"https://github.com/pypa/virtualenv"}],"path":null,"ecosystem":"pip"},"body":"Bumps the dev-dependencies group with 30 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `3.2.1` | `3.3.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2024.12.14` | `2025.6.15` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.1` | `3.4.2` |\n| [makefun](https://github.com/smarie/python-makefun) | `1.15.6` | `1.16.0` |\n| [pychoir](https://github.com/kajaste/pychoir) | `0.0.27` | `0.0.29` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.32.4` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.3.0` | `2.4.0` |\n| [coverage](https://github.com/nedbat/coveragepy) | `7.6.10` | `7.9.1` |\n| [exceptiongroup](https://github.com/agronholm/exceptiongroup) | `1.2.2` | `1.3.0` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.18.0` |\n| [freezegun](https://github.com/spulec/freezegun) | `1.5.1` | `1.5.2` |\n| [identify](https://github.com/pre-commit/identify) | `2.6.5` | `2.6.12` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.1.0` |\n| [junit-xml](https://github.com/kyrus/python-junit-xml) | `1.8` | `1.9` |\n| [mutmut](https://github.com/boxed/mutmut) | `3.2.2` | `3.3.0` |\n| [packaging](https://github.com/pypa/packaging) | `24.2` | `25.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.3.8` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.0.1` | `4.2.0` |\n| [pyright](https://github.com/RobertCraigie/pyright-python) | `1.1.391` | `1.1.402` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.4` | `8.4.0` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `6.0.0` | `6.2.1` |\n| [pytest-github-actions-annotate-failures](https://github.com/pytest-dev/pytest-github-actions-annotate-failures) | `0.2.0` | `0.3.0` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.14.1` |\n| [rich](https://github.com/Textualize/rich) | `13.9.4` | `14.0.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.8.6` | `0.11.13` |\n| [setproctitle](https://github.com/dvarrazzo/py-setproctitle) | `1.3.4` | `1.3.6` |\n| [textual](https://github.com/Textualize/textual) | `1.0.0` | `3.4.0` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.12.2` | `4.14.0` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `20.28.1` | `20.31.2` |\n\n\nUpdates `python-json-logger` from 3.2.1 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nhairs/python-json-logger/releases\"\u003epython-json-logger's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v3.2.1...v3.3.0\"\u003e3.3.0\u003c/a\u003e - 2025-03-06\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eexc_info_as_array\u003c/code\u003e and \u003ccode\u003estack_info_as_array\u003c/code\u003e options are added to \u003ccode\u003epythonjsonlogger.core.BaseJsonFormatter\u003c/code\u003e allowing both to be encoded as list of lines instead of a single multi-line string. \u003ca href=\"https://redirect.github.com/nhairs/python-json-logger/issues/35\"\u003e#35\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003emsgspec-python313-pre\u003c/code\u003e from \u003ccode\u003edev\u003c/code\u003e dependencies preventing potential RCE. Details: \u003ca href=\"https://github.com/nhairs/python-json-logger/security/advisories/GHSA-wmxh-pxcx-9w24#advisory-comment-121307\"\u003eGHSA-wmxh-pxcx-9w24\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks \u003ca href=\"https://github.com/1hakusai1\"\u003e\u003ccode\u003e@​1hakusai1\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/omnigodz\"\u003e\u003ccode\u003e@​omnigodz\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/nhairs/python-json-logger/blob/main/docs/changelog.md\"\u003epython-json-logger's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v3.2.1...v3.3.0\"\u003e3.3.0\u003c/a\u003e - 2025-03-06\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eexc_info_as_array\u003c/code\u003e and \u003ccode\u003estack_info_as_array\u003c/code\u003e options are added to \u003ccode\u003epythonjsonlogger.core.BaseJsonFormatter\u003c/code\u003e allowing both to be encoded as list of lines instead of a single multi-line string. \u003ca href=\"https://redirect.github.com/nhairs/python-json-logger/issues/35\"\u003e#35\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003emsgspec-python313-pre\u003c/code\u003e from \u003ccode\u003edev\u003c/code\u003e dependencies preventing potential RCE. Details: \u003ca href=\"https://github.com/nhairs/python-json-logger/security/advisories/GHSA-wmxh-pxcx-9w24#advisory-comment-121307\"\u003eGHSA-wmxh-pxcx-9w24\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks \u003ca href=\"https://github.com/1hakusai1\"\u003e\u003ccode\u003e@​1hakusai1\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/omnigodz\"\u003e\u003ccode\u003e@​omnigodz\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/9e6cb679dfb56cb82d9a8cc91f956efd72427055\"\u003e\u003ccode\u003e9e6cb67\u003c/code\u003e\u003c/a\u003e Release 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/db04a0f9066cc331f8d6177f828fe073c7b2a4cc\"\u003e\u003ccode\u003edb04a0f\u003c/code\u003e\u003c/a\u003e Add options to encode stack information into an array (\u003ca href=\"https://redirect.github.com/nhairs/python-json-logger/issues/39\"\u003e#39\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/0092ea0be1cd28e3c1da51eaa084c503bb3710b7\"\u003e\u003ccode\u003e0092ea0\u003c/code\u003e\u003c/a\u003e Move to uv (\u003ca href=\"https://redirect.github.com/nhairs/python-json-logger/issues/40\"\u003e#40\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/1ce81a3614d8c77389a9c048d341593e2a7467e7\"\u003e\u003ccode\u003e1ce81a3\u003c/code\u003e\u003c/a\u003e [tests] Update tests for msgspec 0.19.0 (\u003ca href=\"https://redirect.github.com/nhairs/python-json-logger/issues/41\"\u003e#41\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v3.2.1...v3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2024.12.14 to 2025.6.15\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/e767d5938eddddf804216cec93a55c85129c5f2d\"\u003e\u003ccode\u003ee767d59\u003c/code\u003e\u003c/a\u003e 2025.06.15 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/357\"\u003e#357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/3e7076557d66b598fcca462e422dc988f09a6802\"\u003e\u003ccode\u003e3e70765\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.5.0 to 5.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/9afd2ff407b8a0638988c952a6636b8dd623af7c\"\u003e\u003ccode\u003e9afd2ff\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4.2.1 to 4.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/d7c816cbc9cf621b3ddc8cd7fa7eda3f36982620\"\u003e\u003ccode\u003ed7c816c\u003c/code\u003e\u003c/a\u003e remove code that's no longer required that 3.7 is our minimum (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/351\"\u003e#351\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/189961379209973abd0dd6304297f03e2359e1b9\"\u003e\u003ccode\u003e1899613\u003c/code\u003e\u003c/a\u003e Declare setuptools as the build backend in pyproject.toml (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/350\"\u003e#350\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/c8741423d67e1025c0bdad5225ded05cf962f207\"\u003e\u003ccode\u003ec874142\u003c/code\u003e\u003c/a\u003e update CI for ubuntu 20.04 deprecation (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/348\"\u003e#348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/275c9eb55733a464589c15fb4566fddd4598e5b2\"\u003e\u003ccode\u003e275c9eb\u003c/code\u003e\u003c/a\u003e 2025.04.26 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/347\"\u003e#347\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/37883310b51e56570919cdc2d44becc1c6940559\"\u003e\u003ccode\u003e3788331\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.4.0 to 5.5.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/346\"\u003e#346\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/9d1f1b782000baedf57026de5b79e193bcb7ef7b\"\u003e\u003ccode\u003e9d1f1b7\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4.1.9 to 4.2.1 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/344\"\u003e#344\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/96b97a5afe26bc1adef98cb0bfe68e34948a73b6\"\u003e\u003ccode\u003e96b97a5\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 4.6.1 to 4.6.2 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/343\"\u003e#343\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2024.12.14...2025.06.15\"\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.1 to 3.4.2\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.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.9\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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/6422af1d50f1f46624deab585424e1ac4d08ba94\"\u003e\u003ccode\u003e6422af1\u003c/code\u003e\u003c/a\u003e :pencil: update release date\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/0e60ec18eb00bfe312dde86739929165839b633c\"\u003e\u003ccode\u003e0e60ec1\u003c/code\u003e\u003c/a\u003e :bookmark: Release 3.4.2 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/614\"\u003e#614\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f6630ce3b7fd34f234759a0c7a5ca413640e8ffb\"\u003e\u003ccode\u003ef6630ce\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump pypa/cibuildwheel from 2.23.2 to 2.23.3 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/617\"\u003e#617\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/677c99953f1a728de9f88d8659abff1246a80ade\"\u003e\u003ccode\u003e677c999\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump actions/download-artifact from 4.2.1 to 4.3.0 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/618\"\u003e#618\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/960ab1e676b7ef73c8c4f36c387b5a0da21e01c0\"\u003e\u003ccode\u003e960ab1e\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump actions/setup-python from 5.5.0 to 5.6.0 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/619\"\u003e#619\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/6eb632521c9b3f92df2cd944c7c524c205abfffc\"\u003e\u003ccode\u003e6eb6325\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump github/codeql-action from 3.28.10 to 3.28.16 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/620\"\u003e#620\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/c99c0f2c33ce54e41fefcae1c4fb96fa901d5cd4\"\u003e\u003ccode\u003ec99c0f2\u003c/code\u003e\u003c/a\u003e :arrow_up: Update coverage requirement from \u0026lt;7.7,\u0026gt;=7.2.7 to \u0026gt;=7.2.7,\u0026lt;7.9 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/606\"\u003e#606\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/270f28e474db75f2a5085d6da732a90c2ac338f4\"\u003e\u003ccode\u003e270f28e\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump actions/setup-python from 5.4.0 to 5.5.0 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/607\"\u003e#607\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/d4d89a092d262a37ce427ee39ba5091ffd188f0b\"\u003e\u003ccode\u003ed4d89a0\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump pypa/cibuildwheel from 2.22.0 to 2.23.2 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/608\"\u003e#608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/905fcf5cbe93e8b59c12103217434bdbc703d105\"\u003e\u003ccode\u003e905fcf5\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump slsa-framework/slsa-github-generator from 2.0.0 to 2.1.0 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/609\"\u003e#609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.1...3.4.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `makefun` from 1.15.6 to 1.16.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/smarie/python-makefun/blob/main/docs/changelog.md\"\u003emakefun's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e1.16.0 - Support for 3.14, dropped support for \u0026lt; 3.9\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved official support for python versions \u003ccode\u003e\u0026lt;3.9\u003c/code\u003e. These versions will not run in CI anymore.\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eRuntimeError\u003c/code\u003e in tests when running on python 3.14. Added python 3.14 to CI. Fixes\n\u003ca href=\"https://redirect.github.com/smarie/python-makefun/issues/112\"\u003e#112\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/smarie/python-makefun/commit/197b14827c1b7830c0288477c007e1f1592f52ad\"\u003e\u003ccode\u003e197b148\u003c/code\u003e\u003c/a\u003e Changelog for tag, ready to release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/321a39c9a8be1497ba7dfbb9c7c16a9442ae25a6\"\u003e\u003ccode\u003e321a39c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/smarie/python-makefun/issues/118\"\u003e#118\u003c/a\u003e from smarie/feature/112_support_py314\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/39f061e17a7d7472e33cec76d162381ae82b49e3\"\u003e\u003ccode\u003e39f061e\u003c/code\u003e\u003c/a\u003e With latest versions of all actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/4771aaf910459dfabb12109cf4ae37cd089fd9d6\"\u003e\u003ccode\u003e4771aaf\u003c/code\u003e\u003c/a\u003e Changed the fix to leverage pytest-asyncio, now that we do not support python...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/498ed69f5fa22baa5300b354d419fd45be55cf6e\"\u003e\u003ccode\u003e498ed69\u003c/code\u003e\u003c/a\u003e Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/87eb2ebefa88d212e4ae75f28fc0ffc2fb9194c6\"\u003e\u003ccode\u003e87eb2eb\u003c/code\u003e\u003c/a\u003e Fixed \u003ccode\u003eRuntimeError\u003c/code\u003e in tests when running on pythn 3.14. Added python 3.14 t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/4573c65b6b8405b6194361805a44ba8d9d08c41d\"\u003e\u003ccode\u003e4573c65\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/smarie/python-makefun/issues/117\"\u003e#117\u003c/a\u003e from smarie/chore/116_gh_pages_workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/db582747d0b89ea35927176910205f3f68a429d4\"\u003e\u003ccode\u003edb58274\u003c/code\u003e\u003c/a\u003e Added gh pages workflow. Fixed \u003ca href=\"https://redirect.github.com/smarie/python-makefun/issues/116\"\u003e#116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/c8990e6a660082b42f8314f96bf7369a0f6c2463\"\u003e\u003ccode\u003ec8990e6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/smarie/python-makefun/issues/114\"\u003e#114\u003c/a\u003e from smarie/feature/py35_in_ci\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/3b1e628e9e7ecf05ea9bc6a9fb73c45563a3c24a\"\u003e\u003ccode\u003e3b1e628\u003c/code\u003e\u003c/a\u003e Removed 3.14 for now\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/smarie/python-makefun/compare/1.15.6...1.16.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pychoir` from 0.0.27 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/kajaste/pychoir/releases\"\u003epychoir's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eTwenty-ninth release\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch pipenv \u0026amp; setuptools to uv by \u003ca href=\"https://github.com/kajaste\"\u003e\u003ccode\u003e@​kajaste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kajaste/pychoir/pull/97\"\u003ekajaste/pychoir#97\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/kajaste/pychoir/compare/v0.0.28...v0.0.29\"\u003ehttps://github.com/kajaste/pychoir/compare/v0.0.28...v0.0.29\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eTwenty-eighth release\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate dev deps by \u003ca href=\"https://github.com/kajaste\"\u003e\u003ccode\u003e@​kajaste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kajaste/pychoir/pull/94\"\u003ekajaste/pychoir#94\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump dev deps by \u003ca href=\"https://github.com/kajaste\"\u003e\u003ccode\u003e@​kajaste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kajaste/pychoir/pull/95\"\u003ekajaste/pychoir#95\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs \u0026amp; Makefile update by \u003ca href=\"https://github.com/kajaste\"\u003e\u003ccode\u003e@​kajaste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kajaste/pychoir/pull/96\"\u003ekajaste/pychoir#96\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/kajaste/pychoir/compare/v0.0.27...v0.0.28\"\u003ehttps://github.com/kajaste/pychoir/compare/v0.0.27...v0.0.28\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/kajaste/pychoir/commit/bf2f254bcadf03026867a6442523549f1abb16d3\"\u003e\u003ccode\u003ebf2f254\u003c/code\u003e\u003c/a\u003e Switch pipenv \u0026amp; setuptools to uv\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kajaste/pychoir/commit/c1d251d480a47f8bc29e89765c19b00b594442b2\"\u003e\u003ccode\u003ec1d251d\u003c/code\u003e\u003c/a\u003e Docs \u0026amp; Makefile update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kajaste/pychoir/commit/f6181a037d2e791bbf9306b4210a9b4934fc1bbf\"\u003e\u003ccode\u003ef6181a0\u003c/code\u003e\u003c/a\u003e Drop 3.7, add 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kajaste/pychoir/commit/f94fdad20f981f344adbdc07b9aa1cb00795b671\"\u003e\u003ccode\u003ef94fdad\u003c/code\u003e\u003c/a\u003e Bump dev deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kajaste/pychoir/commit/5a2ebd7ca625779b7beaab71d50631f9529f21eb\"\u003e\u003ccode\u003e5a2ebd7\u003c/code\u003e\u003c/a\u003e Update dev deps\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/kajaste/pychoir/compare/v0.0.27...v0.0.29\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.32.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.32.4\u003c/h2\u003e\n\u003ch2\u003e2.32.4 (2025-06-10)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2024-47081 Fixed an issue where a maliciously crafted URL and trusted\nenvironment will retrieve credentials for the wrong hostname/machine from a\nnetrc file. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6965\"\u003e#6965\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNumerous documentation improvements\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for pypy 3.11 for Linux and macOS. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6926\"\u003e#6926\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDropped support for pypy 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6926\"\u003e#6926\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.32.4 (2025-06-10)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2024-47081 Fixed an issue where a maliciously crafted URL and trusted\nenvironment will retrieve credentials for the wrong hostname/machine from a\nnetrc file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNumerous documentation improvements\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for pypy 3.11 for Linux and macOS.\u003c/li\u003e\n\u003cli\u003eDropped support for pypy 3.9 following its end of support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/021dc729f0b71a3030cefdbec7fb57a0e80a6cfd\"\u003e\u003ccode\u003e021dc72\u003c/code\u003e\u003c/a\u003e Polish up release tooling for last manual release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/821770e822a20a21b207b3907ea83878bda1d396\"\u003e\u003ccode\u003e821770e\u003c/code\u003e\u003c/a\u003e Bump version and add release notes for v2.32.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/59f8aa2adf1d3d06bcbf7ce6b13743a1639a5401\"\u003e\u003ccode\u003e59f8aa2\u003c/code\u003e\u003c/a\u003e Add netrc file search information to authentication documentation (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6876\"\u003e#6876\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5b4b64c3467fd7a3c03f91ee641aaa348b6bed3b\"\u003e\u003ccode\u003e5b4b64c\u003c/code\u003e\u003c/a\u003e Add more tests to prevent regression of CVE 2024 47081\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/7bc45877a86192af77645e156eb3744f95b47dae\"\u003e\u003ccode\u003e7bc4587\u003c/code\u003e\u003c/a\u003e Add new test to check netrc auth leak (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6962\"\u003e#6962\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/96ba401c1296ab1dda74a2365ef36d88f7d144ef\"\u003e\u003ccode\u003e96ba401\u003c/code\u003e\u003c/a\u003e Only use hostname to do netrc lookup instead of netloc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/7341690e842a23cf18ded0abd9229765fa88c4e2\"\u003e\u003ccode\u003e7341690\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psf/requests/issues/6951\"\u003e#6951\u003c/a\u003e from tswast/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6716d7c9f29df636643fa2489f98890216525cb0\"\u003e\u003ccode\u003e6716d7c\u003c/code\u003e\u003c/a\u003e remove links\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a7e1c745dc23c18e836febd672416ed0c5d8d8ae\"\u003e\u003ccode\u003ea7e1c74\u003c/code\u003e\u003c/a\u003e Update docs/conf.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/c799b8167a13416833ad3b4f3298261a477e826f\"\u003e\u003ccode\u003ec799b81\u003c/code\u003e\u003c/a\u003e docs: fix dead links to kenreitz.org\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.32.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `urllib3` from 2.3.0 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/urllib3/urllib3/releases\"\u003eurllib3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.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\u003ch1\u003eFeatures\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eApplied PEP 639 by specifying the license fields in pyproject.toml. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3522\"\u003e#3522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdated exceptions to save and restore more properties during the pickle/serialization process. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3567\"\u003e#3567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003everify_flags\u003c/code\u003e option to \u003ccode\u003ecreate_urllib3_context\u003c/code\u003e with a default of \u003ccode\u003eVERIFY_X509_PARTIAL_CHAIN\u003c/code\u003e and \u003ccode\u003eVERIFY_X509_STRICT\u003c/code\u003e for Python 3.13+. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3571\"\u003e#3571\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eBugfixes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug with partial reads of streaming data in Emscripten. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3555\"\u003e#3555\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eMisc\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSwitched to uv for installing development dependecies. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3550\"\u003e#3550\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved the \u003ccode\u003emultiple.intoto.jsonl\u003c/code\u003e asset from GitHub releases. Attestation of release files since v2.3.0 can be found on PyPI. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3566\"\u003e#3566\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/urllib3/urllib3/blob/main/CHANGES.rst\"\u003eurllib3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.4.0 (2025-04-10)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eApplied PEP 639 by specifying the license fields in pyproject.toml. (\u003ccode\u003e[#3522](https://github.com/urllib3/urllib3/issues/3522) \u0026lt;https://github.com/urllib3/urllib3/issues/3522\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eUpdated exceptions to save and restore more properties during the pickle/serialization process. (\u003ccode\u003e[#3567](https://github.com/urllib3/urllib3/issues/3567) \u0026lt;https://github.com/urllib3/urllib3/issues/3567\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003everify_flags\u003c/code\u003e option to \u003ccode\u003ecreate_urllib3_context\u003c/code\u003e with a default of \u003ccode\u003eVERIFY_X509_PARTIAL_CHAIN\u003c/code\u003e and \u003ccode\u003eVERIFY_X509_STRICT\u003c/code\u003e for Python 3.13+. (\u003ccode\u003e[#3571](https://github.com/urllib3/urllib3/issues/3571) \u0026lt;https://github.com/urllib3/urllib3/issues/3571\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug with partial reads of streaming data in Emscripten. (\u003ccode\u003e[#3555](https://github.com/urllib3/urllib3/issues/3555) \u0026lt;https://github.com/urllib3/urllib3/issues/3555\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSwitched to uv for installing development dependecies. (\u003ccode\u003e[#3550](https://github.com/urllib3/urllib3/issues/3550) \u0026lt;https://github.com/urllib3/urllib3/issues/3550\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eRemoved the \u003ccode\u003emultiple.intoto.jsonl\u003c/code\u003e asset from GitHub releases. Attestation of release files since v2.3.0 can be found on PyPI. (\u003ccode\u003e[#3566](https://github.com/urllib3/urllib3/issues/3566) \u0026lt;https://github.com/urllib3/urllib3/issues/3566\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/a5ff7ac3bbb8659e2ec3ed41dd43889f06a7d7bc\"\u003e\u003ccode\u003ea5ff7ac\u003c/code\u003e\u003c/a\u003e Release 2.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/a135db29f72f828b0ef7314b856d19696a6f48ba\"\u003e\u003ccode\u003ea135db2\u003c/code\u003e\u003c/a\u003e Upgrade memray and coverage to fix macOS tests (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3589\"\u003e#3589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/8f40e71612505a9985b0a58ad793cd84ec97614a\"\u003e\u003ccode\u003e8f40e71\u003c/code\u003e\u003c/a\u003e Upgrade the publishing action to get correct licensing info on PyPI (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3585\"\u003e#3585\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/3ff4e49ddf889554cf295b4a2e1189d066b60c71\"\u003e\u003ccode\u003e3ff4e49\u003c/code\u003e\u003c/a\u003e Add a link to the 2024 annual report (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3586\"\u003e#3586\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/75709c1dbd6770618f061fd0b8a6950c7741f17b\"\u003e\u003ccode\u003e75709c1\u003c/code\u003e\u003c/a\u003e Set verify flags in \u003ccode\u003ecreate_urllib3_context\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3577\"\u003e#3577\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/5c8f82a2f1c1b7a8360f0c84b5a88f25df070811\"\u003e\u003ccode\u003e5c8f82a\u003c/code\u003e\u003c/a\u003e Bump astral-sh/setup-uv from 5.3.0 to 5.4.1 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3580\"\u003e#3580\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/42e90d894b30ef8b897708eb1cdfa24e83cf5067\"\u003e\u003ccode\u003e42e90d8\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.4.0 to 5.5.0 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3579\"\u003e#3579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/3e8f2db735dcaced6a3b777aa1966f40c018af7c\"\u003e\u003ccode\u003e3e8f2db\u003c/code\u003e\u003c/a\u003e Stop using Ubuntu 20.04 and 22.04 in CI (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3570\"\u003e#3570\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/e29db82a6df5f9a9acbb6997899f93bda79bb61e\"\u003e\u003ccode\u003ee29db82\u003c/code\u003e\u003c/a\u003e Update exceptions to have more of their attributes pickled (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3572\"\u003e#3572\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/f8a0c4360ad67aefd79317279ee90c72d5d18697\"\u003e\u003ccode\u003ef8a0c43\u003c/code\u003e\u003c/a\u003e Add PyPy 3.11 to CI\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/urllib3/urllib3/compare/2.3.0...2.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.6.10 to 7.9.1\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.9.1 — 2025-06-13\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe \u0026quot;no-ctracer\u0026quot; warning is not issued for Python pre-release versions.\nCoverage doesn't ship compiled wheels for those versions, so this was far too\nnoisy.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eOn Python 3.14+, the \u0026quot;sysmon\u0026quot; core is now the default if it's supported for\nyour configuration.  Plugins and dynamic contexts are still not supported\nwith it.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _changes_7-9-0:\u003c/p\u003e\n\u003ch2\u003eVersion 7.9.0 — 2025-06-11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a \u003ccode\u003e[run] core\u003c/code\u003e configuration setting to specify the measurement core,\nwhich was previously only available through the COVERAGE_CORE environment\nvariable. Finishes \u003ccode\u003eissue 1746\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed incorrect rendering of f-strings with doubled braces, closing \u003ccode\u003eissue 1980\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIf the C tracer core can't be imported, a warning (\u0026quot;no-ctracer\u0026quot;) is issued\nwith the reason.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe C tracer core extension module now conforms to \u003ccode\u003ePEP 489\u003c/code\u003e\u003cem\u003e, closing \u003ccode\u003eissue 1977\u003c/code\u003e\u003c/em\u003e.  Thanks, \u003ccode\u003eAdam Turner \u0026lt;pull 1978_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a \u0026quot;ValueError: min() arg is an empty sequence\u0026quot; error caused by strange\nempty modules, found by \u003ccode\u003eoss-fuzz\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1746: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1746\"\u003enedbat/coveragepy#1746\u003c/a\u003e\n.. _issue 1977: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1977\"\u003enedbat/coveragepy#1977\u003c/a\u003e\n.. _pull 1978: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/1978\"\u003enedbat/coveragepy#1978\u003c/a\u003e\n.. _issue 1980: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1980\"\u003enedbat/coveragepy#1980\u003c/a\u003e\n.. _PEP 489: \u003ca href=\"https://peps.python.org/pep-0489\"\u003ehttps://peps.python.org/pep-0489\u003c/a\u003e\n.. _oss-fuzz: \u003ca href=\"https://google.github.io/oss-fuzz/\"\u003ehttps://google.github.io/oss-fuzz/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-8-2:\u003c/p\u003e\n\u003ch2\u003eVersion 7.8.2 — 2025-05-23\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWheels are provided for Windows ARM64 on Python 3.11, 3.12, and 3.13.\nThanks, \u003ccode\u003eFinn Womack \u0026lt;pull 1972_\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1971: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/1971\"\u003enedbat/coveragepy#1971\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/nedbat/coveragepy/commit/4fa1b717978c2d9e40636a10363b618e152f4c4e\"\u003e\u003ccode\u003e4fa1b71\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.9.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/5cf757b42d1649ccbc74488471ab9270cb7d99f2\"\u003e\u003ccode\u003e5cf757b\u003c/code\u003e\u003c/a\u003e docs: prep for 7.9.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/bea6204982b75f6a20f5afbf3534bd3776e126dd\"\u003e\u003ccode\u003ebea6204\u003c/code\u003e\u003c/a\u003e fix: better defaulting of core\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/7795441563fb0afe9439a857a5e0df50336f73dd\"\u003e\u003ccode\u003e7795441\u003c/code\u003e\u003c/a\u003e fix: fewer warnings, default to sys.monitoring on 3.14+\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/18aa07456965c7d26e028aebaf825b96b7638d74\"\u003e\u003ccode\u003e18aa074\u003c/code\u003e\u003c/a\u003e fix: some custom builds don't have \u003cstrong\u003efile\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/8c5bf659f4b4412685a828c01870cfc9a23186ac\"\u003e\u003ccode\u003e8c5bf65\u003c/code\u003e\u003c/a\u003e chore: make upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/128c4f4e452f08e52fe1d6fbebb8392ae2dc7297\"\u003e\u003ccode\u003e128c4f4\u003c/code\u003e\u003c/a\u003e build: bump version to 7.9.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/452d86ffa16cd0c1b729c7d206f59bc1010aee94\"\u003e\u003ccode\u003e452d86f\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.9.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/a670927ae6d248f369d54fbe22d9546b6a25c25e\"\u003e\u003ccode\u003ea670927\u003c/code\u003e\u003c/a\u003e docs: prep for 7.9.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/3b0cb870f6abac8e4a7607094c467a7d766a44f4\"\u003e\u003ccode\u003e3b0cb87\u003c/code\u003e\u003c/a\u003e build: windows 3.14 is fixed\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nedbat/coveragepy/compare/7.6.10...7.9.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `exceptiongroup` from 1.2.2 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/agronholm/exceptiongroup/releases\"\u003eexceptiongroup's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003e**kwargs\u003c/code\u003e to function and method signatures as appropriate to match the signatures in the standard library\u003c/li\u003e\n\u003cli\u003eIn line with the stdlib typings in typeshed, updated \u003ccode\u003e(Base)ExceptionGroup\u003c/code\u003e generic types to define defaults for their generic arguments (defaulting to \u003ccode\u003eBaseExceptionGroup[BaseException]\u003c/code\u003e and \u003ccode\u003eExceptionGroup[Exception]\u003c/code\u003e) (PR by \u003ca href=\"https://github.com/mikenerone\"\u003e\u003ccode\u003e@​mikenerone\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eBaseExceptionGroup.__init__()\u003c/code\u003e to directly call \u003ccode\u003eBaseException.__init__()\u003c/code\u003e instead of the superclass \u003ccode\u003e__init__()\u003c/code\u003e in order to emulate the CPython behavior (broken or not) (PR by \u003ca href=\"https://github.com/cfbolz\"\u003e\u003ccode\u003e@​cfbolz\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged the \u003ccode\u003eexceptions\u003c/code\u003e attribute to always return the same tuple of exceptions, created from the original exceptions sequence passed to \u003ccode\u003eBaseExceptionGroup\u003c/code\u003e to match CPython behavior (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/143\"\u003e#143\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/agronholm/exceptiongroup/blob/main/CHANGES.rst\"\u003eexceptiongroup's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eVersion history\u003c/h1\u003e\n\u003cp\u003eThis library adheres to \u003ccode\u003eSemantic Versioning 2.0 \u0026lt;http://semver.org/\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e1.3.0\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003e**kwargs\u003c/code\u003e to function and method signatures as appropriate to match the\nsignatures in the standard library\u003c/li\u003e\n\u003cli\u003eIn line with the stdlib typings in typeshed, updated \u003ccode\u003e(Base)ExceptionGroup\u003c/code\u003e generic\ntypes to define defaults for their generic arguments (defaulting to\n\u003ccode\u003eBaseExceptionGroup[BaseException]\u003c/code\u003e and \u003ccode\u003eExceptionGroup[Exception]\u003c/code\u003e)\n(PR by \u003ca href=\"https://github.com/mikenerone\"\u003e\u003ccode\u003e@​mikenerone\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eBaseExceptionGroup.__init__()\u003c/code\u003e to directly call\n\u003ccode\u003eBaseException.__init__()\u003c/code\u003e instead of the superclass \u003ccode\u003e__init__()\u003c/code\u003e in order to\nemulate the CPython behavior (broken or not) (PR by \u003ca href=\"https://github.com/cfbolz\"\u003e\u003ccode\u003e@​cfbolz\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged the \u003ccode\u003eexceptions\u003c/code\u003e attribute to always return the same tuple of exceptions,\ncreated from the original exceptions sequence passed to \u003ccode\u003eBaseExceptionGroup\u003c/code\u003e to\nmatch CPython behavior\n(\u003ccode\u003e[#143](https://github.com/agronholm/exceptiongroup/issues/143) \u0026lt;https://github.com/agronholm/exceptiongroup/issues/143\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e1.2.2\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved an \u003ccode\u003eassert\u003c/code\u003e in \u003ccode\u003eexceptiongroup._formatting\u003c/code\u003e that caused compatibility\nissues with Sentry (\u003ccode\u003e[#123](https://github.com/agronholm/exceptiongroup/issues/123) \u0026lt;https://github.com/agronholm/exceptiongroup/issues/123\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e1.2.1\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated the copying of \u003ccode\u003e__notes__\u003c/code\u003e to match CPython behavior (PR by CF Bolz-Tereick)\u003c/li\u003e\n\u003cli\u003eCorrected the type annotation of the exception handler callback to accept a\n\u003ccode\u003eBaseExceptionGroup\u003c/code\u003e instead of \u003ccode\u003eBaseException\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFixed type errors on Python \u0026lt; 3.10 and the type annotation of \u003ccode\u003esuppress()\u003c/code\u003e\n(PR by John Litborn)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e1.2.0\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded special monkeypatching if \u003ccode\u003eApport \u0026lt;https://github.com/canonical/apport\u0026gt;\u003c/code\u003e_ has\noverridden \u003ccode\u003esys.excepthook\u003c/code\u003e so it will format exception groups correctly\n(PR by John Litborn)\u003c/li\u003e\n\u003cli\u003eAdded a backport of \u003ccode\u003econtextlib.suppress()\u003c/code\u003e from Python 3.12.1 which also handles\nsuppressing exceptions inside exception groups\u003c/li\u003e\n\u003cli\u003eFixed bare \u003ccode\u003eraise\u003c/code\u003e in a handler reraising the original naked exception rather than\nan exception group which is what is raised when you do a \u003ccode\u003eraise\u003c/code\u003e in an \u003ccode\u003eexcept*\u003c/code\u003e\nhandler\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e1.1.3\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ecatch()\u003c/code\u003e now raises a \u003ccode\u003eTypeError\u003c/code\u003e if passed an async exception handler instead of\njust giving a \u003ccode\u003eRuntimeWarning\u003c/code\u003e about the coroutine never being awaited. (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/66\"\u003e#66\u003c/a\u003e, PR by\nJohn Litborn)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/77fba8a871408ff2c48f536e5e73b1918239ba5f\"\u003e\u003ccode\u003e77fba8a\u003c/code\u003e\u003c/a\u003e Added the release version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/5e153aa379ac53af79cc7f5e287f77929cb4d0dc\"\u003e\u003ccode\u003e5e153aa\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Migrated test dependencies to dependency groups\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/5000bfea208ad59e3a20e2fb91a513ad559711b1\"\u003e\u003ccode\u003e5000bfe\u003c/code\u003e\u003c/a\u003e Migrated tox configuration to native TOML\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/427220d67a52585e98575103b090b5fdaf87a899\"\u003e\u003ccode\u003e427220d\u003c/code\u003e\u003c/a\u003e Updated pytest options\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/4ca264fa3605d52067c20b351a0d3b947fa1f363\"\u003e\u003ccode\u003e4ca264f\u003c/code\u003e\u003c/a\u003e Migrated test dependencies to dependency groups\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/163c3a8cb27f8a5325258b5a83e7cf8fc002c3b7\"\u003e\u003ccode\u003e163c3a8\u003c/code\u003e\u003c/a\u003e Marked test_exceptions_mutate_original_sequence as xfail on pypy3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/a1765740db2d55d1eb91d67a8fbbb355caf7881b\"\u003e\u003ccode\u003ea176574\u003c/code\u003e\u003c/a\u003e Always create the exceptions tuple at init and return it from the exceptions ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/550b79621cc35892413fa91903a1d6c7951d0449\"\u003e\u003ccode\u003e550b796\u003c/code\u003e\u003c/a\u003e Added BaseExceptionGroup.\u003cstrong\u003einit\u003c/strong\u003e, following CPython (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/142\"\u003e#142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/2a84dfd5599bca0c653143f0f4252d38afac9867\"\u003e\u003ccode\u003e2a84dfd\u003c/code\u003e\u003c/a\u003e Added typevar defaults to (Base)ExceptionGroup (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/147\"\u003e#147\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/fb9133b495fc82bc2907e8cfbdff6c6dc3087e2f\"\u003e\u003ccode\u003efb9133b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/145\"\u003e#145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/exceptiongroup/compare/1.2.2...1.3.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.16.1 to 3.18.0\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.18.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIndicate that locks are exclusive/write locks. by \u003ca href=\"https://github.com/bicarlsen\"\u003e\u003ccode\u003e@​bicarlsen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/394\"\u003etox-dev/filelock#394\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport fcntl check on Emscripten by \u003ca href=\"https://github.com/juntyr\"\u003e\u003ccode\u003e@​juntyr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/398\"\u003etox-dev/filelock#398\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/bicarlsen\"\u003e\u003ccode\u003e@​bicarlsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/394\"\u003etox-dev/filelock#394\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/juntyr\"\u003e\u003ccode\u003e@​juntyr\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/398\"\u003etox-dev/filelock#398\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.17.0...3.18.0\"\u003ehttps://github.com/tox-dev/filelock/compare/3.17.0...3.18.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDrop 3.8\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.16.1...3.17.0\"\u003ehttps://github.com/tox-dev/filelock/compare/3.16.1...3.17.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/129a1efb6a0e1c40ff7c0b094db1b888fcb46d93\"\u003e\u003ccode\u003e129a1ef\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/405\"\u003e#405\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/717d7e018c6e3c3cd00a0f35c775ebbbafda41cc\"\u003e\u003ccode\u003e717d7e0\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/403\"\u003e#403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/efba779022cf62956efe88ea3c65620098fbf75c\"\u003e\u003ccode\u003eefba779\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/401\"\u003e#401\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/82f5a2d6c260a43dc88b51121087bdfa21fb205f\"\u003e\u003ccode\u003e82f5a2d\u003c/code\u003e\u003c/a\u003e Support fcntl check on Emscripten (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/398\"\u003e#398\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/468ba431d1d40b494724f3269d3241a5d1ddd411\"\u003e\u003ccode\u003e468ba43\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/396\"\u003e#396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/0ac68266c62f3b7ae1bc5d4a35c88f1d3913b98d\"\u003e\u003ccode\u003e0ac6826\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/395\"\u003e#395\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/b5f98a66d0fb59e62894ad2b537deb877279adda\"\u003e\u003ccode\u003eb5f98a6\u003c/code\u003e\u003c/a\u003e Indicate that locks are exclusive/write locks. (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/394\"\u003e#394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/3c9b68049961d1b4aade1cc806e731f90b5d2c24\"\u003e\u003ccode\u003e3c9b680\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/393\"\u003e#393\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/2760759ac82f7e8583f708d9bf801c3a79ccd340\"\u003e\u003ccode\u003e2760759\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/18c9571afba87bb6329aef9c2c7798cbe8adfea5\"\u003e\u003ccode\u003e18c9571\u003c/code\u003e\u003c/a\u003e Bump pypa/gh-action-pypi-publish from 1.12.3 to 1.12.4 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/390\"\u003e#390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/py-filelock/compare/3.16.1...3.18.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `freezegun` from 1.5.1 to 1.5.2\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.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\u003c/blockquote\u003e\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/ba06fa43d18c24e6bd4b3bacb7edcb547e7b30ae\"\u003e\u003ccode\u003eba06fa4\u003c/code\u003e\u003c/a\u003e Increase version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/da2885db0c6bbef0d17569ddc9b0b0c7ef852f8c\"\u003e\u003ccode\u003eda2885d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/spulec/freezegun/issues/572\"\u003e#572\u003c/a\u003e from jayaddison/debian-bug-1106274/tests-datetime-tod...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/695aa15668c251c3180d0b943b62c7f2f73b4dbe\"\u003e\u003ccode\u003e695aa15\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into debian-bug-1106274/tests-datetime-today-tz-localiz...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/132ecdbe6e33f603b8d65e7160cdf8200e06391a\"\u003e\u003ccode\u003e132ecdb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/spulec/freezegun/issues/573\"\u003e#573\u003c/a\u003e from spulec/admin/indicate-py-13-compat\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/f9235ae8a00941f2d8a370717af2641a7bf268e9\"\u003e\u003ccode\u003ef9235ae\u003c/code\u003e\u003c/a\u003e Mark support for Python 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/9072d08e3ee22e98e771d8598d67373019a26fed\"\u003e\u003ccode\u003e9072d08\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/spulec/freezegun/issues/544\"\u003e#544\u003c/a\u003e from spulec/remove-py-37-support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/74a69142ddfa3ef6ca060a921938c5cda6da5d16\"\u003e\u003ccode\u003e74a6914\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/spulec/freezegun/issues/565\"\u003e#565\u003c/a\u003e from joethesaint/improve-documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/1343509cd9e53a1777fec5ccbdd7bf85a809f051\"\u003e\u003ccode\u003e1343509\u003c/code\u003e\u003c/a\u003e README: update example code for consistency with tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/9468f708256344321ff8e0fc1c783576e7da44ac\"\u003e\u003ccode\u003e9468f70\u003c/code\u003e\u003c/a\u003e Tests: fixup: replace \u003ccode\u003edatetime.today\u003c/code\u003e method calls with \u003ccode\u003edatetime.date\u003c/code\u003e clas...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/9e4012ad4565c0cf2505410134f6a2ca745a2c3d\"\u003e\u003ccode\u003e9e4012a\u003c/code\u003e\u003c/a\u003e Tests: restore some \u003ccode\u003edatetime.date\u003c/code\u003e-based comparisons\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/spulec/freezegun/compare/1.5.1...1.5.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `identify` from 2.6.5 to 2.6.12\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/51e358dd52e70925011f81db738d441617e3e0f4\"\u003e\u003ccode\u003e51e358d\u003c/code\u003e\u003c/a\u003e v2.6.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/00310d304818e0727f3894fd55ff0f4e834e1db8\"\u003e\u003ccode\u003e00310d3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/identify/issues/519\"\u003e#519\u003c/a\u003e from energyworldnet/feature/msbuild\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/a604a3a4a4ec822f5082a21664fdf391f512d961\"\u003e\u003ccode\u003ea604a3a\u003c/code\u003e\u003c/a\u003e Drop ambiguous .proj extension\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/bdd2643326d8acf348e35ca76ddc233da3f0380c\"\u003e\u003ccode\u003ebdd2643\u003c/code\u003e\u003c/a\u003e v2.6.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/d084242645bcec76d344c37faafd2f8c55081cd2\"\u003e\u003ccode\u003ed084242\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'energyworldnet/feature/xslt'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/f7947091c937ef9a2e1ab1e7be6033acafe4c168\"\u003e\u003ccode\u003ef794709\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/identify/issues/518\"\u003e#518\u003c/a\u003e from pre-commit/mxr-patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/a8cce72fd03e9e1d62c7b749b33903361ee42f54\"\u003e\u003ccode\u003ea8cce72\u003c/code\u003e\u003c/a\u003e Identify XSLT files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/4cf2cc04a94df881eedfede07932a4d95f346f37\"\u003e\u003ccode\u003e4cf2cc0\u003c/code\u003e\u003c/a\u003e Identify common MSBuild files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/4e55b743565fe30a3f7569e02ddfe71abf5144fc\"\u003e\u003ccode\u003e4e55b74\u003c/code\u003e\u003c/a\u003e Add support for \u003ccode\u003e.sqlfluff\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/e200468dd1b921e75a300545bd1e28abe1d5985c\"\u003e\u003ccode\u003ee200468\u003c/code\u003e\u003c/a\u003e v2.6.10\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/identify/compare/v2.6.5...v2.6.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `iniconfig` from 2.0.0 to 2.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/iniconfig/releases\"\u003einiconfig's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.1.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/26\"\u003e#26\u003c/a\u003e - list individuals in license file by \u003ca href=\"https://github.com/RonnyPfannschmidt\"\u003e\u003ccode\u003e@​RonnyPfannschmidt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/52\"\u003epytest-dev/iniconfig#52\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRun tests in CI by \u003ca href=\"https://github.com/nicoddemus\"\u003e\u003ccode\u003e@​nicoddemus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/53\"\u003epytest-dev/iniconfig#53\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003epypa/gh-action-pypi-publish@release/v1\u003c/code\u003e @ GHA by \u003ca href=\"https://github.com/webknjaz\"\u003e\u003ccode\u003e@​webknjaz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/54\"\u003epytest-dev/iniconfig#54\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12-3.13 and drop EOL 3.7 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/56\"\u003epytest-dev/iniconfig#56\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/nicoddemus\"\u003e\u003ccode\u003e@​nicoddemus\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/53\"\u003epytest-dev/iniconfig#53\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/webknjaz\"\u003e\u003ccode\u003e@​webknjaz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/54\"\u003epytest-dev/iniconfig#54\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pytest-dev/iniconfig/compare/v2.0.0...v2.1.0\"\u003ehttps://github.com/pytest-dev/iniconfig/compare/v2.0.0...v2.1.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/pytest-dev/iniconfig/blob/main/CHANGELOG\"\u003einiconfig's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.1.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix artifact building - pin minimal version of hatch\u003c/li\u003e\n\u003cli\u003edrop eol python 3.8\u003c/li\u003e\n\u003cli\u003eadd python 3.12 and 3.13\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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/iniconfig/commit/34793a6417e35e511d0c17ffdd8a02ade0f9568e\"\u003e\u003ccode\u003e34793a6\u003c/code\u003e\u003c/a\u003e pre-commit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/136435d0a4345bb048dca98e7c2f4e938d74521b\"\u003e\u003ccode\u003e136435d\u003c/code\u003e\u003c/a\u003e update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/0bb99ad0f7a6b21d5eb24214a260132317a11e43\"\u003e\u003ccode\u003e0bb99ad\u003c/code\u003e\u003c/a\u003e fix \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/62\"\u003e#62\u003c/a\u003e: require a minimal hatch version with correct metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/16793eaddac67de0b8d621ae4e42e05b927e8d67\"\u003e\u003ccode\u003e16793ea\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/56\"\u003e#56\u003c/a\u003e from hugovk/add-3.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/3dc2b2d6bf03e4b7cc92949a8ef0983fdd7ee442\"\u003e\u003ccode\u003e3dc2b2d\u003c/code\u003e\u003c/a\u003e Add support for Python 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/2eb8abfd9d3843100d7f138efe5bcd989a885024\"\u003e\u003ccode\u003e2eb8abf\u003c/code\u003e\u003c/a\u003e Bump GitHub Actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/8c4bb5bf57dde613c8cdcf0e02a09b2fff630907\"\u003e\u003ccode\u003e8c4bb5b\u003c/code\u003e\u003c/a\u003e Set python-version for pre-commit to remove CI warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/58b22b2d672564ff1925df51f4a8e07486765ed2\"\u003e\u003ccode\u003e58b22b2\u003c/code\u003e\u003c/a\u003e Drop support for EOL Python 3.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/4a53042252a109bcdd64422058de91c5dffff763\"\u003e\u003ccode\u003e4a53042\u003c/code\u003e\u003c/a\u003e Add support for Python 3.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/9cae43103df70bac6fde7b9f35ad11a9f1be0cb4\"\u003e\u003ccode\u003e9cae431\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/54\"\u003e#54\u003c/a\u003e from webknjaz/patch-1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/iniconfig/compare/v2.0.0...v2.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `junit-xml` from 1.8 to 1.9\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/kyrus/python-junit-xml/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mutmut` from 3.2.2 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/boxed/mutmut/blob/main/HISTORY.rst\"\u003emutmut's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e3.3.0\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Python 3.13 compatibility!\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eNew argument \u003ccode\u003e--show-killed\u003c/code\u003e for \u003ccode\u003emutmut browse\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix to avoid accidentally importing the un-mutated original code\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eHandle segfault for mutant subprocesses\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded mutations for string literals\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded mutations for common string methods\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFaster mutant generation via subprocesses\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eself\u003c/code\u003e parameter for mutated class methods\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix trampoline generation for function calls with 'orig' or 'mutants' as argument names.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCopy full source directory before creating mutants\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved error message when forced fail test fails\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed issue with spaces in the python executable path\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDo not mutate \u003ccode\u003e__new__\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAnnotate mutant dicts (and fixes compatibility with Pydantic)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eReplaced parso with LibCST\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e3.2.3\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eCrash with error message on invalid imports for \u003ccode\u003esrc\u003c/code\u003e module\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAutodetect simpler project configurations with \u003ccode\u003etest_*.py\u003c/code\u003e in the dir directly\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eHandle filenames (as opposed to dirnames) in paths_to_mutate\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAlso copy \u003ccode\u003esetup.cfg\u003c/code\u003e and \u003ccode\u003epyproject.toml\u003c/code\u003e by default\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eHandle single line \u003ccode\u003epaths_to_mutate\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/boxed/mutmut/commit/b124c6ad46b0a9a048b5e47c8b7f93d33a9f2e6a\"\u003e\u003ccode\u003eb124c6a\u003c/code\u003e\u003c/a\u003e Release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/e1110fff43b8864802a07cadf5b54b73ab789aad\"\u003e\u003ccode\u003ee1110ff\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/boxed/mutmut/issues/386\"\u003e#386\u003c/a\u003e from CHB-0r1s/main\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/e3736b152c0a40881d3b57319457a755e30c7651\"\u003e\u003ccode\u003ee3736b1\u003c/code\u003e\u003c/a\u003e feat(tests): Add nested attribute access test cases for 'a.b.lower()' -\u0026gt; 'a.b...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/c481bf17e2b0bca22161327c98f21d57e18717bf\"\u003e\u003ccode\u003ec481bf1\u003c/code\u003e\u003c/a\u003e fix: some libcst best practice\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/092912c3332c4d9139453cb6f23b76fae1ef869c\"\u003e\u003ccode\u003e092912c\u003c/code\u003e\u003c/a\u003e fix(tests): This test included string methods functional as upper(), so in si...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/d65d70c1d2b4c4bd0b849e23afcb71fcdc5939be\"\u003e\u003ccode\u003ed65d70c\u003c/code\u003e\u003c/a\u003e feat(str_call_mut): add str methods call mutations and tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/b7b4f90ca5969442b7a56abd4d8c7e62708a5cc6\"\u003e\u003ccode\u003eb7b4f90\u003c/code\u003e\u003c/a\u003e Add .upper() .lower() and .capitalize() as mutations (\u003ca href=\"https://redirect.github.com/boxed/mutmut/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/b41c2b3eef47a9d9b748667e5641d2e69424988f\"\u003e\u003ccode\u003eb41c2b3\u003c/code\u003e\u003c/a\u003e Set process start_method to fork for MacOS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/b42824d724d62421b804ddcb13a2ffc100f7337f\"\u003e\u003ccode\u003eb42824d\u003c/code\u003e\u003c/a\u003e .\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/a732ffb4ab81f54482ac750a0480f5998e4e8490\"\u003e\u003ccode\u003ea732ffb\u003c/code\u003e\u003c/a\u003e Forgot to update Stats\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boxed/mutmut/compare/3.2.2...3.3.0\"\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 `platformdirs` from 4.3.6 to 4.3.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/platformdirs/releases\"\u003eplatformdirs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.3.8\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd missing examples and fix order of examples in README by \u003ca href=\"https://github.com/gene1wood\"\u003e\u003ccode\u003e@​gene1wood\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/355\"\u003etox-dev/platformdirs#355\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gene1wood\"\u003e\u003ccode\u003e@​gene1wood\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/355\"\u003etox-dev/platformdirs#355\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.3.7...4.3.8\"\u003ehttps://github.com/tox-dev/platformdirs/compare/4.3.7...4.3.8\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.3.7\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChunk dependabot updates into a single PR by \u003ca href=\"https://github.com/ofek\"\u003e\u003ccode\u003e@​ofek\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/311\"\u003etox-dev/platformdirs#311\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 3.8 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/330\"\u003etox-dev/platformdirs#330\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.3.6...4.3.7\"\u003ehttps://github.com/tox-dev/platformdirs/compare/4.3.6...4.3.7\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/22089f1e1ff477037cd7b3e03ad38ae2bf251031\"\u003e\u003ccode\u003e22089f1\u003c/code\u003e\u003c/a\u003e Add missing examples and fix order of examples in README (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/29398b1ef0d602929102b5a3cc4aca25ff954f2a\"\u003e\u003ccode\u003e29398b1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/354\"\u003e#354\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/70114b05f1144a451247a465b65caa34d9a88375\"\u003e\u003ccode\u003e70114b0\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/353\"\u003e#353\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/48916117e8d756a51468d6ead75aa645a6a378c6\"\u003e\u003ccode\u003e4891611\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/351\"\u003e#351\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/707be6f8dd2784d092f6de6530f6c0d64faee2f3\"\u003e\u003ccode\u003e707be6f\u003c/code\u003e\u003c/a\u003e Bump astral-sh/setup-uv from 5 to 6 in the all group (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/352\"\u003e#352\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/5519a4fa93059949cf1078fac01cf5dce12c3b50\"\u003e\u003ccode\u003e5519a4f\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/349\"\u003e#349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/063...\n\n_Description has been truncated_","html_url":"https://github.com/github/annotated-logger/pull/64","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/github%2Fannotated-logger/issues/64","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/64/packages"}},{"old_version":"0.0.27","new_version":"0.0.29","update_type":"patch","path":null,"pr_created_at":"2025-06-01T22:01:09.000Z","version_change":"0.0.27 → 0.0.29","issue":{"uuid":"2558684262","node_id":"PR_kwDOMt9I9c6Ygmxm","number":61,"state":"open","title":"[pip] (deps): Bump the dev-dependencies group across 1 directory with 29 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-06-01T22:01:09.000Z","updated_at":"2025-06-01T22:01:10.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"[pip] (deps): Bump","group_name":"dev-dependencies","update_count":29,"packages":[{"name":"python-json-logger","old_version":"3.2.1","new_version":"3.3.0","repository_url":"https://github.com/nhairs/python-json-logger"},{"name":"certifi","old_version":"2024.12.14","new_version":"2025.4.26","repository_url":"https://github.com/certifi/python-certifi"},{"name":"charset-normalizer","old_version":"3.4.1","new_version":"3.4.2","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"makefun","old_version":"1.15.6","new_version":"1.16.0","repository_url":"https://github.com/smarie/python-makefun"},{"name":"pychoir","old_version":"0.0.27","new_version":"0.0.29","repository_url":"https://github.com/kajaste/pychoir"},{"name":"urllib3","old_version":"2.3.0","new_version":"2.4.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"coverage","old_version":"7.6.10","new_version":"7.8.2","repository_url":"https://github.com/nedbat/coveragepy"},{"name":"exceptiongroup","old_version":"1.2.2","new_version":"1.3.0","repository_url":"https://github.com/agronholm/exceptiongroup"},{"name":"filelock","old_version":"3.16.1","new_version":"3.18.0","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"freezegun","old_version":"1.5.1","new_version":"1.5.2","repository_url":"https://github.com/spulec/freezegun"},{"name":"identify","old_version":"2.6.5","new_version":"2.6.12","repository_url":"https://github.com/pre-commit/identify"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.1.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"junit-xml","old_version":"1.8","new_version":"1.9","repository_url":"https://github.com/kyrus/python-junit-xml"},{"name":"mutmut","old_version":"3.2.2","new_version":"3.3.0","repository_url":"https://github.com/boxed/mutmut"},{"name":"packaging","old_version":"24.2","new_version":"25.0","repository_url":"https://github.com/pypa/packaging"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.3.8","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"pre-commit","old_version":"4.0.1","new_version":"4.2.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pyright","old_version":"1.1.391","new_version":"1.1.401","repository_url":"https://github.com/RobertCraigie/pyright-python"},{"name":"pytest","old_version":"8.3.4","new_version":"8.3.5","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-cov","old_version":"6.0.0","new_version":"6.1.1","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pytest-github-actions-annotate-failures","old_version":"0.2.0","new_version":"0.3.0","repository_url":"https://github.com/pytest-dev/pytest-github-actions-annotate-failures"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.14.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"rich","old_version":"13.9.4","new_version":"14.0.0","repository_url":"https://github.com/Textualize/rich"},{"name":"ruff","old_version":"0.8.6","new_version":"0.11.12","repository_url":"https://github.com/astral-sh/ruff"},{"name":"setproctitle","old_version":"1.3.4","new_version":"1.3.6","repository_url":"https://github.com/dvarrazzo/py-setproctitle"},{"name":"textual","old_version":"1.0.0","new_version":"3.3.0","repository_url":"https://github.com/Textualize/textual"},{"name":"typing-extensions","old_version":"4.12.2","new_version":"4.13.2","repository_url":"https://github.com/python/typing_extensions"},{"name":"virtualenv","old_version":"20.28.1","new_version":"20.31.2","repository_url":"https://github.com/pypa/virtualenv"}],"path":null,"ecosystem":"pip"},"body":"Bumps the dev-dependencies group with 29 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `3.2.1` | `3.3.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2024.12.14` | `2025.4.26` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.1` | `3.4.2` |\n| [makefun](https://github.com/smarie/python-makefun) | `1.15.6` | `1.16.0` |\n| [pychoir](https://github.com/kajaste/pychoir) | `0.0.27` | `0.0.29` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.3.0` | `2.4.0` |\n| [coverage](https://github.com/nedbat/coveragepy) | `7.6.10` | `7.8.2` |\n| [exceptiongroup](https://github.com/agronholm/exceptiongroup) | `1.2.2` | `1.3.0` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.18.0` |\n| [freezegun](https://github.com/spulec/freezegun) | `1.5.1` | `1.5.2` |\n| [identify](https://github.com/pre-commit/identify) | `2.6.5` | `2.6.12` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.1.0` |\n| [junit-xml](https://github.com/kyrus/python-junit-xml) | `1.8` | `1.9` |\n| [mutmut](https://github.com/boxed/mutmut) | `3.2.2` | `3.3.0` |\n| [packaging](https://github.com/pypa/packaging) | `24.2` | `25.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.3.8` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.0.1` | `4.2.0` |\n| [pyright](https://github.com/RobertCraigie/pyright-python) | `1.1.391` | `1.1.401` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.4` | `8.3.5` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `6.0.0` | `6.1.1` |\n| [pytest-github-actions-annotate-failures](https://github.com/pytest-dev/pytest-github-actions-annotate-failures) | `0.2.0` | `0.3.0` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.14.1` |\n| [rich](https://github.com/Textualize/rich) | `13.9.4` | `14.0.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.8.6` | `0.11.12` |\n| [setproctitle](https://github.com/dvarrazzo/py-setproctitle) | `1.3.4` | `1.3.6` |\n| [textual](https://github.com/Textualize/textual) | `1.0.0` | `3.3.0` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.12.2` | `4.13.2` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `20.28.1` | `20.31.2` |\n\n\nUpdates `python-json-logger` from 3.2.1 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nhairs/python-json-logger/releases\"\u003epython-json-logger's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v3.2.1...v3.3.0\"\u003e3.3.0\u003c/a\u003e - 2025-03-06\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eexc_info_as_array\u003c/code\u003e and \u003ccode\u003estack_info_as_array\u003c/code\u003e options are added to \u003ccode\u003epythonjsonlogger.core.BaseJsonFormatter\u003c/code\u003e allowing both to be encoded as list of lines instead of a single multi-line string. \u003ca href=\"https://redirect.github.com/nhairs/python-json-logger/issues/35\"\u003e#35\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003emsgspec-python313-pre\u003c/code\u003e from \u003ccode\u003edev\u003c/code\u003e dependencies preventing potential RCE. Details: \u003ca href=\"https://github.com/nhairs/python-json-logger/security/advisories/GHSA-wmxh-pxcx-9w24#advisory-comment-121307\"\u003eGHSA-wmxh-pxcx-9w24\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks \u003ca href=\"https://github.com/1hakusai1\"\u003e\u003ccode\u003e@​1hakusai1\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/omnigodz\"\u003e\u003ccode\u003e@​omnigodz\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/nhairs/python-json-logger/blob/main/docs/changelog.md\"\u003epython-json-logger's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v3.2.1...v3.3.0\"\u003e3.3.0\u003c/a\u003e - 2025-03-06\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eexc_info_as_array\u003c/code\u003e and \u003ccode\u003estack_info_as_array\u003c/code\u003e options are added to \u003ccode\u003epythonjsonlogger.core.BaseJsonFormatter\u003c/code\u003e allowing both to be encoded as list of lines instead of a single multi-line string. \u003ca href=\"https://redirect.github.com/nhairs/python-json-logger/issues/35\"\u003e#35\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003emsgspec-python313-pre\u003c/code\u003e from \u003ccode\u003edev\u003c/code\u003e dependencies preventing potential RCE. Details: \u003ca href=\"https://github.com/nhairs/python-json-logger/security/advisories/GHSA-wmxh-pxcx-9w24#advisory-comment-121307\"\u003eGHSA-wmxh-pxcx-9w24\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks \u003ca href=\"https://github.com/1hakusai1\"\u003e\u003ccode\u003e@​1hakusai1\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/omnigodz\"\u003e\u003ccode\u003e@​omnigodz\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/9e6cb679dfb56cb82d9a8cc91f956efd72427055\"\u003e\u003ccode\u003e9e6cb67\u003c/code\u003e\u003c/a\u003e Release 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/db04a0f9066cc331f8d6177f828fe073c7b2a4cc\"\u003e\u003ccode\u003edb04a0f\u003c/code\u003e\u003c/a\u003e Add options to encode stack information into an array (\u003ca href=\"https://redirect.github.com/nhairs/python-json-logger/issues/39\"\u003e#39\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/0092ea0be1cd28e3c1da51eaa084c503bb3710b7\"\u003e\u003ccode\u003e0092ea0\u003c/code\u003e\u003c/a\u003e Move to uv (\u003ca href=\"https://redirect.github.com/nhairs/python-json-logger/issues/40\"\u003e#40\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/1ce81a3614d8c77389a9c048d341593e2a7467e7\"\u003e\u003ccode\u003e1ce81a3\u003c/code\u003e\u003c/a\u003e [tests] Update tests for msgspec 0.19.0 (\u003ca href=\"https://redirect.github.com/nhairs/python-json-logger/issues/41\"\u003e#41\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v3.2.1...v3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2024.12.14 to 2025.4.26\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/275c9eb55733a464589c15fb4566fddd4598e5b2\"\u003e\u003ccode\u003e275c9eb\u003c/code\u003e\u003c/a\u003e 2025.04.26 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/347\"\u003e#347\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/37883310b51e56570919cdc2d44becc1c6940559\"\u003e\u003ccode\u003e3788331\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.4.0 to 5.5.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/346\"\u003e#346\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/9d1f1b782000baedf57026de5b79e193bcb7ef7b\"\u003e\u003ccode\u003e9d1f1b7\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4.1.9 to 4.2.1 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/344\"\u003e#344\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/96b97a5afe26bc1adef98cb0bfe68e34948a73b6\"\u003e\u003ccode\u003e96b97a5\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 4.6.1 to 4.6.2 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/343\"\u003e#343\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/c054ed3ac3d3505efc929b71cfd87a257bbdb6b3\"\u003e\u003ccode\u003ec054ed3\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 7.0.7 to 7.0.8 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/342\"\u003e#342\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/44547fc77121b12bb276b44b3b2b49cfcbeac06f\"\u003e\u003ccode\u003e44547fc\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4.1.8 to 4.1.9 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/341\"\u003e#341\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/5ea51247afecf1bf4ebfa8f2db3082e89a8bfaed\"\u003e\u003ccode\u003e5ea5124\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 4.6.0 to 4.6.1 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/340\"\u003e#340\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/2f142b7ae0b2d13fee4ba4b9fbd73a9cd5069060\"\u003e\u003ccode\u003e2f142b7\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 7.0.6 to 7.0.7 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/339\"\u003e#339\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/80d2ebdc77d2d005f408f789fe2fb1fe5f4e0265\"\u003e\u003ccode\u003e80d2ebd\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.3.0 to 5.4.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/337\"\u003e#337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/088f93122ea7c91cfdaeea7fa76ab2f850b8064d\"\u003e\u003ccode\u003e088f931\u003c/code\u003e\u003c/a\u003e 2025.01.31 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/336\"\u003e#336\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2024.12.14...2025.04.26\"\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.1 to 3.4.2\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.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.9\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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/6422af1d50f1f46624deab585424e1ac4d08ba94\"\u003e\u003ccode\u003e6422af1\u003c/code\u003e\u003c/a\u003e :pencil: update release date\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/0e60ec18eb00bfe312dde86739929165839b633c\"\u003e\u003ccode\u003e0e60ec1\u003c/code\u003e\u003c/a\u003e :bookmark: Release 3.4.2 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/614\"\u003e#614\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f6630ce3b7fd34f234759a0c7a5ca413640e8ffb\"\u003e\u003ccode\u003ef6630ce\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump pypa/cibuildwheel from 2.23.2 to 2.23.3 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/617\"\u003e#617\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/677c99953f1a728de9f88d8659abff1246a80ade\"\u003e\u003ccode\u003e677c999\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump actions/download-artifact from 4.2.1 to 4.3.0 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/618\"\u003e#618\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/960ab1e676b7ef73c8c4f36c387b5a0da21e01c0\"\u003e\u003ccode\u003e960ab1e\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump actions/setup-python from 5.5.0 to 5.6.0 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/619\"\u003e#619\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/6eb632521c9b3f92df2cd944c7c524c205abfffc\"\u003e\u003ccode\u003e6eb6325\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump github/codeql-action from 3.28.10 to 3.28.16 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/620\"\u003e#620\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/c99c0f2c33ce54e41fefcae1c4fb96fa901d5cd4\"\u003e\u003ccode\u003ec99c0f2\u003c/code\u003e\u003c/a\u003e :arrow_up: Update coverage requirement from \u0026lt;7.7,\u0026gt;=7.2.7 to \u0026gt;=7.2.7,\u0026lt;7.9 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/606\"\u003e#606\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/270f28e474db75f2a5085d6da732a90c2ac338f4\"\u003e\u003ccode\u003e270f28e\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump actions/setup-python from 5.4.0 to 5.5.0 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/607\"\u003e#607\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/d4d89a092d262a37ce427ee39ba5091ffd188f0b\"\u003e\u003ccode\u003ed4d89a0\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump pypa/cibuildwheel from 2.22.0 to 2.23.2 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/608\"\u003e#608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/905fcf5cbe93e8b59c12103217434bdbc703d105\"\u003e\u003ccode\u003e905fcf5\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump slsa-framework/slsa-github-generator from 2.0.0 to 2.1.0 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/609\"\u003e#609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.1...3.4.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `makefun` from 1.15.6 to 1.16.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/smarie/python-makefun/blob/main/docs/changelog.md\"\u003emakefun's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e1.16.0 - Support for 3.14, dropped support for \u0026lt; 3.9\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved official support for python versions \u003ccode\u003e\u0026lt;3.9\u003c/code\u003e. These versions will not run in CI anymore.\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eRuntimeError\u003c/code\u003e in tests when running on python 3.14. Added python 3.14 to CI. Fixes\n\u003ca href=\"https://redirect.github.com/smarie/python-makefun/issues/112\"\u003e#112\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/smarie/python-makefun/commit/197b14827c1b7830c0288477c007e1f1592f52ad\"\u003e\u003ccode\u003e197b148\u003c/code\u003e\u003c/a\u003e Changelog for tag, ready to release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/321a39c9a8be1497ba7dfbb9c7c16a9442ae25a6\"\u003e\u003ccode\u003e321a39c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/smarie/python-makefun/issues/118\"\u003e#118\u003c/a\u003e from smarie/feature/112_support_py314\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/39f061e17a7d7472e33cec76d162381ae82b49e3\"\u003e\u003ccode\u003e39f061e\u003c/code\u003e\u003c/a\u003e With latest versions of all actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/4771aaf910459dfabb12109cf4ae37cd089fd9d6\"\u003e\u003ccode\u003e4771aaf\u003c/code\u003e\u003c/a\u003e Changed the fix to leverage pytest-asyncio, now that we do not support python...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/498ed69f5fa22baa5300b354d419fd45be55cf6e\"\u003e\u003ccode\u003e498ed69\u003c/code\u003e\u003c/a\u003e Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/87eb2ebefa88d212e4ae75f28fc0ffc2fb9194c6\"\u003e\u003ccode\u003e87eb2eb\u003c/code\u003e\u003c/a\u003e Fixed \u003ccode\u003eRuntimeError\u003c/code\u003e in tests when running on pythn 3.14. Added python 3.14 t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/4573c65b6b8405b6194361805a44ba8d9d08c41d\"\u003e\u003ccode\u003e4573c65\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/smarie/python-makefun/issues/117\"\u003e#117\u003c/a\u003e from smarie/chore/116_gh_pages_workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/db582747d0b89ea35927176910205f3f68a429d4\"\u003e\u003ccode\u003edb58274\u003c/code\u003e\u003c/a\u003e Added gh pages workflow. Fixed \u003ca href=\"https://redirect.github.com/smarie/python-makefun/issues/116\"\u003e#116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/c8990e6a660082b42f8314f96bf7369a0f6c2463\"\u003e\u003ccode\u003ec8990e6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/smarie/python-makefun/issues/114\"\u003e#114\u003c/a\u003e from smarie/feature/py35_in_ci\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/3b1e628e9e7ecf05ea9bc6a9fb73c45563a3c24a\"\u003e\u003ccode\u003e3b1e628\u003c/code\u003e\u003c/a\u003e Removed 3.14 for now\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/smarie/python-makefun/compare/1.15.6...1.16.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pychoir` from 0.0.27 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/kajaste/pychoir/releases\"\u003epychoir's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eTwenty-ninth release\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch pipenv \u0026amp; setuptools to uv by \u003ca href=\"https://github.com/kajaste\"\u003e\u003ccode\u003e@​kajaste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kajaste/pychoir/pull/97\"\u003ekajaste/pychoir#97\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/kajaste/pychoir/compare/v0.0.28...v0.0.29\"\u003ehttps://github.com/kajaste/pychoir/compare/v0.0.28...v0.0.29\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eTwenty-eighth release\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate dev deps by \u003ca href=\"https://github.com/kajaste\"\u003e\u003ccode\u003e@​kajaste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kajaste/pychoir/pull/94\"\u003ekajaste/pychoir#94\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump dev deps by \u003ca href=\"https://github.com/kajaste\"\u003e\u003ccode\u003e@​kajaste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kajaste/pychoir/pull/95\"\u003ekajaste/pychoir#95\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs \u0026amp; Makefile update by \u003ca href=\"https://github.com/kajaste\"\u003e\u003ccode\u003e@​kajaste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kajaste/pychoir/pull/96\"\u003ekajaste/pychoir#96\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/kajaste/pychoir/compare/v0.0.27...v0.0.28\"\u003ehttps://github.com/kajaste/pychoir/compare/v0.0.27...v0.0.28\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/kajaste/pychoir/commit/bf2f254bcadf03026867a6442523549f1abb16d3\"\u003e\u003ccode\u003ebf2f254\u003c/code\u003e\u003c/a\u003e Switch pipenv \u0026amp; setuptools to uv\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kajaste/pychoir/commit/c1d251d480a47f8bc29e89765c19b00b594442b2\"\u003e\u003ccode\u003ec1d251d\u003c/code\u003e\u003c/a\u003e Docs \u0026amp; Makefile update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kajaste/pychoir/commit/f6181a037d2e791bbf9306b4210a9b4934fc1bbf\"\u003e\u003ccode\u003ef6181a0\u003c/code\u003e\u003c/a\u003e Drop 3.7, add 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kajaste/pychoir/commit/f94fdad20f981f344adbdc07b9aa1cb00795b671\"\u003e\u003ccode\u003ef94fdad\u003c/code\u003e\u003c/a\u003e Bump dev deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kajaste/pychoir/commit/5a2ebd7ca625779b7beaab71d50631f9529f21eb\"\u003e\u003ccode\u003e5a2ebd7\u003c/code\u003e\u003c/a\u003e Update dev deps\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/kajaste/pychoir/compare/v0.0.27...v0.0.29\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `urllib3` from 2.3.0 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/urllib3/urllib3/releases\"\u003eurllib3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.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\u003ch1\u003eFeatures\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eApplied PEP 639 by specifying the license fields in pyproject.toml. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3522\"\u003e#3522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdated exceptions to save and restore more properties during the pickle/serialization process. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3567\"\u003e#3567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003everify_flags\u003c/code\u003e option to \u003ccode\u003ecreate_urllib3_context\u003c/code\u003e with a default of \u003ccode\u003eVERIFY_X509_PARTIAL_CHAIN\u003c/code\u003e and \u003ccode\u003eVERIFY_X509_STRICT\u003c/code\u003e for Python 3.13+. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3571\"\u003e#3571\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eBugfixes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug with partial reads of streaming data in Emscripten. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3555\"\u003e#3555\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eMisc\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSwitched to uv for installing development dependecies. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3550\"\u003e#3550\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved the \u003ccode\u003emultiple.intoto.jsonl\u003c/code\u003e asset from GitHub releases. Attestation of release files since v2.3.0 can be found on PyPI. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3566\"\u003e#3566\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/urllib3/urllib3/blob/main/CHANGES.rst\"\u003eurllib3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.4.0 (2025-04-10)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eApplied PEP 639 by specifying the license fields in pyproject.toml. (\u003ccode\u003e[#3522](https://github.com/urllib3/urllib3/issues/3522) \u0026lt;https://github.com/urllib3/urllib3/issues/3522\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eUpdated exceptions to save and restore more properties during the pickle/serialization process. (\u003ccode\u003e[#3567](https://github.com/urllib3/urllib3/issues/3567) \u0026lt;https://github.com/urllib3/urllib3/issues/3567\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003everify_flags\u003c/code\u003e option to \u003ccode\u003ecreate_urllib3_context\u003c/code\u003e with a default of \u003ccode\u003eVERIFY_X509_PARTIAL_CHAIN\u003c/code\u003e and \u003ccode\u003eVERIFY_X509_STRICT\u003c/code\u003e for Python 3.13+. (\u003ccode\u003e[#3571](https://github.com/urllib3/urllib3/issues/3571) \u0026lt;https://github.com/urllib3/urllib3/issues/3571\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug with partial reads of streaming data in Emscripten. (\u003ccode\u003e[#3555](https://github.com/urllib3/urllib3/issues/3555) \u0026lt;https://github.com/urllib3/urllib3/issues/3555\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSwitched to uv for installing development dependecies. (\u003ccode\u003e[#3550](https://github.com/urllib3/urllib3/issues/3550) \u0026lt;https://github.com/urllib3/urllib3/issues/3550\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eRemoved the \u003ccode\u003emultiple.intoto.jsonl\u003c/code\u003e asset from GitHub releases. Attestation of release files since v2.3.0 can be found on PyPI. (\u003ccode\u003e[#3566](https://github.com/urllib3/urllib3/issues/3566) \u0026lt;https://github.com/urllib3/urllib3/issues/3566\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/a5ff7ac3bbb8659e2ec3ed41dd43889f06a7d7bc\"\u003e\u003ccode\u003ea5ff7ac\u003c/code\u003e\u003c/a\u003e Release 2.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/a135db29f72f828b0ef7314b856d19696a6f48ba\"\u003e\u003ccode\u003ea135db2\u003c/code\u003e\u003c/a\u003e Upgrade memray and coverage to fix macOS tests (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3589\"\u003e#3589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/8f40e71612505a9985b0a58ad793cd84ec97614a\"\u003e\u003ccode\u003e8f40e71\u003c/code\u003e\u003c/a\u003e Upgrade the publishing action to get correct licensing info on PyPI (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3585\"\u003e#3585\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/3ff4e49ddf889554cf295b4a2e1189d066b60c71\"\u003e\u003ccode\u003e3ff4e49\u003c/code\u003e\u003c/a\u003e Add a link to the 2024 annual report (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3586\"\u003e#3586\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/75709c1dbd6770618f061fd0b8a6950c7741f17b\"\u003e\u003ccode\u003e75709c1\u003c/code\u003e\u003c/a\u003e Set verify flags in \u003ccode\u003ecreate_urllib3_context\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3577\"\u003e#3577\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/5c8f82a2f1c1b7a8360f0c84b5a88f25df070811\"\u003e\u003ccode\u003e5c8f82a\u003c/code\u003e\u003c/a\u003e Bump astral-sh/setup-uv from 5.3.0 to 5.4.1 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3580\"\u003e#3580\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/42e90d894b30ef8b897708eb1cdfa24e83cf5067\"\u003e\u003ccode\u003e42e90d8\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.4.0 to 5.5.0 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3579\"\u003e#3579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/3e8f2db735dcaced6a3b777aa1966f40c018af7c\"\u003e\u003ccode\u003e3e8f2db\u003c/code\u003e\u003c/a\u003e Stop using Ubuntu 20.04 and 22.04 in CI (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3570\"\u003e#3570\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/e29db82a6df5f9a9acbb6997899f93bda79bb61e\"\u003e\u003ccode\u003ee29db82\u003c/code\u003e\u003c/a\u003e Update exceptions to have more of their attributes pickled (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3572\"\u003e#3572\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/f8a0c4360ad67aefd79317279ee90c72d5d18697\"\u003e\u003ccode\u003ef8a0c43\u003c/code\u003e\u003c/a\u003e Add PyPy 3.11 to CI\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/urllib3/urllib3/compare/2.3.0...2.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.6.10 to 7.8.2\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.8.2 — 2025-05-23\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWheels are provided for Windows ARM64 on Python 3.11, 3.12, and 3.13.\nThanks, \u003ccode\u003eFinn Womack \u0026lt;pull 1972_\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1971: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/1971\"\u003enedbat/coveragepy#1971\u003c/a\u003e\n.. _pull 1972: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/1972\"\u003enedbat/coveragepy#1972\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-8-1:\u003c/p\u003e\n\u003ch2\u003eVersion 7.8.1 — 2025-05-21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eA number of EncodingWarnings were fixed that could appear if you've enabled\nPYTHONWARNDEFAULTENCODING, fixing \u003ccode\u003eissue 1966\u003c/code\u003e\u003cem\u003e.  Thanks, \u003ccode\u003eHenry Schreiner \u0026lt;pull 1967_\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a race condition when using sys.monitoring with free-threading Python,\nclosing \u003ccode\u003eissue 1970\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1966: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1966\"\u003enedbat/coveragepy#1966\u003c/a\u003e\n.. _pull 1967: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/1967\"\u003enedbat/coveragepy#1967\u003c/a\u003e\n.. _issue 1970: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1970\"\u003enedbat/coveragepy#1970\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-8-0:\u003c/p\u003e\n\u003ch2\u003eVersion 7.8.0 — 2025-03-30\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a new \u003ccode\u003esource_dirs\u003c/code\u003e setting for symmetry with the existing\n\u003ccode\u003esource_pkgs\u003c/code\u003e setting. It's preferable to the existing \u003ccode\u003esource\u003c/code\u003e setting,\nbecause you'll get a clear error when directories don't exist. Fixes \u003ccode\u003eissue 1942\u003c/code\u003e\u003cem\u003e.  Thanks, \u003ccode\u003eJeremy Fleischman \u0026lt;pull 1943_\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the PYTHONSAFEPATH environment variable new in Python 3.11 is properly\nsupported, closing \u003ccode\u003eissue 1696\u003c/code\u003e\u003cem\u003e.  Thanks, \u003ccode\u003ePhilipp A. \u0026lt;pull 1700_\u0026gt;\u003c/code\u003e\u003c/em\u003e.  This\nworks properly except for a detail when using the \u003ccode\u003ecoverage\u003c/code\u003e command on\nWindows.  There you can use \u003ccode\u003epython -m coverage\u003c/code\u003e instead if you need exact\nemulation.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1696: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1696\"\u003enedbat/coveragepy#1696\u003c/a\u003e\n.. _pull 1700: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/1700\"\u003enedbat/coveragepy#1700\u003c/a\u003e\n.. _issue 1942: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1942\"\u003enedbat/coveragepy#1942\u003c/a\u003e\n.. _pull 1943: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/1943\"\u003enedbat/coveragepy#1943\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-7-1:\u003c/p\u003e\n\u003ch2\u003eVersion 7.7.1 — 2025-03-21\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/51ab2e503faebf7b302850f0b0329103f0efd1f4\"\u003e\u003ccode\u003e51ab2e5\u003c/code\u003e\u003c/a\u003e build: have to keep expected dist counts in sync\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/be7bbf236aaec0875e73948b2f50d6ec9ac97311\"\u003e\u003ccode\u003ebe7bbf2\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.8.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/3cee850f3b8a7bff52fa4dd5575abe8b67b1f2ec\"\u003e\u003ccode\u003e3cee850\u003c/code\u003e\u003c/a\u003e docs: prep for 7.8.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/39bc6b0dc8550d1457a60683200cbdfb6786ffc6\"\u003e\u003ccode\u003e39bc6b0\u003c/code\u003e\u003c/a\u003e docs: provide more details if the kit matrix is edited.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/a608fb310d0eb34c6d6d004a1b62b01c6f8afd33\"\u003e\u003ccode\u003ea608fb3\u003c/code\u003e\u003c/a\u003e build: add support for Windows arm64 (\u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1972\"\u003e#1972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/2fe622506356424406ddcac01bf1775eca5a92d3\"\u003e\u003ccode\u003e2fe6225\u003c/code\u003e\u003c/a\u003e build: run \u003ccode\u003etox lint\u003c/code\u003e if actions have changed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/3d93a78e1df4b9ab88bbf03f84de40873ddb5541\"\u003e\u003ccode\u003e3d93a78\u003c/code\u003e\u003c/a\u003e docs: docs need scriv for making github releases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/0c443a2775aa64fda77c6e34fcc5144f5000db9c\"\u003e\u003ccode\u003e0c443a2\u003c/code\u003e\u003c/a\u003e build: bump version to 7.8.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/ed98b8708ccc380bcb1490cd73b3e476f69c234f\"\u003e\u003ccode\u003eed98b87\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/b98bc9b9878ff8c23bcaa0d7c5b2a55269c6783f\"\u003e\u003ccode\u003eb98bc9b\u003c/code\u003e\u003c/a\u003e docs: prep for 7.8.1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nedbat/coveragepy/compare/7.6.10...7.8.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `exceptiongroup` from 1.2.2 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/agronholm/exceptiongroup/releases\"\u003eexceptiongroup's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003e**kwargs\u003c/code\u003e to function and method signatures as appropriate to match the signatures in the standard library\u003c/li\u003e\n\u003cli\u003eIn line with the stdlib typings in typeshed, updated \u003ccode\u003e(Base)ExceptionGroup\u003c/code\u003e generic types to define defaults for their generic arguments (defaulting to \u003ccode\u003eBaseExceptionGroup[BaseException]\u003c/code\u003e and \u003ccode\u003eExceptionGroup[Exception]\u003c/code\u003e) (PR by \u003ca href=\"https://github.com/mikenerone\"\u003e\u003ccode\u003e@​mikenerone\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eBaseExceptionGroup.__init__()\u003c/code\u003e to directly call \u003ccode\u003eBaseException.__init__()\u003c/code\u003e instead of the superclass \u003ccode\u003e__init__()\u003c/code\u003e in order to emulate the CPython behavior (broken or not) (PR by \u003ca href=\"https://github.com/cfbolz\"\u003e\u003ccode\u003e@​cfbolz\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged the \u003ccode\u003eexceptions\u003c/code\u003e attribute to always return the same tuple of exceptions, created from the original exceptions sequence passed to \u003ccode\u003eBaseExceptionGroup\u003c/code\u003e to match CPython behavior (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/143\"\u003e#143\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/agronholm/exceptiongroup/blob/main/CHANGES.rst\"\u003eexceptiongroup's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eVersion history\u003c/h1\u003e\n\u003cp\u003eThis library adheres to \u003ccode\u003eSemantic Versioning 2.0 \u0026lt;http://semver.org/\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e1.3.0\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003e**kwargs\u003c/code\u003e to function and method signatures as appropriate to match the\nsignatures in the standard library\u003c/li\u003e\n\u003cli\u003eIn line with the stdlib typings in typeshed, updated \u003ccode\u003e(Base)ExceptionGroup\u003c/code\u003e generic\ntypes to define defaults for their generic arguments (defaulting to\n\u003ccode\u003eBaseExceptionGroup[BaseException]\u003c/code\u003e and \u003ccode\u003eExceptionGroup[Exception]\u003c/code\u003e)\n(PR by \u003ca href=\"https://github.com/mikenerone\"\u003e\u003ccode\u003e@​mikenerone\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eBaseExceptionGroup.__init__()\u003c/code\u003e to directly call\n\u003ccode\u003eBaseException.__init__()\u003c/code\u003e instead of the superclass \u003ccode\u003e__init__()\u003c/code\u003e in order to\nemulate the CPython behavior (broken or not) (PR by \u003ca href=\"https://github.com/cfbolz\"\u003e\u003ccode\u003e@​cfbolz\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged the \u003ccode\u003eexceptions\u003c/code\u003e attribute to always return the same tuple of exceptions,\ncreated from the original exceptions sequence passed to \u003ccode\u003eBaseExceptionGroup\u003c/code\u003e to\nmatch CPython behavior\n(\u003ccode\u003e[#143](https://github.com/agronholm/exceptiongroup/issues/143) \u0026lt;https://github.com/agronholm/exceptiongroup/issues/143\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e1.2.2\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved an \u003ccode\u003eassert\u003c/code\u003e in \u003ccode\u003eexceptiongroup._formatting\u003c/code\u003e that caused compatibility\nissues with Sentry (\u003ccode\u003e[#123](https://github.com/agronholm/exceptiongroup/issues/123) \u0026lt;https://github.com/agronholm/exceptiongroup/issues/123\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e1.2.1\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated the copying of \u003ccode\u003e__notes__\u003c/code\u003e to match CPython behavior (PR by CF Bolz-Tereick)\u003c/li\u003e\n\u003cli\u003eCorrected the type annotation of the exception handler callback to accept a\n\u003ccode\u003eBaseExceptionGroup\u003c/code\u003e instead of \u003ccode\u003eBaseException\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFixed type errors on Python \u0026lt; 3.10 and the type annotation of \u003ccode\u003esuppress()\u003c/code\u003e\n(PR by John Litborn)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e1.2.0\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded special monkeypatching if \u003ccode\u003eApport \u0026lt;https://github.com/canonical/apport\u0026gt;\u003c/code\u003e_ has\noverridden \u003ccode\u003esys.excepthook\u003c/code\u003e so it will format exception groups correctly\n(PR by John Litborn)\u003c/li\u003e\n\u003cli\u003eAdded a backport of \u003ccode\u003econtextlib.suppress()\u003c/code\u003e from Python 3.12.1 which also handles\nsuppressing exceptions inside exception groups\u003c/li\u003e\n\u003cli\u003eFixed bare \u003ccode\u003eraise\u003c/code\u003e in a handler reraising the original naked exception rather than\nan exception group which is what is raised when you do a \u003ccode\u003eraise\u003c/code\u003e in an \u003ccode\u003eexcept*\u003c/code\u003e\nhandler\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e1.1.3\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ecatch()\u003c/code\u003e now raises a \u003ccode\u003eTypeError\u003c/code\u003e if passed an async exception handler instead of\njust giving a \u003ccode\u003eRuntimeWarning\u003c/code\u003e about the coroutine never being awaited. (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/66\"\u003e#66\u003c/a\u003e, PR by\nJohn Litborn)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/77fba8a871408ff2c48f536e5e73b1918239ba5f\"\u003e\u003ccode\u003e77fba8a\u003c/code\u003e\u003c/a\u003e Added the release version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/5e153aa379ac53af79cc7f5e287f77929cb4d0dc\"\u003e\u003ccode\u003e5e153aa\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Migrated test dependencies to dependency groups\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/5000bfea208ad59e3a20e2fb91a513ad559711b1\"\u003e\u003ccode\u003e5000bfe\u003c/code\u003e\u003c/a\u003e Migrated tox configuration to native TOML\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/427220d67a52585e98575103b090b5fdaf87a899\"\u003e\u003ccode\u003e427220d\u003c/code\u003e\u003c/a\u003e Updated pytest options\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/4ca264fa3605d52067c20b351a0d3b947fa1f363\"\u003e\u003ccode\u003e4ca264f\u003c/code\u003e\u003c/a\u003e Migrated test dependencies to dependency groups\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/163c3a8cb27f8a5325258b5a83e7cf8fc002c3b7\"\u003e\u003ccode\u003e163c3a8\u003c/code\u003e\u003c/a\u003e Marked test_exceptions_mutate_original_sequence as xfail on pypy3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/a1765740db2d55d1eb91d67a8fbbb355caf7881b\"\u003e\u003ccode\u003ea176574\u003c/code\u003e\u003c/a\u003e Always create the exceptions tuple at init and return it from the exceptions ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/550b79621cc35892413fa91903a1d6c7951d0449\"\u003e\u003ccode\u003e550b796\u003c/code\u003e\u003c/a\u003e Added BaseExceptionGroup.\u003cstrong\u003einit\u003c/strong\u003e, following CPython (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/142\"\u003e#142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/2a84dfd5599bca0c653143f0f4252d38afac9867\"\u003e\u003ccode\u003e2a84dfd\u003c/code\u003e\u003c/a\u003e Added typevar defaults to (Base)ExceptionGroup (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/147\"\u003e#147\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/fb9133b495fc82bc2907e8cfbdff6c6dc3087e2f\"\u003e\u003ccode\u003efb9133b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/145\"\u003e#145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/exceptiongroup/compare/1.2.2...1.3.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.16.1 to 3.18.0\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.18.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIndicate that locks are exclusive/write locks. by \u003ca href=\"https://github.com/bicarlsen\"\u003e\u003ccode\u003e@​bicarlsen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/394\"\u003etox-dev/filelock#394\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport fcntl check on Emscripten by \u003ca href=\"https://github.com/juntyr\"\u003e\u003ccode\u003e@​juntyr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/398\"\u003etox-dev/filelock#398\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/bicarlsen\"\u003e\u003ccode\u003e@​bicarlsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/394\"\u003etox-dev/filelock#394\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/juntyr\"\u003e\u003ccode\u003e@​juntyr\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/398\"\u003etox-dev/filelock#398\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.17.0...3.18.0\"\u003ehttps://github.com/tox-dev/filelock/compare/3.17.0...3.18.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDrop 3.8\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.16.1...3.17.0\"\u003ehttps://github.com/tox-dev/filelock/compare/3.16.1...3.17.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/129a1efb6a0e1c40ff7c0b094db1b888fcb46d93\"\u003e\u003ccode\u003e129a1ef\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/405\"\u003e#405\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/717d7e018c6e3c3cd00a0f35c775ebbbafda41cc\"\u003e\u003ccode\u003e717d7e0\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/403\"\u003e#403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/efba779022cf62956efe88ea3c65620098fbf75c\"\u003e\u003ccode\u003eefba779\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/401\"\u003e#401\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/82f5a2d6c260a43dc88b51121087bdfa21fb205f\"\u003e\u003ccode\u003e82f5a2d\u003c/code\u003e\u003c/a\u003e Support fcntl check on Emscripten (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/398\"\u003e#398\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/468ba431d1d40b494724f3269d3241a5d1ddd411\"\u003e\u003ccode\u003e468ba43\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/396\"\u003e#396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/0ac68266c62f3b7ae1bc5d4a35c88f1d3913b98d\"\u003e\u003ccode\u003e0ac6826\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/395\"\u003e#395\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/b5f98a66d0fb59e62894ad2b537deb877279adda\"\u003e\u003ccode\u003eb5f98a6\u003c/code\u003e\u003c/a\u003e Indicate that locks are exclusive/write locks. (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/394\"\u003e#394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/3c9b68049961d1b4aade1cc806e731f90b5d2c24\"\u003e\u003ccode\u003e3c9b680\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/393\"\u003e#393\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/2760759ac82f7e8583f708d9bf801c3a79ccd340\"\u003e\u003ccode\u003e2760759\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/18c9571afba87bb6329aef9c2c7798cbe8adfea5\"\u003e\u003ccode\u003e18c9571\u003c/code\u003e\u003c/a\u003e Bump pypa/gh-action-pypi-publish from 1.12.3 to 1.12.4 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/390\"\u003e#390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/py-filelock/compare/3.16.1...3.18.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `freezegun` from 1.5.1 to 1.5.2\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.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\u003c/blockquote\u003e\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/ba06fa43d18c24e6bd4b3bacb7edcb547e7b30ae\"\u003e\u003ccode\u003eba06fa4\u003c/code\u003e\u003c/a\u003e Increase version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/da2885db0c6bbef0d17569ddc9b0b0c7ef852f8c\"\u003e\u003ccode\u003eda2885d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/spulec/freezegun/issues/572\"\u003e#572\u003c/a\u003e from jayaddison/debian-bug-1106274/tests-datetime-tod...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/695aa15668c251c3180d0b943b62c7f2f73b4dbe\"\u003e\u003ccode\u003e695aa15\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into debian-bug-1106274/tests-datetime-today-tz-localiz...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/132ecdbe6e33f603b8d65e7160cdf8200e06391a\"\u003e\u003ccode\u003e132ecdb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/spulec/freezegun/issues/573\"\u003e#573\u003c/a\u003e from spulec/admin/indicate-py-13-compat\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/f9235ae8a00941f2d8a370717af2641a7bf268e9\"\u003e\u003ccode\u003ef9235ae\u003c/code\u003e\u003c/a\u003e Mark support for Python 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/9072d08e3ee22e98e771d8598d67373019a26fed\"\u003e\u003ccode\u003e9072d08\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/spulec/freezegun/issues/544\"\u003e#544\u003c/a\u003e from spulec/remove-py-37-support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/74a69142ddfa3ef6ca060a921938c5cda6da5d16\"\u003e\u003ccode\u003e74a6914\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/spulec/freezegun/issues/565\"\u003e#565\u003c/a\u003e from joethesaint/improve-documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/1343509cd9e53a1777fec5ccbdd7bf85a809f051\"\u003e\u003ccode\u003e1343509\u003c/code\u003e\u003c/a\u003e README: update example code for consistency with tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/9468f708256344321ff8e0fc1c783576e7da44ac\"\u003e\u003ccode\u003e9468f70\u003c/code\u003e\u003c/a\u003e Tests: fixup: replace \u003ccode\u003edatetime.today\u003c/code\u003e method calls with \u003ccode\u003edatetime.date\u003c/code\u003e clas...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/9e4012ad4565c0cf2505410134f6a2ca745a2c3d\"\u003e\u003ccode\u003e9e4012a\u003c/code\u003e\u003c/a\u003e Tests: restore some \u003ccode\u003edatetime.date\u003c/code\u003e-based comparisons\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/spulec/freezegun/compare/1.5.1...1.5.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `identify` from 2.6.5 to 2.6.12\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/51e358dd52e70925011f81db738d441617e3e0f4\"\u003e\u003ccode\u003e51e358d\u003c/code\u003e\u003c/a\u003e v2.6.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/00310d304818e0727f3894fd55ff0f4e834e1db8\"\u003e\u003ccode\u003e00310d3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/identify/issues/519\"\u003e#519\u003c/a\u003e from energyworldnet/feature/msbuild\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/a604a3a4a4ec822f5082a21664fdf391f512d961\"\u003e\u003ccode\u003ea604a3a\u003c/code\u003e\u003c/a\u003e Drop ambiguous .proj extension\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/bdd2643326d8acf348e35ca76ddc233da3f0380c\"\u003e\u003ccode\u003ebdd2643\u003c/code\u003e\u003c/a\u003e v2.6.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/d084242645bcec76d344c37faafd2f8c55081cd2\"\u003e\u003ccode\u003ed084242\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'energyworldnet/feature/xslt'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/f7947091c937ef9a2e1ab1e7be6033acafe4c168\"\u003e\u003ccode\u003ef794709\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/identify/issues/518\"\u003e#518\u003c/a\u003e from pre-commit/mxr-patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/a8cce72fd03e9e1d62c7b749b33903361ee42f54\"\u003e\u003ccode\u003ea8cce72\u003c/code\u003e\u003c/a\u003e Identify XSLT files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/4cf2cc04a94df881eedfede07932a4d95f346f37\"\u003e\u003ccode\u003e4cf2cc0\u003c/code\u003e\u003c/a\u003e Identify common MSBuild files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/4e55b743565fe30a3f7569e02ddfe71abf5144fc\"\u003e\u003ccode\u003e4e55b74\u003c/code\u003e\u003c/a\u003e Add support for \u003ccode\u003e.sqlfluff\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/e200468dd1b921e75a300545bd1e28abe1d5985c\"\u003e\u003ccode\u003ee200468\u003c/code\u003e\u003c/a\u003e v2.6.10\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/identify/compare/v2.6.5...v2.6.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `iniconfig` from 2.0.0 to 2.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/iniconfig/releases\"\u003einiconfig's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.1.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/26\"\u003e#26\u003c/a\u003e - list individuals in license file by \u003ca href=\"https://github.com/RonnyPfannschmidt\"\u003e\u003ccode\u003e@​RonnyPfannschmidt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/52\"\u003epytest-dev/iniconfig#52\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRun tests in CI by \u003ca href=\"https://github.com/nicoddemus\"\u003e\u003ccode\u003e@​nicoddemus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/53\"\u003epytest-dev/iniconfig#53\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003epypa/gh-action-pypi-publish@release/v1\u003c/code\u003e @ GHA by \u003ca href=\"https://github.com/webknjaz\"\u003e\u003ccode\u003e@​webknjaz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/54\"\u003epytest-dev/iniconfig#54\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12-3.13 and drop EOL 3.7 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/56\"\u003epytest-dev/iniconfig#56\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/nicoddemus\"\u003e\u003ccode\u003e@​nicoddemus\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/53\"\u003epytest-dev/iniconfig#53\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/webknjaz\"\u003e\u003ccode\u003e@​webknjaz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/54\"\u003epytest-dev/iniconfig#54\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pytest-dev/iniconfig/compare/v2.0.0...v2.1.0\"\u003ehttps://github.com/pytest-dev/iniconfig/compare/v2.0.0...v2.1.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/pytest-dev/iniconfig/blob/main/CHANGELOG\"\u003einiconfig's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.1.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix artifact building - pin minimal version of hatch\u003c/li\u003e\n\u003cli\u003edrop eol python 3.8\u003c/li\u003e\n\u003cli\u003eadd python 3.12 and 3.13\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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/iniconfig/commit/34793a6417e35e511d0c17ffdd8a02ade0f9568e\"\u003e\u003ccode\u003e34793a6\u003c/code\u003e\u003c/a\u003e pre-commit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/136435d0a4345bb048dca98e7c2f4e938d74521b\"\u003e\u003ccode\u003e136435d\u003c/code\u003e\u003c/a\u003e update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/0bb99ad0f7a6b21d5eb24214a260132317a11e43\"\u003e\u003ccode\u003e0bb99ad\u003c/code\u003e\u003c/a\u003e fix \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/62\"\u003e#62\u003c/a\u003e: require a minimal hatch version with correct metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/16793eaddac67de0b8d621ae4e42e05b927e8d67\"\u003e\u003ccode\u003e16793ea\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/56\"\u003e#56\u003c/a\u003e from hugovk/add-3.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/3dc2b2d6bf03e4b7cc92949a8ef0983fdd7ee442\"\u003e\u003ccode\u003e3dc2b2d\u003c/code\u003e\u003c/a\u003e Add support for Python 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/2eb8abfd9d3843100d7f138efe5bcd989a885024\"\u003e\u003ccode\u003e2eb8abf\u003c/code\u003e\u003c/a\u003e Bump GitHub Actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/8c4bb5bf57dde613c8cdcf0e02a09b2fff630907\"\u003e\u003ccode\u003e8c4bb5b\u003c/code\u003e\u003c/a\u003e Set python-version for pre-commit to remove CI warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/58b22b2d672564ff1925df51f4a8e07486765ed2\"\u003e\u003ccode\u003e58b22b2\u003c/code\u003e\u003c/a\u003e Drop support for EOL Python 3.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/4a53042252a109bcdd64422058de91c5dffff763\"\u003e\u003ccode\u003e4a53042\u003c/code\u003e\u003c/a\u003e Add support for Python 3.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/9cae43103df70bac6fde7b9f35ad11a9f1be0cb4\"\u003e\u003ccode\u003e9cae431\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/54\"\u003e#54\u003c/a\u003e from webknjaz/patch-1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/iniconfig/compare/v2.0.0...v2.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `junit-xml` from 1.8 to 1.9\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/kyrus/python-junit-xml/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mutmut` from 3.2.2 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/boxed/mutmut/blob/main/HISTORY.rst\"\u003emutmut's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e3.3.0\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Python 3.13 compatibility!\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eNew argument \u003ccode\u003e--show-killed\u003c/code\u003e for \u003ccode\u003emutmut browse\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix to avoid accidentally importing the un-mutated original code\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eHandle segfault for mutant subprocesses\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded mutations for string literals\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded mutations for common string methods\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFaster mutant generation via subprocesses\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eself\u003c/code\u003e parameter for mutated class methods\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix trampoline generation for function calls with 'orig' or 'mutants' as argument names.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCopy full source directory before creating mutants\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved error message when forced fail test fails\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed issue with spaces in the python executable path\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDo not mutate \u003ccode\u003e__new__\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAnnotate mutant dicts (and fixes compatibility with Pydantic)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eReplaced parso with LibCST\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e3.2.3\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eCrash with error message on invalid imports for \u003ccode\u003esrc\u003c/code\u003e module\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAutodetect simpler project configurations with \u003ccode\u003etest_*.py\u003c/code\u003e in the dir directly\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eHandle filenames (as opposed to dirnames) in paths_to_mutate\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAlso copy \u003ccode\u003esetup.cfg\u003c/code\u003e and \u003ccode\u003epyproject.toml\u003c/code\u003e by default\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eHandle single line \u003ccode\u003epaths_to_mutate\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/boxed/mutmut/commit/b124c6ad46b0a9a048b5e47c8b7f93d33a9f2e6a\"\u003e\u003ccode\u003eb124c6a\u003c/code\u003e\u003c/a\u003e Release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/e1110fff43b8864802a07cadf5b54b73ab789aad\"\u003e\u003ccode\u003ee1110ff\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/boxed/mutmut/issues/386\"\u003e#386\u003c/a\u003e from CHB-0r1s/main\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/e3736b152c0a40881d3b57319457a755e30c7651\"\u003e\u003ccode\u003ee3736b1\u003c/code\u003e\u003c/a\u003e feat(tests): Add nested attribute access test cases for 'a.b.lower()' -\u0026gt; 'a.b...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/c481bf17e2b0bca22161327c98f21d57e18717bf\"\u003e\u003ccode\u003ec481bf1\u003c/code\u003e\u003c/a\u003e fix: some libcst best practice\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/092912c3332c4d9139453cb6f23b76fae1ef869c\"\u003e\u003ccode\u003e092912c\u003c/code\u003e\u003c/a\u003e fix(tests): This test included string methods functional as upper(), so in si...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/d65d70c1d2b4c4bd0b849e23afcb71fcdc5939be\"\u003e\u003ccode\u003ed65d70c\u003c/code\u003e\u003c/a\u003e feat(str_call_mut): add str methods call mutations and tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/b7b4f90ca5969442b7a56abd4d8c7e62708a5cc6\"\u003e\u003ccode\u003eb7b4f90\u003c/code\u003e\u003c/a\u003e Add .upper() .lower() and .capitalize() as mutations (\u003ca href=\"https://redirect.github.com/boxed/mutmut/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/b41c2b3eef47a9d9b748667e5641d2e69424988f\"\u003e\u003ccode\u003eb41c2b3\u003c/code\u003e\u003c/a\u003e Set process start_method to fork for MacOS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/b42824d724d62421b804ddcb13a2ffc100f7337f\"\u003e\u003ccode\u003eb42824d\u003c/code\u003e\u003c/a\u003e .\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/a732ffb4ab81f54482ac750a0480f5998e4e8490\"\u003e\u003ccode\u003ea732ffb\u003c/code\u003e\u003c/a\u003e Forgot to update Stats\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boxed/mutmut/compare/3.2.2...3.3.0\"\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 `platformdirs` from 4.3.6 to 4.3.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/platformdirs/releases\"\u003eplatformdirs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.3.8\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd missing examples and fix order of examples in README by \u003ca href=\"https://github.com/gene1wood\"\u003e\u003ccode\u003e@​gene1wood\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/355\"\u003etox-dev/platformdirs#355\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gene1wood\"\u003e\u003ccode\u003e@​gene1wood\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/355\"\u003etox-dev/platformdirs#355\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.3.7...4.3.8\"\u003ehttps://github.com/tox-dev/platformdirs/compare/4.3.7...4.3.8\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.3.7\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChunk dependabot updates into a single PR by \u003ca href=\"https://github.com/ofek\"\u003e\u003ccode\u003e@​ofek\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/311\"\u003etox-dev/platformdirs#311\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 3.8 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/330\"\u003etox-dev/platformdirs#330\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.3.6...4.3.7\"\u003ehttps://github.com/tox-dev/platformdirs/compare/4.3.6...4.3.7\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/22089f1e1ff477037cd7b3e03ad38ae2bf251031\"\u003e\u003ccode\u003e22089f1\u003c/code\u003e\u003c/a\u003e Add missing examples and fix order of examples in README (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/29398b1ef0d602929102b5a3cc4aca25ff954f2a\"\u003e\u003ccode\u003e29398b1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/354\"\u003e#354\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/70114b05f1144a451247a465b65caa34d9a88375\"\u003e\u003ccode\u003e70114b0\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/353\"\u003e#353\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/48916117e8d756a51468d6ead75aa645a6a378c6\"\u003e\u003ccode\u003e4891611\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/351\"\u003e#351\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/707be6f8dd2784d092f6de6530f6c0d64faee2f3\"\u003e\u003ccode\u003e707be6f\u003c/code\u003e\u003c/a\u003e Bump astral-sh/setup-uv from 5 to 6 in the all group (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/352\"\u003e#352\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/5519a4fa93059949cf1078fac01cf5dce12c3b50\"\u003e\u003ccode\u003e5519a4f\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/349\"\u003e#349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/063275e097e2910d56291b168e5d827237be5cc5\"\u003e\u003ccode\u003e063275e\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/346\"\u003e#346\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/39fc38448d9d8a5a5be489115122669a76403012\"\u003e\u003ccode\u003e39fc384\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/345\"\u003e#345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/00c695b99a2776e0f271bfcb43d15f908bbf361b\"\u003e\u003ccode\u003e00c695b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/342\"\u003e#342\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/6a81b38d7926f8ba99ebf82c837034bdd8d27039\"\u003e\u003ccode\u003e6a81b38\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/341\"\u003e#341\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.3.6...4.3.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pluggy` from 1.5.0 to 1.6.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pluggy/blob/main/CHANGELOG.rst\"\u003epluggy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003epluggy 1.6.0 (2025-05-15)\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#556](https://github.com/pytest-dev/pluggy/issues/556) \u0026lt;https://github.com/pytest-dev/pluggy/issues/556\u0026gt;\u003c/code\u003e_: Python 3.8 is no longer supported.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003e[#504](https://github.com/pytest-dev/pluggy/issues/504) \u0026lt;https://github.com/pytest-dev/pluggy/issues/504\u0026gt;\u003c/code\u003e_: Fix a regression in pluggy 1.1.0 where using :func:\u003ccode\u003eresult.get_result() \u0026lt;pluggy.Result.get_result\u0026gt;\u003c/code\u003e on the same failed :class:\u003ccode\u003e~pluggy.Result\u003c/code\u003e causes the exception's traceback to get longer and longer.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003e[#544](https://github.com/pytest-dev/pluggy/issues/544) \u0026lt;https://github.com/pytest-dev/pluggy/issues/544\u0026gt;\u003c/code\u003e_: Correctly pass :class:\u003ccode\u003eStopIteration\u003c/code\u003e through hook wrappers.\u003c/p\u003e\n\u003cp\u003eRaising a :class:\u003ccode\u003eStopIteration\u003c/code\u003e in a generator triggers a :class:\u003ccode\u003eRuntimeError\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eIf the :class:\u003ccode\u003eRuntimeError\u003c/code\u003e of a generator has the passed in :class:\u003ccode\u003eStopIteration\u003c/code\u003e as cause\nresume with that :class:\u003ccode\u003eStopIteration\u003c/code\u003e as normal exception instead of failing with the :class:\u003ccode\u003eRuntimeError\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003e[#573](https://github.com/pytest-dev/pluggy/issues/573) \u0026lt;https://github.com/pytest-dev/pluggy/issues/573\u0026gt;\u003c/code\u003e_: Fix python 3.14 SyntaxError by rearranging code.\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/pluggy/commit/fd08ab5f811a9b2fa9124ae8cbbd393221151e2c\"\u003e\u003ccode\u003efd08ab5\u003c/code\u003e\u003c/a\u003e Preparing release 1.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pluggy/commit/c240362152d6f354a4056bfd6d28560e226fb70b\"\u003e\u003ccode\u003ec240362\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pytest-dev/pluggy/issues/578\"\u003e#578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pluggy/commit/0ceb558860b5e228b67adbe8c19a36...\n\n_Description has been truncated_","html_url":"https://github.com/github/annotated-logger/pull/61","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/github%2Fannotated-logger/issues/61","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/61/packages"}},{"old_version":"0.0.27","new_version":"0.0.29","update_type":"patch","path":null,"pr_created_at":"2025-05-25T21:30:10.000Z","version_change":"0.0.27 → 0.0.29","issue":{"uuid":"2542655357","node_id":"PR_kwDOMt9I9c6Xjdd9","number":60,"state":"closed","title":"[pip] (deps): Bump the dev-dependencies group across 1 directory with 28 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2025-06-01T22:00:21.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-05-25T21:30:10.000Z","updated_at":"2025-06-01T22:00:21.000Z","time_to_close":606611,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"[pip] (deps): Bump","group_name":"dev-dependencies","update_count":28,"packages":[{"name":"python-json-logger","old_version":"3.2.1","new_version":"3.3.0","repository_url":"https://github.com/nhairs/python-json-logger"},{"name":"certifi","old_version":"2024.12.14","new_version":"2025.4.26","repository_url":"https://github.com/certifi/python-certifi"},{"name":"charset-normalizer","old_version":"3.4.1","new_version":"3.4.2","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"makefun","old_version":"1.15.6","new_version":"1.16.0","repository_url":"https://github.com/smarie/python-makefun"},{"name":"pychoir","old_version":"0.0.27","new_version":"0.0.29","repository_url":"https://github.com/kajaste/pychoir"},{"name":"urllib3","old_version":"2.3.0","new_version":"2.4.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"coverage","old_version":"7.6.10","new_version":"7.8.2","repository_url":"https://github.com/nedbat/coveragepy"},{"name":"exceptiongroup","old_version":"1.2.2","new_version":"1.3.0","repository_url":"https://github.com/agronholm/exceptiongroup"},{"name":"filelock","old_version":"3.16.1","new_version":"3.18.0","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"freezegun","old_version":"1.5.1","new_version":"1.5.2","repository_url":"https://github.com/spulec/freezegun"},{"name":"identify","old_version":"2.6.5","new_version":"2.6.12","repository_url":"https://github.com/pre-commit/identify"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.1.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"junit-xml","old_version":"1.8","new_version":"1.9","repository_url":"https://github.com/kyrus/python-junit-xml"},{"name":"mutmut","old_version":"3.2.2","new_version":"3.3.0","repository_url":"https://github.com/boxed/mutmut"},{"name":"packaging","old_version":"24.2","new_version":"25.0","repository_url":"https://github.com/pypa/packaging"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.3.8","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"pre-commit","old_version":"4.0.1","new_version":"4.2.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pyright","old_version":"1.1.391","new_version":"1.1.401","repository_url":"https://github.com/RobertCraigie/pyright-python"},{"name":"pytest","old_version":"8.3.4","new_version":"8.3.5","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-cov","old_version":"6.0.0","new_version":"6.1.1","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pytest-github-actions-annotate-failures","old_version":"0.2.0","new_version":"0.3.0","repository_url":"https://github.com/pytest-dev/pytest-github-actions-annotate-failures"},{"name":"rich","old_version":"13.9.4","new_version":"14.0.0","repository_url":"https://github.com/Textualize/rich"},{"name":"ruff","old_version":"0.8.6","new_version":"0.11.11","repository_url":"https://github.com/astral-sh/ruff"},{"name":"setproctitle","old_version":"1.3.4","new_version":"1.3.6","repository_url":"https://github.com/dvarrazzo/py-setproctitle"},{"name":"textual","old_version":"1.0.0","new_version":"3.2.0","repository_url":"https://github.com/Textualize/textual"},{"name":"typing-extensions","old_version":"4.12.2","new_version":"4.13.2","repository_url":"https://github.com/python/typing_extensions"},{"name":"virtualenv","old_version":"20.28.1","new_version":"20.31.2","repository_url":"https://github.com/pypa/virtualenv"}],"path":null,"ecosystem":"pip"},"body":"Bumps the dev-dependencies group with 28 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [python-json-logger](https://github.com/nhairs/python-json-logger) | `3.2.1` | `3.3.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2024.12.14` | `2025.4.26` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.1` | `3.4.2` |\n| [makefun](https://github.com/smarie/python-makefun) | `1.15.6` | `1.16.0` |\n| [pychoir](https://github.com/kajaste/pychoir) | `0.0.27` | `0.0.29` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.3.0` | `2.4.0` |\n| [coverage](https://github.com/nedbat/coveragepy) | `7.6.10` | `7.8.2` |\n| [exceptiongroup](https://github.com/agronholm/exceptiongroup) | `1.2.2` | `1.3.0` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.18.0` |\n| [freezegun](https://github.com/spulec/freezegun) | `1.5.1` | `1.5.2` |\n| [identify](https://github.com/pre-commit/identify) | `2.6.5` | `2.6.12` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.1.0` |\n| [junit-xml](https://github.com/kyrus/python-junit-xml) | `1.8` | `1.9` |\n| [mutmut](https://github.com/boxed/mutmut) | `3.2.2` | `3.3.0` |\n| [packaging](https://github.com/pypa/packaging) | `24.2` | `25.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.3.8` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.0.1` | `4.2.0` |\n| [pyright](https://github.com/RobertCraigie/pyright-python) | `1.1.391` | `1.1.401` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.4` | `8.3.5` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `6.0.0` | `6.1.1` |\n| [pytest-github-actions-annotate-failures](https://github.com/pytest-dev/pytest-github-actions-annotate-failures) | `0.2.0` | `0.3.0` |\n| [rich](https://github.com/Textualize/rich) | `13.9.4` | `14.0.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.8.6` | `0.11.11` |\n| [setproctitle](https://github.com/dvarrazzo/py-setproctitle) | `1.3.4` | `1.3.6` |\n| [textual](https://github.com/Textualize/textual) | `1.0.0` | `3.2.0` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.12.2` | `4.13.2` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `20.28.1` | `20.31.2` |\n\n\nUpdates `python-json-logger` from 3.2.1 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nhairs/python-json-logger/releases\"\u003epython-json-logger's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v3.2.1...v3.3.0\"\u003e3.3.0\u003c/a\u003e - 2025-03-06\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eexc_info_as_array\u003c/code\u003e and \u003ccode\u003estack_info_as_array\u003c/code\u003e options are added to \u003ccode\u003epythonjsonlogger.core.BaseJsonFormatter\u003c/code\u003e allowing both to be encoded as list of lines instead of a single multi-line string. \u003ca href=\"https://redirect.github.com/nhairs/python-json-logger/issues/35\"\u003e#35\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003emsgspec-python313-pre\u003c/code\u003e from \u003ccode\u003edev\u003c/code\u003e dependencies preventing potential RCE. Details: \u003ca href=\"https://github.com/nhairs/python-json-logger/security/advisories/GHSA-wmxh-pxcx-9w24#advisory-comment-121307\"\u003eGHSA-wmxh-pxcx-9w24\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks \u003ca href=\"https://github.com/1hakusai1\"\u003e\u003ccode\u003e@​1hakusai1\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/omnigodz\"\u003e\u003ccode\u003e@​omnigodz\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/nhairs/python-json-logger/blob/main/docs/changelog.md\"\u003epython-json-logger's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v3.2.1...v3.3.0\"\u003e3.3.0\u003c/a\u003e - 2025-03-06\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eexc_info_as_array\u003c/code\u003e and \u003ccode\u003estack_info_as_array\u003c/code\u003e options are added to \u003ccode\u003epythonjsonlogger.core.BaseJsonFormatter\u003c/code\u003e allowing both to be encoded as list of lines instead of a single multi-line string. \u003ca href=\"https://redirect.github.com/nhairs/python-json-logger/issues/35\"\u003e#35\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003emsgspec-python313-pre\u003c/code\u003e from \u003ccode\u003edev\u003c/code\u003e dependencies preventing potential RCE. Details: \u003ca href=\"https://github.com/nhairs/python-json-logger/security/advisories/GHSA-wmxh-pxcx-9w24#advisory-comment-121307\"\u003eGHSA-wmxh-pxcx-9w24\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks \u003ca href=\"https://github.com/1hakusai1\"\u003e\u003ccode\u003e@​1hakusai1\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/omnigodz\"\u003e\u003ccode\u003e@​omnigodz\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/9e6cb679dfb56cb82d9a8cc91f956efd72427055\"\u003e\u003ccode\u003e9e6cb67\u003c/code\u003e\u003c/a\u003e Release 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/db04a0f9066cc331f8d6177f828fe073c7b2a4cc\"\u003e\u003ccode\u003edb04a0f\u003c/code\u003e\u003c/a\u003e Add options to encode stack information into an array (\u003ca href=\"https://redirect.github.com/nhairs/python-json-logger/issues/39\"\u003e#39\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/0092ea0be1cd28e3c1da51eaa084c503bb3710b7\"\u003e\u003ccode\u003e0092ea0\u003c/code\u003e\u003c/a\u003e Move to uv (\u003ca href=\"https://redirect.github.com/nhairs/python-json-logger/issues/40\"\u003e#40\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nhairs/python-json-logger/commit/1ce81a3614d8c77389a9c048d341593e2a7467e7\"\u003e\u003ccode\u003e1ce81a3\u003c/code\u003e\u003c/a\u003e [tests] Update tests for msgspec 0.19.0 (\u003ca href=\"https://redirect.github.com/nhairs/python-json-logger/issues/41\"\u003e#41\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/nhairs/python-json-logger/compare/v3.2.1...v3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2024.12.14 to 2025.4.26\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/275c9eb55733a464589c15fb4566fddd4598e5b2\"\u003e\u003ccode\u003e275c9eb\u003c/code\u003e\u003c/a\u003e 2025.04.26 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/347\"\u003e#347\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/37883310b51e56570919cdc2d44becc1c6940559\"\u003e\u003ccode\u003e3788331\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.4.0 to 5.5.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/346\"\u003e#346\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/9d1f1b782000baedf57026de5b79e193bcb7ef7b\"\u003e\u003ccode\u003e9d1f1b7\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4.1.9 to 4.2.1 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/344\"\u003e#344\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/96b97a5afe26bc1adef98cb0bfe68e34948a73b6\"\u003e\u003ccode\u003e96b97a5\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 4.6.1 to 4.6.2 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/343\"\u003e#343\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/c054ed3ac3d3505efc929b71cfd87a257bbdb6b3\"\u003e\u003ccode\u003ec054ed3\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 7.0.7 to 7.0.8 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/342\"\u003e#342\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/44547fc77121b12bb276b44b3b2b49cfcbeac06f\"\u003e\u003ccode\u003e44547fc\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4.1.8 to 4.1.9 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/341\"\u003e#341\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/5ea51247afecf1bf4ebfa8f2db3082e89a8bfaed\"\u003e\u003ccode\u003e5ea5124\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 4.6.0 to 4.6.1 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/340\"\u003e#340\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/2f142b7ae0b2d13fee4ba4b9fbd73a9cd5069060\"\u003e\u003ccode\u003e2f142b7\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 7.0.6 to 7.0.7 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/339\"\u003e#339\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/80d2ebdc77d2d005f408f789fe2fb1fe5f4e0265\"\u003e\u003ccode\u003e80d2ebd\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.3.0 to 5.4.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/337\"\u003e#337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/088f93122ea7c91cfdaeea7fa76ab2f850b8064d\"\u003e\u003ccode\u003e088f931\u003c/code\u003e\u003c/a\u003e 2025.01.31 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/336\"\u003e#336\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2024.12.14...2025.04.26\"\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.1 to 3.4.2\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.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.9\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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/6422af1d50f1f46624deab585424e1ac4d08ba94\"\u003e\u003ccode\u003e6422af1\u003c/code\u003e\u003c/a\u003e :pencil: update release date\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/0e60ec18eb00bfe312dde86739929165839b633c\"\u003e\u003ccode\u003e0e60ec1\u003c/code\u003e\u003c/a\u003e :bookmark: Release 3.4.2 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/614\"\u003e#614\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f6630ce3b7fd34f234759a0c7a5ca413640e8ffb\"\u003e\u003ccode\u003ef6630ce\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump pypa/cibuildwheel from 2.23.2 to 2.23.3 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/617\"\u003e#617\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/677c99953f1a728de9f88d8659abff1246a80ade\"\u003e\u003ccode\u003e677c999\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump actions/download-artifact from 4.2.1 to 4.3.0 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/618\"\u003e#618\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/960ab1e676b7ef73c8c4f36c387b5a0da21e01c0\"\u003e\u003ccode\u003e960ab1e\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump actions/setup-python from 5.5.0 to 5.6.0 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/619\"\u003e#619\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/6eb632521c9b3f92df2cd944c7c524c205abfffc\"\u003e\u003ccode\u003e6eb6325\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump github/codeql-action from 3.28.10 to 3.28.16 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/620\"\u003e#620\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/c99c0f2c33ce54e41fefcae1c4fb96fa901d5cd4\"\u003e\u003ccode\u003ec99c0f2\u003c/code\u003e\u003c/a\u003e :arrow_up: Update coverage requirement from \u0026lt;7.7,\u0026gt;=7.2.7 to \u0026gt;=7.2.7,\u0026lt;7.9 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/606\"\u003e#606\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/270f28e474db75f2a5085d6da732a90c2ac338f4\"\u003e\u003ccode\u003e270f28e\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump actions/setup-python from 5.4.0 to 5.5.0 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/607\"\u003e#607\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/d4d89a092d262a37ce427ee39ba5091ffd188f0b\"\u003e\u003ccode\u003ed4d89a0\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump pypa/cibuildwheel from 2.22.0 to 2.23.2 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/608\"\u003e#608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/905fcf5cbe93e8b59c12103217434bdbc703d105\"\u003e\u003ccode\u003e905fcf5\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump slsa-framework/slsa-github-generator from 2.0.0 to 2.1.0 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/609\"\u003e#609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.1...3.4.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `makefun` from 1.15.6 to 1.16.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/smarie/python-makefun/blob/main/docs/changelog.md\"\u003emakefun's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e1.16.0 - Support for 3.14, dropped support for \u0026lt; 3.9\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved official support for python versions \u003ccode\u003e\u0026lt;3.9\u003c/code\u003e. These versions will not run in CI anymore.\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eRuntimeError\u003c/code\u003e in tests when running on python 3.14. Added python 3.14 to CI. Fixes\n\u003ca href=\"https://redirect.github.com/smarie/python-makefun/issues/112\"\u003e#112\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/smarie/python-makefun/commit/197b14827c1b7830c0288477c007e1f1592f52ad\"\u003e\u003ccode\u003e197b148\u003c/code\u003e\u003c/a\u003e Changelog for tag, ready to release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/321a39c9a8be1497ba7dfbb9c7c16a9442ae25a6\"\u003e\u003ccode\u003e321a39c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/smarie/python-makefun/issues/118\"\u003e#118\u003c/a\u003e from smarie/feature/112_support_py314\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/39f061e17a7d7472e33cec76d162381ae82b49e3\"\u003e\u003ccode\u003e39f061e\u003c/code\u003e\u003c/a\u003e With latest versions of all actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/4771aaf910459dfabb12109cf4ae37cd089fd9d6\"\u003e\u003ccode\u003e4771aaf\u003c/code\u003e\u003c/a\u003e Changed the fix to leverage pytest-asyncio, now that we do not support python...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/498ed69f5fa22baa5300b354d419fd45be55cf6e\"\u003e\u003ccode\u003e498ed69\u003c/code\u003e\u003c/a\u003e Changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/87eb2ebefa88d212e4ae75f28fc0ffc2fb9194c6\"\u003e\u003ccode\u003e87eb2eb\u003c/code\u003e\u003c/a\u003e Fixed \u003ccode\u003eRuntimeError\u003c/code\u003e in tests when running on pythn 3.14. Added python 3.14 t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/4573c65b6b8405b6194361805a44ba8d9d08c41d\"\u003e\u003ccode\u003e4573c65\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/smarie/python-makefun/issues/117\"\u003e#117\u003c/a\u003e from smarie/chore/116_gh_pages_workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/db582747d0b89ea35927176910205f3f68a429d4\"\u003e\u003ccode\u003edb58274\u003c/code\u003e\u003c/a\u003e Added gh pages workflow. Fixed \u003ca href=\"https://redirect.github.com/smarie/python-makefun/issues/116\"\u003e#116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/c8990e6a660082b42f8314f96bf7369a0f6c2463\"\u003e\u003ccode\u003ec8990e6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/smarie/python-makefun/issues/114\"\u003e#114\u003c/a\u003e from smarie/feature/py35_in_ci\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/smarie/python-makefun/commit/3b1e628e9e7ecf05ea9bc6a9fb73c45563a3c24a\"\u003e\u003ccode\u003e3b1e628\u003c/code\u003e\u003c/a\u003e Removed 3.14 for now\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/smarie/python-makefun/compare/1.15.6...1.16.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pychoir` from 0.0.27 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/kajaste/pychoir/releases\"\u003epychoir's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eTwenty-ninth release\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch pipenv \u0026amp; setuptools to uv by \u003ca href=\"https://github.com/kajaste\"\u003e\u003ccode\u003e@​kajaste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kajaste/pychoir/pull/97\"\u003ekajaste/pychoir#97\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/kajaste/pychoir/compare/v0.0.28...v0.0.29\"\u003ehttps://github.com/kajaste/pychoir/compare/v0.0.28...v0.0.29\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eTwenty-eighth release\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate dev deps by \u003ca href=\"https://github.com/kajaste\"\u003e\u003ccode\u003e@​kajaste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kajaste/pychoir/pull/94\"\u003ekajaste/pychoir#94\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump dev deps by \u003ca href=\"https://github.com/kajaste\"\u003e\u003ccode\u003e@​kajaste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kajaste/pychoir/pull/95\"\u003ekajaste/pychoir#95\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs \u0026amp; Makefile update by \u003ca href=\"https://github.com/kajaste\"\u003e\u003ccode\u003e@​kajaste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/kajaste/pychoir/pull/96\"\u003ekajaste/pychoir#96\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/kajaste/pychoir/compare/v0.0.27...v0.0.28\"\u003ehttps://github.com/kajaste/pychoir/compare/v0.0.27...v0.0.28\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/kajaste/pychoir/commit/bf2f254bcadf03026867a6442523549f1abb16d3\"\u003e\u003ccode\u003ebf2f254\u003c/code\u003e\u003c/a\u003e Switch pipenv \u0026amp; setuptools to uv\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kajaste/pychoir/commit/c1d251d480a47f8bc29e89765c19b00b594442b2\"\u003e\u003ccode\u003ec1d251d\u003c/code\u003e\u003c/a\u003e Docs \u0026amp; Makefile update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kajaste/pychoir/commit/f6181a037d2e791bbf9306b4210a9b4934fc1bbf\"\u003e\u003ccode\u003ef6181a0\u003c/code\u003e\u003c/a\u003e Drop 3.7, add 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kajaste/pychoir/commit/f94fdad20f981f344adbdc07b9aa1cb00795b671\"\u003e\u003ccode\u003ef94fdad\u003c/code\u003e\u003c/a\u003e Bump dev deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kajaste/pychoir/commit/5a2ebd7ca625779b7beaab71d50631f9529f21eb\"\u003e\u003ccode\u003e5a2ebd7\u003c/code\u003e\u003c/a\u003e Update dev deps\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/kajaste/pychoir/compare/v0.0.27...v0.0.29\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `urllib3` from 2.3.0 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/urllib3/urllib3/releases\"\u003eurllib3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.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\u003ch1\u003eFeatures\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eApplied PEP 639 by specifying the license fields in pyproject.toml. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3522\"\u003e#3522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdated exceptions to save and restore more properties during the pickle/serialization process. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3567\"\u003e#3567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003everify_flags\u003c/code\u003e option to \u003ccode\u003ecreate_urllib3_context\u003c/code\u003e with a default of \u003ccode\u003eVERIFY_X509_PARTIAL_CHAIN\u003c/code\u003e and \u003ccode\u003eVERIFY_X509_STRICT\u003c/code\u003e for Python 3.13+. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3571\"\u003e#3571\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eBugfixes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug with partial reads of streaming data in Emscripten. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3555\"\u003e#3555\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eMisc\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSwitched to uv for installing development dependecies. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3550\"\u003e#3550\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved the \u003ccode\u003emultiple.intoto.jsonl\u003c/code\u003e asset from GitHub releases. Attestation of release files since v2.3.0 can be found on PyPI. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3566\"\u003e#3566\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/urllib3/urllib3/blob/main/CHANGES.rst\"\u003eurllib3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.4.0 (2025-04-10)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eApplied PEP 639 by specifying the license fields in pyproject.toml. (\u003ccode\u003e[#3522](https://github.com/urllib3/urllib3/issues/3522) \u0026lt;https://github.com/urllib3/urllib3/issues/3522\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eUpdated exceptions to save and restore more properties during the pickle/serialization process. (\u003ccode\u003e[#3567](https://github.com/urllib3/urllib3/issues/3567) \u0026lt;https://github.com/urllib3/urllib3/issues/3567\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003everify_flags\u003c/code\u003e option to \u003ccode\u003ecreate_urllib3_context\u003c/code\u003e with a default of \u003ccode\u003eVERIFY_X509_PARTIAL_CHAIN\u003c/code\u003e and \u003ccode\u003eVERIFY_X509_STRICT\u003c/code\u003e for Python 3.13+. (\u003ccode\u003e[#3571](https://github.com/urllib3/urllib3/issues/3571) \u0026lt;https://github.com/urllib3/urllib3/issues/3571\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug with partial reads of streaming data in Emscripten. (\u003ccode\u003e[#3555](https://github.com/urllib3/urllib3/issues/3555) \u0026lt;https://github.com/urllib3/urllib3/issues/3555\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSwitched to uv for installing development dependecies. (\u003ccode\u003e[#3550](https://github.com/urllib3/urllib3/issues/3550) \u0026lt;https://github.com/urllib3/urllib3/issues/3550\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eRemoved the \u003ccode\u003emultiple.intoto.jsonl\u003c/code\u003e asset from GitHub releases. Attestation of release files since v2.3.0 can be found on PyPI. (\u003ccode\u003e[#3566](https://github.com/urllib3/urllib3/issues/3566) \u0026lt;https://github.com/urllib3/urllib3/issues/3566\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/a5ff7ac3bbb8659e2ec3ed41dd43889f06a7d7bc\"\u003e\u003ccode\u003ea5ff7ac\u003c/code\u003e\u003c/a\u003e Release 2.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/a135db29f72f828b0ef7314b856d19696a6f48ba\"\u003e\u003ccode\u003ea135db2\u003c/code\u003e\u003c/a\u003e Upgrade memray and coverage to fix macOS tests (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3589\"\u003e#3589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/8f40e71612505a9985b0a58ad793cd84ec97614a\"\u003e\u003ccode\u003e8f40e71\u003c/code\u003e\u003c/a\u003e Upgrade the publishing action to get correct licensing info on PyPI (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3585\"\u003e#3585\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/3ff4e49ddf889554cf295b4a2e1189d066b60c71\"\u003e\u003ccode\u003e3ff4e49\u003c/code\u003e\u003c/a\u003e Add a link to the 2024 annual report (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3586\"\u003e#3586\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/75709c1dbd6770618f061fd0b8a6950c7741f17b\"\u003e\u003ccode\u003e75709c1\u003c/code\u003e\u003c/a\u003e Set verify flags in \u003ccode\u003ecreate_urllib3_context\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3577\"\u003e#3577\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/5c8f82a2f1c1b7a8360f0c84b5a88f25df070811\"\u003e\u003ccode\u003e5c8f82a\u003c/code\u003e\u003c/a\u003e Bump astral-sh/setup-uv from 5.3.0 to 5.4.1 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3580\"\u003e#3580\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/42e90d894b30ef8b897708eb1cdfa24e83cf5067\"\u003e\u003ccode\u003e42e90d8\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.4.0 to 5.5.0 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3579\"\u003e#3579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/3e8f2db735dcaced6a3b777aa1966f40c018af7c\"\u003e\u003ccode\u003e3e8f2db\u003c/code\u003e\u003c/a\u003e Stop using Ubuntu 20.04 and 22.04 in CI (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3570\"\u003e#3570\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/e29db82a6df5f9a9acbb6997899f93bda79bb61e\"\u003e\u003ccode\u003ee29db82\u003c/code\u003e\u003c/a\u003e Update exceptions to have more of their attributes pickled (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3572\"\u003e#3572\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/f8a0c4360ad67aefd79317279ee90c72d5d18697\"\u003e\u003ccode\u003ef8a0c43\u003c/code\u003e\u003c/a\u003e Add PyPy 3.11 to CI\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/urllib3/urllib3/compare/2.3.0...2.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.6.10 to 7.8.2\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.8.2 — 2025-05-23\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWheels are provided for Windows ARM64 on Python 3.11, 3.12, and 3.13.\nThanks, \u003ccode\u003eFinn Womack \u0026lt;pull 1972_\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1971: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/1971\"\u003enedbat/coveragepy#1971\u003c/a\u003e\n.. _pull 1972: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/1972\"\u003enedbat/coveragepy#1972\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-8-1:\u003c/p\u003e\n\u003ch2\u003eVersion 7.8.1 — 2025-05-21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eA number of EncodingWarnings were fixed that could appear if you've enabled\nPYTHONWARNDEFAULTENCODING, fixing \u003ccode\u003eissue 1966\u003c/code\u003e\u003cem\u003e.  Thanks, \u003ccode\u003eHenry Schreiner \u0026lt;pull 1967_\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed a race condition when using sys.monitoring with free-threading Python,\nclosing \u003ccode\u003eissue 1970\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1966: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1966\"\u003enedbat/coveragepy#1966\u003c/a\u003e\n.. _pull 1967: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/1967\"\u003enedbat/coveragepy#1967\u003c/a\u003e\n.. _issue 1970: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1970\"\u003enedbat/coveragepy#1970\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-8-0:\u003c/p\u003e\n\u003ch2\u003eVersion 7.8.0 — 2025-03-30\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a new \u003ccode\u003esource_dirs\u003c/code\u003e setting for symmetry with the existing\n\u003ccode\u003esource_pkgs\u003c/code\u003e setting. It's preferable to the existing \u003ccode\u003esource\u003c/code\u003e setting,\nbecause you'll get a clear error when directories don't exist. Fixes \u003ccode\u003eissue 1942\u003c/code\u003e\u003cem\u003e.  Thanks, \u003ccode\u003eJeremy Fleischman \u0026lt;pull 1943_\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the PYTHONSAFEPATH environment variable new in Python 3.11 is properly\nsupported, closing \u003ccode\u003eissue 1696\u003c/code\u003e\u003cem\u003e.  Thanks, \u003ccode\u003ePhilipp A. \u0026lt;pull 1700_\u0026gt;\u003c/code\u003e\u003c/em\u003e.  This\nworks properly except for a detail when using the \u003ccode\u003ecoverage\u003c/code\u003e command on\nWindows.  There you can use \u003ccode\u003epython -m coverage\u003c/code\u003e instead if you need exact\nemulation.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1696: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1696\"\u003enedbat/coveragepy#1696\u003c/a\u003e\n.. _pull 1700: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/1700\"\u003enedbat/coveragepy#1700\u003c/a\u003e\n.. _issue 1942: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1942\"\u003enedbat/coveragepy#1942\u003c/a\u003e\n.. _pull 1943: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/1943\"\u003enedbat/coveragepy#1943\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-7-1:\u003c/p\u003e\n\u003ch2\u003eVersion 7.7.1 — 2025-03-21\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/51ab2e503faebf7b302850f0b0329103f0efd1f4\"\u003e\u003ccode\u003e51ab2e5\u003c/code\u003e\u003c/a\u003e build: have to keep expected dist counts in sync\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/be7bbf236aaec0875e73948b2f50d6ec9ac97311\"\u003e\u003ccode\u003ebe7bbf2\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.8.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/3cee850f3b8a7bff52fa4dd5575abe8b67b1f2ec\"\u003e\u003ccode\u003e3cee850\u003c/code\u003e\u003c/a\u003e docs: prep for 7.8.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/39bc6b0dc8550d1457a60683200cbdfb6786ffc6\"\u003e\u003ccode\u003e39bc6b0\u003c/code\u003e\u003c/a\u003e docs: provide more details if the kit matrix is edited.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/a608fb310d0eb34c6d6d004a1b62b01c6f8afd33\"\u003e\u003ccode\u003ea608fb3\u003c/code\u003e\u003c/a\u003e build: add support for Windows arm64 (\u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1972\"\u003e#1972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/2fe622506356424406ddcac01bf1775eca5a92d3\"\u003e\u003ccode\u003e2fe6225\u003c/code\u003e\u003c/a\u003e build: run \u003ccode\u003etox lint\u003c/code\u003e if actions have changed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/3d93a78e1df4b9ab88bbf03f84de40873ddb5541\"\u003e\u003ccode\u003e3d93a78\u003c/code\u003e\u003c/a\u003e docs: docs need scriv for making github releases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/0c443a2775aa64fda77c6e34fcc5144f5000db9c\"\u003e\u003ccode\u003e0c443a2\u003c/code\u003e\u003c/a\u003e build: bump version to 7.8.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/ed98b8708ccc380bcb1490cd73b3e476f69c234f\"\u003e\u003ccode\u003eed98b87\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/b98bc9b9878ff8c23bcaa0d7c5b2a55269c6783f\"\u003e\u003ccode\u003eb98bc9b\u003c/code\u003e\u003c/a\u003e docs: prep for 7.8.1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nedbat/coveragepy/compare/7.6.10...7.8.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `exceptiongroup` from 1.2.2 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/agronholm/exceptiongroup/releases\"\u003eexceptiongroup's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003e**kwargs\u003c/code\u003e to function and method signatures as appropriate to match the signatures in the standard library\u003c/li\u003e\n\u003cli\u003eIn line with the stdlib typings in typeshed, updated \u003ccode\u003e(Base)ExceptionGroup\u003c/code\u003e generic types to define defaults for their generic arguments (defaulting to \u003ccode\u003eBaseExceptionGroup[BaseException]\u003c/code\u003e and \u003ccode\u003eExceptionGroup[Exception]\u003c/code\u003e) (PR by \u003ca href=\"https://github.com/mikenerone\"\u003e\u003ccode\u003e@​mikenerone\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eBaseExceptionGroup.__init__()\u003c/code\u003e to directly call \u003ccode\u003eBaseException.__init__()\u003c/code\u003e instead of the superclass \u003ccode\u003e__init__()\u003c/code\u003e in order to emulate the CPython behavior (broken or not) (PR by \u003ca href=\"https://github.com/cfbolz\"\u003e\u003ccode\u003e@​cfbolz\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged the \u003ccode\u003eexceptions\u003c/code\u003e attribute to always return the same tuple of exceptions, created from the original exceptions sequence passed to \u003ccode\u003eBaseExceptionGroup\u003c/code\u003e to match CPython behavior (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/143\"\u003e#143\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/agronholm/exceptiongroup/blob/main/CHANGES.rst\"\u003eexceptiongroup's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eVersion history\u003c/h1\u003e\n\u003cp\u003eThis library adheres to \u003ccode\u003eSemantic Versioning 2.0 \u0026lt;http://semver.org/\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e1.3.0\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003e**kwargs\u003c/code\u003e to function and method signatures as appropriate to match the\nsignatures in the standard library\u003c/li\u003e\n\u003cli\u003eIn line with the stdlib typings in typeshed, updated \u003ccode\u003e(Base)ExceptionGroup\u003c/code\u003e generic\ntypes to define defaults for their generic arguments (defaulting to\n\u003ccode\u003eBaseExceptionGroup[BaseException]\u003c/code\u003e and \u003ccode\u003eExceptionGroup[Exception]\u003c/code\u003e)\n(PR by \u003ca href=\"https://github.com/mikenerone\"\u003e\u003ccode\u003e@​mikenerone\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eBaseExceptionGroup.__init__()\u003c/code\u003e to directly call\n\u003ccode\u003eBaseException.__init__()\u003c/code\u003e instead of the superclass \u003ccode\u003e__init__()\u003c/code\u003e in order to\nemulate the CPython behavior (broken or not) (PR by \u003ca href=\"https://github.com/cfbolz\"\u003e\u003ccode\u003e@​cfbolz\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged the \u003ccode\u003eexceptions\u003c/code\u003e attribute to always return the same tuple of exceptions,\ncreated from the original exceptions sequence passed to \u003ccode\u003eBaseExceptionGroup\u003c/code\u003e to\nmatch CPython behavior\n(\u003ccode\u003e[#143](https://github.com/agronholm/exceptiongroup/issues/143) \u0026lt;https://github.com/agronholm/exceptiongroup/issues/143\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e1.2.2\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved an \u003ccode\u003eassert\u003c/code\u003e in \u003ccode\u003eexceptiongroup._formatting\u003c/code\u003e that caused compatibility\nissues with Sentry (\u003ccode\u003e[#123](https://github.com/agronholm/exceptiongroup/issues/123) \u0026lt;https://github.com/agronholm/exceptiongroup/issues/123\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e1.2.1\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated the copying of \u003ccode\u003e__notes__\u003c/code\u003e to match CPython behavior (PR by CF Bolz-Tereick)\u003c/li\u003e\n\u003cli\u003eCorrected the type annotation of the exception handler callback to accept a\n\u003ccode\u003eBaseExceptionGroup\u003c/code\u003e instead of \u003ccode\u003eBaseException\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFixed type errors on Python \u0026lt; 3.10 and the type annotation of \u003ccode\u003esuppress()\u003c/code\u003e\n(PR by John Litborn)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e1.2.0\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded special monkeypatching if \u003ccode\u003eApport \u0026lt;https://github.com/canonical/apport\u0026gt;\u003c/code\u003e_ has\noverridden \u003ccode\u003esys.excepthook\u003c/code\u003e so it will format exception groups correctly\n(PR by John Litborn)\u003c/li\u003e\n\u003cli\u003eAdded a backport of \u003ccode\u003econtextlib.suppress()\u003c/code\u003e from Python 3.12.1 which also handles\nsuppressing exceptions inside exception groups\u003c/li\u003e\n\u003cli\u003eFixed bare \u003ccode\u003eraise\u003c/code\u003e in a handler reraising the original naked exception rather than\nan exception group which is what is raised when you do a \u003ccode\u003eraise\u003c/code\u003e in an \u003ccode\u003eexcept*\u003c/code\u003e\nhandler\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e1.1.3\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ecatch()\u003c/code\u003e now raises a \u003ccode\u003eTypeError\u003c/code\u003e if passed an async exception handler instead of\njust giving a \u003ccode\u003eRuntimeWarning\u003c/code\u003e about the coroutine never being awaited. (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/66\"\u003e#66\u003c/a\u003e, PR by\nJohn Litborn)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/77fba8a871408ff2c48f536e5e73b1918239ba5f\"\u003e\u003ccode\u003e77fba8a\u003c/code\u003e\u003c/a\u003e Added the release version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/5e153aa379ac53af79cc7f5e287f77929cb4d0dc\"\u003e\u003ccode\u003e5e153aa\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Migrated test dependencies to dependency groups\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/5000bfea208ad59e3a20e2fb91a513ad559711b1\"\u003e\u003ccode\u003e5000bfe\u003c/code\u003e\u003c/a\u003e Migrated tox configuration to native TOML\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/427220d67a52585e98575103b090b5fdaf87a899\"\u003e\u003ccode\u003e427220d\u003c/code\u003e\u003c/a\u003e Updated pytest options\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/4ca264fa3605d52067c20b351a0d3b947fa1f363\"\u003e\u003ccode\u003e4ca264f\u003c/code\u003e\u003c/a\u003e Migrated test dependencies to dependency groups\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/163c3a8cb27f8a5325258b5a83e7cf8fc002c3b7\"\u003e\u003ccode\u003e163c3a8\u003c/code\u003e\u003c/a\u003e Marked test_exceptions_mutate_original_sequence as xfail on pypy3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/a1765740db2d55d1eb91d67a8fbbb355caf7881b\"\u003e\u003ccode\u003ea176574\u003c/code\u003e\u003c/a\u003e Always create the exceptions tuple at init and return it from the exceptions ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/550b79621cc35892413fa91903a1d6c7951d0449\"\u003e\u003ccode\u003e550b796\u003c/code\u003e\u003c/a\u003e Added BaseExceptionGroup.\u003cstrong\u003einit\u003c/strong\u003e, following CPython (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/142\"\u003e#142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/2a84dfd5599bca0c653143f0f4252d38afac9867\"\u003e\u003ccode\u003e2a84dfd\u003c/code\u003e\u003c/a\u003e Added typevar defaults to (Base)ExceptionGroup (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/147\"\u003e#147\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/exceptiongroup/commit/fb9133b495fc82bc2907e8cfbdff6c6dc3087e2f\"\u003e\u003ccode\u003efb9133b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/exceptiongroup/issues/145\"\u003e#145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/exceptiongroup/compare/1.2.2...1.3.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.16.1 to 3.18.0\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.18.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIndicate that locks are exclusive/write locks. by \u003ca href=\"https://github.com/bicarlsen\"\u003e\u003ccode\u003e@​bicarlsen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/394\"\u003etox-dev/filelock#394\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport fcntl check on Emscripten by \u003ca href=\"https://github.com/juntyr\"\u003e\u003ccode\u003e@​juntyr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/398\"\u003etox-dev/filelock#398\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/bicarlsen\"\u003e\u003ccode\u003e@​bicarlsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/394\"\u003etox-dev/filelock#394\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/juntyr\"\u003e\u003ccode\u003e@​juntyr\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/398\"\u003etox-dev/filelock#398\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.17.0...3.18.0\"\u003ehttps://github.com/tox-dev/filelock/compare/3.17.0...3.18.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDrop 3.8\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.16.1...3.17.0\"\u003ehttps://github.com/tox-dev/filelock/compare/3.16.1...3.17.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/129a1efb6a0e1c40ff7c0b094db1b888fcb46d93\"\u003e\u003ccode\u003e129a1ef\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/405\"\u003e#405\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/717d7e018c6e3c3cd00a0f35c775ebbbafda41cc\"\u003e\u003ccode\u003e717d7e0\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/403\"\u003e#403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/efba779022cf62956efe88ea3c65620098fbf75c\"\u003e\u003ccode\u003eefba779\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/401\"\u003e#401\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/82f5a2d6c260a43dc88b51121087bdfa21fb205f\"\u003e\u003ccode\u003e82f5a2d\u003c/code\u003e\u003c/a\u003e Support fcntl check on Emscripten (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/398\"\u003e#398\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/468ba431d1d40b494724f3269d3241a5d1ddd411\"\u003e\u003ccode\u003e468ba43\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/396\"\u003e#396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/0ac68266c62f3b7ae1bc5d4a35c88f1d3913b98d\"\u003e\u003ccode\u003e0ac6826\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/395\"\u003e#395\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/b5f98a66d0fb59e62894ad2b537deb877279adda\"\u003e\u003ccode\u003eb5f98a6\u003c/code\u003e\u003c/a\u003e Indicate that locks are exclusive/write locks. (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/394\"\u003e#394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/3c9b68049961d1b4aade1cc806e731f90b5d2c24\"\u003e\u003ccode\u003e3c9b680\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/393\"\u003e#393\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/2760759ac82f7e8583f708d9bf801c3a79ccd340\"\u003e\u003ccode\u003e2760759\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/18c9571afba87bb6329aef9c2c7798cbe8adfea5\"\u003e\u003ccode\u003e18c9571\u003c/code\u003e\u003c/a\u003e Bump pypa/gh-action-pypi-publish from 1.12.3 to 1.12.4 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/390\"\u003e#390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/py-filelock/compare/3.16.1...3.18.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `freezegun` from 1.5.1 to 1.5.2\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.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\u003c/blockquote\u003e\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/ba06fa43d18c24e6bd4b3bacb7edcb547e7b30ae\"\u003e\u003ccode\u003eba06fa4\u003c/code\u003e\u003c/a\u003e Increase version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/da2885db0c6bbef0d17569ddc9b0b0c7ef852f8c\"\u003e\u003ccode\u003eda2885d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/spulec/freezegun/issues/572\"\u003e#572\u003c/a\u003e from jayaddison/debian-bug-1106274/tests-datetime-tod...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/695aa15668c251c3180d0b943b62c7f2f73b4dbe\"\u003e\u003ccode\u003e695aa15\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into debian-bug-1106274/tests-datetime-today-tz-localiz...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/132ecdbe6e33f603b8d65e7160cdf8200e06391a\"\u003e\u003ccode\u003e132ecdb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/spulec/freezegun/issues/573\"\u003e#573\u003c/a\u003e from spulec/admin/indicate-py-13-compat\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/f9235ae8a00941f2d8a370717af2641a7bf268e9\"\u003e\u003ccode\u003ef9235ae\u003c/code\u003e\u003c/a\u003e Mark support for Python 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/9072d08e3ee22e98e771d8598d67373019a26fed\"\u003e\u003ccode\u003e9072d08\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/spulec/freezegun/issues/544\"\u003e#544\u003c/a\u003e from spulec/remove-py-37-support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/74a69142ddfa3ef6ca060a921938c5cda6da5d16\"\u003e\u003ccode\u003e74a6914\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/spulec/freezegun/issues/565\"\u003e#565\u003c/a\u003e from joethesaint/improve-documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/1343509cd9e53a1777fec5ccbdd7bf85a809f051\"\u003e\u003ccode\u003e1343509\u003c/code\u003e\u003c/a\u003e README: update example code for consistency with tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/9468f708256344321ff8e0fc1c783576e7da44ac\"\u003e\u003ccode\u003e9468f70\u003c/code\u003e\u003c/a\u003e Tests: fixup: replace \u003ccode\u003edatetime.today\u003c/code\u003e method calls with \u003ccode\u003edatetime.date\u003c/code\u003e clas...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/9e4012ad4565c0cf2505410134f6a2ca745a2c3d\"\u003e\u003ccode\u003e9e4012a\u003c/code\u003e\u003c/a\u003e Tests: restore some \u003ccode\u003edatetime.date\u003c/code\u003e-based comparisons\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/spulec/freezegun/compare/1.5.1...1.5.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `identify` from 2.6.5 to 2.6.12\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/51e358dd52e70925011f81db738d441617e3e0f4\"\u003e\u003ccode\u003e51e358d\u003c/code\u003e\u003c/a\u003e v2.6.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/00310d304818e0727f3894fd55ff0f4e834e1db8\"\u003e\u003ccode\u003e00310d3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/identify/issues/519\"\u003e#519\u003c/a\u003e from energyworldnet/feature/msbuild\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/a604a3a4a4ec822f5082a21664fdf391f512d961\"\u003e\u003ccode\u003ea604a3a\u003c/code\u003e\u003c/a\u003e Drop ambiguous .proj extension\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/bdd2643326d8acf348e35ca76ddc233da3f0380c\"\u003e\u003ccode\u003ebdd2643\u003c/code\u003e\u003c/a\u003e v2.6.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/d084242645bcec76d344c37faafd2f8c55081cd2\"\u003e\u003ccode\u003ed084242\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'energyworldnet/feature/xslt'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/f7947091c937ef9a2e1ab1e7be6033acafe4c168\"\u003e\u003ccode\u003ef794709\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/identify/issues/518\"\u003e#518\u003c/a\u003e from pre-commit/mxr-patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/a8cce72fd03e9e1d62c7b749b33903361ee42f54\"\u003e\u003ccode\u003ea8cce72\u003c/code\u003e\u003c/a\u003e Identify XSLT files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/4cf2cc04a94df881eedfede07932a4d95f346f37\"\u003e\u003ccode\u003e4cf2cc0\u003c/code\u003e\u003c/a\u003e Identify common MSBuild files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/4e55b743565fe30a3f7569e02ddfe71abf5144fc\"\u003e\u003ccode\u003e4e55b74\u003c/code\u003e\u003c/a\u003e Add support for \u003ccode\u003e.sqlfluff\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/e200468dd1b921e75a300545bd1e28abe1d5985c\"\u003e\u003ccode\u003ee200468\u003c/code\u003e\u003c/a\u003e v2.6.10\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/identify/compare/v2.6.5...v2.6.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `iniconfig` from 2.0.0 to 2.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/iniconfig/releases\"\u003einiconfig's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.1.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/26\"\u003e#26\u003c/a\u003e - list individuals in license file by \u003ca href=\"https://github.com/RonnyPfannschmidt\"\u003e\u003ccode\u003e@​RonnyPfannschmidt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/52\"\u003epytest-dev/iniconfig#52\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRun tests in CI by \u003ca href=\"https://github.com/nicoddemus\"\u003e\u003ccode\u003e@​nicoddemus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/53\"\u003epytest-dev/iniconfig#53\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003epypa/gh-action-pypi-publish@release/v1\u003c/code\u003e @ GHA by \u003ca href=\"https://github.com/webknjaz\"\u003e\u003ccode\u003e@​webknjaz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/54\"\u003epytest-dev/iniconfig#54\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.12-3.13 and drop EOL 3.7 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/56\"\u003epytest-dev/iniconfig#56\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/nicoddemus\"\u003e\u003ccode\u003e@​nicoddemus\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/53\"\u003epytest-dev/iniconfig#53\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/webknjaz\"\u003e\u003ccode\u003e@​webknjaz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/54\"\u003epytest-dev/iniconfig#54\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pytest-dev/iniconfig/compare/v2.0.0...v2.1.0\"\u003ehttps://github.com/pytest-dev/iniconfig/compare/v2.0.0...v2.1.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/pytest-dev/iniconfig/blob/main/CHANGELOG\"\u003einiconfig's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.1.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix artifact building - pin minimal version of hatch\u003c/li\u003e\n\u003cli\u003edrop eol python 3.8\u003c/li\u003e\n\u003cli\u003eadd python 3.12 and 3.13\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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/iniconfig/commit/34793a6417e35e511d0c17ffdd8a02ade0f9568e\"\u003e\u003ccode\u003e34793a6\u003c/code\u003e\u003c/a\u003e pre-commit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/136435d0a4345bb048dca98e7c2f4e938d74521b\"\u003e\u003ccode\u003e136435d\u003c/code\u003e\u003c/a\u003e update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/0bb99ad0f7a6b21d5eb24214a260132317a11e43\"\u003e\u003ccode\u003e0bb99ad\u003c/code\u003e\u003c/a\u003e fix \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/62\"\u003e#62\u003c/a\u003e: require a minimal hatch version with correct metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/16793eaddac67de0b8d621ae4e42e05b927e8d67\"\u003e\u003ccode\u003e16793ea\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/56\"\u003e#56\u003c/a\u003e from hugovk/add-3.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/3dc2b2d6bf03e4b7cc92949a8ef0983fdd7ee442\"\u003e\u003ccode\u003e3dc2b2d\u003c/code\u003e\u003c/a\u003e Add support for Python 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/2eb8abfd9d3843100d7f138efe5bcd989a885024\"\u003e\u003ccode\u003e2eb8abf\u003c/code\u003e\u003c/a\u003e Bump GitHub Actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/8c4bb5bf57dde613c8cdcf0e02a09b2fff630907\"\u003e\u003ccode\u003e8c4bb5b\u003c/code\u003e\u003c/a\u003e Set python-version for pre-commit to remove CI warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/58b22b2d672564ff1925df51f4a8e07486765ed2\"\u003e\u003ccode\u003e58b22b2\u003c/code\u003e\u003c/a\u003e Drop support for EOL Python 3.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/4a53042252a109bcdd64422058de91c5dffff763\"\u003e\u003ccode\u003e4a53042\u003c/code\u003e\u003c/a\u003e Add support for Python 3.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/9cae43103df70bac6fde7b9f35ad11a9f1be0cb4\"\u003e\u003ccode\u003e9cae431\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/54\"\u003e#54\u003c/a\u003e from webknjaz/patch-1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/iniconfig/compare/v2.0.0...v2.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `junit-xml` from 1.8 to 1.9\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/kyrus/python-junit-xml/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mutmut` from 3.2.2 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/boxed/mutmut/blob/main/HISTORY.rst\"\u003emutmut's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e3.3.0\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Python 3.13 compatibility!\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eNew argument \u003ccode\u003e--show-killed\u003c/code\u003e for \u003ccode\u003emutmut browse\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix to avoid accidentally importing the un-mutated original code\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eHandle segfault for mutant subprocesses\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded mutations for string literals\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded mutations for common string methods\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFaster mutant generation via subprocesses\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eself\u003c/code\u003e parameter for mutated class methods\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix trampoline generation for function calls with 'orig' or 'mutants' as argument names.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCopy full source directory before creating mutants\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved error message when forced fail test fails\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed issue with spaces in the python executable path\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDo not mutate \u003ccode\u003e__new__\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAnnotate mutant dicts (and fixes compatibility with Pydantic)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eReplaced parso with LibCST\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e3.2.3\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eCrash with error message on invalid imports for \u003ccode\u003esrc\u003c/code\u003e module\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAutodetect simpler project configurations with \u003ccode\u003etest_*.py\u003c/code\u003e in the dir directly\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eHandle filenames (as opposed to dirnames) in paths_to_mutate\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAlso copy \u003ccode\u003esetup.cfg\u003c/code\u003e and \u003ccode\u003epyproject.toml\u003c/code\u003e by default\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eHandle single line \u003ccode\u003epaths_to_mutate\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/boxed/mutmut/commit/b124c6ad46b0a9a048b5e47c8b7f93d33a9f2e6a\"\u003e\u003ccode\u003eb124c6a\u003c/code\u003e\u003c/a\u003e Release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/e1110fff43b8864802a07cadf5b54b73ab789aad\"\u003e\u003ccode\u003ee1110ff\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/boxed/mutmut/issues/386\"\u003e#386\u003c/a\u003e from CHB-0r1s/main\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/e3736b152c0a40881d3b57319457a755e30c7651\"\u003e\u003ccode\u003ee3736b1\u003c/code\u003e\u003c/a\u003e feat(tests): Add nested attribute access test cases for 'a.b.lower()' -\u0026gt; 'a.b...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/c481bf17e2b0bca22161327c98f21d57e18717bf\"\u003e\u003ccode\u003ec481bf1\u003c/code\u003e\u003c/a\u003e fix: some libcst best practice\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/092912c3332c4d9139453cb6f23b76fae1ef869c\"\u003e\u003ccode\u003e092912c\u003c/code\u003e\u003c/a\u003e fix(tests): This test included string methods functional as upper(), so in si...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/d65d70c1d2b4c4bd0b849e23afcb71fcdc5939be\"\u003e\u003ccode\u003ed65d70c\u003c/code\u003e\u003c/a\u003e feat(str_call_mut): add str methods call mutations and tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/b7b4f90ca5969442b7a56abd4d8c7e62708a5cc6\"\u003e\u003ccode\u003eb7b4f90\u003c/code\u003e\u003c/a\u003e Add .upper() .lower() and .capitalize() as mutations (\u003ca href=\"https://redirect.github.com/boxed/mutmut/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/b41c2b3eef47a9d9b748667e5641d2e69424988f\"\u003e\u003ccode\u003eb41c2b3\u003c/code\u003e\u003c/a\u003e Set process start_method to fork for MacOS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/b42824d724d62421b804ddcb13a2ffc100f7337f\"\u003e\u003ccode\u003eb42824d\u003c/code\u003e\u003c/a\u003e .\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boxed/mutmut/commit/a732ffb4ab81f54482ac750a0480f5998e4e8490\"\u003e\u003ccode\u003ea732ffb\u003c/code\u003e\u003c/a\u003e Forgot to update Stats\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boxed/mutmut/compare/3.2.2...3.3.0\"\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 `platformdirs` from 4.3.6 to 4.3.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/platformdirs/releases\"\u003eplatformdirs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.3.8\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd missing examples and fix order of examples in README by \u003ca href=\"https://github.com/gene1wood\"\u003e\u003ccode\u003e@​gene1wood\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/355\"\u003etox-dev/platformdirs#355\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gene1wood\"\u003e\u003ccode\u003e@​gene1wood\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/355\"\u003etox-dev/platformdirs#355\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.3.7...4.3.8\"\u003ehttps://github.com/tox-dev/platformdirs/compare/4.3.7...4.3.8\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.3.7\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChunk dependabot updates into a single PR by \u003ca href=\"https://github.com/ofek\"\u003e\u003ccode\u003e@​ofek\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/311\"\u003etox-dev/platformdirs#311\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop support for EOL Python 3.8 by \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/pull/330\"\u003etox-dev/platformdirs#330\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.3.6...4.3.7\"\u003ehttps://github.com/tox-dev/platformdirs/compare/4.3.6...4.3.7\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/22089f1e1ff477037cd7b3e03ad38ae2bf251031\"\u003e\u003ccode\u003e22089f1\u003c/code\u003e\u003c/a\u003e Add missing examples and fix order of examples in README (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/29398b1ef0d602929102b5a3cc4aca25ff954f2a\"\u003e\u003ccode\u003e29398b1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/354\"\u003e#354\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/70114b05f1144a451247a465b65caa34d9a88375\"\u003e\u003ccode\u003e70114b0\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/353\"\u003e#353\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/48916117e8d756a51468d6ead75aa645a6a378c6\"\u003e\u003ccode\u003e4891611\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/351\"\u003e#351\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/707be6f8dd2784d092f6de6530f6c0d64faee2f3\"\u003e\u003ccode\u003e707be6f\u003c/code\u003e\u003c/a\u003e Bump astral-sh/setup-uv from 5 to 6 in the all group (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/352\"\u003e#352\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/5519a4fa93059949cf1078fac01cf5dce12c3b50\"\u003e\u003ccode\u003e5519a4f\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/349\"\u003e#349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/063275e097e2910d56291b168e5d827237be5cc5\"\u003e\u003ccode\u003e063275e\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/346\"\u003e#346\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/39fc38448d9d8a5a5be489115122669a76403012\"\u003e\u003ccode\u003e39fc384\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/345\"\u003e#345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/00c695b99a2776e0f271bfcb43d15f908bbf361b\"\u003e\u003ccode\u003e00c695b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/342\"\u003e#342\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/platformdirs/commit/6a81b38d7926f8ba99ebf82c837034bdd8d27039\"\u003e\u003ccode\u003e6a81b38\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/platformdirs/issues/341\"\u003e#341\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/platformdirs/compare/4.3.6...4.3.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pluggy` from 1.5.0 to 1.6.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pluggy/blob/main/CHANGELOG.rst\"\u003epluggy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003epluggy 1.6.0 (2025-05-15)\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#556](https://github.com/pytest-dev/pluggy/issues/556) \u0026lt;https://github.com/pytest-dev/pluggy/issues/556\u0026gt;\u003c/code\u003e_: Python 3.8 is no longer supported.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003e[#504](https://github.com/pytest-dev/pluggy/issues/504) \u0026lt;https://github.com/pytest-dev/pluggy/issues/504\u0026gt;\u003c/code\u003e_: Fix a regression in pluggy 1.1.0 where using :func:\u003ccode\u003eresult.get_result() \u0026lt;pluggy.Result.get_result\u0026gt;\u003c/code\u003e on the same failed :class:\u003ccode\u003e~pluggy.Result\u003c/code\u003e causes the exception's traceback to get longer and longer.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003e[#544](https://github.com/pytest-dev/pluggy/issues/544) \u0026lt;https://github.com/pytest-dev/pluggy/issues/544\u0026gt;\u003c/code\u003e_: Correctly pass :class:\u003ccode\u003eStopIteration\u003c/code\u003e through hook wrappers.\u003c/p\u003e\n\u003cp\u003eRaising a :class:\u003ccode\u003eStopIteration\u003c/code\u003e in a generator triggers a :class:\u003ccode\u003eRuntimeError\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eIf the :class:\u003ccode\u003eRuntimeError\u003c/code\u003e of a generator has the passed in :class:\u003ccode\u003eStopIteration\u003c/code\u003e as cause\nresume with that :class:\u003ccode\u003eStopIteration\u003c/code\u003e as normal exception instead of failing with the :class:\u003ccode\u003eRuntimeError\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003e[#573](https://github.com/pytest-dev/pluggy/issues/573) \u0026lt;https://github.com/pytest-dev/pluggy/issues/573\u0026gt;\u003c/code\u003e_: Fix python 3.14 SyntaxError by rearranging code.\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/pluggy/commit/fd08ab5f811a9b2fa9124ae8cbbd393221151e2c\"\u003e\u003ccode\u003efd08ab5\u003c/code\u003e\u003c/a\u003e Preparing release 1.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pluggy/commit/c240362152d6f354a4056bfd6d28560e226fb70b\"\u003e\u003ccode\u003ec240362\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pytest-dev/pluggy/issues/578\"\u003e#578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pluggy/commit/0ceb558860b5e228b67adbe8c19a368802e7d324\"\u003e\u003ccode\u003e0ceb558\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.g...\n\n_Description has been truncated_","html_url":"https://github.com/github/annotated-logger/pull/60","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/github%2Fannotated-logger/issues/60","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/60/packages"}}]}