{"id":17190,"name":"syrupy","ecosystem":"pip","repository_url":"https://github.com/syrupy-project/syrupy","issues_count":82,"created_at":"2025-06-07T00:43:59.468Z","updated_at":"2025-06-07T00:43:59.468Z","purl":"pkg:pypi/syrupy","metadata":{"id":2938143,"name":"syrupy","ecosystem":"pypi","description":"Pytest Snapshot Test Utility","homepage":"https://github.com/syrupy-project/syrupy","licenses":"Apache-2.0","normalized_licenses":["Apache-2.0"],"repository_url":"https://github.com/syrupy-project/syrupy","keywords_array":[],"namespace":null,"versions_count":115,"first_release_published_at":"2019-12-05T02:59:51.000Z","latest_release_published_at":"2025-03-24T01:36:35.000Z","latest_release_number":"4.9.1","last_synced_at":"2025-06-06T09:01:27.684Z","created_at":"2022-04-10T12:46:01.952Z","updated_at":"2025-06-06T09:01:27.688Z","registry_url":"https://pypi.org/project/syrupy/","install_command":"pip install syrupy --index-url https://pypi.org/simple","documentation_url":"https://syrupy.readthedocs.io/","metadata":{"funding":null,"documentation":null,"classifiers":["Development Status :: 5 - Production/Stable","Framework :: Pytest","Intended Audience :: Developers","License :: OSI Approved :: Apache Software 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.13","Programming Language :: Python :: 3.8","Programming Language :: Python :: 3.9","Topic :: Software Development :: Libraries","Topic :: Software Development :: Testing","Topic :: Utilities"],"normalized_name":"syrupy"},"repo_metadata":{"id":36466235,"uuid":"216412299","full_name":"syrupy-project/syrupy","owner":"syrupy-project","description":":pancakes: The sweeter pytest snapshot plugin","archived":false,"fork":false,"pushed_at":"2024-10-29T09:21:00.000Z","size":12475,"stargazers_count":535,"open_issues_count":36,"forks_count":37,"subscribers_count":5,"default_branch":"main","last_synced_at":"2024-10-29T09:55:42.699Z","etag":null,"topics":["pytest","pytest-plugin","python","snapshot","snapshot-plugin","snapshot-testing","snapshot-tests","snapshottest","testing"],"latest_commit_sha":null,"homepage":"https://syrupy-project.github.io/syrupy/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/syrupy-project.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-10-20T19:01:50.000Z","updated_at":"2024-10-25T23:15:01.000Z","dependencies_parsed_at":"2023-10-20T23:31:52.329Z","dependency_job_id":"56e39f3d-6305-46bb-b1a9-7fc751716a17","html_url":"https://github.com/syrupy-project/syrupy","commit_stats":{"total_commits":712,"total_committers":31,"mean_commits":"22.967741935483872","dds":0.723314606741573,"last_synced_commit":"d6530b40ccf17e4af79bc4bdcf760805f1ea60d3"},"previous_names":["syrupy-project/syrupy"],"tags_count":110,"template":false,"template_full_name":"tophat/new-project-kit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/syrupy-project","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":222121833,"owners_count":16934971,"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":"syrupy-project","name":"Syrupy","uuid":"178910519","kind":"organization","description":"","email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/178910519?v=4","repositories_count":1,"last_synced_at":"2024-08-21T01:38:52.024Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/syrupy-project","funding_links":[],"total_stars":506,"followers":0,"following":0,"created_at":"2024-08-21T01:38:52.554Z","updated_at":"2024-08-21T01:38:52.554Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/syrupy-project","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/syrupy-project/repositories"},"tags":[{"name":"v4.7.1","sha":"76ca5a0bcf3f6ef9a9e4467c3c2674e33709d032","kind":"commit","published_at":"2024-08-23T04:48:20.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v4.7.1","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v4.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v4.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v4.7.1/manifests"},{"name":"v4.7.0","sha":"276d042e6854b79d04f1a61c6d0086a8fc4361e8","kind":"commit","published_at":"2024-08-23T04:11:57.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v4.7.0","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v4.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v4.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v4.7.0/manifests"},{"name":"v4.6.4","sha":"3c2b962166385995987e484f1b9a6e0fa01bd515","kind":"commit","published_at":"2024-08-21T01:54:14.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v4.6.4","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v4.6.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v4.6.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v4.6.4/manifests"},{"name":"v4.6.3","sha":"8f2eed4eafbd3de53bd010599ede6bc15112cbc8","kind":"commit","published_at":"2024-08-21T01:41:51.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v4.6.3","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v4.6.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v4.6.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v4.6.3/manifests"},{"name":"v4.6.2","sha":"2105b52c3961c29ab87db1fd0be2b1b0ea5a5b29","kind":"commit","published_at":"2024-08-21T01:25:00.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v4.6.2","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v4.6.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v4.6.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v4.6.2/manifests"},{"name":"v4.6.1","sha":"e82d2b46ba3febed540118fea3f58c73a087430e","kind":"commit","published_at":"2024-02-07T05:57:57.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v4.6.1","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v4.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v4.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v4.6.1/manifests"},{"name":"v4.6.0","sha":"017581dcb6f823441a3ccfd54fe1a7fc8d713e62","kind":"commit","published_at":"2023-10-24T15:41:49.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v4.6.0","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v4.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v4.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v4.6.0/manifests"},{"name":"v4.5.0","sha":"27b0cd564dc658fe3847a8619304815d04f523b1","kind":"commit","published_at":"2023-09-01T21:59:19.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v4.5.0","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v4.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v4.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v4.5.0/manifests"},{"name":"v4.4.0","sha":"3a39dc515b2abac35d2e3e7d309e5b49ad831d35","kind":"commit","published_at":"2023-08-29T15:28:42.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v4.4.0","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v4.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v4.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v4.4.0/manifests"},{"name":"v4.3.0","sha":"7f24a4558bd806ecded85bf6d4690d322d15711b","kind":"commit","published_at":"2023-08-28T22:34:49.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v4.3.0","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v4.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v4.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v4.3.0/manifests"},{"name":"v4.2.2","sha":"2a7f43d9625cb35560557c95028f872ebc53fafc","kind":"commit","published_at":"2023-08-28T20:06:13.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v4.2.2","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v4.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v4.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v4.2.2/manifests"},{"name":"v4.2.1","sha":"22d2197529ce52df26195910ab3ed3859d5d4db0","kind":"commit","published_at":"2023-08-21T20:24:38.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v4.2.1","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v4.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v4.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v4.2.1/manifests"},{"name":"v4.2.0","sha":"e108e680460cb7adb7552b48d1b5ae10321b5774","kind":"commit","published_at":"2023-08-21T11:55:31.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v4.2.0","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v4.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v4.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v4.2.0/manifests"},{"name":"v4.1.1","sha":"1aa091a5c74efe13fc05e93b1c3eed7edb5ad476","kind":"commit","published_at":"2023-08-17T23:41:47.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v4.1.1","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v4.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v4.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v4.1.1/manifests"},{"name":"v4.1.0","sha":"80fcf8fa75742df1e90e328352c829e97ecde252","kind":"commit","published_at":"2023-08-16T14:49:11.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v4.1.0","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v4.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v4.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v4.1.0/manifests"},{"name":"v4.0.8","sha":"c5f57d916a998f3ae8c00ca92ea8e3cde15a8c58","kind":"commit","published_at":"2023-07-20T21:40:02.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v4.0.8","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v4.0.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v4.0.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v4.0.8/manifests"},{"name":"v4.0.7","sha":"0a96bb9669aecd6acbe909e831bfeaa9bbb49fbc","kind":"commit","published_at":"2023-07-20T12:03:01.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v4.0.7","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v4.0.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v4.0.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v4.0.7/manifests"},{"name":"v4.0.6","sha":"85e9136ba562d2b7e282e5aae6fd85899ef6e0bc","kind":"commit","published_at":"2023-07-11T21:14:06.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v4.0.6","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v4.0.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v4.0.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v4.0.6/manifests"},{"name":"v4.0.5","sha":"6a93c87229b2091d16a4190bd5f6a8c36a71ecad","kind":"commit","published_at":"2023-07-04T17:40:39.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v4.0.5","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v4.0.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v4.0.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v4.0.5/manifests"},{"name":"v4.0.4","sha":"7265fc6e37531ef34de4960842c98829e2cb8978","kind":"commit","published_at":"2023-06-19T03:56:39.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v4.0.4","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v4.0.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v4.0.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v4.0.4/manifests"},{"name":"v4.0.3","sha":"eb3183d3fc0da739d8909272a400fdaa722c2faa","kind":"commit","published_at":"2023-06-19T03:24:55.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v4.0.3","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v4.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v4.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v4.0.3/manifests"},{"name":"v4.0.2","sha":"928dcad3399c705aa10866fe07b720f72b69bd67","kind":"commit","published_at":"2023-04-25T15:02:41.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v4.0.2","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v4.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v4.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v4.0.2/manifests"},{"name":"v4.0.1","sha":"44539e948386afb49c022e73c8a9312b2a980889","kind":"commit","published_at":"2023-02-21T00:26:38.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v4.0.1","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v4.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v4.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v4.0.1/manifests"},{"name":"v4.0.0","sha":"01269e2d72c815cc26198a8f0fae723eecc9e5d5","kind":"commit","published_at":"2023-02-02T20:15:56.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v4.0.0","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v4.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v4.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v4.0.0/manifests"},{"name":"v3.0.6","sha":"881b91520b89745f9c2b8fe466d2da4888cf2e30","kind":"commit","published_at":"2022-12-30T18:02:39.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v3.0.6","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v3.0.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v3.0.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v3.0.6/manifests"},{"name":"v3.0.5","sha":"034691eb7ed9152bd11de890cbc4ea6f16fa2fa8","kind":"commit","published_at":"2022-11-08T18:18:12.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v3.0.5","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v3.0.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v3.0.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v3.0.5/manifests"},{"name":"v3.0.4","sha":"dccc789522b96d6dc0a1608828e71b96fee8c215","kind":"commit","published_at":"2022-11-03T21:18:00.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v3.0.4","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v3.0.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v3.0.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v3.0.4/manifests"},{"name":"v3.0.3","sha":"19ebfbc03769db8c9ee4ec46440c3c8b96299634","kind":"commit","published_at":"2022-11-03T17:38:46.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v3.0.3","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v3.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v3.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v3.0.3/manifests"},{"name":"v3.0.2","sha":"4986aadddb94a80052f01e3531e9c9d6f5f42fb0","kind":"commit","published_at":"2022-09-23T13:40:13.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v3.0.2","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v3.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v3.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v3.0.2/manifests"},{"name":"v3.0.1","sha":"8d574783b6fe27c3b9ec026da8adc2bc9d38919a","kind":"commit","published_at":"2022-09-20T13:30:20.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v3.0.1","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v3.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v3.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v3.0.1/manifests"},{"name":"v3.0.0","sha":"1d30a63e9afea46152abeb9d8f6debee2331caf5","kind":"commit","published_at":"2022-08-11T19:23:59.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v3.0.0","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v3.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v3.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v3.0.0/manifests"},{"name":"v2.3.1","sha":"df6031486196063fd09f5eeea658a74f5ff4dd51","kind":"commit","published_at":"2022-07-07T23:00:47.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v2.3.1","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v2.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v2.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v2.3.1/manifests"},{"name":"v2.3.0","sha":"96b88db82d19817b18eb0d5dd07fa92e96695fdb","kind":"commit","published_at":"2022-05-12T15:00:09.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v2.3.0","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v2.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v2.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v2.3.0/manifests"},{"name":"v2.2.0","sha":"9375da99e461f7fbac6fcbd14c20faf11936e4c7","kind":"commit","published_at":"2022-05-12T12:03:12.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v2.2.0","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v2.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v2.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v2.2.0/manifests"},{"name":"v2.1.0","sha":"09ade1bb75d3d46d22dbdf6c62606103c546f37b","kind":"commit","published_at":"2022-05-11T00:47:23.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v2.1.0","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v2.1.0/manifests"},{"name":"v2.0.0","sha":"f189e65a77923090154c93bfe9883e5854dd84b1","kind":"commit","published_at":"2022-04-10T17:31:09.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v2.0.0","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v2.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v2.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v2.0.0/manifests"},{"name":"v1.7.4","sha":"e78318796936b107ad53458c63565f3f908b5c45","kind":"commit","published_at":"2022-02-16T14:35:57.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v1.7.4","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v1.7.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v1.7.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v1.7.4/manifests"},{"name":"v1.7.3","sha":"00b0a86ee78d2edec81d69d8fa4669747936f44d","kind":"commit","published_at":"2022-01-25T17:56:55.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v1.7.3","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v1.7.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v1.7.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v1.7.3/manifests"},{"name":"v1.7.2","sha":"c37d6521852c96cf1ae01873c02b94410d38b663","kind":"commit","published_at":"2022-01-25T16:32:48.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v1.7.2","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v1.7.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v1.7.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v1.7.2/manifests"},{"name":"v1.7.1","sha":"68f78e12973695cc81586e46c003c66e97a27973","kind":"commit","published_at":"2022-01-25T00:03:21.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v1.7.1","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v1.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v1.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v1.7.1/manifests"},{"name":"v1.7.0","sha":"13552ebae6c3b67d6f9b06cf94d57dca76b62cc6","kind":"commit","published_at":"2022-01-14T04:46:12.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v1.7.0","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v1.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v1.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v1.7.0/manifests"},{"name":"v1.6.0","sha":"6a7e245518742b50cfe090e8a3a68c608ad11e84","kind":"commit","published_at":"2022-01-14T02:51:11.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v1.6.0","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v1.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v1.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v1.6.0/manifests"},{"name":"v1.5.0","sha":"1a782ea0ac75e5b8225a9f74e3f45d6f927bb26e","kind":"commit","published_at":"2021-11-03T14:18:48.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v1.5.0","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v1.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v1.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v1.5.0/manifests"},{"name":"v1.4.7","sha":"ddb6a5ae130c35761c53ca82e565a6157eaea698","kind":"commit","published_at":"2021-10-13T13:32:23.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v1.4.7","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v1.4.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v1.4.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v1.4.7/manifests"},{"name":"v1.4.6","sha":"3a4ce75365043a9506b2748725a0565894c262d2","kind":"commit","published_at":"2021-10-06T13:44:50.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v1.4.6","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v1.4.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v1.4.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v1.4.6/manifests"},{"name":"v1.4.5","sha":"45672d64e92cbe85470e758cd5591480de361bb4","kind":"commit","published_at":"2021-08-29T15:38:01.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v1.4.5","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v1.4.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v1.4.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v1.4.5/manifests"},{"name":"v1.4.4","sha":"151a8592026cf25c6063f377dcf0a337fbd74d61","kind":"commit","published_at":"2021-08-20T03:21:21.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v1.4.4","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v1.4.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v1.4.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v1.4.4/manifests"},{"name":"v1.4.3","sha":"5906c25a87d1d54537af69da750b5f73a4b8f103","kind":"commit","published_at":"2021-08-20T01:08:33.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v1.4.3","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v1.4.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v1.4.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v1.4.3/manifests"},{"name":"v1.4.2","sha":"e5bd311970e31260026bb2320376cc7a94b0cf30","kind":"commit","published_at":"2021-08-18T01:24:13.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v1.4.2","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v1.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v1.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v1.4.2/manifests"},{"name":"v1.4.1","sha":"0244c2f59456bfae2d83bc7fe7c4b5c615457225","kind":"commit","published_at":"2021-08-18T00:43:08.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v1.4.1","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v1.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v1.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v1.4.1/manifests"},{"name":"v1.4.0","sha":"d07f4c4e45ff2920a0f600ed03479e680714f7c1","kind":"commit","published_at":"2021-08-02T18:49:44.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v1.4.0","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v1.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v1.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v1.4.0/manifests"},{"name":"v1.3.1","sha":"a046f718abd94dbff103b5b28523cbee772d396c","kind":"commit","published_at":"2021-06-20T01:37:06.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v1.3.1","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v1.3.1/manifests"},{"name":"v1.3.0","sha":"0284cd05c6374ec002e6ff1a2f2d33a3304f201a","kind":"commit","published_at":"2021-06-05T21:06:48.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v1.3.0","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v1.3.0/manifests"},{"name":"v1.2.4","sha":"1d48fd5f123cc44fb46a7e546fd9eafed1327ad4","kind":"commit","published_at":"2021-06-01T23:40:59.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v1.2.4","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v1.2.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v1.2.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v1.2.4/manifests"},{"name":"v1.2.3","sha":"7549bfbbae4d6da717cc509f6048fd3520d4a450","kind":"commit","published_at":"2021-05-12T22:38:30.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v1.2.3","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v1.2.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v1.2.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v1.2.3/manifests"},{"name":"v1.2.2","sha":"fa7e4264ce588116651cd942f50622200d9d860e","kind":"commit","published_at":"2021-03-18T20:59:27.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v1.2.2","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v1.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v1.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v1.2.2/manifests"},{"name":"v1.2.1","sha":"ebf1adbe1be7f672a42a0519c26314bee4011406","kind":"commit","published_at":"2021-03-18T19:43:44.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v1.2.1","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v1.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v1.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v1.2.1/manifests"},{"name":"v1.2.0","sha":"584428b2e6ed0bcbe7441872aa3699948c1cb661","kind":"commit","published_at":"2021-03-05T17:50:40.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v1.2.0","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v1.2.0/manifests"},{"name":"v1.1.0","sha":"251972976bed056eea96f12b2543afc95058e102","kind":"commit","published_at":"2020-12-01T23:20:31.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v1.1.0","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"19f549f6ac81483aed02c52b37fa908bafdf3833","kind":"commit","published_at":"2020-11-13T03:02:32.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v1.0.0","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v1.0.0/manifests"},{"name":"v0.9.0","sha":"7cd832651989b5afff4db58b8e84f1fb31c54609","kind":"commit","published_at":"2020-11-13T02:51:24.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v0.9.0","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v0.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.9.0/manifests"},{"name":"v0.8.5","sha":"89fbd47a7aaa3d77657ce05bee25f6afd4145372","kind":"commit","published_at":"2020-11-13T02:42:13.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v0.8.5","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v0.8.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.8.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.8.5/manifests"},{"name":"v0.8.4","sha":"97543b87ffc1327b82ecdc4f712107a23849c974","kind":"commit","published_at":"2020-10-30T20:04:16.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v0.8.4","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v0.8.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.8.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.8.4/manifests"},{"name":"v0.8.3","sha":"5c77f44e7d2c97d595c084234be20cf57ba3177f","kind":"commit","published_at":"2020-10-30T14:27:52.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v0.8.3","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v0.8.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.8.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.8.3/manifests"},{"name":"v0.8.2","sha":"cf83a9af0a630a78115e0fa437bb28b54767cd49","kind":"commit","published_at":"2020-10-30T02:57:45.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v0.8.2","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v0.8.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.8.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.8.2/manifests"},{"name":"v0.8.1","sha":"641fd75a70d8c4c7543c2a25e77d2cc0f8f02409","kind":"commit","published_at":"2020-10-29T03:30:26.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v0.8.1","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v0.8.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.8.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.8.1/manifests"},{"name":"v0.8.0","sha":"9451e9e55d8dc024ec9e566ee1fb9cac17bdc06b","kind":"commit","published_at":"2020-10-27T15:28:22.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v0.8.0","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v0.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.8.0/manifests"},{"name":"v0.7.2","sha":"e3992356c0032502663fb6d1de51b1aa1101b949","kind":"commit","published_at":"2020-09-20T00:26:36.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v0.7.2","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v0.7.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.7.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.7.2/manifests"},{"name":"v0.7.1","sha":"f60390689f32a4b8dfc34375a10a96ecad64cc63","kind":"commit","published_at":"2020-09-05T16:38:30.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v0.7.1","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v0.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.7.1/manifests"},{"name":"v0.7.0","sha":"2c2f1125101eb4a849c9e9b3e2a32c4de2323440","kind":"commit","published_at":"2020-08-24T21:27:10.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v0.7.0","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v0.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.7.0/manifests"},{"name":"v0.6.1","sha":"9755e6895c7f59cf9ca3b316a3a9233d04de4848","kind":"commit","published_at":"2020-07-29T02:42:38.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v0.6.1","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v0.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.6.1/manifests"},{"name":"v0.6.0","sha":"e23b206f687045b74f9ddbefb4d6bda2f65441d2","kind":"commit","published_at":"2020-07-12T22:51:25.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v0.6.0","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v0.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.6.0/manifests"},{"name":"v0.5.2","sha":"5593f1189ad5933b9587d6e39c4a670072ac8847","kind":"commit","published_at":"2020-07-09T14:44:49.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v0.5.2","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v0.5.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.5.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.5.2/manifests"},{"name":"v0.5.1","sha":"7f13d38c32744b2e0a3923cb54cb60f0b2ab577b","kind":"commit","published_at":"2020-06-12T02:08:50.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v0.5.1","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v0.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.5.1/manifests"},{"name":"v0.5.0","sha":"583edcc0bcadccfebfb0f51b478d63c086b02f55","kind":"commit","published_at":"2020-06-09T12:19:32.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v0.5.0","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v0.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.5.0/manifests"},{"name":"v0.4.4","sha":"bbbc146397b48e70276275a43b24d88a52efe446","kind":"commit","published_at":"2020-06-02T02:26:36.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v0.4.4","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v0.4.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.4.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.4.4/manifests"},{"name":"v0.4.3","sha":"fe7e82141a672c782aeee22399ffa7d8ed83fa5b","kind":"commit","published_at":"2020-05-27T15:41:10.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v0.4.3","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v0.4.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.4.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.4.3/manifests"},{"name":"v0.4.2","sha":"df7368d934a859fac03df3d91e9843cb44381ab0","kind":"commit","published_at":"2020-04-22T13:09:13.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v0.4.2","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v0.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.4.2/manifests"},{"name":"v0.4.1","sha":"d630caa5f3a775d0f4a22e0cf8c8c5d7bb092e07","kind":"commit","published_at":"2020-04-19T17:51:08.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v0.4.1","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v0.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.4.1/manifests"},{"name":"v0.4.0","sha":"32c55fec6e5df865774dd516ca4eb7f4060602bc","kind":"commit","published_at":"2020-04-19T17:44:20.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v0.4.0","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v0.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.4.0/manifests"},{"name":"v0.3.12","sha":"5b7c6e33a0535d21952a9387f187426415d5ef81","kind":"commit","published_at":"2020-04-19T17:39:15.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v0.3.12","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v0.3.12","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.3.12","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.3.12/manifests"},{"name":"v0.3.11","sha":"2c2a4911a20df9416e9675064495a024813ef675","kind":"commit","published_at":"2020-04-17T13:57:27.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v0.3.11","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v0.3.11","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.3.11","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.3.11/manifests"},{"name":"v0.3.10","sha":"ff7ea6bc2b029afa96b653218abbf8e015e96b2e","kind":"commit","published_at":"2020-04-15T18:05:56.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v0.3.10","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v0.3.10","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.3.10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.3.10/manifests"},{"name":"v0.3.9","sha":"77c00676a146a0c9b4476a8409af82787428482e","kind":"commit","published_at":"2020-04-08T05:00:34.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v0.3.9","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v0.3.9","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.3.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.3.9/manifests"},{"name":"v0.3.8","sha":"12351b3d01371186ed593a385bdb5e4fbf029c52","kind":"commit","published_at":"2020-04-03T18:17:17.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v0.3.8","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v0.3.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.3.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.3.8/manifests"},{"name":"v0.3.7","sha":"e05b51e500a0cc4752aea7aef7b56d0ea7f8c311","kind":"commit","published_at":"2020-03-24T23:36:48.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v0.3.7","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v0.3.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.3.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.3.7/manifests"},{"name":"v0.3.6","sha":"be78e8f84b82760b5dca749ca6fde550e6a816bc","kind":"commit","published_at":"2020-03-10T23:24:41.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v0.3.6","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v0.3.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.3.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.3.6/manifests"},{"name":"v0.3.5","sha":"575806027878fb1893de68c351fd2627eda555b9","kind":"commit","published_at":"2020-03-08T18:44:52.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v0.3.5","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v0.3.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.3.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.3.5/manifests"},{"name":"v0.3.4","sha":"3380f87f8fa4627080c763e1e7d9811cf66491ce","kind":"commit","published_at":"2020-03-08T04:22:10.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v0.3.4","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v0.3.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.3.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.3.4/manifests"},{"name":"v0.3.3","sha":"a02baf90c3aa8734bf993853791923e891e3f444","kind":"commit","published_at":"2020-03-02T02:25:58.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v0.3.3","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v0.3.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.3.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.3.3/manifests"},{"name":"v0.3.2","sha":"f4c0b731369f14325274cea9193133bd19aa69e1","kind":"commit","published_at":"2020-02-10T00:25:09.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v0.3.2","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v0.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.3.2/manifests"},{"name":"v0.3.1","sha":"0dfdfd8b1cebe64576f171f0313f5ebf95ea150c","kind":"commit","published_at":"2020-01-15T14:31:42.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v0.3.1","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v0.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.3.1/manifests"},{"name":"v0.3.0","sha":"2592fdb8a0886b516d4e8ef365686040fcace879","kind":"commit","published_at":"2020-01-14T19:13:57.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v0.3.0","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v0.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.3.0/manifests"},{"name":"v0.2.0","sha":"57f1099c681c70ac93749e01b857d53256adca78","kind":"commit","published_at":"2020-01-13T00:38:54.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v0.2.0","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v0.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.2.0/manifests"},{"name":"v0.1.0","sha":"54b8de4ae4ee8b3c529329be0c0e7438cb6e2695","kind":"commit","published_at":"2020-01-11T22:49:04.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v0.1.0","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v0.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.1.0/manifests"},{"name":"v0.0.15","sha":"c7968fdecebe599ce28d01de16f8e2cf3b2f0fd6","kind":"commit","published_at":"2020-01-07T23:48:38.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v0.0.15","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v0.0.15","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.0.15","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.0.15/manifests"},{"name":"v0.0.14","sha":"2f41347207e72cfd8616b7eb39fce63356878304","kind":"commit","published_at":"2020-01-07T20:06:06.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v0.0.14","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v0.0.14","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.0.14","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.0.14/manifests"},{"name":"v0.0.13","sha":"57e02e16c3a6806f1d36800bdc07eb2a4939f1ee","kind":"commit","published_at":"2020-01-05T08:24:06.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v0.0.13","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v0.0.13","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.0.13","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.0.13/manifests"},{"name":"v0.0.12","sha":"ef118b89c16ace55b0328971e901c840d3494736","kind":"commit","published_at":"2019-12-29T14:57:36.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v0.0.12","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v0.0.12","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.0.12","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.0.12/manifests"},{"name":"v0.0.11","sha":"c709848fea20a647f4d0198820fdafc958272293","kind":"commit","published_at":"2019-12-28T19:11:01.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v0.0.11","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v0.0.11","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.0.11","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.0.11/manifests"},{"name":"v0.0.10","sha":"530b07964f47146c4e83c0700a711a2b05087766","kind":"commit","published_at":"2019-12-28T13:05:54.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v0.0.10","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v0.0.10","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.0.10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.0.10/manifests"},{"name":"v0.0.9","sha":"868164a121b3f4a94ef51df634355a24748280fb","kind":"commit","published_at":"2019-12-27T14:17:25.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v0.0.9","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v0.0.9","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.0.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.0.9/manifests"},{"name":"v0.0.8","sha":"0511b4bdbae34cc6dfd293aadf1338604376c13a","kind":"commit","published_at":"2019-12-25T18:03:16.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v0.0.8","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v0.0.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.0.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.0.8/manifests"},{"name":"v0.0.7","sha":"a5f46e56285f3567a2a4f82ff5ff5c7d4351a495","kind":"commit","published_at":"2019-12-20T15:58:57.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v0.0.7","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v0.0.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.0.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.0.7/manifests"},{"name":"v0.0.6","sha":"02515991021688f8d66a6bcb91b7c3bd5fecd741","kind":"commit","published_at":"2019-12-09T03:18:55.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v0.0.6","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v0.0.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.0.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.0.6/manifests"},{"name":"v0.0.5","sha":"1680d1027b2b45bb586d395bf4b2656b71f590f9","kind":"commit","published_at":"2019-12-07T18:12:48.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v0.0.5","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v0.0.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.0.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.0.5/manifests"},{"name":"v0.0.4","sha":"c57b3ba9310dafe58c410950d1745db3dc2c3b7b","kind":"commit","published_at":"2019-12-07T17:43:19.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v0.0.4","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v0.0.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.0.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.0.4/manifests"},{"name":"v0.0.3","sha":"de607161ac10ab0de37e72306ad043f8ff205b11","kind":"commit","published_at":"2019-12-06T21:14:35.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v0.0.3","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v0.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.0.3/manifests"},{"name":"v0.0.2","sha":"f4447f6b92385e753c96402f10b78b31e996976d","kind":"commit","published_at":"2019-12-05T14:16:32.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v0.0.2","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v0.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.0.2/manifests"},{"name":"v0.0.1","sha":"3b3495bc43345c86c99a37beb7ee20f3673a264e","kind":"commit","published_at":"2019-12-05T02:57:13.000Z","download_url":"https://codeload.github.com/syrupy-project/syrupy/tar.gz/v0.0.1","html_url":"https://github.com/syrupy-project/syrupy/releases/tag/v0.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syrupy-project%2Fsyrupy/tags/v0.0.1/manifests"}]},"repo_metadata_updated_at":"2024-10-29T22:25:55.882Z","dependent_packages_count":46,"downloads":2459434,"downloads_period":"last-month","dependent_repos_count":1070,"rankings":{"downloads":0.48836535749944737,"dependent_repos_count":0.3509828281365518,"dependent_packages_count":0.41090851567875186,"stargazers_count":3.2348882247095063,"forks_count":7.066642010565266,"docker_downloads_count":0.26447565985533866,"average":1.9693770994074768},"purl":"pkg:pypi/syrupy","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/syrupy","docker_dependents_count":60,"docker_downloads_count":755284678,"usage_url":"https://repos.ecosyste.ms/usage/pypi/syrupy","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/syrupy/dependencies","status":null,"funding_links":[],"critical":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/syrupy/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/syrupy/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/syrupy/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/syrupy/related_packages","maintainers":[{"uuid":"noahnu","login":"noahnu","name":null,"email":null,"url":null,"packages_count":2,"html_url":"https://pypi.org/user/noahnu/","role":null,"created_at":"2023-11-13T15:37:32.010Z","updated_at":"2023-11-13T15:37:32.010Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/noahnu/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":690419,"maintainers_count":292811,"namespaces_count":0,"keywords_count":228590,"github":"pypi","metadata":{"funded_packages_count":48950},"icon_url":"https://github.com/pypi.png","created_at":"2022-04-04T15:19:23.364Z","updated_at":"2025-06-06T05:32:09.692Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/namespaces"}},"unique_repositories_count":71,"unique_repositories_count_past_30_days":4,"recent_issues":[{"uuid":"4600650957","node_id":"PR_kwDOSYHNdc7jSq5K","number":12,"state":"closed","title":"build(deps): bump syrupy from 5.2.0 to 5.3.1","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-06-12T22:44:34.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-05T22:44:08.000Z","updated_at":"2026-06-12T22:44:36.000Z","time_to_close":604826,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps)","packages":[{"name":"syrupy","old_version":"5.2.0","new_version":"5.3.1","repository_url":"https://github.com/syrupy-project/syrupy"}],"path":null,"ecosystem":"pip"},"body":"Bumps [syrupy](https://github.com/syrupy-project/syrupy) from 5.2.0 to 5.3.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/syrupy-project/syrupy/releases\"\u003esyrupy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.3.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix(test): mark pydantic and attrs as dependencies for running internal tests by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1108\"\u003esyrupy-project/syrupy#1108\u003c/a\u003e -- \u003cstrong\u003eThis only affects users trying to run the syrupy tests themselves, not consumers of syrupy.\u003c/strong\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): update astral-sh/setup-uv action to v8.1.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1103\"\u003esyrupy-project/syrupy#1103\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update python docker tag to v3.14.4 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1102\"\u003esyrupy-project/syrupy#1102\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update benchmark-action/github-action-benchmark action to v1.22.1 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1105\"\u003esyrupy-project/syrupy#1105\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.3.0...v5.3.1\"\u003ehttps://github.com/syrupy-project/syrupy/compare/v5.3.0...v5.3.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efeat: add --snapshot-update-new-only flag (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/843\"\u003e#843\u003c/a\u003e) by \u003ca href=\"https://github.com/SAY-5\"\u003e\u003ccode\u003e@​SAY-5\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1098\"\u003esyrupy-project/syrupy#1098\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc.\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore: move release marker by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1095\"\u003esyrupy-project/syrupy#1095\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update codecov/codecov-action action to v5.5.4 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1089\"\u003esyrupy-project/syrupy#1089\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency pytest to v9.0.3 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1096\"\u003esyrupy-project/syrupy#1096\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: include tests in sdist by \u003ca href=\"https://github.com/Lovlace777\"\u003e\u003ccode\u003e@​Lovlace777\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1099\"\u003esyrupy-project/syrupy#1099\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: skip benchmark on forks by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1100\"\u003esyrupy-project/syrupy#1100\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update dev dependencies by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1101\"\u003esyrupy-project/syrupy#1101\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/Lovlace777\"\u003e\u003ccode\u003e@​Lovlace777\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1099\"\u003esyrupy-project/syrupy#1099\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SAY-5\"\u003e\u003ccode\u003e@​SAY-5\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1098\"\u003esyrupy-project/syrupy#1098\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.2.0...v5.3.0\"\u003ehttps://github.com/syrupy-project/syrupy/compare/v5.2.0...v5.3.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/syrupy-project/syrupy/blob/main/CHANGELOG.md\"\u003esyrupy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/releases/tag/v5.3.1\"\u003ev5.3.1\u003c/a\u003e (2026-05-31)\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix(test): mark pydantic and attrs as dependencies for running internal tests by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1108\"\u003esyrupy-project/syrupy#1108\u003c/a\u003e -- \u003cstrong\u003eThis only affects users trying to run the syrupy tests themselves, not consumers of syrupy.\u003c/strong\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): update astral-sh/setup-uv action to v8.1.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1103\"\u003esyrupy-project/syrupy#1103\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update python docker tag to v3.14.4 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1102\"\u003esyrupy-project/syrupy#1102\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update benchmark-action/github-action-benchmark action to v1.22.1 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1105\"\u003esyrupy-project/syrupy#1105\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.3.0...v5.3.1\"\u003ehttps://github.com/syrupy-project/syrupy/compare/v5.3.0...v5.3.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/releases/tag/v5.3.0\"\u003ev5.3.0\u003c/a\u003e (2026-05-31)\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efeat: add --snapshot-update-new-only flag (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/843\"\u003e#843\u003c/a\u003e) by \u003ca href=\"https://github.com/SAY-5\"\u003e\u003ccode\u003e@​SAY-5\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1098\"\u003esyrupy-project/syrupy#1098\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc.\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore: move release marker by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1095\"\u003esyrupy-project/syrupy#1095\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update codecov/codecov-action action to v5.5.4 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1089\"\u003esyrupy-project/syrupy#1089\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency pytest to v9.0.3 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1096\"\u003esyrupy-project/syrupy#1096\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: include tests in sdist by \u003ca href=\"https://github.com/Lovlace777\"\u003e\u003ccode\u003e@​Lovlace777\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1099\"\u003esyrupy-project/syrupy#1099\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: skip benchmark on forks by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1100\"\u003esyrupy-project/syrupy#1100\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update dev dependencies by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1101\"\u003esyrupy-project/syrupy#1101\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/Lovlace777\"\u003e\u003ccode\u003e@​Lovlace777\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1099\"\u003esyrupy-project/syrupy#1099\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SAY-5\"\u003e\u003ccode\u003e@​SAY-5\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1098\"\u003esyrupy-project/syrupy#1098\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.2.0...v5.3.0\"\u003ehttps://github.com/syrupy-project/syrupy/compare/v5.2.0...v5.3.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/syrupy-project/syrupy/commit/c528216d5fa53517f9df34f49db55d3e455377c9\"\u003e\u003ccode\u003ec528216\u003c/code\u003e\u003c/a\u003e fix(test): mark pydantic and attrs as dependencies for running internal tests...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/32b9ccb6d2da49b91e3052e33b9e1e208963bf55\"\u003e\u003ccode\u003e32b9ccb\u003c/code\u003e\u003c/a\u003e chore(deps): update benchmark-action/github-action-benchmark action to v1.22....\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/520f813ebf7f5c61bc45564b750cbfa836df0f2f\"\u003e\u003ccode\u003e520f813\u003c/code\u003e\u003c/a\u003e chore(deps): update python docker tag to v3.14.4 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1102\"\u003e#1102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/9ad6eb48c90cadf3f1e13705414a612eed72637f\"\u003e\u003ccode\u003e9ad6eb4\u003c/code\u003e\u003c/a\u003e chore(deps): update astral-sh/setup-uv action to v8.1.0 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1103\"\u003e#1103\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/06c5ab4688ad816ef50c320f764f20e53ea89ae5\"\u003e\u003ccode\u003e06c5ab4\u003c/code\u003e\u003c/a\u003e chore(release): 5.3.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/5887f25a02e6bb6d0b2b0cd9853d86c259345f1c\"\u003e\u003ccode\u003e5887f25\u003c/code\u003e\u003c/a\u003e chore: update dev dependencies (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1101\"\u003e#1101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/2daa56e2b74f7ed1b3e74086d9509ac7454a41be\"\u003e\u003ccode\u003e2daa56e\u003c/code\u003e\u003c/a\u003e feat: add --snapshot-update-new-only flag (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/843\"\u003e#843\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1098\"\u003e#1098\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/61c4e07e7a710270c4ebc3435652bc7d945fc60c\"\u003e\u003ccode\u003e61c4e07\u003c/code\u003e\u003c/a\u003e chore: skip benchmark on forks (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1100\"\u003e#1100\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/a4880a798e64546118c4afc4e1b655cf1ea17cb2\"\u003e\u003ccode\u003ea4880a7\u003c/code\u003e\u003c/a\u003e fix: include tests in sdist (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1099\"\u003e#1099\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/719a71ab83f94119072d5db79568b90b0455a7a1\"\u003e\u003ccode\u003e719a71a\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency pytest to v9.0.3 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1096\"\u003e#1096\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.2.0...v5.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=syrupy\u0026package-manager=uv\u0026previous-version=5.2.0\u0026new-version=5.3.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/AntoineD/syrupy-matplotlib/pull/12","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/AntoineD%2Fsyrupy-matplotlib/issues/12","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/12/packages"},{"uuid":"4559030694","node_id":"PR_kwDOFFAJd87hKFIB","number":13,"state":"closed","title":"Bump syrupy from 5.1.0 to 5.3.1","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-31T21:36:44.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-31T21:13:56.000Z","updated_at":"2026-05-31T21:36:46.000Z","time_to_close":1368,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"syrupy","old_version":"5.1.0","new_version":"5.3.1","repository_url":"https://github.com/syrupy-project/syrupy"}],"path":null,"ecosystem":"pip"},"body":"Bumps [syrupy](https://github.com/syrupy-project/syrupy) from 5.1.0 to 5.3.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/syrupy-project/syrupy/releases\"\u003esyrupy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.3.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix(test): mark pydantic and attrs as dependencies for running internal tests by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1108\"\u003esyrupy-project/syrupy#1108\u003c/a\u003e -- \u003cstrong\u003eThis only affects users trying to run the syrupy tests themselves, not consumers of syrupy.\u003c/strong\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): update astral-sh/setup-uv action to v8.1.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1103\"\u003esyrupy-project/syrupy#1103\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update python docker tag to v3.14.4 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1102\"\u003esyrupy-project/syrupy#1102\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update benchmark-action/github-action-benchmark action to v1.22.1 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1105\"\u003esyrupy-project/syrupy#1105\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.3.0...v5.3.1\"\u003ehttps://github.com/syrupy-project/syrupy/compare/v5.3.0...v5.3.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efeat: add --snapshot-update-new-only flag (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/843\"\u003e#843\u003c/a\u003e) by \u003ca href=\"https://github.com/SAY-5\"\u003e\u003ccode\u003e@​SAY-5\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1098\"\u003esyrupy-project/syrupy#1098\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc.\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore: move release marker by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1095\"\u003esyrupy-project/syrupy#1095\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update codecov/codecov-action action to v5.5.4 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1089\"\u003esyrupy-project/syrupy#1089\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency pytest to v9.0.3 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1096\"\u003esyrupy-project/syrupy#1096\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: include tests in sdist by \u003ca href=\"https://github.com/Lovlace777\"\u003e\u003ccode\u003e@​Lovlace777\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1099\"\u003esyrupy-project/syrupy#1099\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: skip benchmark on forks by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1100\"\u003esyrupy-project/syrupy#1100\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update dev dependencies by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1101\"\u003esyrupy-project/syrupy#1101\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/Lovlace777\"\u003e\u003ccode\u003e@​Lovlace777\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1099\"\u003esyrupy-project/syrupy#1099\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SAY-5\"\u003e\u003ccode\u003e@​SAY-5\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1098\"\u003esyrupy-project/syrupy#1098\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.2.0...v5.3.0\"\u003ehttps://github.com/syrupy-project/syrupy/compare/v5.2.0...v5.3.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.2.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): update actions/checkout action to v6.0.2 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1065\"\u003esyrupy-project/syrupy#1065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update actions/setup-python action to v6.2.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1066\"\u003esyrupy-project/syrupy#1066\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency ruff to v0.14.14 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1067\"\u003esyrupy-project/syrupy#1067\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency coverage to v7.13.2 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1068\"\u003esyrupy-project/syrupy#1068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: migrate to uv, close \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1019\"\u003e#1019\u003c/a\u003e by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1049\"\u003esyrupy-project/syrupy#1049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency coverage to v7.13.2 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1069\"\u003esyrupy-project/syrupy#1069\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency debugpy to v1.8.19 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1070\"\u003esyrupy-project/syrupy#1070\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency mypy to v1.19.1 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1071\"\u003esyrupy-project/syrupy#1071\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency ruff to v0.14.14 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1072\"\u003esyrupy-project/syrupy#1072\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/syrupy-project/syrupy/blob/main/CHANGELOG.md\"\u003esyrupy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/releases/tag/v5.3.1\"\u003ev5.3.1\u003c/a\u003e (2026-05-31)\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix(test): mark pydantic and attrs as dependencies for running internal tests by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1108\"\u003esyrupy-project/syrupy#1108\u003c/a\u003e -- \u003cstrong\u003eThis only affects users trying to run the syrupy tests themselves, not consumers of syrupy.\u003c/strong\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): update astral-sh/setup-uv action to v8.1.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1103\"\u003esyrupy-project/syrupy#1103\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update python docker tag to v3.14.4 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1102\"\u003esyrupy-project/syrupy#1102\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update benchmark-action/github-action-benchmark action to v1.22.1 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1105\"\u003esyrupy-project/syrupy#1105\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.3.0...v5.3.1\"\u003ehttps://github.com/syrupy-project/syrupy/compare/v5.3.0...v5.3.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/releases/tag/v5.3.0\"\u003ev5.3.0\u003c/a\u003e (2026-05-31)\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efeat: add --snapshot-update-new-only flag (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/843\"\u003e#843\u003c/a\u003e) by \u003ca href=\"https://github.com/SAY-5\"\u003e\u003ccode\u003e@​SAY-5\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1098\"\u003esyrupy-project/syrupy#1098\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc.\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore: move release marker by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1095\"\u003esyrupy-project/syrupy#1095\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update codecov/codecov-action action to v5.5.4 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1089\"\u003esyrupy-project/syrupy#1089\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency pytest to v9.0.3 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1096\"\u003esyrupy-project/syrupy#1096\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: include tests in sdist by \u003ca href=\"https://github.com/Lovlace777\"\u003e\u003ccode\u003e@​Lovlace777\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1099\"\u003esyrupy-project/syrupy#1099\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: skip benchmark on forks by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1100\"\u003esyrupy-project/syrupy#1100\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update dev dependencies by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1101\"\u003esyrupy-project/syrupy#1101\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/Lovlace777\"\u003e\u003ccode\u003e@​Lovlace777\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1099\"\u003esyrupy-project/syrupy#1099\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SAY-5\"\u003e\u003ccode\u003e@​SAY-5\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1098\"\u003esyrupy-project/syrupy#1098\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.2.0...v5.3.0\"\u003ehttps://github.com/syrupy-project/syrupy/compare/v5.2.0...v5.3.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/releases/tag/v5.2.0\"\u003ev5.2.0\u003c/a\u003e (2026-05-16)\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): update actions/checkout action to v6.0.2 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1065\"\u003esyrupy-project/syrupy#1065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update actions/setup-python action to v6.2.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1066\"\u003esyrupy-project/syrupy#1066\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency ruff to v0.14.14 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1067\"\u003esyrupy-project/syrupy#1067\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency coverage to v7.13.2 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1068\"\u003esyrupy-project/syrupy#1068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: migrate to uv, close \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1019\"\u003e#1019\u003c/a\u003e by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1049\"\u003esyrupy-project/syrupy#1049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency coverage to v7.13.2 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1069\"\u003esyrupy-project/syrupy#1069\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/c528216d5fa53517f9df34f49db55d3e455377c9\"\u003e\u003ccode\u003ec528216\u003c/code\u003e\u003c/a\u003e fix(test): mark pydantic and attrs as dependencies for running internal tests...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/32b9ccb6d2da49b91e3052e33b9e1e208963bf55\"\u003e\u003ccode\u003e32b9ccb\u003c/code\u003e\u003c/a\u003e chore(deps): update benchmark-action/github-action-benchmark action to v1.22....\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/520f813ebf7f5c61bc45564b750cbfa836df0f2f\"\u003e\u003ccode\u003e520f813\u003c/code\u003e\u003c/a\u003e chore(deps): update python docker tag to v3.14.4 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1102\"\u003e#1102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/9ad6eb48c90cadf3f1e13705414a612eed72637f\"\u003e\u003ccode\u003e9ad6eb4\u003c/code\u003e\u003c/a\u003e chore(deps): update astral-sh/setup-uv action to v8.1.0 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1103\"\u003e#1103\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/06c5ab4688ad816ef50c320f764f20e53ea89ae5\"\u003e\u003ccode\u003e06c5ab4\u003c/code\u003e\u003c/a\u003e chore(release): 5.3.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/5887f25a02e6bb6d0b2b0cd9853d86c259345f1c\"\u003e\u003ccode\u003e5887f25\u003c/code\u003e\u003c/a\u003e chore: update dev dependencies (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1101\"\u003e#1101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/2daa56e2b74f7ed1b3e74086d9509ac7454a41be\"\u003e\u003ccode\u003e2daa56e\u003c/code\u003e\u003c/a\u003e feat: add --snapshot-update-new-only flag (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/843\"\u003e#843\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1098\"\u003e#1098\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/61c4e07e7a710270c4ebc3435652bc7d945fc60c\"\u003e\u003ccode\u003e61c4e07\u003c/code\u003e\u003c/a\u003e chore: skip benchmark on forks (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1100\"\u003e#1100\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/a4880a798e64546118c4afc4e1b655cf1ea17cb2\"\u003e\u003ccode\u003ea4880a7\u003c/code\u003e\u003c/a\u003e fix: include tests in sdist (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1099\"\u003e#1099\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/719a71ab83f94119072d5db79568b90b0455a7a1\"\u003e\u003ccode\u003e719a71a\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency pytest to v9.0.3 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1096\"\u003e#1096\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.1.0...v5.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=syrupy\u0026package-manager=uv\u0026previous-version=5.1.0\u0026new-version=5.3.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/john-kurkowski/taxes/pull/13","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/john-kurkowski%2Ftaxes/issues/13","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/13/packages"},{"uuid":"4473189974","node_id":"PR_kwDOOhGBj87c2x9-","number":670,"state":"closed","title":"chore(deps): bump the major group in /libs/community with 9 updates","user":"dependabot[bot]","labels":["dependencies","infra","python:uv"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-05-26T15:14:18.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-18T23:10:03.000Z","updated_at":"2026-05-26T15:33:01.000Z","time_to_close":662655,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"major","update_count":9,"packages":[{"name":"pytest-cov","old_version":"6.3.0","new_version":"7.1.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pytest-asyncio","old_version":"0.26.0","new_version":"1.3.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"syrupy","old_version":"4.9.1","new_version":"5.2.0","repository_url":"https://github.com/syrupy-project/syrupy"},{"name":"setuptools","old_version":"78.1.1","new_version":"82.0.1","repository_url":"https://github.com/pypa/setuptools"},{"name":"mypy","old_version":"1.20.0","new_version":"2.1.0","repository_url":"https://github.com/python/mypy"},{"name":"types-pytz","old_version":"2023.4.0.20240130","new_version":"2026.2.0.20260518","repository_url":"https://github.com/python/typeshed"},{"name":"mypy-protobuf","old_version":"3.7.0","new_version":"5.1.0","repository_url":"https://github.com/nipunn1313/mypy-protobuf"},{"name":"azure-search-documents","old_version":"11.6.0","new_version":"12.0.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"pdfminer-six","old_version":"20251230","new_version":"20260107","repository_url":"https://github.com/pdfminer/pdfminer.six"}],"path":"/libs/community","ecosystem":"pip"},"body":"Bumps the major group in /libs/community with 9 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `6.3.0` | `7.1.0` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `0.26.0` | `1.3.0` |\n| [syrupy](https://github.com/syrupy-project/syrupy) | `4.9.1` | `5.2.0` |\n| [setuptools](https://github.com/pypa/setuptools) | `78.1.1` | `82.0.1` |\n| [mypy](https://github.com/python/mypy) | `1.20.0` | `2.1.0` |\n| [types-pytz](https://github.com/python/typeshed) | `2023.4.0.20240130` | `2026.2.0.20260518` |\n| [mypy-protobuf](https://github.com/nipunn1313/mypy-protobuf) | `3.7.0` | `5.1.0` |\n| [azure-search-documents](https://github.com/Azure/azure-sdk-for-python) | `11.6.0` | `12.0.0` |\n| [pdfminer-six](https://github.com/pdfminer/pdfminer.six) | `20251230` | `20260107` |\n\nUpdates `pytest-cov` from 6.3.0 to 7.1.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst\"\u003epytest-cov's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.1.0 (2026-03-21)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed total coverage computation to always be consistent, regardless of reporting settings.\nPreviously some reports could produce different total counts, and consequently can make --cov-fail-under behave different depending on\nreporting options.\nSee \u003ccode\u003e[#641](https://github.com/pytest-dev/pytest-cov/issues/641) \u0026lt;https://github.com/pytest-dev/pytest-cov/issues/641\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove handling of ResourceWarning from sqlite3.\u003c/p\u003e\n\u003cp\u003eThe plugin adds warning filter for sqlite3 \u003ccode\u003eResourceWarning\u003c/code\u003e unclosed database (since 6.2.0).\nIt checks if there is already existing plugin for this message by comparing filter regular expression.\nWhen filter is specified on command line the message is escaped and does not match an expected message.\nA check for an escaped regular expression is added to handle this case.\u003c/p\u003e\n\u003cp\u003eWith this fix one can suppress \u003ccode\u003eResourceWarning\u003c/code\u003e from sqlite3 from command line::\u003c/p\u003e\n\u003cp\u003epytest -W \u0026quot;ignore:unclosed database in \u0026lt;sqlite3.Connection object at:ResourceWarning\u0026quot; ...\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eVarious improvements to documentation.\nContributed by Art Pelling in \u003ccode\u003e[#718](https://github.com/pytest-dev/pytest-cov/issues/718) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/718\u0026gt;\u003c/code\u003e_ and\n\u0026quot;vivodi\u0026quot; in \u003ccode\u003e[#738](https://github.com/pytest-dev/pytest-cov/issues/738) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/738\u0026gt;\u003c/code\u003e\u003cem\u003e.\nAlso closed \u003ccode\u003e[#736](https://github.com/pytest-dev/pytest-cov/issues/736) \u0026lt;https://github.com/pytest-dev/pytest-cov/issues/736\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed some assertions in tests.\nContributed by in Markéta Machová in \u003ccode\u003e[#722](https://github.com/pytest-dev/pytest-cov/issues/722) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/722\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved unnecessary coverage configuration copying (meant as a backup because reporting commands had configuration side-effects before coverage 5.0).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e7.0.0 (2025-09-09)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped support for subprocesses measurement.\u003c/p\u003e\n\u003cp\u003eIt was a feature added long time ago when coverage lacked a nice way to measure subprocesses created in tests.\nIt relied on a \u003ccode\u003e.pth\u003c/code\u003e file, there was no way to opt-out and it created bad interations\nwith \u003ccode\u003ecoverage's new patch system \u0026lt;https://coverage.readthedocs.io/en/latest/config.html#run-patch\u0026gt;\u003c/code\u003e_ added\nin \u003ccode\u003e7.10 \u0026lt;https://coverage.readthedocs.io/en/7.10.6/changes.html#version-7-10-0-2025-07-24\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003eTo migrate to this release you might need to enable the suprocess patch, example for \u003ccode\u003e.coveragerc\u003c/code\u003e:\u003c/p\u003e\n\u003cp\u003e.. code-block:: ini\u003c/p\u003e\n\u003cp\u003e[run]\npatch = subprocess\u003c/p\u003e\n\u003cp\u003eThis release also requires at least coverage 7.10.6.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSwitched packaging to have metadata completely in \u003ccode\u003epyproject.toml\u003c/code\u003e and use \u003ccode\u003ehatchling \u0026lt;https://pypi.org/project/hatchling/\u0026gt;\u003c/code\u003e_ for\nbuilding.\nContributed by Ofek Lev in \u003ccode\u003e[#551](https://github.com/pytest-dev/pytest-cov/issues/551) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/551\u0026gt;\u003c/code\u003e_\nwith some extras in \u003ccode\u003e[#716](https://github.com/pytest-dev/pytest-cov/issues/716) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/716\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved some not really necessary testing deps like \u003ccode\u003esix\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/66c8a526b1246b5eb8fb1bc218878131bc628622\"\u003e\u003ccode\u003e66c8a52\u003c/code\u003e\u003c/a\u003e Bump version: 7.0.0 → 7.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/f7076624784332594aa4cb3585d4757d295db15e\"\u003e\u003ccode\u003ef707662\u003c/code\u003e\u003c/a\u003e Make the examples use pypy 3.11.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/6049a7847872e3139e6c82e93787123df5dc8672\"\u003e\u003ccode\u003e6049a78\u003c/code\u003e\u003c/a\u003e Make context test use the old ctracer (seems the new sysmon tracer behaves di...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/8ebf20bbbc73478b3f8fd36d30237d9ea083f06b\"\u003e\u003ccode\u003e8ebf20b\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/861d30e60d571f97259c6b718b71c819d5dbc3b9\"\u003e\u003ccode\u003e861d30e\u003c/code\u003e\u003c/a\u003e Remove the backup context manager  - shouldn't be needed since coverage 5.0, ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/fd4c956014035527f0c3c8d7faef3f8cfdadac7f\"\u003e\u003ccode\u003efd4c956\u003c/code\u003e\u003c/a\u003e Pass the precision on the nulled total (seems that there's some caching goion...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/78c9c4ecb005faf4962fd86ff7bf9c9cce9554d6\"\u003e\u003ccode\u003e78c9c4e\u003c/code\u003e\u003c/a\u003e Only run the 3.9 on older deps.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/4849a922e8be725c662a3d9175da571ace6545dc\"\u003e\u003ccode\u003e4849a92\u003c/code\u003e\u003c/a\u003e Punctuation.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/197c35e2f37031fd1927715307ab6eed7cb3d2b7\"\u003e\u003ccode\u003e197c35e\u003c/code\u003e\u003c/a\u003e Update changelog and hopefully I don't forget to publish release again :))\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/14dc1c92d44108384e39803888635fdbfc578b7f\"\u003e\u003ccode\u003e14dc1c9\u003c/code\u003e\u003c/a\u003e Update examples to use 3.11 and make the adhoc layout example look a bit more...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-cov/compare/v6.3.0...v7.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-asyncio` from 0.26.0 to 1.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/releases\"\u003epytest-asyncio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epytest-asyncio 1.3.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/tree/1.3.0\"\u003e1.3.0\u003c/a\u003e - 2025-11-10\u003c/h1\u003e\n\u003ch2\u003eRemoved\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.9 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1278\"\u003e#1278\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for pytest 9 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1279\"\u003e#1279\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNotes for Downstream Packagers\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTested Python versions include free threaded Python 3.14t (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1274\"\u003e#1274\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTests are run in the same pytest process, instead of spawning a subprocess with \u003ccode\u003epytest.Pytester.runpytest_subprocess\u003c/code\u003e. This prevents the test suite from accidentally using a system installation of pytest-asyncio, which could result in test errors. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1275\"\u003e#1275\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epytest-asyncio 1.2.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/tree/1.2.0\"\u003e1.2.0\u003c/a\u003e - 2025-09-12\u003c/h1\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e--asyncio-debug\u003c/code\u003e CLI option and \u003ccode\u003easyncio_debug\u003c/code\u003e configuration option to enable asyncio debug mode for the default event loop. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/980\"\u003e#980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003epytest.UsageError\u003c/code\u003e for invalid configuration values of \u003ccode\u003easyncio_default_fixture_loop_scope\u003c/code\u003e and \u003ccode\u003easyncio_default_test_loop_scope\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1189\"\u003e#1189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCompatibility with the Pyright type checker (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/731\"\u003e#731\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eRuntimeError: There is no current event loop in thread 'MainThread'\u003c/code\u003e when any test unsets the event loop (such as when using \u003ccode\u003easyncio.run\u003c/code\u003e and \u003ccode\u003easyncio.Runner\u003c/code\u003e). (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1177\"\u003e#1177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeprecation warning when decorating an asynchronous fixture with \u003ccode\u003e@pytest.fixture\u003c/code\u003e in [strict]{.title-ref} mode. The warning message now refers to the correct package. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1198\"\u003e#1198\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNotes for Downstream Packagers\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump the minimum required version of tox to v4.28. This change is only relevant if you use the \u003ccode\u003etox.ini\u003c/code\u003e file provided by pytest-asyncio to run tests.\u003c/li\u003e\n\u003cli\u003eExtend dependency on typing-extensions\u0026gt;=4.12 from Python\u0026lt;3.10 to Python\u0026lt;3.13.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epytest-asyncio 1.1.1\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/tree/v1.1.1\"\u003ev1.1.1\u003c/a\u003e - 2025-09-12\u003c/h1\u003e\n\u003ch2\u003eNotes for Downstream Packagers\u003c/h2\u003e\n\u003cp\u003e- Addresses a build problem with setuptoos-scm \u0026gt;= 9 caused by invalid setuptools-scm configuration in pytest-asyncio. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1192\"\u003e#1192\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003epytest-asyncio 1.1.0\u003c/h2\u003e\n\u003ch1\u003eAdded\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003ePropagation of ContextVars from async fixtures to other fixtures and tests on Python 3.10 and older (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/127\"\u003e#127\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCancellation of tasks when the \u003ccode\u003eloop_scope\u003c/code\u003e ends (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/200\"\u003e#200\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWarning when the current event loop is closed by a test\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eFixed\u003c/h1\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/2e9695fcf8c5c514f30f57b7d14ab83846357b96\"\u003e\u003ccode\u003e2e9695f\u003c/code\u003e\u003c/a\u003e docs: Compile changelog for v1.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/dd0e9ba3fa672fd6bf375004319742f8d3a50e12\"\u003e\u003ccode\u003edd0e9ba\u003c/code\u003e\u003c/a\u003e docs: Reference correct issue in news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/4c31abe5bf46bca3c9bdc7b18405f3deba4145d0\"\u003e\u003ccode\u003e4c31abe\u003c/code\u003e\u003c/a\u003e Build(deps): Bump nh3 from 0.3.1 to 0.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/13e94770d7bb146c329ae0e02486c0a6b38f3772\"\u003e\u003ccode\u003e13e9477\u003c/code\u003e\u003c/a\u003e Link to migration guides from changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/4d2cf3c36f47d7c4d563d401cdf229b35da34fbe\"\u003e\u003ccode\u003e4d2cf3c\u003c/code\u003e\u003c/a\u003e tests: handle Python 3.14 DefaultEventLoopPolicy deprecation warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/ee3549b6efb729b934e370e2be8040b25b034010\"\u003e\u003ccode\u003eee3549b\u003c/code\u003e\u003c/a\u003e test: Remove obsolete test for the event_loop fixture.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/7a67c82c5ae548f0968438e9dfa0f282d51c4597\"\u003e\u003ccode\u003e7a67c82\u003c/code\u003e\u003c/a\u003e tests: Fix failing test by preventing warning conversion to error.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/a17b689a750d05b6fc9369f5fb2b06baaba83536\"\u003e\u003ccode\u003ea17b689\u003c/code\u003e\u003c/a\u003e test: add pytest config to isolated test directories\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/18afc9df5a3153dc1fbdc4e11a56517ef95480df\"\u003e\u003ccode\u003e18afc9d\u003c/code\u003e\u003c/a\u003e fix(tests): replace runpytest_subprocess with runpytest\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/cdc6bd1de75b4738289eafd546f5e27a0bfd3b41\"\u003e\u003ccode\u003ecdc6bd1\u003c/code\u003e\u003c/a\u003e Add support for pytest 9 and drop Python 3.9 support\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/compare/v0.26.0...v1.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `syrupy` from 4.9.1 to 5.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/syrupy-project/syrupy/releases\"\u003esyrupy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.2.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): update actions/checkout action to v6.0.2 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1065\"\u003esyrupy-project/syrupy#1065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update actions/setup-python action to v6.2.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1066\"\u003esyrupy-project/syrupy#1066\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency ruff to v0.14.14 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1067\"\u003esyrupy-project/syrupy#1067\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency coverage to v7.13.2 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1068\"\u003esyrupy-project/syrupy#1068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: migrate to uv, close \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1019\"\u003e#1019\u003c/a\u003e by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1049\"\u003esyrupy-project/syrupy#1049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency coverage to v7.13.2 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1069\"\u003esyrupy-project/syrupy#1069\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency debugpy to v1.8.19 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1070\"\u003esyrupy-project/syrupy#1070\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency mypy to v1.19.1 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1071\"\u003esyrupy-project/syrupy#1071\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency ruff to v0.14.14 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1072\"\u003esyrupy-project/syrupy#1072\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update python docker tag to v3.14.3 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1073\"\u003esyrupy-project/syrupy#1073\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update astral-sh/setup-uv action to v7.3.1 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1076\"\u003esyrupy-project/syrupy#1076\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update lock file by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1077\"\u003esyrupy-project/syrupy#1077\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update benchmark-action/github-action-benchmark action to v1.21.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1078\"\u003esyrupy-project/syrupy#1078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update astral-sh/setup-uv action to v7.5.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1080\"\u003esyrupy-project/syrupy#1080\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1081\"\u003e#1081\u003c/a\u003e): Handle unicode line-endings correctly when serializing by \u003ca href=\"https://github.com/DRMacIver\"\u003e\u003ccode\u003e@​DRMacIver\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1082\"\u003esyrupy-project/syrupy#1082\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: add DRMacIver as a contributor for bug by \u003ca href=\"https://github.com/allcontributors\"\u003e\u003ccode\u003e@​allcontributors\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1083\"\u003esyrupy-project/syrupy#1083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update lockfile by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1086\"\u003esyrupy-project/syrupy#1086\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: migrate off semantic-release to trusted publishing by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1093\"\u003esyrupy-project/syrupy#1093\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: set name/email by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1094\"\u003esyrupy-project/syrupy#1094\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/DRMacIver\"\u003e\u003ccode\u003e@​DRMacIver\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1082\"\u003esyrupy-project/syrupy#1082\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.1.0...v5.2.0\"\u003ehttps://github.com/syrupy-project/syrupy/compare/v5.1.0...v5.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.1.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.0.0...v5.1.0\"\u003e5.1.0\u003c/a\u003e (2026-01-25)\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd serializer plugin system; plugins for data models (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1062\"\u003e#1062\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/df9bc8f6b3a222dde82167e10a2e6bb57456305a\"\u003edf9bc8f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev5.0.0\u003c/h2\u003e\n\u003ch2\u003eSyrupy 5.0.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e(2025-09-28)\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eThis release introduces new features, bug fixes, and a major license change. It also includes several \u003cstrong\u003ebreaking changes\u003c/strong\u003e, so please review those carefully before upgrading.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch3\u003eNew Features ✨\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eAdd \u003ccode\u003e--snapshot-dirname\u003c/code\u003e option:\u003c/strong\u003e A new option, \u003ccode\u003e--snapshot-dirname\u003c/code\u003e, is now available to change the default directory snapshots are stored in. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003e#810\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003esyrupy-project/syrupy#810\u003c/a\u003e))\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRemove private underscore prefix:\u003c/strong\u003e The unnecessary underscore prefixes have been removed from public methods for better code clarity. ([\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003e8cfc905\u003c/a\u003e](\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003ehttps://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\u003c/a\u003e))\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c!-- 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/syrupy-project/syrupy/blob/main/CHANGELOG.md\"\u003esyrupy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/releases/tag/v5.2.0\"\u003ev5.2.0\u003c/a\u003e (2026-05-16)\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): update actions/checkout action to v6.0.2 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1065\"\u003esyrupy-project/syrupy#1065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update actions/setup-python action to v6.2.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1066\"\u003esyrupy-project/syrupy#1066\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency ruff to v0.14.14 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1067\"\u003esyrupy-project/syrupy#1067\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency coverage to v7.13.2 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1068\"\u003esyrupy-project/syrupy#1068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: migrate to uv, close \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1019\"\u003e#1019\u003c/a\u003e by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1049\"\u003esyrupy-project/syrupy#1049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency coverage to v7.13.2 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1069\"\u003esyrupy-project/syrupy#1069\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency debugpy to v1.8.19 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1070\"\u003esyrupy-project/syrupy#1070\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency mypy to v1.19.1 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1071\"\u003esyrupy-project/syrupy#1071\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency ruff to v0.14.14 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1072\"\u003esyrupy-project/syrupy#1072\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update python docker tag to v3.14.3 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1073\"\u003esyrupy-project/syrupy#1073\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update astral-sh/setup-uv action to v7.3.1 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1076\"\u003esyrupy-project/syrupy#1076\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update lock file by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1077\"\u003esyrupy-project/syrupy#1077\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update benchmark-action/github-action-benchmark action to v1.21.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1078\"\u003esyrupy-project/syrupy#1078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update astral-sh/setup-uv action to v7.5.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1080\"\u003esyrupy-project/syrupy#1080\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1081\"\u003e#1081\u003c/a\u003e): Handle unicode line-endings correctly when serializing by \u003ca href=\"https://github.com/DRMacIver\"\u003e\u003ccode\u003e@​DRMacIver\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1082\"\u003esyrupy-project/syrupy#1082\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: add DRMacIver as a contributor for bug by \u003ca href=\"https://github.com/allcontributors\"\u003e\u003ccode\u003e@​allcontributors\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1083\"\u003esyrupy-project/syrupy#1083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update lockfile by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1086\"\u003esyrupy-project/syrupy#1086\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: migrate off semantic-release to trusted publishing by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1093\"\u003esyrupy-project/syrupy#1093\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: set name/email by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1094\"\u003esyrupy-project/syrupy#1094\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/DRMacIver\"\u003e\u003ccode\u003e@​DRMacIver\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1082\"\u003esyrupy-project/syrupy#1082\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.1.0...v5.2.0\"\u003ehttps://github.com/syrupy-project/syrupy/compare/v5.1.0...v5.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.1.1...v5.1.2\"\u003e5.1.2\u003c/a\u003e (2026-04-06)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebuild configuration (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1086\"\u003e#1086\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/a997e3e643b55342af2e1d89d7b24d6c1fbadc1f\"\u003ea997e3e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.1.0...v5.1.1\"\u003e5.1.1\u003c/a\u003e (2026-04-06)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1081\"\u003e#1081\u003c/a\u003e:\u003c/strong\u003e Handle unicode line-endings correctly when serializing (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1082\"\u003e#1082\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/04f4cc8e21ae743d4ebc95a0961f0802f57f1856\"\u003e04f4cc8\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1081\"\u003e#1081\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.0.0...v5.1.0\"\u003e5.1.0\u003c/a\u003e (2026-01-25)\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd serializer plugin system; plugins for data models (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1062\"\u003e#1062\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/df9bc8f6b3a222dde82167e10a2e6bb57456305a\"\u003edf9bc8f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\"\u003e5.0.0\u003c/a\u003e (2025-09-28)\u003c/h1\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/c6bc988ee61ded4c1bea1e13a1d95e42c68219b0\"\u003e\u003ccode\u003ec6bc988\u003c/code\u003e\u003c/a\u003e chore: push on correct branch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/659f456bfef13df50fef5c95f84248b8fd720a60\"\u003e\u003ccode\u003e659f456\u003c/code\u003e\u003c/a\u003e chore: add id-token write\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/6401bc28aab02447dfc698beba33df6fd6d93817\"\u003e\u003ccode\u003e6401bc2\u003c/code\u003e\u003c/a\u003e chore: set name/email (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1094\"\u003e#1094\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/f1e3f0bac92a683a7412d4e1fbaf076e82c932de\"\u003e\u003ccode\u003ef1e3f0b\u003c/code\u003e\u003c/a\u003e chore: migrate off semantic-release to trusted publishing (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1093\"\u003e#1093\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8ff4d46fe1b4392d9d2f3ac1a2228911d9939948\"\u003e\u003ccode\u003e8ff4d46\u003c/code\u003e\u003c/a\u003e chore(release): 5.1.2 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/a997e3e643b55342af2e1d89d7b24d6c1fbadc1f\"\u003e\u003ccode\u003ea997e3e\u003c/code\u003e\u003c/a\u003e fix: build configuration (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1086\"\u003e#1086\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/561c94a136b183f5f22eb71f5b660e0f46e01b5b\"\u003e\u003ccode\u003e561c94a\u003c/code\u003e\u003c/a\u003e chore(release): 5.1.1 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/dfdba17b3cb983a5452f35e712c074cc1186d935\"\u003e\u003ccode\u003edfdba17\u003c/code\u003e\u003c/a\u003e docs: add DRMacIver as a contributor for bug (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1083\"\u003e#1083\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/04f4cc8e21ae743d4ebc95a0961f0802f57f1856\"\u003e\u003ccode\u003e04f4cc8\u003c/code\u003e\u003c/a\u003e fix(\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1081\"\u003e#1081\u003c/a\u003e): Handle unicode line-endings correctly when serializing (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1082\"\u003e#1082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/34f9b27e699a690e7ca1644a8a64d10a0e7d789c\"\u003e\u003ccode\u003e34f9b27\u003c/code\u003e\u003c/a\u003e chore(deps): update astral-sh/setup-uv action to v7.5.0 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1080\"\u003e#1080\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `setuptools` from 78.1.1 to 82.0.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/setuptools/blob/main/NEWS.rst\"\u003esetuptools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev82.0.1\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix the loading of \u003ccode\u003elauncher manifest.xml\u003c/code\u003e file. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5047\"\u003e#5047\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReplaced deprecated \u003ccode\u003ejson.__version__\u003c/code\u003e with fixture in tests. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5186\"\u003e#5186\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd advice about how to improve predictability when installing sdists. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5168\"\u003e#5168\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4941\"\u003e#4941\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5157\"\u003e#5157\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5169\"\u003e#5169\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5175\"\u003e#5175\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev82.0.0\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epkg_resources\u003c/code\u003e has been removed from Setuptools. Most common uses of \u003ccode\u003epkg_resources\u003c/code\u003e have been superseded by the \u003ccode\u003eimportlib.resources \u0026lt;https://docs.python.org/3/library/importlib.resources.html\u0026gt;\u003c/code\u003e_ and \u003ccode\u003eimportlib.metadata \u0026lt;https://docs.python.org/3/library/importlib.metadata.html\u0026gt;\u003c/code\u003e_ projects. Projects and environments relying on \u003ccode\u003epkg_resources\u003c/code\u003e for namespace packages or other behavior should depend on older versions of \u003ccode\u003esetuptools\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/3085\"\u003e#3085\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev81.0.0\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved support for the --dry-run parameter to setup.py. This one feature by its nature threads through lots of core and ancillary functionality, adding complexity and friction. Removal of this parameter will help decouple the compiler functionality from distutils and thus the eventual full integration of distutils. These changes do affect some class and function signatures, so any derivative functionality may require some compatibility shims to support their expected interface. Please report any issues to the Setuptools project for investigation. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev80.10.2\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate vendored dependencies. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5159\"\u003e#5159\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eMisc\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/5a13876673a41e3cd21d4d6e587f53d0fb4fd8e5\"\u003e\u003ccode\u003e5a13876\u003c/code\u003e\u003c/a\u003e Bump version: 82.0.0 → 82.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/51ab8f183f1c4112675d8d6ec6b004406d518ee8\"\u003e\u003ccode\u003e51ab8f1\u003c/code\u003e\u003c/a\u003e Avoid using (deprecated) 'json.\u003cstrong\u003eversion\u003c/strong\u003e' in tests (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5194\"\u003e#5194\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/f9c37b20bb0ed11203f676f9683452a4c3ace6f6\"\u003e\u003ccode\u003ef9c37b2\u003c/code\u003e\u003c/a\u003e Docs/CI: Fix intersphinx references (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5195\"\u003e#5195\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/8173db2a4fc0f6cb28926b3dba59116b79f435c8\"\u003e\u003ccode\u003e8173db2\u003c/code\u003e\u003c/a\u003e Docs: Fix intersphinx references\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/09bafbc74923f2a3591b5b098be75d6af6ca5141\"\u003e\u003ccode\u003e09bafbc\u003c/code\u003e\u003c/a\u003e Fix past tense on newsfragment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/461ea56c8e629819a23920f44d9298d4f041abde\"\u003e\u003ccode\u003e461ea56\u003c/code\u003e\u003c/a\u003e Add news fragment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/c4ffe535b58235ff9f9ebe90d24a2cffb57e70ae\"\u003e\u003ccode\u003ec4ffe53\u003c/code\u003e\u003c/a\u003e Avoid using (deprecated) 'json.\u003cstrong\u003eversion\u003c/strong\u003e' in tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/749258b1a96c7accc05ea7d842fb19fc378866fe\"\u003e\u003ccode\u003e749258b\u003c/code\u003e\u003c/a\u003e Cleanup \u003ccode\u003epkg_resources\u003c/code\u003e dependencies and configuration (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5175\"\u003e#5175\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/2019c16701667db1010c62ec11c6ef78c2e58206\"\u003e\u003ccode\u003e2019c16\u003c/code\u003e\u003c/a\u003e Parse \u003ccode\u003eext-module.define-macros\u003c/code\u003e from \u003ccode\u003epyproject.toml\u003c/code\u003e as list of tuples (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5169\"\u003e#5169\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/b809c86a37d97fcce290d5f51d4c293ab40bc685\"\u003e\u003ccode\u003eb809c86\u003c/code\u003e\u003c/a\u003e Sync setuptools schema with validate-pyproject (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5157\"\u003e#5157\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/setuptools/compare/v78.1.1...v82.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.20.0 to 2.1.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eMypy Release Notes\u003c/h1\u003e\n\u003ch2\u003eNext Release\u003c/h2\u003e\n\u003ch2\u003eMypy 2.1\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 2.1.0 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\nimprovements and bug fixes. You can install it as follows:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython3 -m pip install -U mypy\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eYou can read the full documentation for this release on \u003ca href=\"http://mypy.readthedocs.io\"\u003eRead the Docs\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003elibrt.vecs: Fast Growable Array Type for Mypyc\u003c/h3\u003e\n\u003cp\u003eThe new \u003ccode\u003elibrt.vecs\u003c/code\u003e module provides an efficient growable array type \u003ccode\u003evec\u003c/code\u003e that is\noptimized for mypyc use. It provides fast, packed arrays with integer and floating point\nvalue types, which can be \u003cstrong\u003eseveral times faster\u003c/strong\u003e than \u003ccode\u003elist\u003c/code\u003e, and tens of times faster\nthan \u003ccode\u003earray.array\u003c/code\u003e in code compiled using mypyc. It also supports nested \u003ccode\u003evec\u003c/code\u003e objects and\nnon-value-type items, such as \u003ccode\u003evec[vec[str]]\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eRefer to the \u003ca href=\"https://mypyc.readthedocs.io/en/latest/librt_vecs.html\"\u003edocumentation\u003c/a\u003e for\nthe details.\u003c/p\u003e\n\u003cp\u003eContributed by Jukka Lehtosalo.\u003c/p\u003e\n\u003ch3\u003elibrt.random: Fast Pseudo-Random Number Generation\u003c/h3\u003e\n\u003cp\u003eThe new \u003ccode\u003elibrt.random\u003c/code\u003e module provides fast pseudo-random number generation that is\noptimized for code compiled using mypyc. It can be 3x to 10x faster than the stdlib\n\u003ccode\u003erandom\u003c/code\u003e module in compiled code.\u003c/p\u003e\n\u003cp\u003eRefer to the \u003ca href=\"https://mypyc.readthedocs.io/en/latest/librt_random.html\"\u003edocumentation\u003c/a\u003e for\nthe details.\u003c/p\u003e\n\u003cp\u003eContributed by Jukka Lehtosalo (PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21433\"\u003e21433\u003c/a\u003e).\u003c/p\u003e\n\u003ch3\u003eMypyc Improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMake compilation order with multiple files consistent (Piotr Sawicki, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21419\"\u003e21419\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on accessing \u003ccode\u003eStopAsyncIteration\u003c/code\u003e (Piotr Sawicki, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21406\"\u003e21406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix incremental compilation with \u003ccode\u003eseparate\u003c/code\u003e flag (Vaggelis Danias, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21299\"\u003e21299\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes to Crashes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix crash on partial type with \u003ccode\u003e--allow-redefinition\u003c/code\u003e and \u003ccode\u003eglobal\u003c/code\u003e declaration (Jukka Lehtosalo, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21428\"\u003e21428\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix broken awaitable generator patching (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21435\"\u003e21435\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges to Messages\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c1c336d7e34eb313080c79b156518c58d27c7234\"\u003e\u003ccode\u003ec1c336d\u003c/code\u003e\u003c/a\u003e Remove +dev from version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/74df14b7cbf08140236aa45bbb7f42219b0b1df7\"\u003e\u003ccode\u003e74df14b\u003c/code\u003e\u003c/a\u003e Add changelog for mypy 2.1 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21464\"\u003e#21464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/022d9bc96f86c40f338a5cf150f1806cc8f300ff\"\u003e\u003ccode\u003e022d9bc\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;TypeForm: Enable by default (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21262\"\u003e#21262\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8826288214f1cb31496e610667481221e025359c\"\u003e\u003ccode\u003e8826288\u003c/code\u003e\u003c/a\u003e [mypyc] Document librt.random (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21463\"\u003e#21463\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/3f4067b699dbe52d08e42ef3b3ebfdebdc06bd96\"\u003e\u003ccode\u003e3f4067b\u003c/code\u003e\u003c/a\u003e Bump librt version to 0.11.0 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21458\"\u003e#21458\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2b1eb58a250c5f1eb4ef5fb1f312ff528c5a1d4e\"\u003e\u003ccode\u003e2b1eb58\u003c/code\u003e\u003c/a\u003e [mypyc] Enable incremental self-compilation (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21369\"\u003e#21369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8152f4af3f6c03beaf2660026240f0fdce7feecc\"\u003e\u003ccode\u003e8152f4a\u003c/code\u003e\u003c/a\u003e Respect file config comments for stale modules (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21444\"\u003e#21444\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/116d60bdd3fdfe8d97c6afe99370910db56f1b92\"\u003e\u003ccode\u003e116d60b\u003c/code\u003e\u003c/a\u003e Fix nondeterminism from nonassociativity of overload joins (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21455\"\u003e#21455\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/6c4af8e42110cea3f84bc02add2ca7b89c268210\"\u003e\u003ccode\u003e6c4af8e\u003c/code\u003e\u003c/a\u003e Fix function call message change for small number of args (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21432\"\u003e#21432\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/4b8fdcaf24032592510e8f15421fb32d82a71800\"\u003e\u003ccode\u003e4b8fdca\u003c/code\u003e\u003c/a\u003e [mypyc] Add librt.random module (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21433\"\u003e#21433\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.20.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 `types-pytz` from 2023.4.0.20240130 to 2026.2.0.20260518\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/python/typeshed/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy-protobuf` from 3.7.0 to 5.1.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nipunn1313/mypy-protobuf/blob/main/CHANGELOG.md\"\u003emypy-protobuf's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOn fields without presence and non-oneofs, override typing for Has/ClearField and WhichOneof\u003c/li\u003e\n\u003cli\u003eIf file is deprecated, deprecate all messages, enums, services, fields\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.0.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003ebuiltins.property\u003c/code\u003e to handle conflicts with fields named \u003ccode\u003eproperty\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eMangle all non provided message type imports, this prevents conflicts with field names like \u003ccode\u003ecollections\u003c/code\u003e, \u003ccode\u003ebuiltins\u003c/code\u003e, etc.\n\u003cul\u003e\n\u003cli\u003eDo not mangle message imports, as that would be a breaking change.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eBREAKING: Refactor import statements\n\u003cul\u003e\n\u003cli\u003eMove to model similar to protoc pyi generator. This prevents name collisions in field names\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003efrom test.a.b import c as _c\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eIf multiple names collied, append \u003ccode\u003e_{count}\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003efrom test.a.x import c as _c_1\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix bug in duplicate package name imports\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eExport stub methods as properties instead of attributes if deprecated and mark as such\u003c/li\u003e\n\u003cli\u003eExport enum fields as properties on class level (not module level) enums if deprecated and mark as such\u003c/li\u003e\n\u003cli\u003eExport fields as properties with getters/setters if deprecated and mark as such\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.0.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBREAKING: Drop support for \u003ccode\u003epy_generic_services\u003c/code\u003e as it was removed from the protobuf compiler starting in version 6.30\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://protobuf.dev/news/2024-10-02/#rpc-service-interfaces\"\u003ehttps://protobuf.dev/news/2024-10-02/#rpc-service-interfaces\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eDrop testing support for protobuf \u0026lt;6.32 because they don't support editions\n\u003cul\u003e\n\u003cli\u003eWith some more work this could be added back in a testing refactor\u003c/li\u003e\n\u003cli\u003eProtobuf \u0026lt;6.32 still had the edition enums and field options, so it \u003cem\u003eshould\u003c/em\u003e still work. But is untested\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd support for editions (up to 2024)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003egenerate_concrete_servicer_stubs\u003c/code\u003e option to generate concrete instead of abstract servicer stubs\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esync_only\u003c/code\u003e/\u003ccode\u003easync_only\u003c/code\u003e options to generate only sync or async version of GRPC stubs\u003c/li\u003e\n\u003cli\u003eSwitch to types-grpcio instead of no longer maintained grpc-stubs\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e_HasFieldArgType\u003c/code\u003e and \u003ccode\u003e_ClearFieldArgType\u003c/code\u003e aliases to allow for typing field manipulation functions\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e_WhichOneofArgType_\u0026lt;oneof_name\u0026gt;\u003c/code\u003e and \u003ccode\u003e_WhichOneofReturnType_\u0026lt;oneof_name\u0026gt;\u003c/code\u003e type aliases\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003e__new__\u003c/code\u003e overloads for async stubs instead of \u003ccode\u003eTypeVar\u003c/code\u003e based \u003ccode\u003e__init__\u003c/code\u003e overloads.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nipunn1313/mypy-protobuf/issues/707\"\u003enipunn1313/mypy-protobuf#707\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eSupport file level field presence feature setting\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nipunn1313/mypy-protobuf/commit/e92875b9ae3a123bfd7b1e249935a33ed7b16a34\"\u003e\u003ccode\u003ee92875b\u003c/code\u003e\u003c/a\u003e prep 5.1.0 release (\u003ca href=\"https://redirect.github.com/nipunn1313/mypy-protobuf/issues/725\"\u003e#725\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nipunn1313/mypy-protobuf/commit/4e9458b6b424ca1ac65f72affe1d6a25561c2282\"\u003e\u003ccode\u003e4e9458b\u003c/code\u003e\u003c/a\u003e Deprecate if file deprecation option is set (\u003ca href=\"https://redirect.github.com/nipunn1313/mypy-protobuf/issues/724\"\u003e#724\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nipunn1313/mypy-protobuf/commit/b3a563edd046efe12460a080f8d149400496efcf\"\u003e\u003ccode\u003eb3a563e\u003c/code\u003e\u003c/a\u003e Add typing for Has/ClearField and WhichOneof when they aren't available (\u003ca href=\"https://redirect.github.com/nipunn1313/mypy-protobuf/issues/723\"\u003e#723\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nipunn1313/mypy-protobuf/commit/47fa102ae5d2bd2a1fdde2adf94cf006a3e939a4\"\u003e\u003ccode\u003e47fa102\u003c/code\u003e\u003c/a\u003e Prep 5.0.0 release (\u003ca href=\"https://redirect.github.com/nipunn1313/mypy-protobuf/issues/720\"\u003e#720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nipunn1313/mypy-protobuf/commit/d0a0ea96f3bddc8a3abc4b14174fb6b6e0c8b352\"\u003e\u003ccode\u003ed0a0ea9\u003c/code\u003e\u003c/a\u003e Add additional deprecation support (\u003ca href=\"https://redirect.github.com/nipunn1313/mypy-protobuf/issues/713\"\u003e#713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nipunn1313/mypy-protobuf/commit/9851ab87f51d8148600b09af315d9c446b43a084\"\u003e\u003ccode\u003e9851ab8\u003c/code\u003e\u003c/a\u003e Add googleapis as test fodder (\u003ca href=\"https://redirect.github.com/nipunn1313/mypy-protobuf/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nipunn1313/mypy-protobuf/commit/5f5a3ba62ae389e1ba850aacde4ad5c7abc8bfd4\"\u003e\u003ccode\u003e5f5a3ba\u003c/code\u003e\u003c/a\u003e Move to pyproject.toml (\u003ca href=\"https://redirect.github.com/nipunn1313/mypy-protobuf/issues/718\"\u003e#718\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nipunn1313/mypy-protobuf/commit/7d68665906b16a0fa4e880af8bf940dc7492211a\"\u003e\u003ccode\u003e7d68665\u003c/code\u003e\u003c/a\u003e prep 3.8.0 release (\u003ca href=\"https://redirect.github.com/nipunn1313/mypy-protobuf/issues/715\"\u003e#715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nipunn1313/mypy-protobuf/commit/7b20d4eeebb3a8161d2c0591fe66847a5909ba55\"\u003e\u003ccode\u003e7b20d4e\u003c/code\u003e\u003c/a\u003e Support file level field presence feature setting (\u003ca href=\"https://redirect.github.com/nipunn1313/mypy-protobuf/issues/717\"\u003e#717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nipunn1313/mypy-protobuf/commit/f35584a0834f0e9d59efc44b2320eeabd6c43982\"\u003e\u003ccode\u003ef35584a\u003c/code\u003e\u003c/a\u003e Add flags to generate only sync or only async stubs (\u003ca href=\"https://redirect.github.com/nipunn1313/mypy-protobuf/issues/694\"\u003e#694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nipunn1313/mypy-protobuf/compare/v3.7.0...v5.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `azure-search-documents` from 11.6.0 to 12.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/releases\"\u003eazure-search-documents's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eazure-search-documents_12.0.0\u003c/h2\u003e\n\u003ch2\u003e12.0.0 (2026-04-01)\u003c/h2\u003e\n\u003ch3\u003eFeatures Added\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBelow clients, models, and enum members are added for knowledge base support\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.knowledgebases.KnowledgeBaseRetrievalClient\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.indexes.models.AzureBlobKnowledgeSource\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.indexes.models.IndexedOneLakeKnowledgeSource\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.indexes.models.KnowledgeBase\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.indexes.models.SearchIndexKnowledgeSource\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.indexes.models.WebKnowledgeSource\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.knowledgebases.models.KnowledgeBaseActivityRecordType.MODEL_WEB_SUMMARIZATION\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.knowledgebases.models.KnowledgeBaseModelWebSummarizationActivityRecord\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.knowledgebases.models.KnowledgeRetrievalMinimalReasoningEffort\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.knowledgebases.models.KnowledgeRetrievalReasoningEffort\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.knowledgebases.models.KnowledgeSourceStatistics\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.knowledgebases.models.KnowledgeSourceStatus\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.knowledgebases.models.KnowledgeSourceSynchronizationError\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBelow properties are added or changed for index and indexer enhancements\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.indexes.models.SearchIndexerDataSourceConnection.identity\u003c/code\u003e for managed identity support on data source connections.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.indexes.models.SearchIndexerKnowledgeStore.identity\u003c/code\u003e for managed identity support on knowledge store projections.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.indexes.models.SearchResourceEncryptionKey.key_version\u003c/code\u003e changed from required to optional, aligning with service behavior.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBelow enum members and properties are added for Markdown parsing\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.indexes.models.BlobIndexerParsingMode.MARKDOWN\u003c/code\u003e enum value for native Markdown file parsing in blob indexers.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.indexes.models.IndexingParametersConfiguration.markdown_header_depth\u003c/code\u003e (\u003ccode\u003eh1\u003c/code\u003e through \u003ccode\u003eh6\u003c/code\u003e) to set header depth for sectioning.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.indexes.models.IndexingParametersConfiguration.markdown_parsing_submode\u003c/code\u003e (\u003ccode\u003eoneToOne\u003c/code\u003e or \u003ccode\u003eoneToMany\u003c/code\u003e) to control document splitting.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBelow models are added\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.indexes.models.ChatCompletionCommonModelParameters\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.indexes.models.ChatCompletionResponseFormat\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.indexes.models.ChatCompletionSchema\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.indexes.models.ChatCompletionSkill\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.indexes.models.ContentUnderstandingSkill\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.indexes.models.ContentUnderstandingSkillChunkingProperties\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.indexes.models.ContentUnderstandingSkillChunkingUnit\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.indexes.models.ContentUnderstandingSkillExtractionOptions\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.knowledgebases.models.AIServices\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.knowledgebases.models.CompletedSynchronizationState\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.knowledgebases.models.SynchronizationState\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eserialize()\u003c/code\u003e and \u003ccode\u003edeserialize()\u003c/code\u003e methods on models are removed. Use \u003ccode\u003eas_dict()\u003c/code\u003e to serialize and the model constructor to deserialize (e.g., \u003ccode\u003eindex.as_dict()\u003c/code\u003e instead of \u003ccode\u003eindex.serialize()\u003c/code\u003e, \u003ccode\u003eSearchIndex(data)\u003c/code\u003e instead of \u003ccode\u003eSearchIndex.deserialize(data)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eBelow models do not exist in this release\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.indexes.models.EntityRecognitionSkill\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.indexes.models.EntityRecognitionSkillVersion\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.indexes.models.PathHierarchyTokenizer\u003c/code\u003e (renamed to \u003ccode\u003ePathHierarchyTokenizerV2\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/0af31f93d5aa5cda79b7993237b424004db0c8c0\"\u003e\u003ccode\u003e0af31f9\u003c/code\u003e\u003c/a\u003e Sync eng/common directory with azure-sdk-tools for PR 15388 (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/46632\"\u003e#46632\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/71121118731e3190e671ebeceab222ec7c0a0539\"\u003e\u003ccode\u003e7112111\u003c/code\u003e\u003c/a\u003e Increment version for core releases (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/46660\"\u003e#46660\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/6b097634a5cf2fd15b83bc899f28039d31591dc3\"\u003e\u003ccode\u003e6b09763\u003c/code\u003e\u003c/a\u003e Use constants to decide distro version in the exporter (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/46613\"\u003e#46613\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/79197c992a009f2292ce78544ef10d073d0fb75a\"\u003e\u003ccode\u003e79197c9\u003c/code\u003e\u003c/a\u003e [Search] Regenerate azure-search-documents from 2026-04-01 GA spec patch (SHA...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/d0f245510f127d13e100d9bf0dc0178f714f702e\"\u003e\u003ccode\u003ed0f2455\u003c/code\u003e\u003c/a\u003e Remove Ruff support (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/46578\"\u003e#46578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/c14e6ba98f0302547bb22fa341cdf727214377e5\"\u003e\u003ccode\u003ec14e6ba\u003c/code\u003e\u003c/a\u003e [Core] Prepare release (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/46612\"\u003e#46612\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/a08ffff3a2a0960b904b869f059bd9b19d3ace26\"\u003e\u003ccode\u003ea08ffff\u003c/code\u003e\u003c/a\u003e [Core] Set kwarg explicitly in method signatures (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/46633\"\u003e#46633\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/31fd1c3583d2da455df56e70f1738242550adc92\"\u003e\u003ccode\u003e31fd1c3\u003c/code\u003e\u003c/a\u003e [AutoPR azure-mgmt-web]-generated-from-SDK Generation - Python-6087407 (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/46019\"\u003e#46019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/2bdb89e8f7e7036619df22d0d8230365f74d9863\"\u003e\u003ccode\u003e2bdb89e\u003c/code\u003e\u003c/a\u003e [Core] Prepare release (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/46631\"\u003e#46631\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/f915b0b509359e41a2b966d85a4b56cf42bb0cdf\"\u003e\u003ccode\u003ef915b0b\u003c/code\u003e\u003c/a\u003e Update sync workflow pointer (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/46593\"\u003e#46593\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/compare/azure-search-documents_11.6.0...azure-search-documents_12.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pdfminer-six` from 20251230 to 20260107\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pdfminer/pdfminer.six/releases\"\u003epdfminer-six's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e20260107\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport cmap types 6, 10 and 12 (\u003ca href=\"https://redirect.github.com/pdfminer/pdfminer.six/pull/1213\"\u003e#598\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEncapsulate error when failing to get attribute or data from stream (\u003ca href=\"https://redirect.github.com/pdfminer/pdfminer.six/pull/1225\"\u003e#1225\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pdfminer/pdfminer.six/pull/1226\"\u003e#1226\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eValidate maximum size of xref start (\u003ca href=\"https://redirect.github.com/pdfminer/pdfminer.six/pull/1227\"\u003e#1227\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse lazy %-style formatting for logging (\u003ca href=\"https://redirect.github.com/pdfminer/pdfminer.six/pull/1234\"\u003e#1234\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUnused methods close, tell and poll on PSBaseParser (\u003ca href=\"https://redirect.github.com/pdfminer/pdfminer.six/pull/1230\"\u003e#1230\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/pdfminer/pdfminer.six/blob/master/CHANGELOG.md\"\u003epdfminer-six's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[20260107]\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport cmap types 6, 10 and 12 (\u003ca href=\"https://redirect.github.com/pdfminer/pdfminer.six/pull/1213\"\u003e#598\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEncapsulate error when failing to get attribute or data from stream (\u003ca href=\"https://redirect.github.com/pdfminer/pdfminer.six/pull/1225\"\u003e#1225\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pdfminer/pdfminer.six/pull/1226\"\u003e#1226\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eValidate maximum size of xref start (\u003ca href=\"https://redirect.github.com/pdfminer/pdfminer.six/pull/1227\"\u003e#1227\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse lazy %-style formatting for logging (\u003ca href=\"https://redirect.github.com/pdfminer/pdfminer.six/pull/1234\"\u003e#1234\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUnused methods close, tell and poll on PSBaseParser (\u003ca href=\"https://redirect.github.com/pdfminer/pdfminer.six/pull/1230\"\u003e#1230\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/pdfminer/pdfminer.six/commit/9e1243c4ad000bf9bbe60e81fc8dde2fccc0ed3b\"\u003e\u003ccode\u003e9e1243c\u003c/code\u003e\u003c/a\u003e chore: bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pdfminer/pdfminer.six/commit/0d38cef56f298ade0c06256ca4391b78aac9de20\"\u003e\u003ccode\u003e0d38cef\u003c/code\u003e\u003c/a\u003e perf: use lazy %-style logging (\u003ca href=\"https://redirect.github.com/pdfminer/pdfminer.six/issues/1234\"\u003e#1234\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pdfminer/pdfminer.six/commit/30677062259b229deda1e402e9d40aef628f0831\"\u003e\u003ccode\u003e3067706\u003c/code\u003e\u003c/a\u003e remove: unused methods close, tell and poll on PSBaseParser (\u003ca href=\"https://redirect.github.com/pdfminer/pdfminer.six/issues/1230\"\u003e#1230\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pdfminer/pdfminer.six/commit/c706bdc161b0add59344a28756b090d5a99293d0\"\u003e\u003ccode\u003ec706bdc\u003c/code\u003e\u003c/a\u003e fix: validate maximum size of xref start (\u003ca href=\"https://redirect.github.com/pdfminer/pdfminer.six/issues/1227\"\u003e#1227\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pdfminer/pdfminer.six/commit/48f3404e4da37cf165bfb87a271b1f023222d5d9\"\u003e\u003ccode\u003e48f3404\u003c/code\u003e\u003c/a\u003e fix: encapsulate error when parsing data from stream (\u003ca href=\"https://redirect.github.com/pdfminer/pdfminer.six/issues/1226\"\u003e#1226\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pdfminer/pdfminer.six/commit/426116fab84bd3d1542b9e7a15dcddb17556929b\"\u003e\u003ccode\u003e426116f\u003c/code\u003e\u003c/a\u003e fix: encapsulate errors when failing to get attribute from stream (\u003ca href=\"https://redirect.github.com/pdfminer/pdfminer.six/issues/1225\"\u003e#1225\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pdfminer/pdfminer.six/commit/a2a353f5e0f5837f6113dbf058d60efa330e6eb8\"\u003e\u003ccode\u003ea2a353f\u003c/code\u003e\u003c/a\u003e feat: add support for cmap types 6, 10 and 12 (\u003ca href=\"https://redirect.github.com/pdfminer/pdfminer.six/issues/1213\"\u003e#1213\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pdfminer/pdfminer.six/compare/20251230...20260107\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/langchain-ai/langchain-community/pull/670","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/langchain-ai%2Flangchain-community/issues/670","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/670/packages"},{"uuid":"4473088730","node_id":"PR_kwDOKjBbgs7c2dRv","number":1005,"state":"open","title":"chore: Bump syrupy from 5.1.0 to 5.2.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-18T22:47:17.000Z","updated_at":"2026-05-18T22:49:10.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore: Bump","packages":[{"name":"syrupy","old_version":"5.1.0","new_version":"5.2.0","repository_url":"https://github.com/syrupy-project/syrupy"}],"path":null,"ecosystem":"pip"},"body":"Bumps [syrupy](https://github.com/syrupy-project/syrupy) from 5.1.0 to 5.2.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/syrupy-project/syrupy/releases\"\u003esyrupy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.2.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): update actions/checkout action to v6.0.2 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1065\"\u003esyrupy-project/syrupy#1065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update actions/setup-python action to v6.2.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1066\"\u003esyrupy-project/syrupy#1066\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency ruff to v0.14.14 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1067\"\u003esyrupy-project/syrupy#1067\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency coverage to v7.13.2 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1068\"\u003esyrupy-project/syrupy#1068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: migrate to uv, close \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1019\"\u003e#1019\u003c/a\u003e by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1049\"\u003esyrupy-project/syrupy#1049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency coverage to v7.13.2 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1069\"\u003esyrupy-project/syrupy#1069\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency debugpy to v1.8.19 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1070\"\u003esyrupy-project/syrupy#1070\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency mypy to v1.19.1 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1071\"\u003esyrupy-project/syrupy#1071\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency ruff to v0.14.14 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1072\"\u003esyrupy-project/syrupy#1072\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update python docker tag to v3.14.3 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1073\"\u003esyrupy-project/syrupy#1073\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update astral-sh/setup-uv action to v7.3.1 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1076\"\u003esyrupy-project/syrupy#1076\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update lock file by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1077\"\u003esyrupy-project/syrupy#1077\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update benchmark-action/github-action-benchmark action to v1.21.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1078\"\u003esyrupy-project/syrupy#1078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update astral-sh/setup-uv action to v7.5.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1080\"\u003esyrupy-project/syrupy#1080\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1081\"\u003e#1081\u003c/a\u003e): Handle unicode line-endings correctly when serializing by \u003ca href=\"https://github.com/DRMacIver\"\u003e\u003ccode\u003e@​DRMacIver\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1082\"\u003esyrupy-project/syrupy#1082\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: add DRMacIver as a contributor for bug by \u003ca href=\"https://github.com/allcontributors\"\u003e\u003ccode\u003e@​allcontributors\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1083\"\u003esyrupy-project/syrupy#1083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update lockfile by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1086\"\u003esyrupy-project/syrupy#1086\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: migrate off semantic-release to trusted publishing by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1093\"\u003esyrupy-project/syrupy#1093\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: set name/email by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1094\"\u003esyrupy-project/syrupy#1094\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/DRMacIver\"\u003e\u003ccode\u003e@​DRMacIver\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1082\"\u003esyrupy-project/syrupy#1082\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.1.0...v5.2.0\"\u003ehttps://github.com/syrupy-project/syrupy/compare/v5.1.0...v5.2.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/syrupy-project/syrupy/blob/main/CHANGELOG.md\"\u003esyrupy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/releases/tag/v5.2.0\"\u003ev5.2.0\u003c/a\u003e (2026-05-16)\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): update actions/checkout action to v6.0.2 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1065\"\u003esyrupy-project/syrupy#1065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update actions/setup-python action to v6.2.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1066\"\u003esyrupy-project/syrupy#1066\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency ruff to v0.14.14 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1067\"\u003esyrupy-project/syrupy#1067\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency coverage to v7.13.2 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1068\"\u003esyrupy-project/syrupy#1068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: migrate to uv, close \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1019\"\u003e#1019\u003c/a\u003e by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1049\"\u003esyrupy-project/syrupy#1049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency coverage to v7.13.2 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1069\"\u003esyrupy-project/syrupy#1069\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency debugpy to v1.8.19 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1070\"\u003esyrupy-project/syrupy#1070\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency mypy to v1.19.1 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1071\"\u003esyrupy-project/syrupy#1071\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency ruff to v0.14.14 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1072\"\u003esyrupy-project/syrupy#1072\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update python docker tag to v3.14.3 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1073\"\u003esyrupy-project/syrupy#1073\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update astral-sh/setup-uv action to v7.3.1 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1076\"\u003esyrupy-project/syrupy#1076\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update lock file by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1077\"\u003esyrupy-project/syrupy#1077\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update benchmark-action/github-action-benchmark action to v1.21.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1078\"\u003esyrupy-project/syrupy#1078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update astral-sh/setup-uv action to v7.5.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1080\"\u003esyrupy-project/syrupy#1080\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1081\"\u003e#1081\u003c/a\u003e): Handle unicode line-endings correctly when serializing by \u003ca href=\"https://github.com/DRMacIver\"\u003e\u003ccode\u003e@​DRMacIver\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1082\"\u003esyrupy-project/syrupy#1082\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: add DRMacIver as a contributor for bug by \u003ca href=\"https://github.com/allcontributors\"\u003e\u003ccode\u003e@​allcontributors\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1083\"\u003esyrupy-project/syrupy#1083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update lockfile by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1086\"\u003esyrupy-project/syrupy#1086\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: migrate off semantic-release to trusted publishing by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1093\"\u003esyrupy-project/syrupy#1093\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: set name/email by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1094\"\u003esyrupy-project/syrupy#1094\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/DRMacIver\"\u003e\u003ccode\u003e@​DRMacIver\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1082\"\u003esyrupy-project/syrupy#1082\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.1.0...v5.2.0\"\u003ehttps://github.com/syrupy-project/syrupy/compare/v5.1.0...v5.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.1.1...v5.1.2\"\u003e5.1.2\u003c/a\u003e (2026-04-06)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebuild configuration (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1086\"\u003e#1086\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/a997e3e643b55342af2e1d89d7b24d6c1fbadc1f\"\u003ea997e3e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.1.0...v5.1.1\"\u003e5.1.1\u003c/a\u003e (2026-04-06)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1081\"\u003e#1081\u003c/a\u003e:\u003c/strong\u003e Handle unicode line-endings correctly when serializing (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1082\"\u003e#1082\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/04f4cc8e21ae743d4ebc95a0961f0802f57f1856\"\u003e04f4cc8\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1081\"\u003e#1081\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/syrupy-project/syrupy/commit/c6bc988ee61ded4c1bea1e13a1d95e42c68219b0\"\u003e\u003ccode\u003ec6bc988\u003c/code\u003e\u003c/a\u003e chore: push on correct branch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/659f456bfef13df50fef5c95f84248b8fd720a60\"\u003e\u003ccode\u003e659f456\u003c/code\u003e\u003c/a\u003e chore: add id-token write\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/6401bc28aab02447dfc698beba33df6fd6d93817\"\u003e\u003ccode\u003e6401bc2\u003c/code\u003e\u003c/a\u003e chore: set name/email (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1094\"\u003e#1094\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/f1e3f0bac92a683a7412d4e1fbaf076e82c932de\"\u003e\u003ccode\u003ef1e3f0b\u003c/code\u003e\u003c/a\u003e chore: migrate off semantic-release to trusted publishing (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1093\"\u003e#1093\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8ff4d46fe1b4392d9d2f3ac1a2228911d9939948\"\u003e\u003ccode\u003e8ff4d46\u003c/code\u003e\u003c/a\u003e chore(release): 5.1.2 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/a997e3e643b55342af2e1d89d7b24d6c1fbadc1f\"\u003e\u003ccode\u003ea997e3e\u003c/code\u003e\u003c/a\u003e fix: build configuration (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1086\"\u003e#1086\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/561c94a136b183f5f22eb71f5b660e0f46e01b5b\"\u003e\u003ccode\u003e561c94a\u003c/code\u003e\u003c/a\u003e chore(release): 5.1.1 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/dfdba17b3cb983a5452f35e712c074cc1186d935\"\u003e\u003ccode\u003edfdba17\u003c/code\u003e\u003c/a\u003e docs: add DRMacIver as a contributor for bug (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1083\"\u003e#1083\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/04f4cc8e21ae743d4ebc95a0961f0802f57f1856\"\u003e\u003ccode\u003e04f4cc8\u003c/code\u003e\u003c/a\u003e fix(\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1081\"\u003e#1081\u003c/a\u003e): Handle unicode line-endings correctly when serializing (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1082\"\u003e#1082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/34f9b27e699a690e7ca1644a8a64d10a0e7d789c\"\u003e\u003ccode\u003e34f9b27\u003c/code\u003e\u003c/a\u003e chore(deps): update astral-sh/setup-uv action to v7.5.0 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1080\"\u003e#1080\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.1.0...v5.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=syrupy\u0026package-manager=pip\u0026previous-version=5.1.0\u0026new-version=5.2.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/Twingate/kubernetes-operator/pull/1005","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Twingate%2Fkubernetes-operator/issues/1005","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1005/packages"},{"uuid":"4380596965","node_id":"PR_kwDODVijX87YNywd","number":645,"state":"open","title":"chore(deps-dev): update syrupy requirement from \u003e=5.0.0 to \u003e=5.1.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-05T00:25:20.000Z","updated_at":"2026-05-05T00:28:00.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps-dev): update","packages":[{"name":"syrupy","old_version":"\u003e=5.0.0","new_version":"\u003e=5.1.0","repository_url":"https://github.com/syrupy-project/syrupy"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [syrupy](https://github.com/syrupy-project/syrupy) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/syrupy-project/syrupy/releases\"\u003esyrupy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.1.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.0.0...v5.1.0\"\u003e5.1.0\u003c/a\u003e (2026-01-25)\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd serializer plugin system; plugins for data models (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1062\"\u003e#1062\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/df9bc8f6b3a222dde82167e10a2e6bb57456305a\"\u003edf9bc8f\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/syrupy-project/syrupy/blob/main/CHANGELOG.md\"\u003esyrupy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.0.0...v5.1.0\"\u003e5.1.0\u003c/a\u003e (2026-01-25)\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd serializer plugin system; plugins for data models (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1062\"\u003e#1062\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/df9bc8f6b3a222dde82167e10a2e6bb57456305a\"\u003edf9bc8f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\"\u003e5.0.0\u003c/a\u003e (2025-09-28)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch to MIT license (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/945\"\u003e#945\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/d74d340f8884fdb04831fcf77f29d66e098aaa66\"\u003ed74d340\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlock terminal summary for xdist workers. (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/978\"\u003e#978\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/33a848df7c4a33577e4057eae5792f6592ad3172\"\u003e33a848d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eensure syrupy's pytest_assertrepr_compare hook is called first. (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/984\"\u003e#984\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/eb0024d339248b7e1f76fdb65ed30ba3e19c0857\"\u003eeb0024d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove incorrect private underscore prefix from public methods (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003e8cfc905\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd --snapshot-dirname option, close \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003e#810\u003c/a\u003e (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/27135c7c861441962c2cedde841f3e4fed2949fd\"\u003e27135c7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edrop support for py3.8, raise min. pytest to v8 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/904\"\u003e#904\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/a879ff15ad82e59a2f387db0822be072a5684f2f\"\u003ea879ff1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate min. python version to 3.10 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003e#1024\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/16b4113cd56da96e84a90ebda0919e9b8dd35954\"\u003e16b4113\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe following methods have been renamed:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSnapshotCollectionStorage\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e_read_snapshot_collection -\u0026gt; read_snapshot_collection\u003c/li\u003e\n\u003cli\u003e_read_snapshot_data_from_location -\u0026gt; read_snapshot_data_from_location\u003c/li\u003e\n\u003cli\u003e_write_snapshot_collection -\u0026gt; write_snapshot_collection\u003c/li\u003e\n\u003cli\u003e_get_file_basename -\u0026gt; get_file_basename\u003c/li\u003e\n\u003cli\u003e_file_extension -\u0026gt; file_extension\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eAmberDataSerializer\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e_snapshot_sort_key -\u0026gt; snapshot_sort_key\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRenamed constants to improve clarity:\u003c/p\u003e\n\u003cp\u003econstants\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSNAPSHOT_EMPTY_FOSSIL_KEY -\u0026gt; SNAPSHOT_EMPTY_COLLECTION_KEY\u003c/li\u003e\n\u003cli\u003eSNAPSHOT_UNKNOWN_FOSSIL_KEY -\u0026gt; SNAPSHOT_UNKNOWN_COLLECTION_KEY\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/7096efdee61a8e1bc47492bdd0bc860766df40e9\"\u003e\u003ccode\u003e7096efd\u003c/code\u003e\u003c/a\u003e chore(release): 5.1.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/07aa00dd48d65e74814cec863b5f236e09afb464\"\u003e\u003ccode\u003e07aa00d\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency attrs to v25 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1063\"\u003e#1063\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/1f29ae061e9557e205e50fb2f9971ee95c4bd08e\"\u003e\u003ccode\u003e1f29ae0\u003c/code\u003e\u003c/a\u003e docs: add bwrob as a contributor for code (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1064\"\u003e#1064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/df9bc8f6b3a222dde82167e10a2e6bb57456305a\"\u003e\u003ccode\u003edf9bc8f\u003c/code\u003e\u003c/a\u003e feat: add serializer plugin system; plugins for data models (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1062\"\u003e#1062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/841257deaf598df7c3d154b8e2d694f8bb7e5055\"\u003e\u003ccode\u003e841257d\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency coverage to v7.13.1 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1061\"\u003e#1061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/2d8dfa7f7bb2a5f7c0210107dbb65b62a615d434\"\u003e\u003ccode\u003e2d8dfa7\u003c/code\u003e\u003c/a\u003e chore(deps): update codecov/codecov-action action to v5.5.2 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1056\"\u003e#1056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/f5f9ef77027983d3b62d8cc5bfc3a9ef058fe509\"\u003e\u003ccode\u003ef5f9ef7\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency debugpy to v1.8.18 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1057\"\u003e#1057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/eaeb6ae11f57aa3e595d4c45e7be4a3ed2d66dfc\"\u003e\u003ccode\u003eeaeb6ae\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency pytest to v9.0.2 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/263b23b768ef761c3f7e1faa0671b0709c1887b1\"\u003e\u003ccode\u003e263b23b\u003c/code\u003e\u003c/a\u003e chore(deps): update python docker tag to v3.14.1 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1054\"\u003e#1054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/a0dd77b023fee34ff0968a822e0d0740c9c7fb93\"\u003e\u003ccode\u003ea0dd77b\u003c/code\u003e\u003c/a\u003e chore(deps): update actions/checkout action to v6.0.1 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1053\"\u003e#1053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.0.0...v5.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/ramses-rf/ramses_rf/pull/645","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ramses-rf%2Framses_rf/issues/645","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/645/packages"},{"uuid":"3913045712","node_id":"PR_kwDOJVkqEs7CT_7Z","number":1204,"state":"open","title":"chore(deps): bump the poetry group across 3 directories with 46 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-02-08T16:27:16.000Z","updated_at":"2026-02-25T18:00:32.433Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"poetry","update_count":46,"packages":[{"name":"pydantic","old_version":"2.11.3","new_version":"2.12.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"sqlalchemy","old_version":"2.0.40","new_version":"2.0.46","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"alembic","old_version":"1.15.2","new_version":"1.18.3","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"asyncpg","old_version":"0.30.0","new_version":"0.31.0","repository_url":"https://github.com/MagicStack/asyncpg"},{"name":"pyjwt","old_version":"2.10.1","new_version":"2.11.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"tenacity","old_version":"9.1.2","new_version":"9.1.4","repository_url":"https://github.com/jd/tenacity"},{"name":"kubernetes","old_version":"31.0.0","new_version":"33.1.0","repository_url":"https://github.com/kubernetes-client/python"},{"name":"python-ulid","old_version":"3.0.0","new_version":"3.1.0","repository_url":"https://github.com/mdomke/python-ulid"},{"name":"python-gitlab","old_version":"5.6.0","new_version":"8.0.0","repository_url":"https://github.com/python-gitlab/python-gitlab"},{"name":"psycopg","old_version":"3.2.6","new_version":"3.3.2","repository_url":"https://github.com/psycopg/psycopg"},{"name":"urllib3","old_version":"2.6.0","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"},{"name":"authlib","old_version":"1.6.0","new_version":"1.6.7","repository_url":"https://github.com/authlib/authlib"},{"name":"marshmallow","old_version":"3.26.2","new_version":"4.2.2","repository_url":"https://github.com/marshmallow-code/marshmallow"},{"name":"escapism","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jupyterhub/escapism"},{"name":"sentry-sdk","old_version":"2.26.1","new_version":"2.52.0","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"authzed","old_version":"1.21.1","new_version":"1.24.2","repository_url":"https://github.com/authzed/authzed-py"},{"name":"cryptography","old_version":"44.0.2","new_version":"46.0.4","repository_url":"https://github.com/pyca/cryptography"},{"name":"setuptools","old_version":"75.9.1","new_version":"82.0.0","repository_url":"https://github.com/pypa/setuptools"},{"name":"kr8s","old_version":"0.20.7","new_version":"0.20.15","repository_url":"https://github.com/kr8s-org/kr8s"},{"name":"werkzeug","old_version":"3.1.3","new_version":"3.1.5","repository_url":"https://github.com/pallets/werkzeug"},{"name":"aiofiles","old_version":"24.1.0","new_version":"25.1.0","repository_url":"https://github.com/Tinche/aiofiles"},{"name":"protobuf","old_version":"5.29.4","new_version":"6.33.5","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"poetry","old_version":"2.1.2","new_version":"2.3.2","repository_url":"https://github.com/python-poetry/poetry"},{"name":"parsy","old_version":"2.1","new_version":"2.2","repository_url":"https://github.com/python-parsy/parsy"},{"name":"posthog","old_version":"3.25.0","new_version":"7.8.3","repository_url":"https://github.com/posthog/posthog-python"},{"name":"markdown-code-runner","old_version":"2.2.0","new_version":"2.7.0","repository_url":"https://github.com/basnijholt/markdown-code-runner"},{"name":"bandit","old_version":"1.8.3","new_version":"1.9.3","repository_url":"https://github.com/PyCQA/bandit"},{"name":"mypy","old_version":"1.15.0","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"pytest","old_version":"8.3.5","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-cov","old_version":"6.1.1","new_version":"7.0.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pre-commit","old_version":"4.2.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"aiosqlite","old_version":"0.20.0","new_version":"0.22.1","repository_url":"https://github.com/omnilib/aiosqlite"},{"name":"types-pyyaml","old_version":"6.0.12.20250402","new_version":"6.0.12.20250915","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"schemathesis","old_version":"3.39.7","new_version":"4.10.0","repository_url":"https://github.com/schemathesis/schemathesis"},{"name":"pytest-asyncio","old_version":"0.21.2","new_version":"1.3.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"pytest-postgresql","old_version":"6.1.1","new_version":"8.0.0","repository_url":"https://github.com/dbfixtures/pytest-postgresql"},{"name":"ruff","old_version":"0.8.6","new_version":"0.15.0","repository_url":"https://github.com/astral-sh/ruff"},{"name":"debugpy","old_version":"1.8.14","new_version":"1.8.20","repository_url":"https://github.com/microsoft/debugpy"},{"name":"pytest-xdist","old_version":"3.6.1","new_version":"3.8.0","repository_url":"https://github.com/pytest-dev/pytest-xdist"},{"name":"types-requests","old_version":"2.32.0.20250328","new_version":"2.32.4.20260107","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"types-aiofiles","old_version":"24.1.0.20250326","new_version":"25.1.0.20251011","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"uvloop","old_version":"0.21.0","new_version":"0.22.1","repository_url":"https://github.com/MagicStack/uvloop"},{"name":"syrupy","old_version":"4.9.1","new_version":"5.1.0","repository_url":"https://github.com/syrupy-project/syrupy"},{"name":"ruamel-yaml","old_version":"0.18.14","new_version":"0.19.1"},{"name":"datamodel-code-generator","old_version":"0.28.5","new_version":"0.53.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"}],"path":null,"ecosystem":"pip"},"body":"Bumps the poetry group with 46 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.11.3` | `2.12.5` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.40` | `2.0.46` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.15.2` | `1.18.3` |\n| [asyncpg](https://github.com/MagicStack/asyncpg) | `0.30.0` | `0.31.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.10.1` | `2.11.0` |\n| [tenacity](https://github.com/jd/tenacity) | `9.1.2` | `9.1.4` |\n| [kubernetes](https://github.com/kubernetes-client/python) | `31.0.0` | `33.1.0` |\n| [python-ulid](https://github.com/mdomke/python-ulid) | `3.0.0` | `3.1.0` |\n| [python-gitlab](https://github.com/python-gitlab/python-gitlab) | `5.6.0` | `8.0.0` |\n| [psycopg](https://github.com/psycopg/psycopg) | `3.2.6` | `3.3.2` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.6.0` | `2.6.3` |\n| [authlib](https://github.com/authlib/authlib) | `1.6.0` | `1.6.7` |\n| [marshmallow](https://github.com/marshmallow-code/marshmallow) | `3.26.2` | `4.2.2` |\n| [escapism](https://github.com/jupyterhub/escapism) | `1.0.1` | `1.1.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.26.1` | `2.52.0` |\n| [authzed](https://github.com/authzed/authzed-py) | `1.21.1` | `1.24.2` |\n| [cryptography](https://github.com/pyca/cryptography) | `44.0.2` | `46.0.4` |\n| [setuptools](https://github.com/pypa/setuptools) | `75.9.1` | `82.0.0` |\n| [kr8s](https://github.com/kr8s-org/kr8s) | `0.20.7` | `0.20.15` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.3` | `3.1.5` |\n| [aiofiles](https://github.com/Tinche/aiofiles) | `24.1.0` | `25.1.0` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `5.29.4` | `6.33.5` |\n| [poetry](https://github.com/python-poetry/poetry) | `2.1.2` | `2.3.2` |\n| [parsy](https://github.com/python-parsy/parsy) | `2.1` | `2.2` |\n| [posthog](https://github.com/posthog/posthog-python) | `3.25.0` | `7.8.3` |\n| [markdown-code-runner](https://github.com/basnijholt/markdown-code-runner) | `2.2.0` | `2.7.0` |\n| [bandit](https://github.com/PyCQA/bandit) | `1.8.3` | `1.9.3` |\n| [mypy](https://github.com/python/mypy) | `1.15.0` | `1.19.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.5` | `8.4.2` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `6.1.1` | `7.0.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.2.0` | `4.5.1` |\n| [aiosqlite](https://github.com/omnilib/aiosqlite) | `0.20.0` | `0.22.1` |\n| [types-pyyaml](https://github.com/typeshed-internal/stub_uploader) | `6.0.12.20250402` | `6.0.12.20250915` |\n| [schemathesis](https://github.com/schemathesis/schemathesis) | `3.39.7` | `4.10.0` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `0.21.2` | `1.3.0` |\n| [pytest-postgresql](https://github.com/dbfixtures/pytest-postgresql) | `6.1.1` | `8.0.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.8.6` | `0.15.0` |\n| [debugpy](https://github.com/microsoft/debugpy) | `1.8.14` | `1.8.20` |\n| [pytest-xdist](https://github.com/pytest-dev/pytest-xdist) | `3.6.1` | `3.8.0` |\n| [types-requests](https://github.com/typeshed-internal/stub_uploader) | `2.32.0.20250328` | `2.32.4.20260107` |\n| [types-aiofiles](https://github.com/typeshed-internal/stub_uploader) | `24.1.0.20250326` | `25.1.0.20251011` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [uvloop](https://github.com/MagicStack/uvloop) | `0.21.0` | `0.22.1` |\n| [syrupy](https://github.com/syrupy-project/syrupy) | `4.9.1` | `5.1.0` |\n| ruamel-yaml | `0.18.14` | `0.19.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.28.5` | `0.53.0` |\n\nBumps the poetry group with 25 updates in the /projects/renku_data_service directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.11.3` | `2.12.5` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.40` | `2.0.46` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.15.2` | `1.18.3` |\n| [asyncpg](https://github.com/MagicStack/asyncpg) | `0.30.0` | `0.31.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.10.1` | `2.11.0` |\n| [tenacity](https://github.com/jd/tenacity) | `9.1.2` | `9.1.4` |\n| [kubernetes](https://github.com/kubernetes-client/python) | `31.0.0` | `35.0.0` |\n| [python-ulid](https://github.com/mdomke/python-ulid) | `3.0.0` | `3.1.0` |\n| [python-gitlab](https://github.com/python-gitlab/python-gitlab) | `5.6.0` | `8.0.0` |\n| [psycopg](https://github.com/psycopg/psycopg) | `3.2.6` | `3.3.2` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.6.2` | `2.6.3` |\n| [authlib](https://github.com/authlib/authlib) | `1.6.0` | `1.6.7` |\n| [marshmallow](https://github.com/marshmallow-code/marshmallow) | `3.26.2` | `4.2.2` |\n| [escapism](https://github.com/jupyterhub/escapism) | `1.0.1` | `1.1.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.26.1` | `2.52.0` |\n| [authzed](https://github.com/authzed/authzed-py) | `1.21.1` | `1.24.2` |\n| [cryptography](https://github.com/pyca/cryptography) | `44.0.2` | `46.0.4` |\n| [setuptools](https://github.com/pypa/setuptools) | `75.9.1` | `82.0.0` |\n| [kr8s](https://github.com/kr8s-org/kr8s) | `0.20.7` | `0.20.15` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.3` | `3.1.5` |\n| [aiofiles](https://github.com/Tinche/aiofiles) | `24.1.0` | `25.1.0` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `5.29.4` | `6.33.5` |\n| [parsy](https://github.com/python-parsy/parsy) | `2.1` | `2.2` |\n| [posthog](https://github.com/posthog/posthog-python) | `3.25.0` | `7.8.3` |\n| [markdown-code-runner](https://github.com/basnijholt/markdown-code-runner) | `2.2.0` | `2.7.0` |\n\nBumps the poetry group with 25 updates in the /projects/secrets_storage directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.11.3` | `2.12.5` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.40` | `2.0.46` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.15.2` | `1.18.3` |\n| [asyncpg](https://github.com/MagicStack/asyncpg) | `0.30.0` | `0.31.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.10.1` | `2.11.0` |\n| [tenacity](https://github.com/jd/tenacity) | `9.1.2` | `9.1.4` |\n| [kubernetes](https://github.com/kubernetes-client/python) | `31.0.0` | `35.0.0` |\n| [python-ulid](https://github.com/mdomke/python-ulid) | `3.0.0` | `3.1.0` |\n| [python-gitlab](https://github.com/python-gitlab/python-gitlab) | `5.6.0` | `8.0.0` |\n| [psycopg](https://github.com/psycopg/psycopg) | `3.2.6` | `3.3.2` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.6.2` | `2.6.3` |\n| [authlib](https://github.com/authlib/authlib) | `1.6.0` | `1.6.7` |\n| [marshmallow](https://github.com/marshmallow-code/marshmallow) | `3.26.1` | `4.2.2` |\n| [escapism](https://github.com/jupyterhub/escapism) | `1.0.1` | `1.1.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.26.1` | `2.52.0` |\n| [authzed](https://github.com/authzed/authzed-py) | `1.21.1` | `1.24.2` |\n| [cryptography](https://github.com/pyca/cryptography) | `44.0.2` | `46.0.4` |\n| [setuptools](https://github.com/pypa/setuptools) | `75.9.1` | `82.0.0` |\n| [kr8s](https://github.com/kr8s-org/kr8s) | `0.20.7` | `0.20.15` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.3` | `3.1.5` |\n| [aiofiles](https://github.com/Tinche/aiofiles) | `24.1.0` | `25.1.0` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `5.29.4` | `6.33.5` |\n| [parsy](https://github.com/python-parsy/parsy) | `2.1` | `2.2` |\n| [posthog](https://github.com/posthog/posthog-python) | `3.25.0` | `7.8.3` |\n| [markdown-code-runner](https://github.com/basnijholt/markdown-code-runner) | `2.2.0` | `2.7.0` |\n\n\nUpdates `pydantic` from 2.11.3 to 2.12.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.5 2025-11-26\u003c/h2\u003e\n\u003ch2\u003ev2.12.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.4 2025-11-05\u003c/h2\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method of the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1864\"\u003epydantic-core#1864\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.3 2025-10-17\u003c/h2\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eThis is the third 2.13 patch release, fixing issues related to the \u003ccode\u003eFieldInfo\u003c/code\u003e class, and reverting a change to the supported \u003ca href=\"https://docs.pydantic.dev/latest/concepts/validators/#model-validators\"\u003e\u003cem\u003eafter\u003c/em\u003e model validator\u003c/a\u003e function signatures.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.5\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.4\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in\n\u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1864\"\u003epydantic-core#1864\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.3\"\u003eGitHub release\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/pydantic/pydantic/commit/bd2d0dd0137dfa1a8fdff2529b9dfb1547980150\"\u003e\u003ccode\u003ebd2d0dd\u003c/code\u003e\u003c/a\u003e Prepare release v2.12.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7d0302ec7ec2cf115de3450a615522875bdd8b56\"\u003e\u003ccode\u003e7d0302e\u003c/code\u003e\u003c/a\u003e Document security implications when using \u003ccode\u003ecreate_model()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/e9ef980def726b6f59b6c495ddc9dc259a0228db\"\u003e\u003ccode\u003ee9ef980\u003c/code\u003e\u003c/a\u003e Fix typo in Standard Library Types documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f2c20c00c265a31a13c48f9bae923a87c829952e\"\u003e\u003ccode\u003ef2c20c0\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003epydantic-docs\u003c/code\u003e dev dependency, make use of versioning blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a76c1aa26f2d64a3fd080ac515d80832689197e8\"\u003e\u003ccode\u003ea76c1aa\u003c/code\u003e\u003c/a\u003e Update documentation about JSON Schema\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/8cbc72ca489891e574fba45238ee8bd4f8e719a2\"\u003e\u003ccode\u003e8cbc72c\u003c/code\u003e\u003c/a\u003e Add documentation about custom \u003ccode\u003e__init__()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/99eba599069da137b3f708ffa74627f2b456ba73\"\u003e\u003ccode\u003e99eba59\u003c/code\u003e\u003c/a\u003e Add additional test for \u003ccode\u003eFieldInfo.get_default()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c71076988e507ea93844c77c3bf0bbb85a5716af\"\u003e\u003ccode\u003ec710769\u003c/code\u003e\u003c/a\u003e Special case \u003ccode\u003eMISSING\u003c/code\u003e sentinel in \u003ccode\u003esmart_deepcopy()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/20a9d771c210fd77d52366ac923258c4c199727f\"\u003e\u003ccode\u003e20a9d77\u003c/code\u003e\u003c/a\u003e Do not delete mock validator/serializer in \u003ccode\u003erebuild_dataclass()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c86515a3a8f2120148fab2eaedd3bc45925779d0\"\u003e\u003ccode\u003ec86515a\u003c/code\u003e\u003c/a\u003e Update parts of the model and \u003ccode\u003erevalidate_instances\u003c/code\u003e documentation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.11.3...v2.12.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy` from 2.0.40 to 2.0.46\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/releases\"\u003esqlalchemy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.0.46\u003c/h1\u003e\n\u003cp\u003eReleased: January 21, 2026\u003c/p\u003e\n\u003ch2\u003etyping\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[typing] [bug]\u003c/strong\u003e Fixed typing issues where ORM mapped classes and aliased entities could not\nbe used as keys in result row mappings or as join targets in select\nstatements. Patterns such as \u003ccode\u003erow._mapping[User]\u003c/code\u003e,\n\u003ccode\u003erow._mapping[aliased(User)]\u003c/code\u003e, \u003ccode\u003erow._mapping[with_polymorphic(...)]\u003c/code\u003e\n(rejected by both mypy and Pylance), and \u003ccode\u003e.join(aliased(User))\u003c/code\u003e\n(rejected by Pylance) are documented and fully supported at runtime but\nwere previously rejected by type checkers. The type definitions for\n\u003ccode\u003e_KeyType\u003c/code\u003e and \u003ccode\u003e_FromClauseArgument\u003c/code\u003e have been updated to\naccept these ORM entity types.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13075\"\u003e#13075\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epostgresql\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[postgresql] [bug]\u003c/strong\u003e Fixed issue where PostgreSQL JSONB operators\n\u003ccode\u003e_postgresql.JSONB.Comparator.path_match()\u003c/code\u003e and\n\u003ccode\u003e_postgresql.JSONB.Comparator.path_exists()\u003c/code\u003e were applying incorrect\n\u003ccode\u003eVARCHAR\u003c/code\u003e casts to the right-hand side operand when used with newer\nPostgreSQL drivers such as psycopg. The operators now indicate the\nright-hand type as \u003ccode\u003eJSONPATH\u003c/code\u003e, which currently results in no casting\ntaking place, but is also compatible with explicit casts if the\nimplementation were require it at a later point.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13059\"\u003e#13059\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[postgresql] [bug]\u003c/strong\u003e Fixed regression in PostgreSQL dialect where JSONB subscription syntax\nwould generate incorrect SQL for \u003ccode\u003ecast()\u003c/code\u003e expressions returning JSONB,\ncausing syntax errors. The dialect now properly wraps cast expressions in\nparentheses when using the \u003ccode\u003e[]\u003c/code\u003e subscription syntax, generating\n\u003ccode\u003e(CAST(...))[index]\u003c/code\u003e instead of \u003ccode\u003eCAST(...)[index]\u003c/code\u003e to comply with\nPostgreSQL syntax requirements. This extends the fix from \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12778\"\u003e#12778\u003c/a\u003e\nwhich addressed the same issue for function calls.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13067\"\u003e#13067\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[postgresql] [bug]\u003c/strong\u003e Improved the foreign key reflection regular expression pattern used by the\nPostgreSQL dialect to be more permissive in matching identifier characters,\nallowing it to correctly handle unicode characters in table and column\nnames. This change improves compatibility with PostgreSQL variants such as\nCockroachDB that may use different quoting patterns in combination with\nunicode characters in their identifiers.  Pull request courtesy Gord\nThompson.\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\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `alembic` from 1.15.2 to 1.18.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/alembic/releases\"\u003ealembic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.18.3\u003c/h1\u003e\n\u003cp\u003eReleased: January 29, 2026\u003c/p\u003e\n\u003ch2\u003ebug\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [autogenerate]\u003c/strong\u003e Fixed regression in version 1.18.0 due to \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1771\"\u003e#1771\u003c/a\u003e where autogenerate\nwould raise \u003ccode\u003eNoReferencedTableError\u003c/code\u003e when a foreign key constraint\nreferenced a table that was not part of the initial table load, including\ntables filtered out by the\n\u003ccode\u003eEnvironmentContext.configure.include_name\u003c/code\u003e callable or tables\nin remote schemas that were not included in the initial reflection run.\u003c/p\u003e\n\u003cp\u003eThe change in \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1771\"\u003e#1771\u003c/a\u003e was a performance optimization that eliminated\nadditional reflection queries for tables that were only referenced by\nforeign keys but not explicitly included in the main reflection run.\nHowever, this optimization inadvertently removed the creation of\n\u003ccode\u003eTable\u003c/code\u003e objects for these referenced tables, causing autogenerate\nto fail when processing foreign key constraints that pointed to them.\u003c/p\u003e\n\u003cp\u003eThe fix creates placeholder \u003ccode\u003eTable\u003c/code\u003e objects for foreign key targets\nthat are not reflected, allowing the autogenerate comparison to proceed\nwithout error while maintaining the performance improvement from\n\u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1771\"\u003e#1771\u003c/a\u003e. When multiple foreign keys reference different columns in\nthe same filtered table, the placeholder table accumulates all necessary\ncolumns. These placeholder tables may be visible when using the\n\u003ccode\u003eEnvironmentContext.configure.include_object\u003c/code\u003e callable to\ninspect \u003ccode\u003eForeignKeyConstraint\u003c/code\u003e objects; they will have the name,\nschema and basic column information for the relevant columns present.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1787\"\u003e#1787\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [general]\u003c/strong\u003e Fixed regression caused by \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1669\"\u003e#1669\u003c/a\u003e which requires SQLAlchemy objects\nto support generic type subscripting; for the older SQLAlchemy 1.4 series,\nthis requires version 1.4.23.  Changed the minimum requirements to require\nversion 1.4.23 rather than 1.4.0.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1788\"\u003e#1788\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.18.2\u003c/h1\u003e\n\u003cp\u003eReleased: January 28, 2026\u003c/p\u003e\n\u003ch2\u003eusecase\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e[usecase] [operations]\u003c/strong\u003e The \u003ccode\u003eprimary_key\u003c/code\u003e parameter on \u003ccode\u003eColumn\u003c/code\u003e is now honored when\n\u003ccode\u003eOperations.add_column()\u003c/code\u003e is used, and will emit the \u0026quot;PRIMARY KEY\u0026quot;\nkeyword inline within the ADD COLUMN directive.  This is strictly a syntax\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/alembic/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `asyncpg` from 0.30.0 to 0.31.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/MagicStack/asyncpg/releases\"\u003easyncpg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.31.0\u003c/h2\u003e\n\u003cp\u003eEnable Python 3.14 with experimental subinterpreter/freethreading\nsupport.\u003c/p\u003e\n\u003ch1\u003eImprovements\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd Python 3.14 support, experimental subinterpreter/freethreading support (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1279\"\u003e#1279\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 9e42642b)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid performing type introspection on known types (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1243\"\u003e#1243\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 5c9986c4)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eprepare()\u003c/code\u003e not use named statements by default when cache is disabled (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1245\"\u003e#1245\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 5b14653e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement connection service file functionality (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1223\"\u003e#1223\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/AndrewJackson2020\"\u003e\u003ccode\u003e@​AndrewJackson2020\u003c/code\u003e\u003c/a\u003e in 1d63bb15)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eFixes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix multi port connection string issue (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1222\"\u003e#1222\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/AndrewJackson2020\"\u003e\u003ccode\u003e@​AndrewJackson2020\u003c/code\u003e\u003c/a\u003e in 01c0db7b)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid leaking connections if _can_use_connection fails (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1269\"\u003e#1269\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/yuliy-openai\"\u003e\u003ccode\u003e@​yuliy-openai\u003c/code\u003e\u003c/a\u003e in e94302d2)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eOther\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for EOL Python 3.8 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1281\"\u003e#1281\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 6c2c4904)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/71775a67277fc0aa5bd2b9f15e848826d7078c4d\"\u003e\u003ccode\u003e71775a6\u003c/code\u003e\u003c/a\u003e asyncpg v0.31.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/508cae6441968ef7613a623fece7083cce66c2b3\"\u003e\u003ccode\u003e508cae6\u003c/code\u003e\u003c/a\u003e Test on PostgreSQL 18 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1290\"\u003e#1290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/e534e5f15c73525a6509143b3828335517360f1b\"\u003e\u003ccode\u003ee534e5f\u003c/code\u003e\u003c/a\u003e Bump cibuildwheel\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/07fe5122a680f5768e39fc28d68c94b185037a52\"\u003e\u003ccode\u003e07fe512\u003c/code\u003e\u003c/a\u003e Bump pgproto\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/648b35f18199ebf2a30009376a6e9060cf7ad789\"\u003e\u003ccode\u003e648b35f\u003c/code\u003e\u003c/a\u003e Bump Cython to 3.2.1 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1288\"\u003e#1288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/9e42642b9110d206706697921b6e697a0972649d\"\u003e\u003ccode\u003e9e42642\u003c/code\u003e\u003c/a\u003e Add Python 3.14 support, experimental subinterpreter/freethreading support (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/6fe1c494ef5c3069fa9149c48bf9f8f2cd69f95e\"\u003e\u003ccode\u003e6fe1c49\u003c/code\u003e\u003c/a\u003e Move development deps away from extras and into dependency groups (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1280\"\u003e#1280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/7a548166c2b23561915c481bd332013e3a415cfb\"\u003e\u003ccode\u003e7a54816\u003c/code\u003e\u003c/a\u003e Fix a couple of missed Python version guards\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/6c2c4904e61b2cd2f502540730a24e246cff2ebd\"\u003e\u003ccode\u003e6c2c490\u003c/code\u003e\u003c/a\u003e Drop support for EOL Python 3.8 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1281\"\u003e#1281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/4c60ae890d1f3800f889679657357f91a6923568\"\u003e\u003ccode\u003e4c60ae8\u003c/code\u003e\u003c/a\u003e Bump version to 0.31.0.dev0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/MagicStack/asyncpg/compare/v0.30.0...v0.31.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyjwt` from 2.10.1 to 2.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/releases\"\u003epyjwt's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.11.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed type error in comment by \u003ca href=\"https://github.com/shuhaib-aot\"\u003e\u003ccode\u003e@​shuhaib-aot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1026\"\u003ejpadilla/pyjwt#1026\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1018\"\u003ejpadilla/pyjwt#1018\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1033\"\u003ejpadilla/pyjwt#1033\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake note of use of leeway with nbf by \u003ca href=\"https://github.com/djw8605\"\u003e\u003ccode\u003e@​djw8605\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1034\"\u003ejpadilla/pyjwt#1034\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1035\"\u003ejpadilla/pyjwt#1035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/964\"\u003e#964\u003c/a\u003e: Validate key against allowed types for Algorithm family by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/985\"\u003ejpadilla/pyjwt#985\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1024\"\u003e#1024\u003c/a\u003e: Add iterator for PyJWKSet by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1041\"\u003ejpadilla/pyjwt#1041\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1039\"\u003e#1039\u003c/a\u003e: Add iss, issuer type checks by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1040\"\u003ejpadilla/pyjwt#1040\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/660\"\u003e#660\u003c/a\u003e: Improve typing/logic for \u003ccode\u003eoptions\u003c/code\u003e in decode, decode_complete; Improve docs by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1045\"\u003ejpadilla/pyjwt#1045\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1042\"\u003ejpadilla/pyjwt#1042\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1052\"\u003ejpadilla/pyjwt#1052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1053\"\u003ejpadilla/pyjwt#1053\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1022\"\u003e#1022\u003c/a\u003e: Map \u003ccode\u003ealgorithm=None\u003c/code\u003e to \u0026quot;none\u0026quot; by \u003ca href=\"https://github.com/qqii\"\u003e\u003ccode\u003e@​qqii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1056\"\u003ejpadilla/pyjwt#1056\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1055\"\u003ejpadilla/pyjwt#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1058\"\u003ejpadilla/pyjwt#1058\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1060\"\u003ejpadilla/pyjwt#1060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1061\"\u003ejpadilla/pyjwt#1061\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1047\"\u003e#1047\u003c/a\u003e: Correct \u003ccode\u003ePyJWKClient.get_signing_key_from_jwt\u003c/code\u003e annotation  by \u003ca href=\"https://github.com/khvn26\"\u003e\u003ccode\u003e@​khvn26\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1048\"\u003ejpadilla/pyjwt#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1062\"\u003ejpadilla/pyjwt#1062\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed doc string typo in _validate_jti() function \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1063\"\u003e#1063\u003c/a\u003e by \u003ca href=\"https://github.com/kuldeepkhatke\"\u003e\u003ccode\u003e@​kuldeepkhatke\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1064\"\u003ejpadilla/pyjwt#1064\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1065\"\u003ejpadilla/pyjwt#1065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate SECURITY.md by \u003ca href=\"https://github.com/auvipy\"\u003e\u003ccode\u003e@​auvipy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1057\"\u003ejpadilla/pyjwt#1057\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTyping fix: use \u003ccode\u003efloat\u003c/code\u003e instead of \u003ccode\u003eint\u003c/code\u003e for \u003ccode\u003elifespan\u003c/code\u003e and \u003ccode\u003etimeout\u003c/code\u003e by \u003ca href=\"https://github.com/nikitagashkov\"\u003e\u003ccode\u003e@​nikitagashkov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1068\"\u003ejpadilla/pyjwt#1068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1067\"\u003ejpadilla/pyjwt#1067\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1071\"\u003ejpadilla/pyjwt#1071\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1076\"\u003ejpadilla/pyjwt#1076\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix TYP header documentation by \u003ca href=\"https://github.com/fobiasmog\"\u003e\u003ccode\u003e@​fobiasmog\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1046\"\u003ejpadilla/pyjwt#1046\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edoc: Document claims sub and jti by \u003ca href=\"https://github.com/cleder\"\u003e\u003ccode\u003e@​cleder\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1088\"\u003ejpadilla/pyjwt#1088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1077\"\u003ejpadilla/pyjwt#1077\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/setup-python from 5 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1089\"\u003ejpadilla/pyjwt#1089\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/stale from 8 to 10 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1090\"\u003ejpadilla/pyjwt#1090\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1083\"\u003ejpadilla/pyjwt#1083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1091\"\u003ejpadilla/pyjwt#1091\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1093\"\u003ejpadilla/pyjwt#1093\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1096\"\u003ejpadilla/pyjwt#1096\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eResolve package build warnings by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1105\"\u003ejpadilla/pyjwt#1105\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport Python 3.14, and test against PyPy 3.10+ by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1104\"\u003ejpadilla/pyjwt#1104\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix a \u003ccode\u003eSyntaxWarning\u003c/code\u003e caused by invalid escape sequences by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1103\"\u003ejpadilla/pyjwt#1103\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStandardize CHANGELOG links to PRs by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1110\"\u003ejpadilla/pyjwt#1110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate from \u003ccode\u003epep517\u003c/code\u003e, which is deprecated, to \u003ccode\u003ebuild\u003c/code\u003e by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1108\"\u003ejpadilla/pyjwt#1108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix incorrectly-named test suite function by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1116\"\u003ejpadilla/pyjwt#1116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Read the Docs builds by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1111\"\u003ejpadilla/pyjwt#1111\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-artifact from 4 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1118\"\u003ejpadilla/pyjwt#1118\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEscalate test suite warnings to errors by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1107\"\u003ejpadilla/pyjwt#1107\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd pyupgrade as a pre-commit hook by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1109\"\u003ejpadilla/pyjwt#1109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSimplify the test suite decorators by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1113\"\u003ejpadilla/pyjwt#1113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove coverage config and eliminate unused test suite code by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1115\"\u003ejpadilla/pyjwt#1115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild a shared wheel once in the test suite by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1114\"\u003ejpadilla/pyjwt#1114\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/jpadilla/pyjwt/blob/master/CHANGELOG.rst\"\u003epyjwt's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003ev2.11.0 \u0026lt;https://github.com/jpadilla/pyjwt/compare/2.10.1...2.11.0\u0026gt;\u003c/code\u003e__\u003c/h2\u003e\n\u003cp\u003eFixed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Enforce ECDSA curve validation per RFC 7518 Section 3.4.\n- Fix build system warnings by @kurtmckee in `[#1105](https://github.com/jpadilla/pyjwt/issues/1105) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1105\u0026gt;`__\n- Validate key against allowed types for Algorithm family in `[#964](https://github.com/jpadilla/pyjwt/issues/964) \u0026lt;https://github.com/jpadilla/pyjwt/pull/964\u0026gt;`__\n- Add iterator for JWKSet in `[#1041](https://github.com/jpadilla/pyjwt/issues/1041) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1041\u0026gt;`__\n- Validate `iss` claim is a string during encoding and decoding by @pachewise in `[#1040](https://github.com/jpadilla/pyjwt/issues/1040) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1040\u0026gt;`__\n- Improve typing/logic for `options` in decode, decode_complete by @pachewise in `[#1045](https://github.com/jpadilla/pyjwt/issues/1045) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1045\u0026gt;`__\n- Declare float supported type for lifespan and timeout by @nikitagashkov in `[#1068](https://github.com/jpadilla/pyjwt/issues/1068) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1068\u0026gt;`__\n- Fix ``SyntaxWarning``\\s/``DeprecationWarning``\\s caused by invalid escape sequences by @kurtmckee in `[#1103](https://github.com/jpadilla/pyjwt/issues/1103) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1103\u0026gt;`__\n- Development: Build a shared wheel once to speed up test suite setup times by @kurtmckee in `[#1114](https://github.com/jpadilla/pyjwt/issues/1114) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1114\u0026gt;`__\n- Development: Test type annotations across all supported Python versions,\n  increase the strictness of the type checking, and remove the mypy pre-commit hook\n  by @kurtmckee in `[#1112](https://github.com/jpadilla/pyjwt/issues/1112) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1112\u0026gt;`__\n\u003cp\u003eAdded\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14, and test against PyPy 3.10 and 3.11 by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1104](https://github.com/jpadilla/pyjwt/issues/1104) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1104\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDevelopment: Migrate to \u003ccode\u003ebuild\u003c/code\u003e to test package building in CI by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1108](https://github.com/jpadilla/pyjwt/issues/1108) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1108\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDevelopment: Improve coverage config and eliminate unused test suite code by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1115](https://github.com/jpadilla/pyjwt/issues/1115) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1115\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDocs: Standardize CHANGELOG links to PRs by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1110](https://github.com/jpadilla/pyjwt/issues/1110) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1110\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDocs: Fix Read the Docs builds by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1111](https://github.com/jpadilla/pyjwt/issues/1111) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1111\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDocs: Add example of using leeway with nbf by \u003ca href=\"https://github.com/djw8605\"\u003e\u003ccode\u003e@​djw8605\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1034](https://github.com/jpadilla/pyjwt/issues/1034) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1034\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDocs: Refactored docs with \u003ccode\u003eautodoc\u003c/code\u003e; added \u003ccode\u003ePyJWS\u003c/code\u003e and \u003ccode\u003ejwt.algorithms\u003c/code\u003e docs by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1045](https://github.com/jpadilla/pyjwt/issues/1045) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1045\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDocs: Documentation improvements for \u0026quot;sub\u0026quot; and \u0026quot;jti\u0026quot; claims by \u003ca href=\"https://github.com/cleder\"\u003e\u003ccode\u003e@​cleder\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1088](https://github.com/jpadilla/pyjwt/issues/1088) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1088\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDevelopment: Add pyupgrade as a pre-commit hook by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1109](https://github.com/jpadilla/pyjwt/issues/1109) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1109\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eAdd minimum key length validation for HMAC and RSA keys (CWE-326).\nWarns by default via \u003ccode\u003eInsecureKeyLengthWarning\u003c/code\u003e when keys are below\nminimum recommended lengths per RFC 7518 Section 3.2 (HMAC) and\nNIST SP 800-131A (RSA). Pass \u003ccode\u003eenforce_minimum_key_length=True\u003c/code\u003e in\noptions to \u003ccode\u003ePyJWT\u003c/code\u003e or \u003ccode\u003ePyJWS\u003c/code\u003e to raise \u003ccode\u003eInvalidKeyError\u003c/code\u003e instead.\u003c/li\u003e\n\u003cli\u003eRefactor \u003ccode\u003ePyJWT\u003c/code\u003e to own an internal \u003ccode\u003ePyJWS\u003c/code\u003e instance instead of\ncalling global \u003ccode\u003eapi_jws\u003c/code\u003e functions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/697344d25990641b8b2aa85f0a60634b590b5702\"\u003e\u003ccode\u003e697344d\u003c/code\u003e\u003c/a\u003e bump up version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/e4d0aec0248ef30cfc91bbcf0f011b0a318864c9\"\u003e\u003ccode\u003ee4d0aec\u003c/code\u003e\u003c/a\u003e fix: pre-commit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/df9a6a0c44906ff5f48676a65f522f21e31fcc0d\"\u003e\u003ccode\u003edf9a6a0\u003c/code\u003e\u003c/a\u003e fix: failing test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/2b2e53cd2377d09b082831c9406689c6cfe1ae80\"\u003e\u003ccode\u003e2b2e53c\u003c/code\u003e\u003c/a\u003e fix: docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/635c8d89dd8b8bea1813fe8830a26d0274a4e724\"\u003e\u003ccode\u003e635c8d8\u003c/code\u003e\u003c/a\u003e fix: failing mypy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/96ae3563b9db8f5e18621c4d612f622cf476c92b\"\u003e\u003ccode\u003e96ae356\u003c/code\u003e\u003c/a\u003e feat: add minimum key length validation for HMAC and RSA\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/5b8622773358e56d3d3c0a9acf404809ff34433a\"\u003e\u003ccode\u003e5b86227\u003c/code\u003e\u003c/a\u003e fix: enforce ECDSA curve validation per RFC 7518 Section 3.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/04947d75dc45ba1a4a66eaa2b24fbb0eb512ceab\"\u003e\u003ccode\u003e04947d7\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6 to 7 (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1125\"\u003e#1125\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/dd448344c3eb7bc54b7b395e0f6b00bb811be24a\"\u003e\u003ccode\u003edd44834\u003c/code\u003e\u003c/a\u003e Fix leeway value in usage documentation (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1124\"\u003e#1124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/407f0bde99383fd9c63f1ed4ef922322ab72b5a1\"\u003e\u003ccode\u003e407f0bd\u003c/code\u003e\u003c/a\u003e Thoroughly test type annotations, and resolve errors (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1112\"\u003e#1112\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.10.1...2.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tenacity` from 9.1.2 to 9.1.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jd/tenacity/releases\"\u003etenacity's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.1.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eretry()\u003c/code\u003e annotations with async \u003ccode\u003esleep=\u003c/code\u003e function by \u003ca href=\"https://github.com/Zac-HD\"\u003e\u003ccode\u003e@​Zac-HD\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/555\"\u003ejd/tenacity#555\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jd/tenacity/compare/9.1.3...9.1.4\"\u003ehttps://github.com/jd/tenacity/compare/9.1.3...9.1.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e9.1.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eApply formatting to num seconds in before_sleep_log by \u003ca href=\"https://github.com/aguinane\"\u003e\u003ccode\u003e@​aguinane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/489\"\u003ejd/tenacity#489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport Python 3.14 by \u003ca href=\"https://github.com/sandrobonazzola\"\u003e\u003ccode\u003e@​sandrobonazzola\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/528\"\u003ejd/tenacity#528\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTyping: Accept non-standard logger in helpers logging something by \u003ca href=\"https://github.com/k4nar\"\u003e\u003ccode\u003e@​k4nar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/540\"\u003ejd/tenacity#540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(wait): add \u003ccode\u003ewait_exception\u003c/code\u003e strategy by \u003ca href=\"https://github.com/capitan-davide\"\u003e\u003ccode\u003e@​capitan-davide\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/541\"\u003ejd/tenacity#541\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: fix syntax error in wait_chain docstring example by \u003ca href=\"https://github.com/VedantMadane\"\u003e\u003ccode\u003e@​VedantMadane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/548\"\u003ejd/tenacity#548\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: drop Python 3.9 support (EOL) by \u003ca href=\"https://github.com/Zac-HD\"\u003e\u003ccode\u003e@​Zac-HD\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/552\"\u003ejd/tenacity#552\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport async sleep for sync fn-to-retry by \u003ca href=\"https://github.com/Zac-HD\"\u003e\u003ccode\u003e@​Zac-HD\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/551\"\u003ejd/tenacity#551\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/aguinane\"\u003e\u003ccode\u003e@​aguinane\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/489\"\u003ejd/tenacity#489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sandrobonazzola\"\u003e\u003ccode\u003e@​sandrobonazzola\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/528\"\u003ejd/tenacity#528\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/k4nar\"\u003e\u003ccode\u003e@​k4nar\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/540\"\u003ejd/tenacity#540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/capitan-davide\"\u003e\u003ccode\u003e@​capitan-davide\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/541\"\u003ejd/tenacity#541\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/VedantMadane\"\u003e\u003ccode\u003e@​VedantMadane\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/548\"\u003ejd/tenacity#548\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Zac-HD\"\u003e\u003ccode\u003e@​Zac-HD\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/552\"\u003ejd/tenacity#552\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jd/tenacity/compare/9.1.2...9.1.3\"\u003ehttps://github.com/jd/tenacity/compare/9.1.2...9.1.3\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jd/tenacity/commit/d4e868d6b8368c00b5a1fad54de36c2c8c3a0fb3\"\u003e\u003ccode\u003ed4e868d\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eretry()\u003c/code\u003e annotations with async \u003ccode\u003esleep=\u003c/code\u003e function (\u003ca href=\"https://redirect.github.com/jd/tenacity/issues/555\"\u003e#555\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jd/tenacity/commit/24415ebbca6ecafdf870af06441656dd96149d1d\"\u003e\u003ccode\u003e24415eb\u003c/code\u003e\u003c/a\u003e support async sleep for sync fn (\u003ca href=\"https://redirect.github.com/jd/tenacity/issues/551\"\u003e#551\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jd/tenacity/commit/3bf33b44096077a0608855f6a380fd8a25fa6f26\"\u003e\u003ccode\u003e3bf33b4\u003c/code\u003e\u003c/a\u003e chore: drop Python 3.9 support (EOL) (\u003ca href=\"https://redirect.github.com/jd/tenacity/issues/552\"\u003e#552\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jd/tenacity/commit/7027da31d27155c7b1831e292a29575af7b5c2b1\"\u003e\u003ccode\u003e7027da3\u003c/code\u003e\u003c/a\u003e chore(deps): bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/jd/tenacity/issues/550\"\u003e#550\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jd/tenacity/commit/21ae7d0cc27069defd111e8ec81407f6d14089f6\"\u003e\u003ccode\u003e21ae7d0\u003c/code\u003e\u003c/a\u003e docs: fix syntax error in wait_chain docstring example (\u003ca href=\"https://redirect.github.com/jd/tenacity/issues/548\"\u003e#548\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jd/tenacity/commit/ef12c9ed1df4dec3748b1fa9304527245b041d2d\"\u003e\u003ccode\u003eef12c9e\u003c/code\u003e\u003c/a\u003e chore(deps): bump actions/checkout in the github-actions group (\u003ca href=\"https://redirect.github.com/jd/tenacity/issues/547\"\u003e#547\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jd/tenacity/commit/c35a4b341ef5e553c670290fbd8835b59d5f08a3\"\u003e\u003ccode\u003ec35a4b3\u003c/code\u003e\u003c/a\u003e chore(deps): bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/jd/tenacity/issues/545\"\u003e#545\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jd/tenacity/commit/e792bbaf0cab3685c8000899cb9f61e04d6f3e23\"\u003e\u003ccode\u003ee792bba\u003c/code\u003e\u003c/a\u003e ci: fix mypy (\u003ca href=\"https://redirect.github.com/jd/tenacity/issues/546\"\u003e#546\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jd/tenacity/commit/0f55245b8da5c4cc8385c2f692164a6ff52cd88e\"\u003e\u003ccode\u003e0f55245\u003c/code\u003e\u003c/a\u003e ci: remove reno requirements (\u003ca href=\"https://redirect.github.com/jd/tenacity/issues/542\"\u003e#542\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jd/tenacity/commit/815c34fec2c8d64fe2bc8a6bdd79bfb41f1938c6\"\u003e\u003ccode\u003e815c34f\u003c/code\u003e\u003c/a\u003e feat(wait): add \u003ccode\u003ewait_exception\u003c/code\u003e strategy (\u003ca href=\"https://redirect.github.com/jd/tenacity/issues/541\"\u003e#541\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jd/tenacity/compare/9.1.2...9.1.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `kubernetes` from 31.0.0 to 33.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kubernetes-client/python/releases\"\u003ekubernetes's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKubernetes Python Client v33.1.0 Stable Release\u003c/h2\u003e\n\u003cp\u003eGetting started:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install --pre --upgrade kubernetes\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from source, download attached zip file, then\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eunzip client-python-v33.1.0.zip\ncd client-python-v33.1.0\npython setup.py install\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThen follow examples in \u003ca href=\"https://github.com/kubernetes-client/python/tree/release-33.0/examples\"\u003ehttps://github.com/kubernetes-client/python/tree/release-33.0/examples\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eChangelog: \u003ca href=\"https://github.com/kubernetes-client/python/blob/release-33.0/CHANGELOG.md\"\u003ehttps://github.com/kubernetes-client/python/blob/release-33.0/CHANGELOG.md\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eKubernetes Python Client v33.1.0 Beta 1 Release\u003c/h2\u003e\n\u003cp\u003eGetting started:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install --pre --upgrade kubernetes\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from source, download attached zip file, then\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eunzip client-python-v33.1.0b1.zip\ncd client-python-v33.1.0b1\npython setup.py install\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThen follow examples in \u003ca href=\"https://github.com/kubernetes-client/python/tree/release-33.0/examples\"\u003ehttps://github.com/kubernetes-client/python/tree/release-33.0/examples\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eChangelog: \u003ca href=\"https://github.com/kubernetes-client/python/blob/release-33.0/CHANGELOG.md\"\u003ehttps://github.com/kubernetes-client/python/blob/release-33.0/CHANGELOG.md\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eKubernetes Python Client v33.1.0 Alpha 1 Release\u003c/h2\u003e\n\u003cp\u003eGetting started:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install --pre --upgrade kubernetes\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from source, download attached zip file, then\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eunzip client-python-v33.1.0a1.zip\ncd client-python-v33.1.0a1\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt; \n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kubernetes-client/python/blob/v33.1.0/CHANGELOG.md\"\u003ekubernetes's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev33.1.0\u003c/h1\u003e\n\u003cp\u003eKubernetes API Version: v1.33.1\u003c/p\u003e\n\u003ch1\u003ev33.1.0b1\u003c/h1\u003e\n\u003cp\u003eKubernetes API Version: v1.33.1\u003c/p\u003e\n\u003ch1\u003ev33.1.0a1\u003c/h1\u003e\n\u003cp\u003eKubernetes API Version: v1.33.1\u003c/p\u003e\n\u003ch3\u003eAPI Change\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eA new alpha feature gate, \u003ccode\u003eMutableCSINodeAllocatableCount\u003c/code\u003e, has been introduced.\u003c/p\u003e\n\u003cp\u003eWhen this feature gate is enabled, the \u003ccode\u003eCSINode.Spec.Drivers[*].Allocatable.Count\u003c/code\u003e field becomes mutable, and a new field, \u003ccode\u003eNodeAllocatableUpdatePeriodSeconds\u003c/code\u003e, is available in the \u003ccode\u003eCSIDriver\u003c/code\u003e object. This allows periodic updates to a node's reported allocatable volume capacity, preventing stateful pods from becoming stuck due to outdated information that kube-scheduler relies on. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130007\"\u003ekubernetes/kubernetes#130007\u003c/a\u003e, \u003ca href=\"https://github.com/torredil\"\u003e\u003ccode\u003e@​torredil\u003c/code\u003e\u003c/a\u003e) [SIG Apps, Node, Scheduling and Storage]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded feature gate \u003ccode\u003eDRAPartitionableDevices\u003c/code\u003e, when enabled, Dynamic Resource Allocation support partitionable devices allocation. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130764\"\u003ekubernetes/kubernetes#130764\u003c/a\u003e, \u003ca href=\"https://github.com/cici37\"\u003e\u003ccode\u003e@​cici37\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Scheduling, Storage and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded DRA support for a \u0026quot;one-of\u0026quot; prioritized list of selection criteria to satisfy a device request in a resource claim. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/128586\"\u003ekubernetes/kubernetes#128586\u003c/a\u003e, \u003ca href=\"https://github.com/mortent\"\u003e\u003ccode\u003e@​mortent\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Etcd, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a \u003ccode\u003e/flagz\u003c/code\u003e endpoint for kubelet endpoint (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/128857\"\u003ekubernetes/kubernetes#128857\u003c/a\u003e, \u003ca href=\"https://github.com/zhifei92\"\u003e\u003ccode\u003e@​zhifei92\u003c/code\u003e\u003c/a\u003e) [SIG Architecture, Instrumentation and Node]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a new \u003ccode\u003etolerance\u003c/code\u003e field to HorizontalPodAutoscaler, overriding the cluster-wide default. Enabled via the HPAConfigurableTolerance alpha feature gate. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130797\"\u003ekubernetes/kubernetes#130797\u003c/a\u003e, \u003ca href=\"https://github.com/jm-franc\"\u003e\u003ccode\u003e@​jm-franc\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Autoscaling, Etcd, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for configuring custom stop signals with a new StopSignal container lifecycle (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130556\"\u003ekubernetes/kubernetes#130556\u003c/a\u003e, \u003ca href=\"https://github.com/sreeram-venkitesh\"\u003e\u003ccode\u003e@​sreeram-venkitesh\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for in-place vertical scaling of Pods with sidecars (containers defined within \u003ccode\u003einitContainers\u003c/code\u003e where the \u003ccode\u003erestartPolicy\u003c/code\u003e is set to \u003ccode\u003eAlways\u003c/code\u003e). (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/128367\"\u003ekubernetes/kubernetes#128367\u003c/a\u003e, \u003ca href=\"https://github.com/vivzbansal\"\u003e\u003ccode\u003e@​vivzbansal\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, CLI, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCPUManager Policy Options support is GA (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130535\"\u003ekubernetes/kubernetes#130535\u003c/a\u003e, \u003ca href=\"https://github.com/ffromani\"\u003e\u003ccode\u003e@​ffromani\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChanged the Pod API to support \u003ccode\u003ehugepage resources\u003c/code\u003e at \u003ccode\u003espec\u003c/code\u003e level for pod-level resources. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130577\"\u003ekubernetes/kubernetes#130577\u003c/a\u003e, \u003ca href=\"https://github.com/KevinTMtz\"\u003e\u003ccode\u003e@​KevinTMtz\u003c/code\u003e\u003c/a\u003e) [SIG Apps, CLI, Node, Scheduling, Storage and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA API: The maximum number of pods that can use the same ResourceClaim is now 256 instead of 32. Downgrading a cluster where this relaxed limit is in use to Kubernetes 1.32.0 is not supported, as version 1.32.0 would refuse to update ResourceClaims with more than 32 entries in the \u003ccode\u003estatus.reservedFor\u003c/code\u003e field. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/129543\"\u003ekubernetes/kubernetes#129543\u003c/a\u003e, \u003ca href=\"https://github.com/pohly\"\u003e\u003ccode\u003e@​pohly\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA: CEL expressions using attribute strings exceeded the cost limit because their cost estimation was incomplete. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/129661\"\u003ekubernetes/kubernetes#129661\u003c/a\u003e, \u003ca href=\"https://github.com/pohly\"\u003e\u003ccode\u003e@​pohly\u003c/code\u003e\u003c/a\u003e) [SIG Node]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA: Device taints enable DRA drivers or admins to mark device as unusable, which prevents allocating them. Pods may also get evicted at runtime if a device becomes unusable, depending on the severity of the taint and whether the claim tolerates the taint. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130447\"\u003ekubernetes/kubernetes#130447\u003c/a\u003e, \u003ca href=\"https://github.com/pohly\"\u003e\u003ccode\u003e@​pohly\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Architecture, Auth, Etcd, Instrumentation, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA: Starting Kubernetes 1.33, only users with access to an admin namespace with the \u003ccode\u003ekubernetes.io/dra-admin-access\u003c/code\u003e label are authorized to create ResourceClaim or ResourceClaimTemplate objects with the \u003ccode\u003eadminAccess\u003c/code\u003e field in this admin namespace if they want to and only they can reference these ResourceClaims or ResourceClaimTemplates in their pod or deployment specs. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130225\"\u003ekubernetes/kubernetes#130225\u003c/a\u003e, \u003ca href=\"https://github.com/ritazh\"\u003e\u003ccode\u003e@​ritazh\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Auth, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA: when asking for \u0026quot;All\u0026quot; devices on a node, Kubernetes \u0026lt;= 1.32 proceeded to schedule pods onto nodes with no devices by not allocating any devices for those pods. Kubernetes 1.33 changes that to only picking nodes which have at least one device. Users who want the \u0026quot;proceed with scheduling also without devices\u0026quot; semantic can use the upcoming prioritized list feature with one sub-request for \u0026quot;all\u0026quot; devices and a second alternative with \u0026quot;count: 0\u0026quot;. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/129560\"\u003ekubernetes/kubernetes#129560\u003c/a\u003e, \u003ca href=\"https://github.com/bart0sh\"\u003e\u003ccode\u003e@​bart0sh\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery and Node]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExpanded the on-disk kubelet credential provider configuration to allow an optional \u003ccode\u003etokenAttribute\u003c/code\u003e field to be configured. When it is set, the kubelet will provision a token with the given audience bound to the current pod and its service account. This KSA token along with required annotations on the KSA defined in configuration will be sent to the credential provider plugin via its standard input (along with the image information that is already sent today). The KSA annotations to be sent are configurable in the kubelet credential provider configuration. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/128372\"\u003ekubernetes/kubernetes#128372\u003c/a\u003e, \u003ca href=\"https://github.com/aramase\"\u003e\u003ccode\u003e@​aramase\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Auth, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed the example validation rule in godoc:\u003c/p\u003e\n\u003cp\u003eWhen configuring a JWT authenticator:\u003c/p\u003e\n\u003cp\u003eIf username.expression uses 'claims.email', then 'claims.email_verified' must be used in\nusername.expression or extra[\u003cem\u003e].valueExpression or claimValidationRules[\u003c/em\u003e].expression.\nAn example claim validation rule expression that matches the validation automatically\napplied when username.claim is set to 'email' is 'claims.?email_verified.orValue(true) == true'.\nBy explicitly comparing the value to true, we let type-checking see the result will be a boolean,\nand to make sure a non-boolean \u003ccode\u003eemail_verified\u003c/code\u003e claim will be caught at runtime. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130875\"\u003ekubernetes/kubernetes#130875\u003c/a\u003e, \u003ca href=\"https://github.com/aramase\"\u003e\u003ccode\u003e@​aramase\u003c/code\u003e\u003c/a\u003e) [SIG Auth and Release]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFor the \u003ccode\u003eInPlacePodVerticalScaling\u003c/code\u003e feature, the API server will no longer set the resize status to \u003ccode\u003eProposed\u003c/code\u003e upon receiving a resize request. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130574\"\u003ekubernetes/kubernetes#130574\u003c/a\u003e, \u003ca href=\"https://github.com/natasha4...\n\n_Description has been truncated_","html_url":"https://github.com/SwissDataScienceCenter/renku-data-services/pull/1204","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/SwissDataScienceCenter%2Frenku-data-services/issues/1204","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1204/packages"},{"uuid":"3886092476","node_id":"PR_kwDODoBT_M7A7Ctp","number":119,"state":"open","title":"build(deps-dev): bump syrupy from 4.7.2 to 5.1.0","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":6,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-02-02T14:01:06.000Z","updated_at":"2026-02-02T14:02:41.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps-dev)","packages":[{"name":"syrupy","old_version":"4.7.2","new_version":"5.1.0","repository_url":"https://github.com/syrupy-project/syrupy"}],"path":null,"ecosystem":"pip"},"body":"Bumps [syrupy](https://github.com/syrupy-project/syrupy) from 4.7.2 to 5.1.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/syrupy-project/syrupy/releases\"\u003esyrupy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.1.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.0.0...v5.1.0\"\u003e5.1.0\u003c/a\u003e (2026-01-25)\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd serializer plugin system; plugins for data models (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1062\"\u003e#1062\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/df9bc8f6b3a222dde82167e10a2e6bb57456305a\"\u003edf9bc8f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev5.0.0\u003c/h2\u003e\n\u003ch2\u003eSyrupy 5.0.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e(2025-09-28)\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eThis release introduces new features, bug fixes, and a major license change. It also includes several \u003cstrong\u003ebreaking changes\u003c/strong\u003e, so please review those carefully before upgrading.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch3\u003eNew Features ✨\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eAdd \u003ccode\u003e--snapshot-dirname\u003c/code\u003e option:\u003c/strong\u003e A new option, \u003ccode\u003e--snapshot-dirname\u003c/code\u003e, is now available to change the default directory snapshots are stored in. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003e#810\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003esyrupy-project/syrupy#810\u003c/a\u003e))\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRemove private underscore prefix:\u003c/strong\u003e The unnecessary underscore prefixes have been removed from public methods for better code clarity. ([\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003e8cfc905\u003c/a\u003e](\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003ehttps://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\u003c/a\u003e))\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch3\u003eBug Fixes 🐛\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFix terminal summary for \u003ccode\u003exdist\u003c/code\u003e workers:\u003c/strong\u003e Resolves an issue where the terminal summary was not displayed correctly with \u003ccode\u003exdist\u003c/code\u003e workers. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/978\"\u003e#978\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/978\"\u003esyrupy-project/syrupy#978\u003c/a\u003e))\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eEnsure \u003ccode\u003epytest_assertrepr_compare\u003c/code\u003e hook is called first:\u003c/strong\u003e This change ensures that Syrupy's assertion hook takes precedence, improving compatibility with other plugins. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/984\"\u003e#984\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/984\"\u003esyrupy-project/syrupy#984\u003c/a\u003e))\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch3\u003eBreaking Changes ⚠️\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eLicense change:\u003c/strong\u003e The project has switched to the more permissive \u003cstrong\u003eMIT license\u003c/strong\u003e. This change applies to all versions from 5.0.0 and beyond. If you need to use the previous Apache 2.0 license, you must continue to use Syrupy versions 4.x or earlier. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/945\"\u003e#945\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/945\"\u003esyrupy-project/syrupy#945\u003c/a\u003e))\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003ePython and pytest version requirements:\u003c/strong\u003e Syrupy now requires \u003cstrong\u003ePython 3.10\u003c/strong\u003e or higher. Support for Python 3.8 has been dropped as it reached its end of life in October 2024. The minimum required version of \u003cstrong\u003epytest is v8\u003c/strong\u003e. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/904\"\u003e#904\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/904\"\u003esyrupy-project/syrupy#904\u003c/a\u003e), [\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003e#1024\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003esyrupy-project/syrupy#1024\u003c/a\u003e))\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eMethod and constant name changes:\u003c/strong\u003e Several methods and constants have been renamed for improved clarity and to align with public API standards.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ccode\u003eSnapshotCollectionStorage\u003c/code\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e_read_snapshot_collection\u003c/code\u003e -\u0026gt; \u003ccode\u003eread_snapshot_collection\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_read_snapshot_data_from_location\u003c/code\u003e -\u0026gt; \u003ccode\u003eread_snapshot_data_from_location\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_write_snapshot_collection\u003c/code\u003e -\u0026gt; \u003ccode\u003ewrite_snapshot_collection\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_get_file_basename\u003c/code\u003e -\u0026gt; \u003ccode\u003eget_file_basename\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_file_extension\u003c/code\u003e -\u0026gt; \u003ccode\u003efile_extension\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ccode\u003eAmberDataSerializer\u003c/code\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e_snapshot_sort_key\u003c/code\u003e -\u0026gt; \u003ccode\u003esnapshot_sort_key\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eConstants\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eSNAPSHOT_EMPTY_FOSSIL_KEY\u003c/code\u003e -\u0026gt; \u003ccode\u003eSNAPSHOT_EMPTY_COLLECTION_KEY\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSNAPSHOT_UNKNOWN_FOSSIL_KEY\u003c/code\u003e -\u0026gt; \u003ccode\u003eSNAPSHOT_UNKNOWN_COLLECTION_KEY\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/syrupy-project/syrupy/blob/main/CHANGELOG.md\"\u003esyrupy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.0.0...v5.1.0\"\u003e5.1.0\u003c/a\u003e (2026-01-25)\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd serializer plugin system; plugins for data models (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1062\"\u003e#1062\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/df9bc8f6b3a222dde82167e10a2e6bb57456305a\"\u003edf9bc8f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\"\u003e5.0.0\u003c/a\u003e (2025-09-28)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch to MIT license (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/945\"\u003e#945\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/d74d340f8884fdb04831fcf77f29d66e098aaa66\"\u003ed74d340\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlock terminal summary for xdist workers. (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/978\"\u003e#978\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/33a848df7c4a33577e4057eae5792f6592ad3172\"\u003e33a848d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eensure syrupy's pytest_assertrepr_compare hook is called first. (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/984\"\u003e#984\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/eb0024d339248b7e1f76fdb65ed30ba3e19c0857\"\u003eeb0024d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove incorrect private underscore prefix from public methods (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003e8cfc905\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd --snapshot-dirname option, close \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003e#810\u003c/a\u003e (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/27135c7c861441962c2cedde841f3e4fed2949fd\"\u003e27135c7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edrop support for py3.8, raise min. pytest to v8 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/904\"\u003e#904\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/a879ff15ad82e59a2f387db0822be072a5684f2f\"\u003ea879ff1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate min. python version to 3.10 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003e#1024\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/16b4113cd56da96e84a90ebda0919e9b8dd35954\"\u003e16b4113\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe following methods have been renamed:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSnapshotCollectionStorage\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e_read_snapshot_collection -\u0026gt; read_snapshot_collection\u003c/li\u003e\n\u003cli\u003e_read_snapshot_data_from_location -\u0026gt; read_snapshot_data_from_location\u003c/li\u003e\n\u003cli\u003e_write_snapshot_collection -\u0026gt; write_snapshot_collection\u003c/li\u003e\n\u003cli\u003e_get_file_basename -\u0026gt; get_file_basename\u003c/li\u003e\n\u003cli\u003e_file_extension -\u0026gt; file_extension\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eAmberDataSerializer\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e_snapshot_sort_key -\u0026gt; snapshot_sort_key\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRenamed constants to improve clarity:\u003c/p\u003e\n\u003cp\u003econstants\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSNAPSHOT_EMPTY_FOSSIL_KEY -\u0026gt; SNAPSHOT_EMPTY_COLLECTION_KEY\u003c/li\u003e\n\u003cli\u003eSNAPSHOT_UNKNOWN_FOSSIL_KEY -\u0026gt; SNAPSHOT_UNKNOWN_COLLECTION_KEY\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/7096efdee61a8e1bc47492bdd0bc860766df40e9\"\u003e\u003ccode\u003e7096efd\u003c/code\u003e\u003c/a\u003e chore(release): 5.1.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/07aa00dd48d65e74814cec863b5f236e09afb464\"\u003e\u003ccode\u003e07aa00d\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency attrs to v25 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1063\"\u003e#1063\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/1f29ae061e9557e205e50fb2f9971ee95c4bd08e\"\u003e\u003ccode\u003e1f29ae0\u003c/code\u003e\u003c/a\u003e docs: add bwrob as a contributor for code (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1064\"\u003e#1064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/df9bc8f6b3a222dde82167e10a2e6bb57456305a\"\u003e\u003ccode\u003edf9bc8f\u003c/code\u003e\u003c/a\u003e feat: add serializer plugin system; plugins for data models (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1062\"\u003e#1062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/841257deaf598df7c3d154b8e2d694f8bb7e5055\"\u003e\u003ccode\u003e841257d\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency coverage to v7.13.1 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1061\"\u003e#1061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/2d8dfa7f7bb2a5f7c0210107dbb65b62a615d434\"\u003e\u003ccode\u003e2d8dfa7\u003c/code\u003e\u003c/a\u003e chore(deps): update codecov/codecov-action action to v5.5.2 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1056\"\u003e#1056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/f5f9ef77027983d3b62d8cc5bfc3a9ef058fe509\"\u003e\u003ccode\u003ef5f9ef7\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency debugpy to v1.8.18 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1057\"\u003e#1057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/eaeb6ae11f57aa3e595d4c45e7be4a3ed2d66dfc\"\u003e\u003ccode\u003eeaeb6ae\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency pytest to v9.0.2 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/263b23b768ef761c3f7e1faa0671b0709c1887b1\"\u003e\u003ccode\u003e263b23b\u003c/code\u003e\u003c/a\u003e chore(deps): update python docker tag to v3.14.1 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1054\"\u003e#1054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/a0dd77b023fee34ff0968a822e0d0740c9c7fb93\"\u003e\u003ccode\u003ea0dd77b\u003c/code\u003e\u003c/a\u003e chore(deps): update actions/checkout action to v6.0.1 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1053\"\u003e#1053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.7.2...v5.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=syrupy\u0026package-manager=uv\u0026previous-version=4.7.2\u0026new-version=5.1.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/spraakbanken/json-arrays-py/pull/119","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/spraakbanken%2Fjson-arrays-py/issues/119","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/119/packages"},{"uuid":"3858027622","node_id":"PR_kwDOHJ4bsM6_eOy5","number":575,"state":"open","title":"Bump syrupy from 5.0.0 to 5.1.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-01-26T22:57:13.000Z","updated_at":"2026-01-26T22:57:43.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"syrupy","old_version":"5.0.0","new_version":"5.1.0","repository_url":"https://github.com/syrupy-project/syrupy"}],"path":null,"ecosystem":"pip"},"body":"Bumps [syrupy](https://github.com/syrupy-project/syrupy) from 5.0.0 to 5.1.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/syrupy-project/syrupy/releases\"\u003esyrupy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.1.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.0.0...v5.1.0\"\u003e5.1.0\u003c/a\u003e (2026-01-25)\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd serializer plugin system; plugins for data models (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1062\"\u003e#1062\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/df9bc8f6b3a222dde82167e10a2e6bb57456305a\"\u003edf9bc8f\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/syrupy-project/syrupy/blob/main/CHANGELOG.md\"\u003esyrupy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.0.0...v5.1.0\"\u003e5.1.0\u003c/a\u003e (2026-01-25)\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd serializer plugin system; plugins for data models (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1062\"\u003e#1062\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/df9bc8f6b3a222dde82167e10a2e6bb57456305a\"\u003edf9bc8f\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/syrupy-project/syrupy/commit/7096efdee61a8e1bc47492bdd0bc860766df40e9\"\u003e\u003ccode\u003e7096efd\u003c/code\u003e\u003c/a\u003e chore(release): 5.1.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/07aa00dd48d65e74814cec863b5f236e09afb464\"\u003e\u003ccode\u003e07aa00d\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency attrs to v25 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1063\"\u003e#1063\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/1f29ae061e9557e205e50fb2f9971ee95c4bd08e\"\u003e\u003ccode\u003e1f29ae0\u003c/code\u003e\u003c/a\u003e docs: add bwrob as a contributor for code (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1064\"\u003e#1064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/df9bc8f6b3a222dde82167e10a2e6bb57456305a\"\u003e\u003ccode\u003edf9bc8f\u003c/code\u003e\u003c/a\u003e feat: add serializer plugin system; plugins for data models (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1062\"\u003e#1062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/841257deaf598df7c3d154b8e2d694f8bb7e5055\"\u003e\u003ccode\u003e841257d\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency coverage to v7.13.1 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1061\"\u003e#1061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/2d8dfa7f7bb2a5f7c0210107dbb65b62a615d434\"\u003e\u003ccode\u003e2d8dfa7\u003c/code\u003e\u003c/a\u003e chore(deps): update codecov/codecov-action action to v5.5.2 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1056\"\u003e#1056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/f5f9ef77027983d3b62d8cc5bfc3a9ef058fe509\"\u003e\u003ccode\u003ef5f9ef7\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency debugpy to v1.8.18 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1057\"\u003e#1057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/eaeb6ae11f57aa3e595d4c45e7be4a3ed2d66dfc\"\u003e\u003ccode\u003eeaeb6ae\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency pytest to v9.0.2 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/263b23b768ef761c3f7e1faa0671b0709c1887b1\"\u003e\u003ccode\u003e263b23b\u003c/code\u003e\u003c/a\u003e chore(deps): update python docker tag to v3.14.1 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1054\"\u003e#1054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/a0dd77b023fee34ff0968a822e0d0740c9c7fb93\"\u003e\u003ccode\u003ea0dd77b\u003c/code\u003e\u003c/a\u003e chore(deps): update actions/checkout action to v6.0.1 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1053\"\u003e#1053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.0.0...v5.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=syrupy\u0026package-manager=pip\u0026previous-version=5.0.0\u0026new-version=5.1.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/Ludy87/pyecotrend-ista/pull/575","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ludy87%2Fpyecotrend-ista/issues/575","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/575/packages"},{"uuid":"3857742451","node_id":"PR_kwDOK-O-xM6_dRBO","number":230,"state":"open","title":"Bump syrupy from 5.0.0 to 5.1.0","user":"dependabot[bot]","labels":[":recycle: dependencies",":snake: python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-01-26T21:29:00.000Z","updated_at":"2026-01-26T21:30:11.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"syrupy","old_version":"5.0.0","new_version":"5.1.0","repository_url":"https://github.com/syrupy-project/syrupy"}],"path":null,"ecosystem":"pip"},"body":"Bumps [syrupy](https://github.com/syrupy-project/syrupy) from 5.0.0 to 5.1.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/syrupy-project/syrupy/releases\"\u003esyrupy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.1.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.0.0...v5.1.0\"\u003e5.1.0\u003c/a\u003e (2026-01-25)\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd serializer plugin system; plugins for data models (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1062\"\u003e#1062\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/df9bc8f6b3a222dde82167e10a2e6bb57456305a\"\u003edf9bc8f\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/syrupy-project/syrupy/blob/main/CHANGELOG.md\"\u003esyrupy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.0.0...v5.1.0\"\u003e5.1.0\u003c/a\u003e (2026-01-25)\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd serializer plugin system; plugins for data models (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1062\"\u003e#1062\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/df9bc8f6b3a222dde82167e10a2e6bb57456305a\"\u003edf9bc8f\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/syrupy-project/syrupy/commit/7096efdee61a8e1bc47492bdd0bc860766df40e9\"\u003e\u003ccode\u003e7096efd\u003c/code\u003e\u003c/a\u003e chore(release): 5.1.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/07aa00dd48d65e74814cec863b5f236e09afb464\"\u003e\u003ccode\u003e07aa00d\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency attrs to v25 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1063\"\u003e#1063\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/1f29ae061e9557e205e50fb2f9971ee95c4bd08e\"\u003e\u003ccode\u003e1f29ae0\u003c/code\u003e\u003c/a\u003e docs: add bwrob as a contributor for code (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1064\"\u003e#1064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/df9bc8f6b3a222dde82167e10a2e6bb57456305a\"\u003e\u003ccode\u003edf9bc8f\u003c/code\u003e\u003c/a\u003e feat: add serializer plugin system; plugins for data models (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1062\"\u003e#1062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/841257deaf598df7c3d154b8e2d694f8bb7e5055\"\u003e\u003ccode\u003e841257d\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency coverage to v7.13.1 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1061\"\u003e#1061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/2d8dfa7f7bb2a5f7c0210107dbb65b62a615d434\"\u003e\u003ccode\u003e2d8dfa7\u003c/code\u003e\u003c/a\u003e chore(deps): update codecov/codecov-action action to v5.5.2 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1056\"\u003e#1056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/f5f9ef77027983d3b62d8cc5bfc3a9ef058fe509\"\u003e\u003ccode\u003ef5f9ef7\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency debugpy to v1.8.18 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1057\"\u003e#1057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/eaeb6ae11f57aa3e595d4c45e7be4a3ed2d66dfc\"\u003e\u003ccode\u003eeaeb6ae\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency pytest to v9.0.2 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/263b23b768ef761c3f7e1faa0671b0709c1887b1\"\u003e\u003ccode\u003e263b23b\u003c/code\u003e\u003c/a\u003e chore(deps): update python docker tag to v3.14.1 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1054\"\u003e#1054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/a0dd77b023fee34ff0968a822e0d0740c9c7fb93\"\u003e\u003ccode\u003ea0dd77b\u003c/code\u003e\u003c/a\u003e chore(deps): update actions/checkout action to v6.0.1 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1053\"\u003e#1053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.0.0...v5.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=syrupy\u0026package-manager=pip\u0026previous-version=5.0.0\u0026new-version=5.1.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/miaucl/bring-api/pull/230","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/miaucl%2Fbring-api/issues/230","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/230/packages"},{"uuid":"3853496360","node_id":"PR_kwDOJVkqEs6_PnGE","number":1189,"state":"closed","title":"chore(deps): bump the poetry group across 3 directories with 44 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-02-01T16:37:37.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-25T16:25:31.000Z","updated_at":"2026-02-01T16:37:38.000Z","time_to_close":605526,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"poetry","update_count":44,"packages":[{"name":"pydantic","old_version":"2.11.3","new_version":"2.12.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"sqlalchemy","old_version":"2.0.40","new_version":"2.0.46","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"alembic","old_version":"1.15.2","new_version":"1.18.1","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"asyncpg","old_version":"0.30.0","new_version":"0.31.0","repository_url":"https://github.com/MagicStack/asyncpg"},{"name":"kubernetes","old_version":"31.0.0","new_version":"33.1.0","repository_url":"https://github.com/kubernetes-client/python"},{"name":"python-ulid","old_version":"3.0.0","new_version":"3.1.0","repository_url":"https://github.com/mdomke/python-ulid"},{"name":"python-gitlab","old_version":"5.6.0","new_version":"7.1.0","repository_url":"https://github.com/python-gitlab/python-gitlab"},{"name":"psycopg","old_version":"3.2.6","new_version":"3.3.2","repository_url":"https://github.com/psycopg/psycopg"},{"name":"urllib3","old_version":"2.6.0","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"},{"name":"authlib","old_version":"1.6.0","new_version":"1.6.6","repository_url":"https://github.com/authlib/authlib"},{"name":"marshmallow","old_version":"3.26.2","new_version":"4.2.1","repository_url":"https://github.com/marshmallow-code/marshmallow"},{"name":"escapism","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jupyterhub/escapism"},{"name":"sentry-sdk","old_version":"2.26.1","new_version":"2.50.0","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"authzed","old_version":"1.21.1","new_version":"1.24.1","repository_url":"https://github.com/authzed/authzed-py"},{"name":"cryptography","old_version":"44.0.2","new_version":"46.0.3","repository_url":"https://github.com/pyca/cryptography"},{"name":"setuptools","old_version":"75.9.1","new_version":"80.10.1","repository_url":"https://github.com/pypa/setuptools"},{"name":"kr8s","old_version":"0.20.7","new_version":"0.20.15","repository_url":"https://github.com/kr8s-org/kr8s"},{"name":"werkzeug","old_version":"3.1.3","new_version":"3.1.5","repository_url":"https://github.com/pallets/werkzeug"},{"name":"aiofiles","old_version":"24.1.0","new_version":"25.1.0","repository_url":"https://github.com/Tinche/aiofiles"},{"name":"protobuf","old_version":"5.29.4","new_version":"6.33.4","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"poetry","old_version":"2.1.2","new_version":"2.3.1","repository_url":"https://github.com/python-poetry/poetry"},{"name":"parsy","old_version":"2.1","new_version":"2.2","repository_url":"https://github.com/python-parsy/parsy"},{"name":"posthog","old_version":"3.25.0","new_version":"7.6.0","repository_url":"https://github.com/posthog/posthog-python"},{"name":"markdown-code-runner","old_version":"2.2.0","new_version":"2.7.0","repository_url":"https://github.com/basnijholt/markdown-code-runner"},{"name":"bandit","old_version":"1.8.3","new_version":"1.9.3","repository_url":"https://github.com/PyCQA/bandit"},{"name":"mypy","old_version":"1.15.0","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"pytest","old_version":"8.3.5","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-cov","old_version":"6.1.1","new_version":"7.0.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pre-commit","old_version":"4.2.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"aiosqlite","old_version":"0.20.0","new_version":"0.22.1","repository_url":"https://github.com/omnilib/aiosqlite"},{"name":"types-pyyaml","old_version":"6.0.12.20250402","new_version":"6.0.12.20250915","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"schemathesis","old_version":"3.39.7","new_version":"4.9.4","repository_url":"https://github.com/schemathesis/schemathesis"},{"name":"pytest-asyncio","old_version":"0.21.2","new_version":"1.3.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"pytest-postgresql","old_version":"6.1.1","new_version":"8.0.0","repository_url":"https://github.com/dbfixtures/pytest-postgresql"},{"name":"ruff","old_version":"0.8.6","new_version":"0.14.14","repository_url":"https://github.com/astral-sh/ruff"},{"name":"debugpy","old_version":"1.8.14","new_version":"1.8.19","repository_url":"https://github.com/microsoft/debugpy"},{"name":"pytest-xdist","old_version":"3.6.1","new_version":"3.8.0","repository_url":"https://github.com/pytest-dev/pytest-xdist"},{"name":"types-requests","old_version":"2.32.0.20250328","new_version":"2.32.4.20260107","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"types-aiofiles","old_version":"24.1.0.20250326","new_version":"25.1.0.20251011","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"uvloop","old_version":"0.21.0","new_version":"0.22.1","repository_url":"https://github.com/MagicStack/uvloop"},{"name":"syrupy","old_version":"4.9.1","new_version":"5.1.0","repository_url":"https://github.com/syrupy-project/syrupy"},{"name":"ruamel-yaml","old_version":"0.18.14","new_version":"0.19.1"},{"name":"datamodel-code-generator","old_version":"0.28.5","new_version":"0.53.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"}],"path":null,"ecosystem":"pip"},"body":"Bumps the poetry group with 44 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.11.3` | `2.12.5` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.40` | `2.0.46` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.15.2` | `1.18.1` |\n| [asyncpg](https://github.com/MagicStack/asyncpg) | `0.30.0` | `0.31.0` |\n| [kubernetes](https://github.com/kubernetes-client/python) | `31.0.0` | `33.1.0` |\n| [python-ulid](https://github.com/mdomke/python-ulid) | `3.0.0` | `3.1.0` |\n| [python-gitlab](https://github.com/python-gitlab/python-gitlab) | `5.6.0` | `7.1.0` |\n| [psycopg](https://github.com/psycopg/psycopg) | `3.2.6` | `3.3.2` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.6.0` | `2.6.3` |\n| [authlib](https://github.com/authlib/authlib) | `1.6.0` | `1.6.6` |\n| [marshmallow](https://github.com/marshmallow-code/marshmallow) | `3.26.2` | `4.2.1` |\n| [escapism](https://github.com/jupyterhub/escapism) | `1.0.1` | `1.1.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.26.1` | `2.50.0` |\n| [authzed](https://github.com/authzed/authzed-py) | `1.21.1` | `1.24.1` |\n| [cryptography](https://github.com/pyca/cryptography) | `44.0.2` | `46.0.3` |\n| [setuptools](https://github.com/pypa/setuptools) | `75.9.1` | `80.10.1` |\n| [kr8s](https://github.com/kr8s-org/kr8s) | `0.20.7` | `0.20.15` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.3` | `3.1.5` |\n| [aiofiles](https://github.com/Tinche/aiofiles) | `24.1.0` | `25.1.0` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `5.29.4` | `6.33.4` |\n| [poetry](https://github.com/python-poetry/poetry) | `2.1.2` | `2.3.1` |\n| [parsy](https://github.com/python-parsy/parsy) | `2.1` | `2.2` |\n| [posthog](https://github.com/posthog/posthog-python) | `3.25.0` | `7.6.0` |\n| [markdown-code-runner](https://github.com/basnijholt/markdown-code-runner) | `2.2.0` | `2.7.0` |\n| [bandit](https://github.com/PyCQA/bandit) | `1.8.3` | `1.9.3` |\n| [mypy](https://github.com/python/mypy) | `1.15.0` | `1.19.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.5` | `8.4.2` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `6.1.1` | `7.0.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.2.0` | `4.5.1` |\n| [aiosqlite](https://github.com/omnilib/aiosqlite) | `0.20.0` | `0.22.1` |\n| [types-pyyaml](https://github.com/typeshed-internal/stub_uploader) | `6.0.12.20250402` | `6.0.12.20250915` |\n| [schemathesis](https://github.com/schemathesis/schemathesis) | `3.39.7` | `4.9.4` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `0.21.2` | `1.3.0` |\n| [pytest-postgresql](https://github.com/dbfixtures/pytest-postgresql) | `6.1.1` | `8.0.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.8.6` | `0.14.14` |\n| [debugpy](https://github.com/microsoft/debugpy) | `1.8.14` | `1.8.19` |\n| [pytest-xdist](https://github.com/pytest-dev/pytest-xdist) | `3.6.1` | `3.8.0` |\n| [types-requests](https://github.com/typeshed-internal/stub_uploader) | `2.32.0.20250328` | `2.32.4.20260107` |\n| [types-aiofiles](https://github.com/typeshed-internal/stub_uploader) | `24.1.0.20250326` | `25.1.0.20251011` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [uvloop](https://github.com/MagicStack/uvloop) | `0.21.0` | `0.22.1` |\n| [syrupy](https://github.com/syrupy-project/syrupy) | `4.9.1` | `5.1.0` |\n| ruamel-yaml | `0.18.14` | `0.19.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.28.5` | `0.53.0` |\n\nBumps the poetry group with 23 updates in the /projects/renku_data_service directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.11.3` | `2.12.5` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.40` | `2.0.46` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.15.2` | `1.18.1` |\n| [asyncpg](https://github.com/MagicStack/asyncpg) | `0.30.0` | `0.31.0` |\n| [kubernetes](https://github.com/kubernetes-client/python) | `31.0.0` | `35.0.0` |\n| [python-ulid](https://github.com/mdomke/python-ulid) | `3.0.0` | `3.1.0` |\n| [python-gitlab](https://github.com/python-gitlab/python-gitlab) | `5.6.0` | `7.1.0` |\n| [psycopg](https://github.com/psycopg/psycopg) | `3.2.6` | `3.3.2` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.6.2` | `2.6.3` |\n| [authlib](https://github.com/authlib/authlib) | `1.6.0` | `1.6.6` |\n| [marshmallow](https://github.com/marshmallow-code/marshmallow) | `3.26.2` | `4.2.1` |\n| [escapism](https://github.com/jupyterhub/escapism) | `1.0.1` | `1.1.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.26.1` | `2.50.0` |\n| [authzed](https://github.com/authzed/authzed-py) | `1.21.1` | `1.24.1` |\n| [cryptography](https://github.com/pyca/cryptography) | `44.0.2` | `46.0.3` |\n| [setuptools](https://github.com/pypa/setuptools) | `75.9.1` | `80.10.1` |\n| [kr8s](https://github.com/kr8s-org/kr8s) | `0.20.7` | `0.20.15` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.3` | `3.1.5` |\n| [aiofiles](https://github.com/Tinche/aiofiles) | `24.1.0` | `25.1.0` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `5.29.4` | `6.33.4` |\n| [parsy](https://github.com/python-parsy/parsy) | `2.1` | `2.2` |\n| [posthog](https://github.com/posthog/posthog-python) | `3.25.0` | `7.6.0` |\n| [markdown-code-runner](https://github.com/basnijholt/markdown-code-runner) | `2.2.0` | `2.7.0` |\n\nBumps the poetry group with 23 updates in the /projects/secrets_storage directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.11.3` | `2.12.5` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.40` | `2.0.46` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.15.2` | `1.18.1` |\n| [asyncpg](https://github.com/MagicStack/asyncpg) | `0.30.0` | `0.31.0` |\n| [kubernetes](https://github.com/kubernetes-client/python) | `31.0.0` | `35.0.0` |\n| [python-ulid](https://github.com/mdomke/python-ulid) | `3.0.0` | `3.1.0` |\n| [python-gitlab](https://github.com/python-gitlab/python-gitlab) | `5.6.0` | `7.1.0` |\n| [psycopg](https://github.com/psycopg/psycopg) | `3.2.6` | `3.3.2` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.6.2` | `2.6.3` |\n| [authlib](https://github.com/authlib/authlib) | `1.6.0` | `1.6.6` |\n| [marshmallow](https://github.com/marshmallow-code/marshmallow) | `3.26.1` | `4.2.1` |\n| [escapism](https://github.com/jupyterhub/escapism) | `1.0.1` | `1.1.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.26.1` | `2.50.0` |\n| [authzed](https://github.com/authzed/authzed-py) | `1.21.1` | `1.24.1` |\n| [cryptography](https://github.com/pyca/cryptography) | `44.0.2` | `46.0.3` |\n| [setuptools](https://github.com/pypa/setuptools) | `75.9.1` | `80.10.1` |\n| [kr8s](https://github.com/kr8s-org/kr8s) | `0.20.7` | `0.20.15` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.3` | `3.1.5` |\n| [aiofiles](https://github.com/Tinche/aiofiles) | `24.1.0` | `25.1.0` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `5.29.4` | `6.33.4` |\n| [parsy](https://github.com/python-parsy/parsy) | `2.1` | `2.2` |\n| [posthog](https://github.com/posthog/posthog-python) | `3.25.0` | `7.6.0` |\n| [markdown-code-runner](https://github.com/basnijholt/markdown-code-runner) | `2.2.0` | `2.7.0` |\n\n\nUpdates `pydantic` from 2.11.3 to 2.12.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.5 2025-11-26\u003c/h2\u003e\n\u003ch2\u003ev2.12.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.4 2025-11-05\u003c/h2\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method of the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1864\"\u003epydantic-core#1864\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.3 2025-10-17\u003c/h2\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eThis is the third 2.13 patch release, fixing issues related to the \u003ccode\u003eFieldInfo\u003c/code\u003e class, and reverting a change to the supported \u003ca href=\"https://docs.pydantic.dev/latest/concepts/validators/#model-validators\"\u003e\u003cem\u003eafter\u003c/em\u003e model validator\u003c/a\u003e function signatures.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.5\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.4\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in\n\u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1864\"\u003epydantic-core#1864\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.3\"\u003eGitHub release\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/pydantic/pydantic/commit/bd2d0dd0137dfa1a8fdff2529b9dfb1547980150\"\u003e\u003ccode\u003ebd2d0dd\u003c/code\u003e\u003c/a\u003e Prepare release v2.12.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7d0302ec7ec2cf115de3450a615522875bdd8b56\"\u003e\u003ccode\u003e7d0302e\u003c/code\u003e\u003c/a\u003e Document security implications when using \u003ccode\u003ecreate_model()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/e9ef980def726b6f59b6c495ddc9dc259a0228db\"\u003e\u003ccode\u003ee9ef980\u003c/code\u003e\u003c/a\u003e Fix typo in Standard Library Types documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f2c20c00c265a31a13c48f9bae923a87c829952e\"\u003e\u003ccode\u003ef2c20c0\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003epydantic-docs\u003c/code\u003e dev dependency, make use of versioning blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a76c1aa26f2d64a3fd080ac515d80832689197e8\"\u003e\u003ccode\u003ea76c1aa\u003c/code\u003e\u003c/a\u003e Update documentation about JSON Schema\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/8cbc72ca489891e574fba45238ee8bd4f8e719a2\"\u003e\u003ccode\u003e8cbc72c\u003c/code\u003e\u003c/a\u003e Add documentation about custom \u003ccode\u003e__init__()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/99eba599069da137b3f708ffa74627f2b456ba73\"\u003e\u003ccode\u003e99eba59\u003c/code\u003e\u003c/a\u003e Add additional test for \u003ccode\u003eFieldInfo.get_default()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c71076988e507ea93844c77c3bf0bbb85a5716af\"\u003e\u003ccode\u003ec710769\u003c/code\u003e\u003c/a\u003e Special case \u003ccode\u003eMISSING\u003c/code\u003e sentinel in \u003ccode\u003esmart_deepcopy()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/20a9d771c210fd77d52366ac923258c4c199727f\"\u003e\u003ccode\u003e20a9d77\u003c/code\u003e\u003c/a\u003e Do not delete mock validator/serializer in \u003ccode\u003erebuild_dataclass()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c86515a3a8f2120148fab2eaedd3bc45925779d0\"\u003e\u003ccode\u003ec86515a\u003c/code\u003e\u003c/a\u003e Update parts of the model and \u003ccode\u003erevalidate_instances\u003c/code\u003e documentation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.11.3...v2.12.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy` from 2.0.40 to 2.0.46\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/releases\"\u003esqlalchemy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.0.46\u003c/h1\u003e\n\u003cp\u003eReleased: January 21, 2026\u003c/p\u003e\n\u003ch2\u003etyping\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[typing] [bug]\u003c/strong\u003e Fixed typing issues where ORM mapped classes and aliased entities could not\nbe used as keys in result row mappings or as join targets in select\nstatements. Patterns such as \u003ccode\u003erow._mapping[User]\u003c/code\u003e,\n\u003ccode\u003erow._mapping[aliased(User)]\u003c/code\u003e, \u003ccode\u003erow._mapping[with_polymorphic(...)]\u003c/code\u003e\n(rejected by both mypy and Pylance), and \u003ccode\u003e.join(aliased(User))\u003c/code\u003e\n(rejected by Pylance) are documented and fully supported at runtime but\nwere previously rejected by type checkers. The type definitions for\n\u003ccode\u003e_KeyType\u003c/code\u003e and \u003ccode\u003e_FromClauseArgument\u003c/code\u003e have been updated to\naccept these ORM entity types.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13075\"\u003e#13075\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epostgresql\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[postgresql] [bug]\u003c/strong\u003e Fixed issue where PostgreSQL JSONB operators\n\u003ccode\u003e_postgresql.JSONB.Comparator.path_match()\u003c/code\u003e and\n\u003ccode\u003e_postgresql.JSONB.Comparator.path_exists()\u003c/code\u003e were applying incorrect\n\u003ccode\u003eVARCHAR\u003c/code\u003e casts to the right-hand side operand when used with newer\nPostgreSQL drivers such as psycopg. The operators now indicate the\nright-hand type as \u003ccode\u003eJSONPATH\u003c/code\u003e, which currently results in no casting\ntaking place, but is also compatible with explicit casts if the\nimplementation were require it at a later point.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13059\"\u003e#13059\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[postgresql] [bug]\u003c/strong\u003e Fixed regression in PostgreSQL dialect where JSONB subscription syntax\nwould generate incorrect SQL for \u003ccode\u003ecast()\u003c/code\u003e expressions returning JSONB,\ncausing syntax errors. The dialect now properly wraps cast expressions in\nparentheses when using the \u003ccode\u003e[]\u003c/code\u003e subscription syntax, generating\n\u003ccode\u003e(CAST(...))[index]\u003c/code\u003e instead of \u003ccode\u003eCAST(...)[index]\u003c/code\u003e to comply with\nPostgreSQL syntax requirements. This extends the fix from \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12778\"\u003e#12778\u003c/a\u003e\nwhich addressed the same issue for function calls.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13067\"\u003e#13067\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[postgresql] [bug]\u003c/strong\u003e Improved the foreign key reflection regular expression pattern used by the\nPostgreSQL dialect to be more permissive in matching identifier characters,\nallowing it to correctly handle unicode characters in table and column\nnames. This change improves compatibility with PostgreSQL variants such as\nCockroachDB that may use different quoting patterns in combination with\nunicode characters in their identifiers.  Pull request courtesy Gord\nThompson.\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\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `alembic` from 1.15.2 to 1.18.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/alembic/releases\"\u003ealembic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.18.1\u003c/h1\u003e\n\u003cp\u003eReleased: January 14, 2026\u003c/p\u003e\n\u003ch2\u003ebug\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [autogenerate]\u003c/strong\u003e Fixed issue in new plugin system where the configured logger was not\ncorrectly using the \u003ccode\u003e__name__\u003c/code\u003e token to identify the logger.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1779\"\u003e#1779\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [operations]\u003c/strong\u003e Revised the change regarding SQLAlchemy 2.1 and deprecation warnings\nrelated to \u003ccode\u003eisolate_from_table=True\u003c/code\u003e. Further developments in release 2.1\nhave revised how this parameter will be modified.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.18.0\u003c/h1\u003e\n\u003cp\u003eReleased: January 9, 2026\u003c/p\u003e\n\u003ch2\u003efeature\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[feature] [operations]\u003c/strong\u003e When alembic is run in \u0026quot;verbose\u0026quot; mode, alembic now logs a message to\nindicate from which file is used to load the configuration.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1737\"\u003e#1737\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[feature] [autogenerate]\u003c/strong\u003e Autogenerate reflection sweeps now use the \u0026quot;bulk\u0026quot; inspector methods\nintroduced in SQLAlchemy 2.0, which for selected dialects including\nPostgreSQL and Oracle use batched queries to reflect whole collections of\ntables using O(1) queries rather than O(N).\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1771\"\u003e#1771\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[feature] [autogenerate]\u003c/strong\u003e Release 1.18.0 introduces a plugin system that allows for automatic\nloading of third-party extensions as well as configurable autogenerate\ncompare functionality on a per-environment basis.\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003ePlugin\u003c/code\u003e class provides a common interface for extensions that\nregister handlers among Alembic's existing extension points such as\n\u003ccode\u003eOperations.register_operation()\u003c/code\u003e and\n\u003ccode\u003eOperations.implementation_for()\u003c/code\u003e. A new interface for registering\nautogenerate comparison handlers,\n\u003ccode\u003ePlugin.add_autogenerate_comparator()\u003c/code\u003e, provides for autogenerate\ncompare functionality that may be custom-configured on a per-environment\nbasis using the new\n\u003ccode\u003eEnvironmentContext.configure.autogenerate_plugins\u003c/code\u003e parameter.\u003c/p\u003e\n\u003cp\u003eThe change does not impact well known Alembic add-ons such as\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\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/alembic/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `asyncpg` from 0.30.0 to 0.31.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/MagicStack/asyncpg/releases\"\u003easyncpg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.31.0\u003c/h2\u003e\n\u003cp\u003eEnable Python 3.14 with experimental subinterpreter/freethreading\nsupport.\u003c/p\u003e\n\u003ch1\u003eImprovements\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd Python 3.14 support, experimental subinterpreter/freethreading support (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1279\"\u003e#1279\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 9e42642b)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid performing type introspection on known types (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1243\"\u003e#1243\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 5c9986c4)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eprepare()\u003c/code\u003e not use named statements by default when cache is disabled (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1245\"\u003e#1245\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 5b14653e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement connection service file functionality (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1223\"\u003e#1223\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/AndrewJackson2020\"\u003e\u003ccode\u003e@​AndrewJackson2020\u003c/code\u003e\u003c/a\u003e in 1d63bb15)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eFixes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix multi port connection string issue (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1222\"\u003e#1222\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/AndrewJackson2020\"\u003e\u003ccode\u003e@​AndrewJackson2020\u003c/code\u003e\u003c/a\u003e in 01c0db7b)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid leaking connections if _can_use_connection fails (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1269\"\u003e#1269\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/yuliy-openai\"\u003e\u003ccode\u003e@​yuliy-openai\u003c/code\u003e\u003c/a\u003e in e94302d2)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eOther\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for EOL Python 3.8 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1281\"\u003e#1281\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 6c2c4904)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/71775a67277fc0aa5bd2b9f15e848826d7078c4d\"\u003e\u003ccode\u003e71775a6\u003c/code\u003e\u003c/a\u003e asyncpg v0.31.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/508cae6441968ef7613a623fece7083cce66c2b3\"\u003e\u003ccode\u003e508cae6\u003c/code\u003e\u003c/a\u003e Test on PostgreSQL 18 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1290\"\u003e#1290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/e534e5f15c73525a6509143b3828335517360f1b\"\u003e\u003ccode\u003ee534e5f\u003c/code\u003e\u003c/a\u003e Bump cibuildwheel\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/07fe5122a680f5768e39fc28d68c94b185037a52\"\u003e\u003ccode\u003e07fe512\u003c/code\u003e\u003c/a\u003e Bump pgproto\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/648b35f18199ebf2a30009376a6e9060cf7ad789\"\u003e\u003ccode\u003e648b35f\u003c/code\u003e\u003c/a\u003e Bump Cython to 3.2.1 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1288\"\u003e#1288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/9e42642b9110d206706697921b6e697a0972649d\"\u003e\u003ccode\u003e9e42642\u003c/code\u003e\u003c/a\u003e Add Python 3.14 support, experimental subinterpreter/freethreading support (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/6fe1c494ef5c3069fa9149c48bf9f8f2cd69f95e\"\u003e\u003ccode\u003e6fe1c49\u003c/code\u003e\u003c/a\u003e Move development deps away from extras and into dependency groups (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1280\"\u003e#1280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/7a548166c2b23561915c481bd332013e3a415cfb\"\u003e\u003ccode\u003e7a54816\u003c/code\u003e\u003c/a\u003e Fix a couple of missed Python version guards\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/6c2c4904e61b2cd2f502540730a24e246cff2ebd\"\u003e\u003ccode\u003e6c2c490\u003c/code\u003e\u003c/a\u003e Drop support for EOL Python 3.8 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1281\"\u003e#1281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/4c60ae890d1f3800f889679657357f91a6923568\"\u003e\u003ccode\u003e4c60ae8\u003c/code\u003e\u003c/a\u003e Bump version to 0.31.0.dev0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/MagicStack/asyncpg/compare/v0.30.0...v0.31.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `kubernetes` from 31.0.0 to 33.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kubernetes-client/python/releases\"\u003ekubernetes's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKubernetes Python Client v33.1.0 Stable Release\u003c/h2\u003e\n\u003cp\u003eGetting started:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install --pre --upgrade kubernetes\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from source, download attached zip file, then\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eunzip client-python-v33.1.0.zip\ncd client-python-v33.1.0\npython setup.py install\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThen follow examples in \u003ca href=\"https://github.com/kubernetes-client/python/tree/release-33.0/examples\"\u003ehttps://github.com/kubernetes-client/python/tree/release-33.0/examples\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eChangelog: \u003ca href=\"https://github.com/kubernetes-client/python/blob/release-33.0/CHANGELOG.md\"\u003ehttps://github.com/kubernetes-client/python/blob/release-33.0/CHANGELOG.md\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eKubernetes Python Client v33.1.0 Beta 1 Release\u003c/h2\u003e\n\u003cp\u003eGetting started:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install --pre --upgrade kubernetes\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from source, download attached zip file, then\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eunzip client-python-v33.1.0b1.zip\ncd client-python-v33.1.0b1\npython setup.py install\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThen follow examples in \u003ca href=\"https://github.com/kubernetes-client/python/tree/release-33.0/examples\"\u003ehttps://github.com/kubernetes-client/python/tree/release-33.0/examples\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eChangelog: \u003ca href=\"https://github.com/kubernetes-client/python/blob/release-33.0/CHANGELOG.md\"\u003ehttps://github.com/kubernetes-client/python/blob/release-33.0/CHANGELOG.md\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eKubernetes Python Client v33.1.0 Alpha 1 Release\u003c/h2\u003e\n\u003cp\u003eGetting started:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install --pre --upgrade kubernetes\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from source, download attached zip file, then\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eunzip client-python-v33.1.0a1.zip\ncd client-python-v33.1.0a1\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt; \n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kubernetes-client/python/blob/v33.1.0/CHANGELOG.md\"\u003ekubernetes's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev33.1.0\u003c/h1\u003e\n\u003cp\u003eKubernetes API Version: v1.33.1\u003c/p\u003e\n\u003ch1\u003ev33.1.0b1\u003c/h1\u003e\n\u003cp\u003eKubernetes API Version: v1.33.1\u003c/p\u003e\n\u003ch1\u003ev33.1.0a1\u003c/h1\u003e\n\u003cp\u003eKubernetes API Version: v1.33.1\u003c/p\u003e\n\u003ch3\u003eAPI Change\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eA new alpha feature gate, \u003ccode\u003eMutableCSINodeAllocatableCount\u003c/code\u003e, has been introduced.\u003c/p\u003e\n\u003cp\u003eWhen this feature gate is enabled, the \u003ccode\u003eCSINode.Spec.Drivers[*].Allocatable.Count\u003c/code\u003e field becomes mutable, and a new field, \u003ccode\u003eNodeAllocatableUpdatePeriodSeconds\u003c/code\u003e, is available in the \u003ccode\u003eCSIDriver\u003c/code\u003e object. This allows periodic updates to a node's reported allocatable volume capacity, preventing stateful pods from becoming stuck due to outdated information that kube-scheduler relies on. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130007\"\u003ekubernetes/kubernetes#130007\u003c/a\u003e, \u003ca href=\"https://github.com/torredil\"\u003e\u003ccode\u003e@​torredil\u003c/code\u003e\u003c/a\u003e) [SIG Apps, Node, Scheduling and Storage]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded feature gate \u003ccode\u003eDRAPartitionableDevices\u003c/code\u003e, when enabled, Dynamic Resource Allocation support partitionable devices allocation. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130764\"\u003ekubernetes/kubernetes#130764\u003c/a\u003e, \u003ca href=\"https://github.com/cici37\"\u003e\u003ccode\u003e@​cici37\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Scheduling, Storage and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded DRA support for a \u0026quot;one-of\u0026quot; prioritized list of selection criteria to satisfy a device request in a resource claim. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/128586\"\u003ekubernetes/kubernetes#128586\u003c/a\u003e, \u003ca href=\"https://github.com/mortent\"\u003e\u003ccode\u003e@​mortent\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Etcd, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a \u003ccode\u003e/flagz\u003c/code\u003e endpoint for kubelet endpoint (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/128857\"\u003ekubernetes/kubernetes#128857\u003c/a\u003e, \u003ca href=\"https://github.com/zhifei92\"\u003e\u003ccode\u003e@​zhifei92\u003c/code\u003e\u003c/a\u003e) [SIG Architecture, Instrumentation and Node]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a new \u003ccode\u003etolerance\u003c/code\u003e field to HorizontalPodAutoscaler, overriding the cluster-wide default. Enabled via the HPAConfigurableTolerance alpha feature gate. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130797\"\u003ekubernetes/kubernetes#130797\u003c/a\u003e, \u003ca href=\"https://github.com/jm-franc\"\u003e\u003ccode\u003e@​jm-franc\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Autoscaling, Etcd, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for configuring custom stop signals with a new StopSignal container lifecycle (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130556\"\u003ekubernetes/kubernetes#130556\u003c/a\u003e, \u003ca href=\"https://github.com/sreeram-venkitesh\"\u003e\u003ccode\u003e@​sreeram-venkitesh\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for in-place vertical scaling of Pods with sidecars (containers defined within \u003ccode\u003einitContainers\u003c/code\u003e where the \u003ccode\u003erestartPolicy\u003c/code\u003e is set to \u003ccode\u003eAlways\u003c/code\u003e). (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/128367\"\u003ekubernetes/kubernetes#128367\u003c/a\u003e, \u003ca href=\"https://github.com/vivzbansal\"\u003e\u003ccode\u003e@​vivzbansal\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, CLI, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCPUManager Policy Options support is GA (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130535\"\u003ekubernetes/kubernetes#130535\u003c/a\u003e, \u003ca href=\"https://github.com/ffromani\"\u003e\u003ccode\u003e@​ffromani\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChanged the Pod API to support \u003ccode\u003ehugepage resources\u003c/code\u003e at \u003ccode\u003espec\u003c/code\u003e level for pod-level resources. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130577\"\u003ekubernetes/kubernetes#130577\u003c/a\u003e, \u003ca href=\"https://github.com/KevinTMtz\"\u003e\u003ccode\u003e@​KevinTMtz\u003c/code\u003e\u003c/a\u003e) [SIG Apps, CLI, Node, Scheduling, Storage and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA API: The maximum number of pods that can use the same ResourceClaim is now 256 instead of 32. Downgrading a cluster where this relaxed limit is in use to Kubernetes 1.32.0 is not supported, as version 1.32.0 would refuse to update ResourceClaims with more than 32 entries in the \u003ccode\u003estatus.reservedFor\u003c/code\u003e field. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/129543\"\u003ekubernetes/kubernetes#129543\u003c/a\u003e, \u003ca href=\"https://github.com/pohly\"\u003e\u003ccode\u003e@​pohly\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA: CEL expressions using attribute strings exceeded the cost limit because their cost estimation was incomplete. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/129661\"\u003ekubernetes/kubernetes#129661\u003c/a\u003e, \u003ca href=\"https://github.com/pohly\"\u003e\u003ccode\u003e@​pohly\u003c/code\u003e\u003c/a\u003e) [SIG Node]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA: Device taints enable DRA drivers or admins to mark device as unusable, which prevents allocating them. Pods may also get evicted at runtime if a device becomes unusable, depending on the severity of the taint and whether the claim tolerates the taint. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130447\"\u003ekubernetes/kubernetes#130447\u003c/a\u003e, \u003ca href=\"https://github.com/pohly\"\u003e\u003ccode\u003e@​pohly\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Architecture, Auth, Etcd, Instrumentation, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA: Starting Kubernetes 1.33, only users with access to an admin namespace with the \u003ccode\u003ekubernetes.io/dra-admin-access\u003c/code\u003e label are authorized to create ResourceClaim or ResourceClaimTemplate objects with the \u003ccode\u003eadminAccess\u003c/code\u003e field in this admin namespace if they want to and only they can reference these ResourceClaims or ResourceClaimTemplates in their pod or deployment specs. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130225\"\u003ekubernetes/kubernetes#130225\u003c/a\u003e, \u003ca href=\"https://github.com/ritazh\"\u003e\u003ccode\u003e@​ritazh\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Auth, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA: when asking for \u0026quot;All\u0026quot; devices on a node, Kubernetes \u0026lt;= 1.32 proceeded to schedule pods onto nodes with no devices by not allocating any devices for those pods. Kubernetes 1.33 changes that to only picking nodes which have at least one device. Users who want the \u0026quot;proceed with scheduling also without devices\u0026quot; semantic can use the upcoming prioritized list feature with one sub-request for \u0026quot;all\u0026quot; devices and a second alternative with \u0026quot;count: 0\u0026quot;. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/129560\"\u003ekubernetes/kubernetes#129560\u003c/a\u003e, \u003ca href=\"https://github.com/bart0sh\"\u003e\u003ccode\u003e@​bart0sh\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery and Node]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExpanded the on-disk kubelet credential provider configuration to allow an optional \u003ccode\u003etokenAttribute\u003c/code\u003e field to be configured. When it is set, the kubelet will provision a token with the given audience bound to the current pod and its service account. This KSA token along with required annotations on the KSA defined in configuration will be sent to the credential provider plugin via its standard input (along with the image information that is already sent today). The KSA annotations to be sent are configurable in the kubelet credential provider configuration. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/128372\"\u003ekubernetes/kubernetes#128372\u003c/a\u003e, \u003ca href=\"https://github.com/aramase\"\u003e\u003ccode\u003e@​aramase\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Auth, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed the example validation rule in godoc:\u003c/p\u003e\n\u003cp\u003eWhen configuring a JWT authenticator:\u003c/p\u003e\n\u003cp\u003eIf username.expression uses 'claims.email', then 'claims.email_verified' must be used in\nusername.expression or extra[\u003cem\u003e].valueExpression or claimValidationRules[\u003c/em\u003e].expression.\nAn example claim validation rule expression that matches the validation automatically\napplied when username.claim is set to 'email' is 'claims.?email_verified.orValue(true) == true'.\nBy explicitly comparing the value to true, we let type-checking see the result will be a boolean,\nand to make sure a non-boolean \u003ccode\u003eemail_verified\u003c/code\u003e claim will be caught at runtime. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130875\"\u003ekubernetes/kubernetes#130875\u003c/a\u003e, \u003ca href=\"https://github.com/aramase\"\u003e\u003ccode\u003e@​aramase\u003c/code\u003e\u003c/a\u003e) [SIG Auth and Release]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFor the \u003ccode\u003eInPlacePodVerticalScaling\u003c/code\u003e feature, the API server will no longer set the resize status to \u003ccode\u003eProposed\u003c/code\u003e upon receiving a resize request. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130574\"\u003ekubernetes/kubernetes#130574\u003c/a\u003e, \u003ca href=\"https://github.com/natasha41575\"\u003e\u003ccode\u003e@​natasha41575\u003c/code\u003e\u003c/a\u003e) [SIG Apps, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eGraduate the \u003ccode\u003eMatchLabelKeys\u003c/code\u003e (MismatchLabelKeys) feature in PodAffinity (PodAntiAffinity) to GA (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130463\"\u003ekubernetes/kubernetes#130463\u003c/a\u003e, \u003ca href=\"https://github.com/sanposhiho\"\u003e\u003ccode\u003e@​sanposhiho\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eGraduated image volume sources to beta:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAllowed \u003ccode\u003esubPath\u003c/code\u003e/\u003ccode\u003esubPathExpr\u003c/code\u003e for image volumes\u003c/li\u003e\n\u003cli\u003eAdded kubelet metrics \u003ccode\u003ekubelet_image_volume_requested_total\u003c/code\u003e, \u003ccode\u003ekubelet_image_volume_mounted_succeed_total\u003c/code\u003e and \u003ccode\u003ekubelet_image_volume_mounted_errors_total\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130135\"\u003ekubernetes/kubernetes#130135\u003c/a\u003e, \u003ca href=\"https://github.com/saschagrunert\"\u003e\u003ccode\u003e@​saschagrunert\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Node and Testing]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplemented a new status field, \u003ccode\u003e.status.terminatingReplicas\u003c/code\u003e, for Deployments and ReplicaSets to track terminating pods. The new field is present when the \u003ccode\u003eDeploymentPodReplacementPolicy\u003c/code\u003e feature gate is enabled. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/128546\"\u003ekubernetes/kubernetes#128546\u003c/a\u003e, \u003ca href=\"https://github.com/atiratree\"\u003e\u003ccode\u003e@​atiratree\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplemented validation for \u003ccode\u003eNodeSelectorRequirement\u003c/code\u003e values in Kubernetes when creating pods. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/128212\"\u003ekubernetes/kubernetes#128212\u003c/a\u003e, \u003ca href=\"https://github.com/AxeZhan\"\u003e\u003ccode\u003e@​AxeZhan\u003c/code\u003e\u003c/a\u003e) [SIG Apps and Scheduling]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved how the API server responds to \u003cstrong\u003elist\u003c/strong\u003e requests where the response format negotiates to Protobuf. List responses in Protobuf are marshalled one element at the time, drastically reducing memory needed to serve large collections. Streaming list responses can be disabled via the \u003ccode\u003eStreamingCollectionEncodingToProtobuf\u003c/code\u003e feature gate. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/129407\"\u003ekubernetes/kubernetes#129407\u003c/a\u003e, \u003ca href=\"https://github.com/serathius\"\u003e\u003ccode\u003e@​serathius\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Architecture, Auth, CLI, Cloud Provider, Network, Node, Release, Scheduling, Storage and Testing]\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/kubernetes-client/python/commit/8f5578ee6845d33b3fb54867e2ea88349df6d07e\"\u003e\u003ccode\u003e8f5578e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kubernetes-client/python/issues/2412\"\u003e#2412\u003c/a\u003e from yliaog/automated-release-of-33.1.0-upstream-rel...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/5a367e94d1b185fb31c1683a5c4d834a467293b7\"\u003e\u003ccode\u003e5a367e9\u003c/code\u003e\u003c/a\u003e updated compatibility matrix and maintenance status\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/f00d2b7a0efb46acd38b82ea3ec483357ce70a1f\"\u003e\u003ccode\u003ef00d2b7\u003c/code\u003e\u003c/a\u003e generated client change\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/9d712b488e5d782c547c86271edc6c77fe4ee1d0\"\u003e\u003ccode\u003e9d712b4\u003c/code\u003e\u003c/a\u003e update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/45eb341e2bd3964d166de0a3055528b62f9e440e\"\u003e\u003ccode\u003e45eb341\u003c/code\u003e\u003c/a\u003e update version constants for 33.1.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/58551e416ac63b1ac0125262ccca2fbbcd23d63f\"\u003e\u003ccode\u003e58551e4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kubernetes-client/python/issues/2408\"\u003e#2408\u003c/a\u003e from yliaog/automated-release-of-33.1.0b1-upstream-r...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/bd6c75279449f75adc221a74e7a443d514a943e2\"\u003e\u003ccode\u003ebd6c752\u003c/code\u003e\u003c/a\u003e updated compatibility matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/de8ee89a7ce82613b650c5f3a251de79c12aff26\"\u003e\u003ccode\u003ede8ee89\u003c/code\u003e\u003c/a\u003e generated client change\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/fec5585a7d9878237f7b0e3930a8c98f70a72b57\"\u003e\u003ccode\u003efec5585\u003c/code\u003e\u003c/a\u003e update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/78aee45d0be7f29d710312d879e58d5e47b671e4\"\u003e\u003ccode\u003e78aee45\u003c/code\u003e\u003c/a\u003e update version constants for 33.1.0b1 release\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kubernetes-client/python/compare/v31.0.0...v33.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-ulid` from 3.0.0 to 3.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mdomke/python-ulid/releases\"\u003epython-ulid's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.1.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded Python 3.13 to the trove classifiers.\u003c/li\u003e\n\u003cli\u003eOptimze \u003ccode\u003e@property\u003c/code\u003e to \u003ccode\u003e@cached_property\u003c/code\u003e \u003ca href=\"https://github.com/WH-2099\"\u003e\u003ccode\u003e@​WH-2099\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen generating ULIDs within the same millisecond, the library will ensure monotonic sort order by incrementing the randomness component by 1 bit. This process is described in the \u003ca href=\"https://github.com/ulid/spec/blob/master/README.md#monotonicity\"\u003espec\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSharpen regular expression for Pydantic \u003ca href=\"https://github.com/aplhk\"\u003e\u003ccode\u003e@​aplhk\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix Sphinx warnings when referencing ULID from an external project. \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e .\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mdomke/python-ulid/blob/main/CHANGELOG.rst\"\u003epython-ulid's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003e3.1.0\u003c/code\u003e_ - 2025-08-18\u003c/h2\u003e\n\u003cp\u003eChanged\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e* Added Python 3.13 to the trove classifiers.\n* Optimze ``@property`` to ``@cached_property`` `@WH-2099 \u0026lt;https://github.com/WH-2099\u0026gt;`_.\n* When generating ULIDs within the same millisecond, the library will ensure monotonic sort order by\n  incrementing the randomness component by 1 bit. This process is descrbied in the\n  `spec \u0026lt;https://github.com/ulid/spec/blob/master/README.md#monotonicity\u0026gt;`_.\n\u003cp\u003eFixed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e* Sharpen regular expression for Pydantic `@aplhk \u0026amp;lt;https://github.com/aplhk\u0026amp;gt;`_.\n* Fix Sphinx warnings when referencing ULID from an external project. `@BoboTiG \u0026amp;lt;https://github.com/BoboTiG\u0026amp;gt;`_.\n\u0026lt;/code\u0026gt;\u0026lt;/pre\u0026gt;\n\u0026lt;/blockquote\u0026gt;\n\u0026lt;/details\u0026gt;\n\u0026lt;details\u0026gt;\n\u0026lt;summary\u0026gt;Commits\u0026lt;/summary\u0026gt;\n\n\u0026lt;ul\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/mdomke/python-ulid/commit/12277593be322123b2f6ff39fbe329a3eb0b7c15\u0026quot;\u0026gt;\u0026lt;code\u0026gt;1227759\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; chore: Always specify byteorder for Python 3.9\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/mdomke/python-ulid/commit/14683ee0df6e4a2966ceb32d3497bc5d3a9d7079\u0026quot;\u0026gt;\u0026lt;code\u0026gt;14683ee\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Implement same ms monotonic sort order\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/mdomke/python-ulid/commit/51b4ab8dace5661a1689f4bcaaefbc529d0c4632\u0026quot;\u0026gt;\u0026lt;code\u0026gt;51b4ab8\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; chore: Add changelog for 3.1.0\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/mdomke/python-ulid/commit/c36c65f7730422591f6302a60d6a00324c7ba9a2\u0026quot;\u0026gt;\u0026lt;code\u0026gt;c36c65f\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Improve Sphinx interdoc\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/mdomke/python-ulid/commit/dfc3b9cee46518514d44fb34fd5d36d6f414b965\u0026quot;\u0026gt;\u0026lt;code\u0026gt;dfc3b9c\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Fix sphinx warnings (\u0026lt;a href=\u0026quot;https://redirect.github.com/mdomke/python-ulid/issues/35\u0026quot;\u0026gt;#35\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/mdomke/python-ulid/commit/59cd43d0d5aa3a8bf509f8da516d0c27597d020b\u0026quot;\u0026gt;\u0026lt;code\u0026gt;59cd43d\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Add uv and freezegun dependencies\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/mdomke/python-ulid/commit/9e56decb2b16ec8d6ebaccdc200de264e69f96e3\u0026quot;\u0026gt;\u0026lt;code\u0026gt;9e56dec\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Optimize regex pattern\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/mdomke/python-ulid/commit/9b3168bed2938e7de4a4d4565aec62a3eab7f5c5\u0026quot;\u0026gt;\u0026lt;code\u0026gt;9b3168b\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Update tooling, type checking and linting\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/mdomke/python-ulid/commit/929ef8ac34ef953c980490dd875b3100fc4351aa\u0026quot;\u0026gt;\u0026lt;code\u0026gt;929ef8a\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Move dev dependences into pyproject.toml\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/mdomke/python-ulid/commit/a1434e82a854f1796ba4ad5da5a095789038f506\u0026quot;\u0026gt;\u0026lt;code\u0026gt;a1434e8\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; optimize property to cached_property (\u0026lt;a href=\u0026quot;https://redirect.github.com/mdomke/python-ulid/issues/37\u0026quot;\u0026gt;#37\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;Additional commits viewable in \u0026lt;a href=\u0026quot;https://github.com/mdomke/python-ulid/compare/3.0.0...3.1.0\u0026quot;\u0026gt;compare view\u0026lt;/a\u0026gt;\u0026lt;/li\u0026gt;\n\u0026lt;/ul\u0026gt;\n\u0026lt;/details\u0026gt;\n\n\u0026lt;br /\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\n\nUpdates `python-gitlab` from 5.6.0 to 7.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-gitlab/python-gitlab/releases\"\u003epython-gitlab's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.1.0 (2025-12-28)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eutils\u003c/strong\u003e: Prevent negative sleep time in rate limit retry (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erelease\u003c/strong\u003e: Use the correct token for publish to GitHub (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/614a74c00f027f70b8e48a6b2a2ddcd3f823bffa\"\u003e\u003ccode\u003e614a74c\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eregistry-protection\u003c/strong\u003e: Add support for registry protection rule deletion (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTesting\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efunctional\u003c/strong\u003e: Update to GitLab 18.6 and resolve issues found (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v7.0.0...v7.1.0\"\u003ev7.0.0...v7.1.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.0.0 (2025-10-29)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support and add Python 3.14 (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/22941acc3f331d5b683599c014ec962ece5d4b76\"\u003e\u003ccode\u003e22941ac\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAs of python-gitlab 7.0.0, Python 3.9 is no longer supported. Python 3.10 or higher is required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v6.5.0...v7.0.0\"\u003ev6.5.0...v7.0.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6.5.0 (2025-10-17)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003esemantic-release\u003c/strong\u003e: Enable CHANGELOG.md generation (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/fb9693bf1e6798149196e57fed87bf2588ad3b47\"\u003e\u003ccode\u003efb9693b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-gitlab/python-gitlab/blob/main/CHANGELOG.md\"\u003epython-gitlab's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.1.0 (2025-12-28)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eutils\u003c/strong\u003e: Prevent negative sleep time in rate limit retry\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erelease\u003c/strong\u003e: Use the correct token for publish to GitHub\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/614a74c00f027f70b8e48a6b2a2ddcd3f823bffa\"\u003e\u003ccode\u003e614a74c\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eregistry-protection\u003c/strong\u003e: Add support for registry protection rule deletion\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTesting\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efunctional\u003c/strong\u003e: Update to GitLab 18.6 and resolve issues found\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev7.0.0 (2025-10-29)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support and add Python 3.14\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/22941acc3f331d5b683599c014ec962ece5d4b76\"\u003e\u003ccode\u003e22941ac\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAs of python-gitlab 7.0.0, Python 3.9 is no longer supported. Python 3.10 or higher is required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev6.5.0 (2025-10-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003esemantic-release\u003c/strong\u003e: Enable CHANGELOG.md generation\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/fb9693bf1e6798149196e57fed87bf2588ad3b47\"\u003e\u003ccode\u003efb9693b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estale\u003c/strong\u003e: Fix permission for stale action and allow manual run\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9357a374702dcc8049a6d8af636f48c736d3f160\"\u003e\u003ccode\u003e9357a37\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epull_mirror\u003c/strong\u003e: Fix incorrect start() method usage example\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/f49175d5bcb3634fd9c707446e5fc879e911b7fb\"\u003e\u003ccode\u003ef49175d\u003c/code\u003e\u003c/a\u003e chore: release v7.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/8719985bdb88057cd8dbc2bd27f6a1161cdac6fd\"\u003e\u003ccode\u003e8719985\u003c/code\u003e\u003c/a\u003e chore(deps): update github artifact actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e feat(registry-protection): add support for registry protection rule deletion\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/d6eac7bea8d755dbe11ef4ff8a5247aa1aba2e24\"\u003e\u003ccode\u003ed6eac7b\u003c/code\u003e\u003c/a\u003e chore(deps): update gitlab/gitlab-ee docker tag to v18.7.0-ee.0 (\u003ca href=\"https://redirect.github.com/python-gitlab/python-gitlab/issues/3218\"\u003e#3218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e test(functional): update to GitLab 18.6 and resolve issues found\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/40827f419020d84aa777fa42a289fb07dc2b3fa7\"\u003e\u003ccode\u003e40827f4\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/91793733df8de2bd371e2297c80b429a2fcaace1\"\u003e\u003ccode\u003e9179373\u003c/code\u003e\u003c/a\u003e chore(deps): update dessant/lock-threads action to v6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/3c72fd1e0d74ebd82c257ba1b810252c5a7295f7\"\u003e\u003ccode\u003e3c72fd1\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e fix(utils): prevent negative sleep time in rate limit retry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9f11323c60468d8fdccb4b08aac857f9c485f9d9\"\u003e\u003ccode\u003e9f11323\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v5.6.0...v7.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg` from 3.2.6 to 3.3.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg/blob/master/docs/news.rst\"\u003epsycopg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e.. currentmodule:: psycopg\u003c/p\u003e\n\u003cp\u003e.. index::\nsingle: Release notes\nsingle: News\u003c/p\u003e\n\u003ch1\u003e\u003ccode\u003epsycopg\u003c/code\u003e release notes\u003c/h1\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003ePsyocpg 3.3.3 (unreleased)\n^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003eRetain \u003ccode\u003eError.pgconn\u003c/code\u003e when raising a single exception for multiple connection\nattempt errors (:ticket:\u003ccode\u003e[#1246](https://github.com/psycopg/psycopg/issues/1246)\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003ePsycopg 3.3.2\n^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003eFix race condition in adapters at startup (:ticket:\u003ccode\u003e[#1230](https://github.com/psycopg/psycopg/issues/1230)\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003ePsycopg 3.3.1\n^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003eFix iteration on server-side cursors (:ticket:\u003ccode\u003e[#1226](https://github.com/psycopg/psycopg/issues/1226)\u003c/code\u003e).\u003c/p\u003e\n\u003ch2\u003ePsycopg 3.3.0\u003c/h2\u003e\n\u003cp\u003e.. rubric:: New top-level features\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd :ref:\u003ccode\u003etemplate strings queries \\\u0026lt;template-strings\u0026gt;\u003c/code\u003e (:ticket:\u003ccode\u003e[#1054](https://github.com/psycopg/psycopg/issues/1054)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eMore flexible :ref:\u003ccode\u003ecomposite adaptation\u0026lt;adapt-composite\u0026gt;\u003c/code\u003e: it is now possible\nto adapt Python objects to PostgreSQL composites and back even if they are not\nsequences or if they take keyword arguments (:ticket:\u003ccode\u003e[#932](https://github.com/psycopg/psycopg/issues/932)\u003c/code\u003e, :ticket:\u003ccode\u003e[#1202](https://github.com/psycopg/psycopg/issues/1202)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eCursors are now iterators_, not just iterables_. This means you can call\n\u003ccode\u003enext\u003c/code\u003e\\ \u003ccode\u003e(cur)\u003c/code\u003e or \u003ccode\u003eanext\u003c/code\u003e\\ \u003ccode\u003e(cur)\u003c/code\u003e, which is useful as a :ref:\u003ccode\u003etype-safe expression \u0026lt;typing-fetchone\u0026gt;\u003c/code\u003e (:ticket:\u003ccode\u003e[#1064](https://github.com/psycopg/psycopg/issues/1064)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eCursor.set_result()\u003c/code\u003e and \u003ccode\u003eCursor.results()\u003c/code\u003e to move across the result\nsets of queries executed though \u003ccode\u003e~Cursor.executemany()\u003c/code\u003e or\n\u003ccode\u003e~Cursor.execute()\u003c/code\u003e with multiple statements (:tickets:\u003ccode\u003e[#1080](https://github.com/psycopg/psycopg/issues/1080), [#1170](https://github.com/psycopg/psycopg/issues/1170)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd :ref:\u003ccode\u003etransaction-status\u003c/code\u003e to report the status during and after a\n\u003ccode\u003e~Connection.transaction()\u003c/code\u003e block (:ticket:\u003ccode\u003e[#969](https://github.com/psycopg/psycopg/issues/969)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAllow to change loaders using \u003ccode\u003e~adapt.AdaptersMap.register_loader()\u003c/code\u003e on\n\u003ccode\u003eCursor.adapters\u003c/code\u003e after a query result has been already returned\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/bc9e7bde14acd080c7597185a7904a4bc246ed0e\"\u003e\u003ccode\u003ebc9e7bd\u003c/code\u003e\u003c/a\u003e chore: bump psycopg package version to 3.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/3bcabb4592c6352aedb23f315dbd81326e9fbd14\"\u003e\u003ccode\u003e3bcabb4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg/issues/1231\"\u003e#1231\u003c/a\u003e from noirbee/fix/1230-adapter-get-dumper-race-condition\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/08bfe006ae0d9dea00b69f6a6df8497a0c0e4965\"\u003e\u003ccode\u003e08bfe00\u003c/code\u003e\u003c/a\u003e fix(adapters): avoid race condition when replacing class name with itself\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/7be710e7cbe42c94288efeda0bb5a87ad9659f03\"\u003e\u003ccode\u003e7be710e\u003c/code\u003e\u003c/a\u003e fix: mark external libpq C functions as noexcept nogil\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/6a24300ad2392e502a7c9d3c244ead6852890d90\"\u003e\u003ccode\u003e6a24300\u003c/code\u003e\u003c/a\u003e docs: larger font for 3.3.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/5a60a1e6b2394e6d3ccdb1d08cfd24d6fbac3d78\"\u003e\u003ccode\u003e5a60a1e\u003c/code\u003e\u003c/a\u003e chore: bump psycopg package version to 3.3.2.dev1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/9bdd78cf4360b9229ab3f641c646e232fc69cc8a\"\u003e\u003ccode\u003e9bdd78c\u003c/code\u003e\u003c/a\u003e chore: bump psycopg package version to 3.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/4d27426bf197a1eca8ea99ab9e236e1c8e0f15fa\"\u003e\u003ccode\u003e4d27426\u003c/code\u003e\u003c/a\u003e Merge branch 'fix/server-cursor-iter'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/b9b82e86e3ce1972581a495ccbe28d5dbb15c449\"\u003e\u003ccode\u003eb9b82e8\u003c/code\u003e\u003c/a\u003e fix: fix iteration on server-side cursor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/2a75357de22bb63ede33006cd17c99b30e360cdf\"\u003e\u003ccode\u003e2a75357\u003c/code\u003e\u003c/a\u003e fix: add test to verify iteration in server-side cursor broken\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg/compare/3.2.6...3.3.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `urllib3` from 2.6.0 to 2.6.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/urllib3/urllib3/releases\"\u003eurllib3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.6.3\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a security issue where decompression-bomb safeguards of the streaming API were bypassed when HTTP redirects were followed. (CVE-2026-21441 reported by \u003ca href=\"https://github.com/D47A\"\u003e\u003ccode\u003e@​D47A\u003c/code\u003e\u003c/a\u003e, 8.9 High, GHSA-38jv-5279-wg99)\u003c/li\u003e\n\u003cli\u003eStarted treating \u003ccode\u003eRetry-After\u003c/code\u003e times greater than 6 hours as 6 hours by default. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3743\"\u003eurllib3/urllib3#3743\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eurllib3.connection.VerifiedHTTPSConnection\u003c/code\u003e on Emscripten. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3752\"\u003eurllib3/urllib3#3752\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.6.2\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPResponse.read_chunked()\u003c/code\u003e to properly handle leftover data in the decoder's buffer when reading compressed chunked responses. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3734\"\u003eurllib3/urllib3#3734\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.6.1\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRestore previously removed \u003ccode\u003eHTTPResponse.getheaders()\u003c/code\u003e and \u003ccode\u003eHTTPResponse.getheader()\u003c/code\u003e methods. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3731\"\u003e#3731\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/urllib3/urllib3/blob/main/CHANGES.rst\"\u003eurllib3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.6.3 (2026-01-07)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a high-severity security issue where decompression-bomb safeguards of\nthe streaming API were bypassed when HTTP redirects were followed.\n(\u003ccode\u003eGHSA-38jv-5279-wg99 \u0026lt;https://github.com/urllib3/urllib3/security/advisories/GHSA-38jv-5279-wg99\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eStarted treating \u003ccode\u003eRetry-After\u003c/code\u003e times greater than 6 hours as 6 hours by\ndefault. (\u003ccode\u003e[#3743](https://github.com/urllib3/urllib3/issues/3743) \u0026lt;https://github.com/urllib3/urllib3/issues/3743\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eurllib3.connection.VerifiedHTTPSConnection\u003c/code\u003e on Emscripten.\n(\u003ccode\u003e[#3752](https://github.com/urllib3/urllib3/issues/3752) \u0026lt;https://github.com/urllib3/urllib3/issues/3752\u0026gt;\u003c/...\n\n_Description has been truncated_","html_url":"https://github.com/SwissDataScienceCenter/renku-data-services/pull/1189","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/SwissDataScienceCenter%2Frenku-data-services/issues/1189","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1189/packages"},{"uuid":"3853463909","node_id":"PR_kwDONegY-s6_PgT2","number":63,"state":"open","title":"Bump syrupy from 5.0.0 to 5.1.0 in the dev-dependencies group across 1 directory","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-01-25T16:05:27.000Z","updated_at":"2026-03-31T23:00:29.711Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"syrupy","old_version":"5.0.0","new_version":"5.1.0","repository_url":"https://github.com/syrupy-project/syrupy"}],"path":"the dev-dependencies group across 1 directory","ecosystem":"pip"},"body":"Bumps the dev-dependencies group with 1 update in the / directory: [syrupy](https://github.com/syrupy-project/syrupy).\n\nUpdates `syrupy` from 5.0.0 to 5.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/syrupy-project/syrupy/releases\"\u003esyrupy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.1.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.0.0...v5.1.0\"\u003e5.1.0\u003c/a\u003e (2026-01-25)\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd serializer plugin system; plugins for data models (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1062\"\u003e#1062\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/df9bc8f6b3a222dde82167e10a2e6bb57456305a\"\u003edf9bc8f\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/syrupy-project/syrupy/blob/main/CHANGELOG.md\"\u003esyrupy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.0.0...v5.1.0\"\u003e5.1.0\u003c/a\u003e (2026-01-25)\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd serializer plugin system; plugins for data models (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1062\"\u003e#1062\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/df9bc8f6b3a222dde82167e10a2e6bb57456305a\"\u003edf9bc8f\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/syrupy-project/syrupy/commit/7096efdee61a8e1bc47492bdd0bc860766df40e9\"\u003e\u003ccode\u003e7096efd\u003c/code\u003e\u003c/a\u003e chore(release): 5.1.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/07aa00dd48d65e74814cec863b5f236e09afb464\"\u003e\u003ccode\u003e07aa00d\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency attrs to v25 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1063\"\u003e#1063\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/1f29ae061e9557e205e50fb2f9971ee95c4bd08e\"\u003e\u003ccode\u003e1f29ae0\u003c/code\u003e\u003c/a\u003e docs: add bwrob as a contributor for code (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1064\"\u003e#1064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/df9bc8f6b3a222dde82167e10a2e6bb57456305a\"\u003e\u003ccode\u003edf9bc8f\u003c/code\u003e\u003c/a\u003e feat: add serializer plugin system; plugins for data models (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1062\"\u003e#1062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/841257deaf598df7c3d154b8e2d694f8bb7e5055\"\u003e\u003ccode\u003e841257d\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency coverage to v7.13.1 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1061\"\u003e#1061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/2d8dfa7f7bb2a5f7c0210107dbb65b62a615d434\"\u003e\u003ccode\u003e2d8dfa7\u003c/code\u003e\u003c/a\u003e chore(deps): update codecov/codecov-action action to v5.5.2 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1056\"\u003e#1056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/f5f9ef77027983d3b62d8cc5bfc3a9ef058fe509\"\u003e\u003ccode\u003ef5f9ef7\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency debugpy to v1.8.18 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1057\"\u003e#1057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/eaeb6ae11f57aa3e595d4c45e7be4a3ed2d66dfc\"\u003e\u003ccode\u003eeaeb6ae\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency pytest to v9.0.2 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/263b23b768ef761c3f7e1faa0671b0709c1887b1\"\u003e\u003ccode\u003e263b23b\u003c/code\u003e\u003c/a\u003e chore(deps): update python docker tag to v3.14.1 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1054\"\u003e#1054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/a0dd77b023fee34ff0968a822e0d0740c9c7fb93\"\u003e\u003ccode\u003ea0dd77b\u003c/code\u003e\u003c/a\u003e chore(deps): update actions/checkout action to v6.0.1 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1053\"\u003e#1053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.0.0...v5.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=syrupy\u0026package-manager=uv\u0026previous-version=5.0.0\u0026new-version=5.1.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/LabAutomationAndScreening/pyalab/pull/63","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/LabAutomationAndScreening%2Fpyalab/issues/63","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/63/packages"},{"uuid":"3802790091","node_id":"PR_kwDOQouzX868nt2g","number":7,"state":"open","title":"chore(deps): bump the python-dependencies group with 16 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-01-12T05:10:02.000Z","updated_at":"2026-02-23T06:09:49.019Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python-dependencies","update_count":16,"packages":[{"name":"pytest","old_version":"8.3.4","new_version":"9.0.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-benchmark","old_version":"5.1.0","new_version":"5.2.3","repository_url":"https://github.com/ionelmc/pytest-benchmark"},{"name":"hypothesis","old_version":"6.130.0","new_version":"6.150.0","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"syrupy","old_version":"4.9.1","new_version":"5.0.0","repository_url":"https://github.com/syrupy-project/syrupy"},{"name":"ruff","old_version":"0.14.10","new_version":"0.14.11","repository_url":"https://github.com/astral-sh/ruff"},{"name":"black","old_version":"24.12.0","new_version":"25.12.0","repository_url":"https://github.com/psf/black"},{"name":"isort","old_version":"5.13.2","new_version":"7.0.0","repository_url":"https://github.com/PyCQA/isort"},{"name":"yamllint","old_version":"1.35.1","new_version":"1.37.1","repository_url":"https://github.com/adrienverge/yamllint"},{"name":"zizmor","old_version":"1.4.0","new_version":"1.20.0","repository_url":"https://github.com/zizmorcore/zizmor"},{"name":"mypy","old_version":"1.14.1","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"types-pyyaml","old_version":"6.0.12.20241230","new_version":"6.0.12.20250915","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"bandit","old_version":"1.8.3","new_version":"1.9.2"},{"name":"pip-audit","old_version":"2.8.0","new_version":"2.10.0","repository_url":"https://github.com/pypa/pip-audit"},{"name":"pip-licenses","old_version":"5.0.0","new_version":"5.5.0","repository_url":"https://github.com/raimon49/pip-licenses"},{"name":"semgrep","old_version":"1.109.0","new_version":"1.147.0","repository_url":"https://github.com/returntocorp/semgrep"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-dependencies group with 16 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.4` | `9.0.2` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `6.0.0` | `7.0.0` |\n| [pytest-benchmark](https://github.com/ionelmc/pytest-benchmark) | `5.1.0` | `5.2.3` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.130.0` | `6.150.0` |\n| [syrupy](https://github.com/syrupy-project/syrupy) | `4.9.1` | `5.0.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.10` | `0.14.11` |\n| [black](https://github.com/psf/black) | `24.12.0` | `25.12.0` |\n| [isort](https://github.com/PyCQA/isort) | `5.13.2` | `7.0.0` |\n| [yamllint](https://github.com/adrienverge/yamllint) | `1.35.1` | `1.37.1` |\n| [zizmor](https://github.com/zizmorcore/zizmor) | `1.4.0` | `1.20.0` |\n| [mypy](https://github.com/python/mypy) | `1.14.1` | `1.19.1` |\n| [types-pyyaml](https://github.com/typeshed-internal/stub_uploader) | `6.0.12.20241230` | `6.0.12.20250915` |\n| [bandit[toml]](https://github.com/PyCQA/bandit) | `1.8.3` | `1.9.2` |\n| [pip-audit](https://github.com/pypa/pip-audit) | `2.8.0` | `2.10.0` |\n| [pip-licenses](https://github.com/raimon49/pip-licenses) | `5.0.0` | `5.5.0` |\n| [semgrep](https://github.com/returntocorp/semgrep) | `1.109.0` | `1.147.0` |\n\nUpdates `pytest` from 8.3.4 to 9.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13965\"\u003e#13965\u003c/a\u003e: Fixed quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/4492\"\u003e#4492\u003c/a\u003e: The API Reference now contains cross-reference-able documentation of \u003ccode\u003epytest's command-line flags \u0026lt;command-line-flags\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e9.0.1\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.1 (2025-11-12)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13895\"\u003e#13895\u003c/a\u003e: Restore support for skipping tests via \u003ccode\u003eraise unittest.SkipTest\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress plugin added in pytest 9.0 is now automatically disabled when iTerm2 is detected, it generated desktop notifications instead of the desired functionality.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the verbosity settings in the API reference from number to string.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13910\"\u003e#13910\u003c/a\u003e: Fixed \u003c!-- raw HTML omitted --\u003eUserWarning: Do not expect file_or_dir\u003c!-- raw HTML omitted --\u003e on some earlier Python 3.12 and 3.13 point versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePackaging updates and notes for downstreams\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13891\"\u003e#13891\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13942\"\u003e#13942\u003c/a\u003e: The CI/CD part of the release automation is now capable of\ncreating GitHub Releases without having a Git checkout on\ndisk -- by \u003ccode\u003ebluetech\u003c/code\u003e and \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/3d10b5148e03eb82b3ee29181dbdc73cf82699e2\"\u003e\u003ccode\u003e3d10b51\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/188750b725add8c3400eee6fbb6b80559c296d69\"\u003e\u003ccode\u003e188750b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14030\"\u003e#14030\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/1e4b01d1f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7d7bef90cb9a6db8ac1d3dd5b9ae0eb9abd6c58\"\u003e\u003ccode\u003eb7d7bef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14014\"\u003e#14014\u003c/a\u003e from bluetech/compat-note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bd08e85ac76614ff5ca9ae338aee8d8b06c8fae0\"\u003e\u003ccode\u003ebd08e85\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14013\"\u003e#14013\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/922b60377...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bc783862991241c442c9f9c068e51737ec15ea10\"\u003e\u003ccode\u003ebc78386\u003c/code\u003e\u003c/a\u003e Add CLI options reference documentation (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13930\"\u003e#13930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/5a4e398ce89bc23d2cf3fd98c042fdffb6fa8afa\"\u003e\u003ccode\u003e5a4e398\u003c/code\u003e\u003c/a\u003e Fix docs typo (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14005\"\u003e#14005\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14008\"\u003e#14008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/d7ae6df394398168bf9d926f803c26849c8f07ee\"\u003e\u003ccode\u003ed7ae6df\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14006\"\u003e#14006\u003c/a\u003e from pytest-dev/maintenance/update-plugin-list-tmpl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/556f6a22e12d13d1ffeceaf64424eb95d5e0fb87\"\u003e\u003ccode\u003e556f6a2\u003c/code\u003e\u003c/a\u003e pre-commit: fix rst-lint after new release (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13999\"\u003e#13999\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14001\"\u003e#14001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c60fbe63a26f64a42738e3f3527a8f79024fdf50\"\u003e\u003ccode\u003ec60fbe6\u003c/code\u003e\u003c/a\u003e Fix quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10 ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/73d9b011183d9a1c4a7007c1119d97a6e627788e\"\u003e\u003ccode\u003e73d9b01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13995\"\u003e#13995\u003c/a\u003e from nicoddemus/patchback/backports/9.0.x/1b5200c0f...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.3.4...9.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-cov` from 6.0.0 to 7.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst\"\u003epytest-cov's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.0.0 (2025-09-09)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped support for subprocesses measurement.\u003c/p\u003e\n\u003cp\u003eIt was a feature added long time ago when coverage lacked a nice way to measure subprocesses created in tests.\nIt relied on a \u003ccode\u003e.pth\u003c/code\u003e file, there was no way to opt-out and it created bad interations\nwith \u003ccode\u003ecoverage's new patch system \u0026lt;https://coverage.readthedocs.io/en/latest/config.html#run-patch\u0026gt;\u003c/code\u003e_ added\nin \u003ccode\u003e7.10 \u0026lt;https://coverage.readthedocs.io/en/7.10.6/changes.html#version-7-10-0-2025-07-24\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003eTo migrate to this release you might need to enable the suprocess patch, example for \u003ccode\u003e.coveragerc\u003c/code\u003e:\u003c/p\u003e\n\u003cp\u003e.. code-block:: ini\u003c/p\u003e\n\u003cp\u003e[run]\npatch = subprocess\u003c/p\u003e\n\u003cp\u003eThis release also requires at least coverage 7.10.6.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSwitched packaging to have metadata completely in \u003ccode\u003epyproject.toml\u003c/code\u003e and use \u003ccode\u003ehatchling \u0026lt;https://pypi.org/project/hatchling/\u0026gt;\u003c/code\u003e_ for\nbuilding.\nContributed by Ofek Lev in \u003ccode\u003e[#551](https://github.com/pytest-dev/pytest-cov/issues/551) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/551\u0026gt;\u003c/code\u003e_\nwith some extras in \u003ccode\u003e[#716](https://github.com/pytest-dev/pytest-cov/issues/716) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/716\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved some not really necessary testing deps like \u003ccode\u003esix\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.3.0 (2025-09-06)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for markdown reports.\nContributed by Marcos Boger in \u003ccode\u003e[#712](https://github.com/pytest-dev/pytest-cov/issues/712) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/712\u0026gt;\u003c/code\u003e_\nand \u003ccode\u003e[#714](https://github.com/pytest-dev/pytest-cov/issues/714) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/714\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eFixed some formatting issues in docs.\nAnonymous contribution in \u003ccode\u003e[#706](https://github.com/pytest-dev/pytest-cov/issues/706) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/706\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.2.1 (2025-06-12)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a version requirement for pytest's pluggy dependency (1.2.0, released 2023-06-21) that has the required new-style hookwrapper API.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved deprecated license classifier (packaging).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDisabled coverage warnings in two more situations where they have no value:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u0026quot;module-not-measured\u0026quot; in workers\u003c/li\u003e\n\u003cli\u003e\u0026quot;already-imported\u0026quot; in subprocesses\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.2.0 (2025-06-11)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe plugin now adds 3 rules in the filter warnings configuration to prevent common coverage warnings being raised as obscure errors::\u003c/p\u003e\n\u003cp\u003edefault:unclosed database in \u0026lt;sqlite3.Connection object at:ResourceWarning\nonce::PytestCovWarning\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/224d8964caad90074a8cf6dc8720b8f70f31629b\"\u003e\u003ccode\u003e224d896\u003c/code\u003e\u003c/a\u003e Bump version: 6.3.0 → 7.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/73424e3999f865eac72e27f09d5fe11b9703cfd6\"\u003e\u003ccode\u003e73424e3\u003c/code\u003e\u003c/a\u003e Cleanup the docs a bit.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/36f1cc2967831dbd4c8aa70086fc86dc495f8b9a\"\u003e\u003ccode\u003e36f1cc2\u003c/code\u003e\u003c/a\u003e Bump pins in template.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/f299c590a63a48e51e3ae949993dc7bb1f1d480d\"\u003e\u003ccode\u003ef299c59\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 2 updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/25f0b2e0cdbc345c0d3e49170f7a328c3e0d805f\"\u003e\u003ccode\u003e25f0b2e\u003c/code\u003e\u003c/a\u003e Update docs/config.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/bb23eacc5531fb8f499213d8420407e0d72f88e3\"\u003e\u003ccode\u003ebb23eac\u003c/code\u003e\u003c/a\u003e Improve configuration docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/a19531e91e1ab753ccf648a2d9bab08a6fddebb9\"\u003e\u003ccode\u003ea19531e\u003c/code\u003e\u003c/a\u003e Switch from build/pre-commit to uv/prek - this should make this faster.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/82f999391073f2fb8ae422af452602f310086a2a\"\u003e\u003ccode\u003e82f9993\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/211b5cd41c29916bc643b4a11b00578ba4fd6fe8\"\u003e\u003ccode\u003e211b5cd\u003c/code\u003e\u003c/a\u003e Fix links.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/97aadd74bcbc00a2078d240e8fe871dd62b83d80\"\u003e\u003ccode\u003e97aadd7\u003c/code\u003e\u003c/a\u003e Update some ci config, reformat and apply some lint fixes.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-cov/compare/v6.0.0...v7.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-benchmark` from 5.1.0 to 5.2.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ionelmc/pytest-benchmark/blob/master/CHANGELOG.rst\"\u003epytest-benchmark's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.2.3 (2025-11-09)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for pytest 9.0.\u003c/li\u003e\n\u003cli\u003eMoved the README.rst/CHANGELOG.rst concatenation from setup.py to pyproject.toml.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev5.2.2 (2025-11-07)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed auto-disable to work with newer xdist (pytest-benchmark auto disables benchmarks if xdist is enabled by design).\nContributed by Thomas B. Brunner in \u003ccode\u003e[#294](https://github.com/ionelmc/pytest-benchmark/issues/294) \u0026lt;https://github.com/ionelmc/pytest-benchmark/pull/294\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev5.2.1 (2025-11-04)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd markers so pytest doesn't try to assert-rewrite the plugin internals\n(fixes those \u003ccode\u003epytest.PytestAssertRewriteWarning: Module already imported so cannot be rewritten; pytest_benchmark\u003c/code\u003e warnings).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev5.2.0 (2025-10-30)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for a per-round \u003ccode\u003eteardown\u003c/code\u003e function to pedantic mode.\nContributed Patrick Winter by \u003ccode\u003e[#264](https://github.com/ionelmc/pytest-benchmark/issues/264) \u0026lt;https://github.com/ionelmc/pytest-benchmark/pull/264\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003e--benchmark-time-unit\u003c/code\u003e option.\nContributed by Tony Kuo in \u003ccode\u003e[#281](https://github.com/ionelmc/pytest-benchmark/issues/281) \u0026lt;https://github.com/ionelmc/pytest-benchmark/pull/281\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eFixed deprecated hook examples in docstrings.\nContributed by Ali-Akber Saifee in \u003ccode\u003e[#284](https://github.com/ionelmc/pytest-benchmark/issues/284) \u0026lt;https://github.com/ionelmc/pytest-benchmark/pull/284\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003e--benchmark-compare-fail\u003c/code\u003e to accept percentages higher than 100%.\nContributed by Ben Avrahami in \u003ccode\u003e[#280](https://github.com/ionelmc/pytest-benchmark/issues/280) \u0026lt;https://github.com/ionelmc/pytest-benchmark/pull/280\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eAdded minimal typing support.\nContributed by Sorin Sbarnea in \u003ccode\u003e[#290](https://github.com/ionelmc/pytest-benchmark/issues/290) \u0026lt;https://github.com/ionelmc/pytest-benchmark/pull/290\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eFixed support for Python 3.9.\nContributed by Enno Gotthold in \u003ccode\u003e[#291](https://github.com/ionelmc/pytest-benchmark/issues/291) \u0026lt;https://github.com/ionelmc/pytest-benchmark/pull/291\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eReplaced the complicated and broken code of \u003ccode\u003epytest_benchmark.utils.clonefunc\u003c/code\u003e with a simple return of the input.\nThat function was supposed to allow benchmarking with the cost of PyPy JIT included but it's a hassle to maintain.\u003c/li\u003e\n\u003cli\u003eMoved the instrumentation pause outside the round loops (in addition to tracing, profiling is paused too).\nPedantic mode will keep doing this per round (as the user manually controls the round count).\nThis is necessary because in some scenarios setting and unsetting the tracer too much will overflow an internal counter\n(found to cause \u0026quot;OverflowError: events set too many times\u0026quot; at least on Python 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/ionelmc/pytest-benchmark/commit/b857483dd8e8a875f3aa040bd0054847ad657291\"\u003e\u003ccode\u003eb857483\u003c/code\u003e\u003c/a\u003e Bump version: 5.2.2 → 5.2.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionelmc/pytest-benchmark/commit/7f5abf98bb3212339d964e9a2621998c032a98f7\"\u003e\u003ccode\u003e7f5abf9\u003c/code\u003e\u003c/a\u003e Add a note about the readme.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionelmc/pytest-benchmark/commit/b8e5f5380f04a9ae26aa571c1c41a3671e2ac3bb\"\u003e\u003ccode\u003eb8e5f53\u003c/code\u003e\u003c/a\u003e Fix bad wrap.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionelmc/pytest-benchmark/commit/931d50ff1bb16c392f817801ad246eb27f55d4c5\"\u003e\u003ccode\u003e931d50f\u003c/code\u003e\u003c/a\u003e Add back some escapes. Oops.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionelmc/pytest-benchmark/commit/d5c2f7ef9d0bbd67d8bafac1e2a454c8aa95af10\"\u003e\u003ccode\u003ed5c2f7e\u003c/code\u003e\u003c/a\u003e Add support for pytest 9.0. Fixes \u003ca href=\"https://redirect.github.com/ionelmc/pytest-benchmark/issues/295\"\u003e#295\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionelmc/pytest-benchmark/commit/9a3888ad0474c0bb0e56c86f87a27d24ecc6a55a\"\u003e\u003ccode\u003e9a3888a\u003c/code\u003e\u003c/a\u003e Move readme+changelog extraction to static pyproject config.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionelmc/pytest-benchmark/commit/d34bf73c6bab8c11c660291f62a20ff0c004e241\"\u003e\u003ccode\u003ed34bf73\u003c/code\u003e\u003c/a\u003e Bump version: 5.2.1 → 5.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionelmc/pytest-benchmark/commit/cf2ac340f49518c6f89eb1de8fa9c68275ef6de6\"\u003e\u003ccode\u003ecf2ac34\u003c/code\u003e\u003c/a\u003e Bump prek.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionelmc/pytest-benchmark/commit/8bfc327c69997564eff09dfaa4a2fcf269545d36\"\u003e\u003ccode\u003e8bfc327\u003c/code\u003e\u003c/a\u003e Improve formatting (docutils chokes on those arguments with colons and bracke...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionelmc/pytest-benchmark/commit/190b487045c4994fd51b7b7e04b0e02b5b34a41c\"\u003e\u003ccode\u003e190b487\u003c/code\u003e\u003c/a\u003e Prefix all headings with letters to allow docutils or whatever generate stabl...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ionelmc/pytest-benchmark/compare/v5.1.0...v5.2.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hypothesis` from 6.130.0 to 6.150.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/HypothesisWorks/hypothesis/releases\"\u003ehypothesis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eHypothesis for Python - version 6.150.0\u003c/h2\u003e\n\u003cp\u003eThis release adds a \u0026quot;min_leaves\u0026quot; argument to \u0026quot;recursive()\u0026quot;, which\nensures that generated recursive structures have at least the\nspecified number of leaf nodes (issue \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4205\"\u003e#4205\u003c/a\u003e).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-150-0\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.149.1\u003c/h2\u003e\n\u003cp\u003eAdd type hints to an internal class.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-149-1\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.149.0\u003c/h2\u003e\n\u003cp\u003eThis release extends the explain-phase \u0026quot;# or any other generated\nvalue\u0026quot; comments to sub-arguments within \u0026quot;builds()\u0026quot;, \u0026quot;tuples()\u0026quot;, and\n\u0026quot;fixed_dictionaries()\u0026quot;.\u003c/p\u003e\n\u003cp\u003ePreviously, these comments only appeared on top-level test arguments.\nNow, when the explain phase determines that a sub-argument can vary\nfreely without affecting the test failure, you'll see comments like:\u003c/p\u003e\n\u003cp\u003eFalsifying example: test_foo(\nobj=MyClass(\nx=0,  # or any other generated value\ny=True,\n),\ndata=(\n'',  # or any other generated value\n42,\n),\n)\u003c/p\u003e\n\u003cp\u003eThis makes it easier to understand which parts of complex inputs\nactually matter for reproducing a failure.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-149-0\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.148.13\u003c/h2\u003e\n\u003cp\u003eClean up an internal helper.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-148-13\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.148.12\u003c/h2\u003e\n\u003cp\u003eThis patch fixes \u0026quot;from_type()\u0026quot; to properly handle parameterized type\naliases created with Python 3.12+'s \u003cstrong\u003ePEP 695\u003c/strong\u003e \u0026quot;type\u0026quot; statement. For\nexample, \u0026quot;st.from_type(A[int])\u0026quot; where \u0026quot;type A[T] = list[T]\u0026quot; now\ncorrectly resolves to \u0026quot;lists(integers())\u0026quot; instead of raising a\n\u0026quot;TypeError\u0026quot; (issue \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4628\"\u003e#4628\u003c/a\u003e).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-148-12\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\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/HypothesisWorks/hypothesis/commit/7799c3fea7bc9e8356cc6c316e9ad329a92917b3\"\u003e\u003ccode\u003e7799c3f\u003c/code\u003e\u003c/a\u003e Bump hypothesis-python version to 6.150.0 and update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/e5f991914d2ef2cf0af00fdd8f27ca6fc9eb9398\"\u003e\u003ccode\u003ee5f9919\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4616\"\u003e#4616\u003c/a\u003e from Zac-HD/claude/add-min-leaves-parameter-01XYPfen...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/1458abea0ffb330c9798f3511a8bdb84a1a8b9d1\"\u003e\u003ccode\u003e1458abe\u003c/code\u003e\u003c/a\u003e use a pbt test instead\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/39119d80b3c82facdba6a197bfade529e119f032\"\u003e\u003ccode\u003e39119d8\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into claude/add-min-leaves-parameter-01XYPfenzf6xuY64W4...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/b6445506c174e24025a1b28c4aa9ca5e5f727d22\"\u003e\u003ccode\u003eb644550\u003c/code\u003e\u003c/a\u003e Bump hypothesis-python version to 6.149.1 and update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/804733f8d0fa62306d29af690cba6b0845bf8914\"\u003e\u003ccode\u003e804733f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4634\"\u003e#4634\u003c/a\u003e from Liam-DeVoe/state-typing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/681ce5558bf65ab9ed2286e37d8f3fc11b9050d4\"\u003e\u003ccode\u003e681ce55\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into claude/add-min-leaves-parameter-01XYPfenzf6xuY64W4...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/aadbfbcf27e03bb66f910c1802d835532f7dadde\"\u003e\u003ccode\u003eaadbfbc\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into state-typing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/2e7d5e67e9c89b03efaf090c363d4296e7ff7256\"\u003e\u003ccode\u003e2e7d5e6\u003c/code\u003e\u003c/a\u003e type \u003ccode\u003etest\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/074893e3f6e0ee5181e5ff56e4100ac7ab40fc01\"\u003e\u003ccode\u003e074893e\u003c/code\u003e\u003c/a\u003e Bump hypothesis-python version to 6.149.0 and update changelog\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/HypothesisWorks/hypothesis/compare/hypothesis-python-6.130.0...hypothesis-python-6.150.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `syrupy` from 4.9.1 to 5.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/syrupy-project/syrupy/releases\"\u003esyrupy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.0.0\u003c/h2\u003e\n\u003ch2\u003eSyrupy 5.0.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e(2025-09-28)\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eThis release introduces new features, bug fixes, and a major license change. It also includes several \u003cstrong\u003ebreaking changes\u003c/strong\u003e, so please review those carefully before upgrading.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch3\u003eNew Features ✨\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eAdd \u003ccode\u003e--snapshot-dirname\u003c/code\u003e option:\u003c/strong\u003e A new option, \u003ccode\u003e--snapshot-dirname\u003c/code\u003e, is now available to change the default directory snapshots are stored in. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003e#810\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003esyrupy-project/syrupy#810\u003c/a\u003e))\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRemove private underscore prefix:\u003c/strong\u003e The unnecessary underscore prefixes have been removed from public methods for better code clarity. ([\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003e8cfc905\u003c/a\u003e](\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003ehttps://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\u003c/a\u003e))\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch3\u003eBug Fixes 🐛\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFix terminal summary for \u003ccode\u003exdist\u003c/code\u003e workers:\u003c/strong\u003e Resolves an issue where the terminal summary was not displayed correctly with \u003ccode\u003exdist\u003c/code\u003e workers. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/978\"\u003e#978\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/978\"\u003esyrupy-project/syrupy#978\u003c/a\u003e))\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eEnsure \u003ccode\u003epytest_assertrepr_compare\u003c/code\u003e hook is called first:\u003c/strong\u003e This change ensures that Syrupy's assertion hook takes precedence, improving compatibility with other plugins. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/984\"\u003e#984\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/984\"\u003esyrupy-project/syrupy#984\u003c/a\u003e))\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch3\u003eBreaking Changes ⚠️\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eLicense change:\u003c/strong\u003e The project has switched to the more permissive \u003cstrong\u003eMIT license\u003c/strong\u003e. This change applies to all versions from 5.0.0 and beyond. If you need to use the previous Apache 2.0 license, you must continue to use Syrupy versions 4.x or earlier. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/945\"\u003e#945\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/945\"\u003esyrupy-project/syrupy#945\u003c/a\u003e))\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003ePython and pytest version requirements:\u003c/strong\u003e Syrupy now requires \u003cstrong\u003ePython 3.10\u003c/strong\u003e or higher. Support for Python 3.8 has been dropped as it reached its end of life in October 2024. The minimum required version of \u003cstrong\u003epytest is v8\u003c/strong\u003e. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/904\"\u003e#904\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/904\"\u003esyrupy-project/syrupy#904\u003c/a\u003e), [\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003e#1024\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003esyrupy-project/syrupy#1024\u003c/a\u003e))\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eMethod and constant name changes:\u003c/strong\u003e Several methods and constants have been renamed for improved clarity and to align with public API standards.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ccode\u003eSnapshotCollectionStorage\u003c/code\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e_read_snapshot_collection\u003c/code\u003e -\u0026gt; \u003ccode\u003eread_snapshot_collection\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_read_snapshot_data_from_location\u003c/code\u003e -\u0026gt; \u003ccode\u003eread_snapshot_data_from_location\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_write_snapshot_collection\u003c/code\u003e -\u0026gt; \u003ccode\u003ewrite_snapshot_collection\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_get_file_basename\u003c/code\u003e -\u0026gt; \u003ccode\u003eget_file_basename\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_file_extension\u003c/code\u003e -\u0026gt; \u003ccode\u003efile_extension\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ccode\u003eAmberDataSerializer\u003c/code\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e_snapshot_sort_key\u003c/code\u003e -\u0026gt; \u003ccode\u003esnapshot_sort_key\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eConstants\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eSNAPSHOT_EMPTY_FOSSIL_KEY\u003c/code\u003e -\u0026gt; \u003ccode\u003eSNAPSHOT_EMPTY_COLLECTION_KEY\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSNAPSHOT_UNKNOWN_FOSSIL_KEY\u003c/code\u003e -\u0026gt; \u003ccode\u003eSNAPSHOT_UNKNOWN_COLLECTION_KEY\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSNAPSHOT_DIRNAME\u003c/code\u003e has been removed in favour of the property on the \u003ccode\u003eSnapshotCollectionStorage\u003c/code\u003e class and associated CLI option.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\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/paul-ollis\"\u003e\u003ccode\u003e@​paul-ollis\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/978\"\u003esyrupy-project/syrupy#978\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rahuliyer95\"\u003e\u003ccode\u003e@​rahuliyer95\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/984\"\u003esyrupy-project/syrupy#984\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\"\u003ehttps://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/syrupy-project/syrupy/blob/main/CHANGELOG.md\"\u003esyrupy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\"\u003e5.0.0\u003c/a\u003e (2025-09-28)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch to MIT license (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/945\"\u003e#945\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/d74d340f8884fdb04831fcf77f29d66e098aaa66\"\u003ed74d340\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlock terminal summary for xdist workers. (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/978\"\u003e#978\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/33a848df7c4a33577e4057eae5792f6592ad3172\"\u003e33a848d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eensure syrupy's pytest_assertrepr_compare hook is called first. (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/984\"\u003e#984\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/eb0024d339248b7e1f76fdb65ed30ba3e19c0857\"\u003eeb0024d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove incorrect private underscore prefix from public methods (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003e8cfc905\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd --snapshot-dirname option, close \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003e#810\u003c/a\u003e (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/27135c7c861441962c2cedde841f3e4fed2949fd\"\u003e27135c7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edrop support for py3.8, raise min. pytest to v8 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/904\"\u003e#904\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/a879ff15ad82e59a2f387db0822be072a5684f2f\"\u003ea879ff1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate min. python version to 3.10 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003e#1024\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/16b4113cd56da96e84a90ebda0919e9b8dd35954\"\u003e16b4113\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe following methods have been renamed:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSnapshotCollectionStorage\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e_read_snapshot_collection -\u0026gt; read_snapshot_collection\u003c/li\u003e\n\u003cli\u003e_read_snapshot_data_from_location -\u0026gt; read_snapshot_data_from_location\u003c/li\u003e\n\u003cli\u003e_write_snapshot_collection -\u0026gt; write_snapshot_collection\u003c/li\u003e\n\u003cli\u003e_get_file_basename -\u0026gt; get_file_basename\u003c/li\u003e\n\u003cli\u003e_file_extension -\u0026gt; file_extension\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eAmberDataSerializer\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e_snapshot_sort_key -\u0026gt; snapshot_sort_key\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRenamed constants to improve clarity:\u003c/p\u003e\n\u003cp\u003econstants\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSNAPSHOT_EMPTY_FOSSIL_KEY -\u0026gt; SNAPSHOT_EMPTY_COLLECTION_KEY\u003c/li\u003e\n\u003cli\u003eSNAPSHOT_UNKNOWN_FOSSIL_KEY -\u0026gt; SNAPSHOT_UNKNOWN_COLLECTION_KEY\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003eMin. python version is now 3.10.\u003c/li\u003e\n\u003cli\u003eThe Syrupy project is switching from Apache 2.0 to a more permissive MIT license. By using Syrupy \u0026gt;=5, you agree to abide by this new license. You can continue to use Syrupy v1 through v4 under Apache 2.0.\u003c/li\u003e\n\u003cli\u003eDrops support for Python 3.8 which is end of life as of October 2024. Raises the minimum version of pytest to v8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/9b4cc82e50e29f84dcb55054c8eab281c90a280b\"\u003e\u003ccode\u003e9b4cc82\u003c/code\u003e\u003c/a\u003e chore(release): 5.0.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/af15385acd5bf617815aa0d19e2df907bbbd2d83\"\u003e\u003ccode\u003eaf15385\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1027\"\u003e#1027\u003c/a\u003e from syrupy-project/test_py_3_14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/461ad224d192a18296934e2434b9302fb0984007\"\u003e\u003ccode\u003e461ad22\u003c/code\u003e\u003c/a\u003e chore: test against py3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/95ffbcb085eb920920a7241c814a55c1e948f148\"\u003e\u003ccode\u003e95ffbcb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1026\"\u003e#1026\u003c/a\u003e from syrupy-project/rename_methods\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/27135c7c861441962c2cedde841f3e4fed2949fd\"\u003e\u003ccode\u003e27135c7\u003c/code\u003e\u003c/a\u003e feat: add --snapshot-dirname option, close \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003e#810\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003e\u003ccode\u003e8cfc905\u003c/code\u003e\u003c/a\u003e refactor: remove incorrect private underscore prefix from public methods\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/e1dbf5dc2a1148480aa9601a5e1c21928954b8cc\"\u003e\u003ccode\u003ee1dbf5d\u003c/code\u003e\u003c/a\u003e chore(deps): update python docker tag to v3.13.7 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1025\"\u003e#1025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/16b4113cd56da96e84a90ebda0919e9b8dd35954\"\u003e\u003ccode\u003e16b4113\u003c/code\u003e\u003c/a\u003e feat: update min. python version to 3.10 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003e#1024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/434c63fdabbaaf2372ec94c8968fe025c4a306e6\"\u003e\u003ccode\u003e434c63f\u003c/code\u003e\u003c/a\u003e chore(deps): update codecov/codecov-action action to v5.5.1 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1021\"\u003e#1021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/b2e49bad7741f06c17a0be9f4608c0db5db13cf5\"\u003e\u003ccode\u003eb2e49ba\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency pytest to v8.4.2 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1022\"\u003e#1022\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.14.10 to 0.14.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.14.11\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-01-08.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eConsolidate diagnostics for matched disable/enable suppression comments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22099\"\u003e#22099\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReport diagnostics for invalid/unmatched range suppression comments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21908\"\u003e#21908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Passing positional argument into \u003ccode\u003eairflow.lineage.hook.HookLineageCollector.create_asset\u003c/code\u003e is not allowed (\u003ccode\u003eAIR303\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22046\"\u003e#22046\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Mark \u003ccode\u003eFURB192\u003c/code\u003e fix as always unsafe (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22210\"\u003e#22210\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003enon-empty-init-module\u003c/code\u003e (\u003ccode\u003eRUF067\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22143\"\u003e#22143\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix GitHub format for multi-line diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22108\"\u003e#22108\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-unused-arguments\u003c/code\u003e] Mark \u003ccode\u003e**kwargs\u003c/code\u003e in \u003ccode\u003eTypeVar\u003c/code\u003e as used (\u003ccode\u003eARG001\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22214\"\u003e#22214\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003ehelp:\u003c/code\u003e subdiagnostics for several Ruff rules that can sometimes appear to disagree with \u003ccode\u003ety\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22331\"\u003e#22331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Demote \u003ccode\u003ePLW1510\u003c/code\u003e fix to display-only (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22318\"\u003e#22318\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Ignore identical members (\u003ccode\u003ePLR1714\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22220\"\u003e#22220\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Improve diagnostic range for \u003ccode\u003ePLC0206\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22312\"\u003e#22312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Improve fix title for \u003ccode\u003eRUF102\u003c/code\u003e invalid rule code (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22100\"\u003e#22100\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e]: Avoid unnecessary builtins import for \u003ccode\u003eSIM105\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22358\"\u003e#22358\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow Python 3.15 as valid \u003ccode\u003etarget-version\u003c/code\u003e value in preview (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22419\"\u003e#22419\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCheck \u003ccode\u003erequired-version\u003c/code\u003e before parsing rules (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22410\"\u003e#22410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInclude configured \u003ccode\u003esrc\u003c/code\u003e directories when resolving graphs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22451\"\u003e#22451\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003eT201\u003c/code\u003e suggestion to not use root logger to satisfy \u003ccode\u003eLOG015\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22059\"\u003e#22059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eiter\u003c/code\u003e example in unsafe fixes doc (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22118\"\u003e#22118\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8_print\u003c/code\u003e] better suggestion for \u003ccode\u003ebasicConfig\u003c/code\u003e in \u003ccode\u003eT201\u003c/code\u003e docs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22101\"\u003e#22101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Restore the fix safety docs for \u003ccode\u003ePLW0133\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22211\"\u003e#22211\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix Jupyter notebook discovery info for editors (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22447\"\u003e#22447\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cenviity\"\u003e\u003ccode\u003e@​cenviity\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/njhearp\"\u003e\u003ccode\u003e@​njhearp\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cbachhuber\"\u003e\u003ccode\u003e@​cbachhuber\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelle-openai\"\u003e\u003ccode\u003e@​jelle-openai\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.14.11\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-01-08.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eConsolidate diagnostics for matched disable/enable suppression comments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22099\"\u003e#22099\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReport diagnostics for invalid/unmatched range suppression comments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21908\"\u003e#21908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Passing positional argument into \u003ccode\u003eairflow.lineage.hook.HookLineageCollector.create_asset\u003c/code\u003e is not allowed (\u003ccode\u003eAIR303\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22046\"\u003e#22046\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Mark \u003ccode\u003eFURB192\u003c/code\u003e fix as always unsafe (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22210\"\u003e#22210\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003enon-empty-init-module\u003c/code\u003e (\u003ccode\u003eRUF067\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22143\"\u003e#22143\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix GitHub format for multi-line diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22108\"\u003e#22108\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-unused-arguments\u003c/code\u003e] Mark \u003ccode\u003e**kwargs\u003c/code\u003e in \u003ccode\u003eTypeVar\u003c/code\u003e as used (\u003ccode\u003eARG001\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22214\"\u003e#22214\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003ehelp:\u003c/code\u003e subdiagnostics for several Ruff rules that can sometimes appear to disagree with \u003ccode\u003ety\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22331\"\u003e#22331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Demote \u003ccode\u003ePLW1510\u003c/code\u003e fix to display-only (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22318\"\u003e#22318\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Ignore identical members (\u003ccode\u003ePLR1714\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22220\"\u003e#22220\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Improve diagnostic range for \u003ccode\u003ePLC0206\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22312\"\u003e#22312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Improve fix title for \u003ccode\u003eRUF102\u003c/code\u003e invalid rule code (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22100\"\u003e#22100\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e]: Avoid unnecessary builtins import for \u003ccode\u003eSIM105\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22358\"\u003e#22358\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow Python 3.15 as valid \u003ccode\u003etarget-version\u003c/code\u003e value in preview (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22419\"\u003e#22419\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCheck \u003ccode\u003erequired-version\u003c/code\u003e before parsing rules (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22410\"\u003e#22410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInclude configured \u003ccode\u003esrc\u003c/code\u003e directories when resolving graphs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22451\"\u003e#22451\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003eT201\u003c/code\u003e suggestion to not use root logger to satisfy \u003ccode\u003eLOG015\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22059\"\u003e#22059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eiter\u003c/code\u003e example in unsafe fixes doc (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22118\"\u003e#22118\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8_print\u003c/code\u003e] better suggestion for \u003ccode\u003ebasicConfig\u003c/code\u003e in \u003ccode\u003eT201\u003c/code\u003e docs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22101\"\u003e#22101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Restore the fix safety docs for \u003ccode\u003ePLW0133\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22211\"\u003e#22211\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix Jupyter notebook discovery info for editors (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22447\"\u003e#22447\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cenviity\"\u003e\u003ccode\u003e@​cenviity\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/njhearp\"\u003e\u003ccode\u003e@​njhearp\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cbachhuber\"\u003e\u003ccode\u003e@​cbachhuber\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelle-openai\"\u003e\u003ccode\u003e@​jelle-openai\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ValdonVitija\"\u003e\u003ccode\u003e@​ValdonVitija\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/c920cf8cdb247a9fd8e15a4c9d2efa838f7a78a3\"\u003e\u003ccode\u003ec920cf8\u003c/code\u003e\u003c/a\u003e Bump 0.14.11 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22462\"\u003e#22462\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/bb757b5a79888f28264f629b5667a0514071f7d6\"\u003e\u003ccode\u003ebb757b5\u003c/code\u003e\u003c/a\u003e [ty] Don't show diagnostics for excluded files (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22455\"\u003e#22455\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/1f49e8ef518b75207e155595aba57acd48205078\"\u003e\u003ccode\u003e1f49e8e\u003c/code\u003e\u003c/a\u003e Include configured \u003ccode\u003esrc\u003c/code\u003e directories when resolving graphs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22451\"\u003e#22451\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/701f5134ab7c1a860145dccc8abb3716a3f89fe7\"\u003e\u003ccode\u003e701f513\u003c/code\u003e\u003c/a\u003e [ty] Only consider fully static pivots when deriving transitive constraints (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/eea9ad83528a7f492662f6427cdbb6fc2f655bb5\"\u003e\u003ccode\u003eeea9ad8\u003c/code\u003e\u003c/a\u003e Pin maturin version (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22454\"\u003e#22454\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/eeac2bd3eed2f4b8f4a71e0c945721481b25efc0\"\u003e\u003ccode\u003eeeac2bd\u003c/code\u003e\u003c/a\u003e [ty] Optimize union building for unions with many enum-literal members (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22363\"\u003e#22363\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7319c37f4eb063e9590e1f09c8e92d7dabc63403\"\u003e\u003ccode\u003e7319c37\u003c/code\u003e\u003c/a\u003e docs: fix jupyter notebook discovery info for editors (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22447\"\u003e#22447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/805503c19a6b74c5803e10123077997e29a0da37\"\u003e\u003ccode\u003e805503c\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eruff\u003c/code\u003e] Improve fix title for \u003ccode\u003eRUF102\u003c/code\u003e invalid rule code (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22100\"\u003e#22100\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/68a2f6c57d70052d0805b46b0e3a2538598b856f\"\u003e\u003ccode\u003e68a2f6c\u003c/code\u003e\u003c/a\u003e [ty] Fix \u003ccode\u003esuper()\u003c/code\u003e with TypeVar-annotated \u003ccode\u003eself\u003c/code\u003e and \u003ccode\u003ecls\u003c/code\u003e parameter (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22208\"\u003e#22208\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/abaa735e1d027cf458a2ab83d8a422d74111580c\"\u003e\u003ccode\u003eabaa735\u003c/code\u003e\u003c/a\u003e [ty] Improve \u003ccode\u003eUnionBuilder\u003c/code\u003e performance by changing \u003ccode\u003eType::is_subtype_of\u003c/code\u003e cal...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.14.10...0.14.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `black` from 24.12.0 to 25.12.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/releases\"\u003eblack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.12.0\u003c/h2\u003e\n\u003cp\u003ePlease test out the draft 2026 style in version 26.1a1! This style will be finalized in\nthe January release (26.1.0). Most of the changes in \u003ccode\u003e--preview\u003c/code\u003e will be in the 2026\nstable style, but not all.\n\u003ca href=\"https://redirect.github.com/psf/black/issues/4042\"\u003ePlease share your feedback!\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis release (25.12.0) will still produce the 2025 style.\u003c/p\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlack no longer supports running with Python 3.9 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4842\"\u003e#4842\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments preceding \u003ccode\u003e# fmt: off\u003c/code\u003e/\u003ccode\u003e# fmt: on\u003c/code\u003e blocks were incorrectly\nremoved, particularly affecting Jupytext's \u003ccode\u003e# %% [markdown]\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4845\"\u003e#4845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in a multi-part if-clause, on\nstring literals, or on dictionary entries with long lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix possible crash when \u003ccode\u003efmt: \u003c/code\u003e directives aren't on the top level (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary parentheses from the left-hand side of assignments while preserving\nmagic trailing commas and intentional multiline formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on \u003ccode\u003ewith\u003c/code\u003e statements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4853\"\u003e#4853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on annotated parameters (\u003ca href=\"https://redirect.github.com/psf/black/issues/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Windows binaries and wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4814\"\u003e#4814\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eoutput-file\u003c/code\u003e input to GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to write formatter output to a\nfile for artifact capture and log cleanliness (\u003ca href=\"https://redirect.github.com/psf/black/issues/4824\"\u003e#4824\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e25.11.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable base 3.14 support (\u003ca href=\"https://redirect.github.com/psf/black/issues/4804\"\u003e#4804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for the new Python 3.14 t-string syntax introduced by PEP 750 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4805\"\u003e#4805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments between \u003ccode\u003e# fmt: off\u003c/code\u003e and \u003ccode\u003e# fmt: on\u003c/code\u003e were reformatted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComments containing fmt directives now preserve their exact formatting instead of\nbeing normalized (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/blob/main/CHANGES.md\"\u003eblack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.12.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlack no longer supports running with Python 3.9 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4842\"\u003e#4842\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments preceding \u003ccode\u003e# fmt: off\u003c/code\u003e/\u003ccode\u003e# fmt: on\u003c/code\u003e blocks were incorrectly\nremoved, particularly affecting Jupytext's \u003ccode\u003e# %% [markdown]\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4845\"\u003e#4845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in a multi-part if-clause, on\nstring literals, or on dictionary entries with long lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix possible crash when \u003ccode\u003efmt: \u003c/code\u003e directives aren't on the top level (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary parentheses from the left-hand side of assignments while preserving\nmagic trailing commas and intentional multiline formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on \u003ccode\u003ewith\u003c/code\u003e statements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4853\"\u003e#4853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on annotated parameters (\u003ca href=\"https://redirect.github.com/psf/black/issues/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Windows binaries and wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4814\"\u003e#4814\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eoutput-file\u003c/code\u003e input to GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to write formatter output to a\nfile for artifact capture and log cleanliness (\u003ca href=\"https://redirect.github.com/psf/black/issues/4824\"\u003e#4824\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e25.11.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable base 3.14 support (\u003ca href=\"https://redirect.github.com/psf/black/issues/4804\"\u003e#4804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for the new Python 3.14 t-string syntax introduced by PEP 750 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4805\"\u003e#4805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments between \u003ccode\u003e# fmt: off\u003c/code\u003e and \u003ccode\u003e# fmt: on\u003c/code\u003e were reformatted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComments containing fmt directives now preserve their exact formatting instead of\nbeing normalized (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMove \u003ccode\u003emultiline_string_handling\u003c/code\u003e from \u003ccode\u003e--unstable\u003c/code\u003e to \u003ccode\u003e--preview\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4760\"\u003e#4760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix bug where module docstrings would be treated as normal strings if preceded by\ncomments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4764\"\u003e#4764\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/psf/black/commits/25.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `isort` from 5.13.2 to 7.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/PyCQA/isort/releases\"\u003eisort's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.0.0\u003c/h2\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003ch2\u003e:boom: Breaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2430\"\u003e#2430\u003c/a\u003e) \u003ca href=\"https://github.com/DanielNoord\"\u003e\u003ccode\u003e@​DanielNoord\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:rocket: Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eShow absolute paths in skipped file messages (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2416\"\u003e#2416\u003c/a\u003e) \u003ca href=\"https://github.com/pranlawate\"\u003e\u003ccode\u003e@​pranlawate\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:beetle: Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSome fixes for Python 3.14 (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2433\"\u003e#2433\u003c/a\u003e) \u003ca href=\"https://github.com/DanielNoord\"\u003e\u003ccode\u003e@​DanielNoord\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest on \u003ccode\u003e3.14\u003c/code\u003e and fix any bugs (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2425\"\u003e#2425\u003c/a\u003e) \u003ca href=\"https://github.com/DanielNoord\"\u003e\u003ccode\u003e@​DanielNoord\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate CHANGELOG.md + Fix Formatting and Grammar (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2419\"\u003e#2419\u003c/a\u003e) \u003ca href=\"https://github.com/lukbrew25\"\u003e\u003ccode\u003e@​lukbrew25\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix output of hanging indent for long lines with noqa (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2407\"\u003e#2407\u003c/a\u003e) \u003ca href=\"https://github.com/matan1008\"\u003e\u003ccode\u003e@​matan1008\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:construction_worker: Continuous Integration\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFormat with \u003ccode\u003eruff\u003c/code\u003e instead of \u003ccode\u003eblack\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2432\"\u003e#2432\u003c/a\u003e) \u003ca href=\"https://github.com/DanielNoord\"\u003e\u003ccode\u003e@​DanielNoord\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTarget 3.10 for \u003ccode\u003eruff\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2431\"\u003e#2431\u003c/a\u003e) \u003ca href=\"https://github.com/DanielNoord\"\u003e\u003ccode\u003e@​DanielNoord\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate development dependencies to latest version (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2426\"\u003e#2426\u003c/a\u003e) \u003ca href=\"https://github.com/DanielNoord\"\u003e\u003ccode\u003e@​DanielNoord\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update pre-commit examples to version 6.1.0 (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2413\"\u003e#2413\u003c/a\u003e) \u003ca href=\"https://github.com/pranlawate\"\u003e\u003ccode\u003e@​pranlawate\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSmall cleanup for developer environment (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2418\"\u003e#2418\u003c/a\u003e) \u003ca href=\"https://github.com/DanielNoord\"\u003e\u003ccode\u003e@​DanielNoord\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:package: Dependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump actions/setup-python from 5 to 6 in the github-actions group (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2411\"\u003e#2411\u003c/a\u003e) @\u003ca href=\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.1.0\u003c/h2\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate docs discussions channel (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2410\"\u003e#2410\u003c/a\u003e) \u003ca href=\"https://github.com/staticdev\"\u003e\u003ccode\u003e@​staticdev\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd python 3.14 classifier and badge (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2409\"\u003e#2409\u003c/a\u003e) \u003ca href=\"https://github.com/staticdev\"\u003e\u003ccode\u003e@​staticdev\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop use of non-standard pkg_resources API (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2405\"\u003e#2405\u003c/a\u003e) \u003ca href=\"https://github.com/dvarrazzo\"\u003e\u003ccode\u003e@​dvarrazzo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse working isort version in pre-commit example (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2402\"\u003e#2402\u003c/a\u003e) \u003ca href=\"https://github.com/iainelder\"\u003e\u003ccode\u003e@​iainelder\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix typo in _get_files_from_dir_cached test (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2392\"\u003e#2392\u003c/a\u003e) \u003ca href=\"https://github.com/tiltingpenguin\"\u003e\u003ccode\u003e@​tiltingpenguin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eResolve bandit warnings (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2379\"\u003e#2379\u003c/a\u003e) \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd tox for cross-platform, parallel test suite execution (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2378\"\u003e#2378\u003c/a\u003e) \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Project URLs to PyPI Side Panel (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2387\"\u003e#2387\u003c/a\u003e) \u003ca href=\"https://github.com/guillermodotn\"\u003e\u003ccode\u003e@​guillermodotn\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typos (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2376\"\u003e#2376\u003c/a\u003e) \u003ca href=\"https://github.com/co63oc\"\u003e\u003ccode\u003e@​co63oc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:construction_worker: Continuous Integration\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd make bash scripts portable (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2377\"\u003e#2377\u003c/a\u003e) \u003ca href=\"https://github.com/staticdev\"\u003e\u003ccode\u003e@​staticdev\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:package: Dependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump actions/checkout from 4 to 5 in the github-actions group (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2406\"\u003e#2406\u003c/a\u003e) @\u003ca href=\"https://github.com/apps/dependabot\"\u003edependabot[bot]\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/PyCQA/isort/blob/main/CHANGELOG.md\"\u003eisort's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003cp\u003eNOTE: isort follows the \u003ca href=\"https://semver.org/\"\u003esemver\u003c/a\u003e versioning standard.\nFind out more about isort's release policy \u003ca href=\"https://pycqa.github.io/isort/docs/major_releases/release_policy\"\u003ehere\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eUnreleased\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved \u003ccode\u003e--old-finders\u003c/code\u003e and \u003ccode\u003e--magic-placement\u003c/code\u003e flags and \u003ccode\u003eold_finders\u003c/code\u003e configuration option. The legacy finder logic that relied on environment introspection has been removed (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2445\"\u003e#2445\u003c/a\u003e) \u003ca href=\"https://github.com/joao-faria-dev\"\u003e\u003ccode\u003e@​joao-faria-dev\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e6.1.0 October 1 2025\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd python 3.14 classifier and badge (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2409\"\u003e#2409\u003c/a\u003e) \u003ca href=\"https://github.com/staticdev\"\u003e\u003ccode\u003e@​staticdev\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop use of non-standard pkg_resources API (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2405\"\u003e#2405\u003c/a\u003e) \u003ca href=\"https://github.com/dvarrazzo\"\u003e\u003ccode\u003e@​dvarrazzo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e6.0.1 Febuary 26 2025\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd OSError handling in find_imports_in_file (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2331\"\u003e#2331\u003c/a\u003e) \u003ca href=\"https://github.com/kobarity\"\u003e\u003ccode\u003e@​kobarity\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e6.0.0 January 27 2025\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for Python 3.8 (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2327\"\u003e#2327\u003c/a\u003e) \u003ca href=\"https://github.com/DanielNoord\"\u003e\u003ccode\u003e@​DanielNoord\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePython 3.13 support (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2306\"\u003e#2306\u003c/a\u003e) \u003ca href=\"https://github.com/mayty\"\u003e\u003ccode\u003e@​mayty\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSpeed up exists_case_sensitive calls (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2264\"\u003e#2264\u003c/a\u003e) \u003ca href=\"https://github.com/correctmost\"\u003e\u003ccode\u003e@​correctmost\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnsure that split_on_trailing_comma works with as imports (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2340\"\u003e#2340\u003c/a\u003e) \u003ca href=\"https://github.com/DanielNoord\"\u003e\u003ccode\u003e@​DanielNoord\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBlack profile: enable magic comma (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2236\"\u003e#2236\u003c/a\u003e) \u003ca href=\"https://github.com/MrMino\"\u003e\u003ccode\u003e@​MrMino\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate line_length and single_line_exclusions in google profile (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2149\"\u003e#2149\u003c/a\u003e) \u003ca href=\"https://github.com/jagapiou\"\u003e\u003ccode\u003e@​jagapiou\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow --diff to be used with --jobs (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2302\"\u003e#2302\u003c/a\u003e) \u003ca href=\"https://github.com/mnakama\"\u003e\u003ccode\u003e@​mnakama\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix wemake profile to have correct character limit (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2241\"\u003e#2241\u003c/a\u003e) \u003ca href=\"https://github.com/sobolevn\"\u003e\u003ccode\u003e@​sobolevn\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix sort_reexports code mangling (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2283\"\u003e#2283\u003c/a\u003e) \u003ca href=\"https://github.com/Helveg\"\u003e\u003ccode\u003e@​Helveg\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix correct group by package tokenization (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2136\"\u003e#2136\u003c/a\u003e) \u003ca href=\"https://github.com/glasnt\"\u003e\u003ccode\u003e@​glasnt\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/isort/commit/0a09c783808cfe77bb3269250f663ff733d23302\"\u003e\u003ccode\u003e0a09c78\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2433\"\u003e#2433\u003c/a\u003e from DanielNoord/python-314\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/isort/commit/0fee794a05b5d0c471ac80bc8943f9843ca29644\"\u003e\u003ccode\u003e0fee794\u003c/code\u003e\u003c/a\u003e Add 3.14 to \u003ccode\u003estdlibds\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/isort/commit/332a1ad0b68bf3a3acac055b0ec3666408b3b425\"\u003e\u003ccode\u003e332a1ad\u003c/code\u003e\u003c/a\u003e Bump \u003ccode\u003ezstandard\u003c/code\u003e for 3.14 compat\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/isort/commit/f756e5653afcf6d79ec4d0240b1868cbebd8fafd\"\u003e\u003ccode\u003ef756e56\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2432\"\u003e#2432\u003c/a\u003e from DanielNoord/ruff-it-up\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/isort/commit/52f5134889d345ff35afdcb86501c8221b804c70\"\u003e\u003ccode\u003e52f5134\u003c/code\u003e\u003c/a\u003e Format with \u003ccode\u003eruff\u003c/code\u003e instead of \u003ccode\u003eblack\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/isort/commit/012aa69fcadb3c89ff92a3d96aa449be7ae6746f\"\u003e\u003ccode\u003e012aa69\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2431\"\u003e#2431\u003c/a\u003e from DanielNoord/ruff-it-up\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/isort/commit/89773dbb371192541092657972a74e9ce0bbbc74\"\u003e\u003ccode\u003e89773db\u003c/code\u003e\u003c/a\u003e Target 3.10 with \u003ccode\u003eruff\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/isort/commit/933e382f98a0c77b4c6e33c4e3ef12bd57192884\"\u003e\u003ccode\u003e933e382\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2430\"\u003e#2430\u003c/a\u003e from DanielNoord/drop-39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/isort/commit/8b6e00cbe643a216da57fed4baa282d0a4a1b829\"\u003e\u003ccode\u003e8b6e00c\u003c/code\u003e\u003c/a\u003e Remove support for Python 3.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/isort/commit/b5f9f296ad873734e8caa3a731f27360648d9b37\"\u003e\u003ccode\u003eb5f9f29\u003c/code\u003e\u003c/a\u003e Bump profile plugin to 3.10+ and re-lock\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/PyCQA/isort/compare/5.13.2...7.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `yamllint` from 1.35.1 to 1.37.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/adrienverge/yamllint/blob/master/CHANGELOG.rst\"\u003eyamllint's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.37.1 (2025-05-04)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRule \u003ccode\u003ecomments\u003c/code\u003e: tell how many spaces are expected\u003c/li\u003e\n\u003cli\u003eRule \u003ccode\u003equoted-strings\u003c/code\u003e: Fix \u003ccode\u003eonly-when-needed\u003c/code\u003e on multiline with backslash\u003c/li\u003e\n\u003cli\u003eConfig: Report if \u003ccode\u003erules\u003c/code\u003e is not a dict\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003etest_codec_built_in_equivalent()\u003c/code\u003e test when run with pytest\u003c/li\u003e\n\u003cli\u003eCI: Fix TestPyPI \u0026quot;dev0\u0026quot; versions for master commits on tags\u003c/li\u003e\n\u003cli\u003eDocs: Add links to GitHub repository and releases\u003c/li\u003e\n\u003cli\u003eDocs: Fix GitLab integration example\u003c/li\u003e\n\u003cli\u003eDocs: Fix GitLab integration link\u003c/li\u003e\n\u003cli\u003eFix the tests badge link on the README\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.37.0 (2025-03-23)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli...\n\n_Description has been truncated_","html_url":"https://github.com/jguida941/ci-cd-hub/pull/7","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/jguida941%2Fci-cd-hub/issues/7","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/7/packages"},{"uuid":"3801593197","node_id":"PR_kwDOJVkqEs68j0tv","number":1164,"state":"open","title":"chore(deps): bump the poetry group across 3 directories with 45 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-01-11T16:39:23.000Z","updated_at":"2026-01-18T16:46:56.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"poetry","update_count":45,"packages":[{"name":"sanic","old_version":"24.12.0","new_version":"25.12.0","repository_url":"https://github.com/sanic-org/sanic"},{"name":"pydantic","old_version":"2.11.3","new_version":"2.12.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"datamodel-code-generator","old_version":"0.28.5","new_version":"0.52.2","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"sqlalchemy","old_version":"2.0.40","new_version":"2.0.45","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"alembic","old_version":"1.15.2","new_version":"1.18.0","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"asyncpg","old_version":"0.30.0","new_version":"0.31.0","repository_url":"https://github.com/MagicStack/asyncpg"},{"name":"kubernetes","old_version":"31.0.0","new_version":"33.1.0","repository_url":"https://github.com/kubernetes-client/python"},{"name":"python-ulid","old_version":"3.0.0","new_version":"3.1.0","repository_url":"https://github.com/mdomke/python-ulid"},{"name":"python-gitlab","old_version":"5.6.0","new_version":"7.1.0","repository_url":"https://github.com/python-gitlab/python-gitlab"},{"name":"psycopg","old_version":"3.2.6","new_version":"3.3.2","repository_url":"https://github.com/psycopg/psycopg"},{"name":"urllib3","old_version":"2.6.0","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"},{"name":"authlib","old_version":"1.6.0","new_version":"1.6.6","repository_url":"https://github.com/authlib/authlib"},{"name":"marshmallow","old_version":"3.26.1","new_version":"4.2.0","repository_url":"https://github.com/marshmallow-code/marshmallow"},{"name":"escapism","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jupyterhub/escapism"},{"name":"sentry-sdk","old_version":"2.26.1","new_version":"2.49.0","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"authzed","old_version":"1.21.1","new_version":"1.24.0","repository_url":"https://github.com/authzed/authzed-py"},{"name":"cryptography","old_version":"44.0.2","new_version":"46.0.3","repository_url":"https://github.com/pyca/cryptography"},{"name":"setuptools","old_version":"75.9.1","new_version":"80.9.0","repository_url":"https://github.com/pypa/setuptools"},{"name":"kr8s","old_version":"0.20.7","new_version":"0.20.14","repository_url":"https://github.com/kr8s-org/kr8s"},{"name":"werkzeug","old_version":"3.1.3","new_version":"3.1.5","repository_url":"https://github.com/pallets/werkzeug"},{"name":"aiofiles","old_version":"24.1.0","new_version":"25.1.0","repository_url":"https://github.com/Tinche/aiofiles"},{"name":"protobuf","old_version":"5.29.4","new_version":"6.33.3","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"poetry","old_version":"2.1.2","new_version":"2.2.1","repository_url":"https://github.com/python-poetry/poetry"},{"name":"parsy","old_version":"2.1","new_version":"2.2","repository_url":"https://github.com/python-parsy/parsy"},{"name":"posthog","old_version":"3.25.0","new_version":"7.5.1","repository_url":"https://github.com/posthog/posthog-python"},{"name":"markdown-code-runner","old_version":"2.2.0","new_version":"2.4.0","repository_url":"https://github.com/basnijholt/markdown-code-runner"},{"name":"bandit","old_version":"1.8.3","new_version":"1.9.2","repository_url":"https://github.com/PyCQA/bandit"},{"name":"mypy","old_version":"1.15.0","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"pytest","old_version":"8.3.5","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-cov","old_version":"6.1.1","new_version":"7.0.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pre-commit","old_version":"4.2.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"aiosqlite","old_version":"0.20.0","new_version":"0.22.1","repository_url":"https://github.com/omnilib/aiosqlite"},{"name":"types-pyyaml","old_version":"6.0.12.20250402","new_version":"6.0.12.20250915","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"schemathesis","old_version":"3.39.7","new_version":"4.8.0","repository_url":"https://github.com/schemathesis/schemathesis"},{"name":"pytest-asyncio","old_version":"0.21.2","new_version":"1.3.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"pytest-postgresql","old_version":"6.1.1","new_version":"7.0.2","repository_url":"https://github.com/dbfixtures/pytest-postgresql"},{"name":"ruff","old_version":"0.8.6","new_version":"0.14.11","repository_url":"https://github.com/astral-sh/ruff"},{"name":"debugpy","old_version":"1.8.14","new_version":"1.8.19","repository_url":"https://github.com/microsoft/debugpy"},{"name":"pytest-xdist","old_version":"3.6.1","new_version":"3.8.0","repository_url":"https://github.com/pytest-dev/pytest-xdist"},{"name":"types-requests","old_version":"2.32.0.20250328","new_version":"2.32.4.20260107","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"types-aiofiles","old_version":"24.1.0.20250326","new_version":"25.1.0.20251011","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"uvloop","old_version":"0.21.0","new_version":"0.22.1","repository_url":"https://github.com/MagicStack/uvloop"},{"name":"syrupy","old_version":"4.9.1","new_version":"5.0.0","repository_url":"https://github.com/syrupy-project/syrupy"},{"name":"ruamel-yaml","old_version":"0.18.14","new_version":"0.19.1"}],"path":null,"ecosystem":"pip"},"body":"Bumps the poetry group with 45 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [sanic](https://github.com/sanic-org/sanic) | `24.12.0` | `25.12.0` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.11.3` | `2.12.5` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.28.5` | `0.52.2` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.40` | `2.0.45` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.15.2` | `1.18.0` |\n| [asyncpg](https://github.com/MagicStack/asyncpg) | `0.30.0` | `0.31.0` |\n| [kubernetes](https://github.com/kubernetes-client/python) | `31.0.0` | `33.1.0` |\n| [python-ulid](https://github.com/mdomke/python-ulid) | `3.0.0` | `3.1.0` |\n| [python-gitlab](https://github.com/python-gitlab/python-gitlab) | `5.6.0` | `7.1.0` |\n| [psycopg](https://github.com/psycopg/psycopg) | `3.2.6` | `3.3.2` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.6.0` | `2.6.3` |\n| [authlib](https://github.com/authlib/authlib) | `1.6.0` | `1.6.6` |\n| [marshmallow](https://github.com/marshmallow-code/marshmallow) | `3.26.1` | `4.2.0` |\n| [escapism](https://github.com/jupyterhub/escapism) | `1.0.1` | `1.1.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.26.1` | `2.49.0` |\n| [authzed](https://github.com/authzed/authzed-py) | `1.21.1` | `1.24.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `44.0.2` | `46.0.3` |\n| [setuptools](https://github.com/pypa/setuptools) | `75.9.1` | `80.9.0` |\n| [kr8s](https://github.com/kr8s-org/kr8s) | `0.20.7` | `0.20.14` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.3` | `3.1.5` |\n| [aiofiles](https://github.com/Tinche/aiofiles) | `24.1.0` | `25.1.0` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `5.29.4` | `6.33.3` |\n| [poetry](https://github.com/python-poetry/poetry) | `2.1.2` | `2.2.1` |\n| [parsy](https://github.com/python-parsy/parsy) | `2.1` | `2.2` |\n| [posthog](https://github.com/posthog/posthog-python) | `3.25.0` | `7.5.1` |\n| [markdown-code-runner](https://github.com/basnijholt/markdown-code-runner) | `2.2.0` | `2.4.0` |\n| [bandit](https://github.com/PyCQA/bandit) | `1.8.3` | `1.9.2` |\n| [mypy](https://github.com/python/mypy) | `1.15.0` | `1.19.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.5` | `8.4.2` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `6.1.1` | `7.0.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.2.0` | `4.5.1` |\n| [aiosqlite](https://github.com/omnilib/aiosqlite) | `0.20.0` | `0.22.1` |\n| [types-pyyaml](https://github.com/typeshed-internal/stub_uploader) | `6.0.12.20250402` | `6.0.12.20250915` |\n| [schemathesis](https://github.com/schemathesis/schemathesis) | `3.39.7` | `4.8.0` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `0.21.2` | `1.3.0` |\n| [pytest-postgresql](https://github.com/dbfixtures/pytest-postgresql) | `6.1.1` | `7.0.2` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.8.6` | `0.14.11` |\n| [debugpy](https://github.com/microsoft/debugpy) | `1.8.14` | `1.8.19` |\n| [pytest-xdist](https://github.com/pytest-dev/pytest-xdist) | `3.6.1` | `3.8.0` |\n| [types-requests](https://github.com/typeshed-internal/stub_uploader) | `2.32.0.20250328` | `2.32.4.20260107` |\n| [types-aiofiles](https://github.com/typeshed-internal/stub_uploader) | `24.1.0.20250326` | `25.1.0.20251011` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [uvloop](https://github.com/MagicStack/uvloop) | `0.21.0` | `0.22.1` |\n| [syrupy](https://github.com/syrupy-project/syrupy) | `4.9.1` | `5.0.0` |\n| ruamel-yaml | `0.18.14` | `0.19.1` |\n\nBumps the poetry group with 25 updates in the /projects/renku_data_service directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [sanic](https://github.com/sanic-org/sanic) | `24.12.0` | `25.12.0` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.11.3` | `2.12.5` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.24.2` | `0.52.2` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.40` | `2.0.45` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.15.2` | `1.18.0` |\n| [asyncpg](https://github.com/MagicStack/asyncpg) | `0.30.0` | `0.31.0` |\n| [kubernetes](https://github.com/kubernetes-client/python) | `31.0.0` | `33.1.0` |\n| [python-ulid](https://github.com/mdomke/python-ulid) | `3.0.0` | `3.1.0` |\n| [python-gitlab](https://github.com/python-gitlab/python-gitlab) | `5.6.0` | `7.1.0` |\n| [psycopg](https://github.com/psycopg/psycopg) | `3.2.6` | `3.3.2` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.6.2` | `2.6.3` |\n| [authlib](https://github.com/authlib/authlib) | `1.6.0` | `1.6.6` |\n| [marshmallow](https://github.com/marshmallow-code/marshmallow) | `3.26.1` | `4.2.0` |\n| [escapism](https://github.com/jupyterhub/escapism) | `1.0.1` | `1.1.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.26.1` | `2.49.0` |\n| [authzed](https://github.com/authzed/authzed-py) | `1.21.1` | `1.24.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `44.0.2` | `46.0.3` |\n| [setuptools](https://github.com/pypa/setuptools) | `75.9.1` | `80.9.0` |\n| [kr8s](https://github.com/kr8s-org/kr8s) | `0.20.7` | `0.20.14` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.3` | `3.1.5` |\n| [aiofiles](https://github.com/Tinche/aiofiles) | `24.1.0` | `25.1.0` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `5.29.4` | `6.33.3` |\n| [parsy](https://github.com/python-parsy/parsy) | `2.1` | `2.2` |\n| [posthog](https://github.com/posthog/posthog-python) | `3.25.0` | `7.5.1` |\n| [markdown-code-runner](https://github.com/basnijholt/markdown-code-runner) | `2.2.0` | `2.4.0` |\n\nBumps the poetry group with 25 updates in the /projects/secrets_storage directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [sanic](https://github.com/sanic-org/sanic) | `24.12.0` | `25.12.0` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.11.3` | `2.12.5` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.24.2` | `0.52.2` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.40` | `2.0.45` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.15.2` | `1.18.0` |\n| [asyncpg](https://github.com/MagicStack/asyncpg) | `0.30.0` | `0.31.0` |\n| [kubernetes](https://github.com/kubernetes-client/python) | `31.0.0` | `33.1.0` |\n| [python-ulid](https://github.com/mdomke/python-ulid) | `3.0.0` | `3.1.0` |\n| [python-gitlab](https://github.com/python-gitlab/python-gitlab) | `5.6.0` | `7.1.0` |\n| [psycopg](https://github.com/psycopg/psycopg) | `3.2.6` | `3.3.2` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.6.2` | `2.6.3` |\n| [authlib](https://github.com/authlib/authlib) | `1.6.0` | `1.6.6` |\n| [marshmallow](https://github.com/marshmallow-code/marshmallow) | `3.26.1` | `4.2.0` |\n| [escapism](https://github.com/jupyterhub/escapism) | `1.0.1` | `1.1.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.26.1` | `2.49.0` |\n| [authzed](https://github.com/authzed/authzed-py) | `1.21.1` | `1.24.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `44.0.2` | `46.0.3` |\n| [setuptools](https://github.com/pypa/setuptools) | `75.9.1` | `80.9.0` |\n| [kr8s](https://github.com/kr8s-org/kr8s) | `0.20.7` | `0.20.14` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.3` | `3.1.5` |\n| [aiofiles](https://github.com/Tinche/aiofiles) | `24.1.0` | `25.1.0` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `5.29.4` | `6.33.3` |\n| [parsy](https://github.com/python-parsy/parsy) | `2.1` | `2.2` |\n| [posthog](https://github.com/posthog/posthog-python) | `3.25.0` | `7.5.1` |\n| [markdown-code-runner](https://github.com/basnijholt/markdown-code-runner) | `2.2.0` | `2.4.0` |\n\n\nUpdates `sanic` from 24.12.0 to 25.12.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sanic-org/sanic/releases\"\u003esanic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 25.12.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCreate baseline for bandit to remove false positives by \u003ca href=\"https://github.com/ChihweiLHBird\"\u003e\u003ccode\u003e@​ChihweiLHBird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3084\"\u003esanic-org/sanic#3084\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse secrets for generating unique ping payloads by \u003ca href=\"https://github.com/Tronic\"\u003e\u003ccode\u003e@​Tronic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3091\"\u003esanic-org/sanic#3091\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd some typing and fix some tests by \u003ca href=\"https://github.com/ahopkins\"\u003e\u003ccode\u003e@​ahopkins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3094\"\u003esanic-org/sanic#3094\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix race condition in worker restart causing spawn failure by \u003ca href=\"https://github.com/jameslovespancakes\"\u003e\u003ccode\u003e@​jameslovespancakes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3086\"\u003esanic-org/sanic#3086\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix AttributeError in close_if_idle() when _http is not initialized by \u003ca href=\"https://github.com/jameslovespancakes\"\u003e\u003ccode\u003e@​jameslovespancakes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3085\"\u003esanic-org/sanic#3085\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd typing for parameters of constructor of \u003ccode\u003eWorkerManager\u003c/code\u003e by \u003ca href=\"https://github.com/ChihweiLHBird\"\u003e\u003ccode\u003e@​ChihweiLHBird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3083\"\u003esanic-org/sanic#3083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate str_to_bool function to include 'nope' as a valid false value by \u003ca href=\"https://github.com/tkosman\"\u003e\u003ccode\u003e@​tkosman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3080\"\u003esanic-org/sanic#3080\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd DetailedConverter for advanced environment variable conversion by \u003ca href=\"https://github.com/tkosman\"\u003e\u003ccode\u003e@​tkosman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3079\"\u003esanic-org/sanic#3079\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix WorkerManager.kill on Windows by \u003ca href=\"https://github.com/gazpachoking\"\u003e\u003ccode\u003e@​gazpachoking\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3077\"\u003esanic-org/sanic#3077\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003esilent on RuntimeError when write_eof by \u003ca href=\"https://github.com/tiejunhu\"\u003e\u003ccode\u003e@​tiejunhu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3068\"\u003esanic-org/sanic#3068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSingle letter typo fix for request.md documentation by \u003ca href=\"https://github.com/wojonet\"\u003e\u003ccode\u003e@​wojonet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3066\"\u003esanic-org/sanic#3066\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed incorrect links throughout the documentation by \u003ca href=\"https://github.com/Peopl3s\"\u003e\u003ccode\u003e@​Peopl3s\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3065\"\u003esanic-org/sanic#3065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChange the log type to debug by \u003ca href=\"https://github.com/Peopl3s\"\u003e\u003ccode\u003e@​Peopl3s\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3064\"\u003esanic-org/sanic#3064\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd correct path for Contribution guidelines by \u003ca href=\"https://github.com/dungarpan\"\u003e\u003ccode\u003e@​dungarpan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3057\"\u003esanic-org/sanic#3057\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix broken link in website by \u003ca href=\"https://github.com/helioascorreia\"\u003e\u003ccode\u003e@​helioascorreia\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3056\"\u003esanic-org/sanic#3056\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix 'how we built sanic' sidebar link by \u003ca href=\"https://github.com/dhensen\"\u003e\u003ccode\u003e@​dhensen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3054\"\u003esanic-org/sanic#3054\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes sanic_ext - openapi component documentation by \u003ca href=\"https://github.com/amarquard089\"\u003e\u003ccode\u003e@​amarquard089\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3035\"\u003esanic-org/sanic#3035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate required Python to \u0026gt;=3.9 by \u003ca href=\"https://github.com/ChihweiLHBird\"\u003e\u003ccode\u003e@​ChihweiLHBird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3095\"\u003esanic-org/sanic#3095\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Add automatic charset=UTF-8 to text content types by \u003ca href=\"https://github.com/Tronic\"\u003e\u003ccode\u003e@​Tronic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3071\"\u003esanic-org/sanic#3071\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade tracerite to latest by \u003ca href=\"https://github.com/ahopkins\"\u003e\u003ccode\u003e@​ahopkins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3101\"\u003esanic-org/sanic#3101\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter server error messaging by \u003ca href=\"https://github.com/ahopkins\"\u003e\u003ccode\u003e@​ahopkins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3102\"\u003esanic-org/sanic#3102\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTesting improvements by \u003ca href=\"https://github.com/ahopkins\"\u003e\u003ccode\u003e@​ahopkins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3107\"\u003esanic-org/sanic#3107\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove to 2-stage coverage check by \u003ca href=\"https://github.com/ahopkins\"\u003e\u003ccode\u003e@​ahopkins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3108\"\u003esanic-org/sanic#3108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixing bad term cleanup at exit by \u003ca href=\"https://github.com/tdaron\"\u003e\u003ccode\u003e@​tdaron\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3088\"\u003esanic-org/sanic#3088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump dawidd6/action-download-artifact from 3 to 6 in /.github/workflows by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3109\"\u003esanic-org/sanic#3109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd daemon mode to Sanic CLI  by \u003ca href=\"https://github.com/ahopkins\"\u003e\u003ccode\u003e@​ahopkins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3110\"\u003esanic-org/sanic#3110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove v3.9 and add v3.14 by \u003ca href=\"https://github.com/ahopkins\"\u003e\u003ccode\u003e@​ahopkins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3115\"\u003esanic-org/sanic#3115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReturn task when creating a task by \u003ca href=\"https://github.com/ahopkins\"\u003e\u003ccode\u003e@​ahopkins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3114\"\u003esanic-org/sanic#3114\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix static file serving for directories with CJK characters by \u003ca href=\"https://github.com/ahopkins\"\u003e\u003ccode\u003e@​ahopkins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3119\"\u003esanic-org/sanic#3119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExplicit symlink params for static files/dirs by \u003ca href=\"https://github.com/ahopkins\"\u003e\u003ccode\u003e@​ahopkins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3117\"\u003esanic-org/sanic#3117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRespect LOG_EXTRA in all cases by \u003ca href=\"https://github.com/ahopkins\"\u003e\u003ccode\u003e@​ahopkins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3120\"\u003esanic-org/sanic#3120\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRespect KEEP_ALIVE config by \u003ca href=\"https://github.com/ahopkins\"\u003e\u003ccode\u003e@​ahopkins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3121\"\u003esanic-org/sanic#3121\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCheck state in shutdown for handling uvloop double kill by \u003ca href=\"https://github.com/ahopkins\"\u003e\u003ccode\u003e@​ahopkins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3122\"\u003esanic-org/sanic#3122\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare for v25.12 release by \u003ca href=\"https://github.com/ahopkins\"\u003e\u003ccode\u003e@​ahopkins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3124\"\u003esanic-org/sanic#3124\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/jameslovespancakes\"\u003e\u003ccode\u003e@​jameslovespancakes\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3086\"\u003esanic-org/sanic#3086\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkosman\"\u003e\u003ccode\u003e@​tkosman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3080\"\u003esanic-org/sanic#3080\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gazpachoking\"\u003e\u003ccode\u003e@​gazpachoking\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3077\"\u003esanic-org/sanic#3077\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tiejunhu\"\u003e\u003ccode\u003e@​tiejunhu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3068\"\u003esanic-org/sanic#3068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wojonet\"\u003e\u003ccode\u003e@​wojonet\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3066\"\u003esanic-org/sanic#3066\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Peopl3s\"\u003e\u003ccode\u003e@​Peopl3s\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3065\"\u003esanic-org/sanic#3065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dungarpan\"\u003e\u003ccode\u003e@​dungarpan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3057\"\u003esanic-org/sanic#3057\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/helioascorreia\"\u003e\u003ccode\u003e@​helioascorreia\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3056\"\u003esanic-org/sanic#3056\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dhensen\"\u003e\u003ccode\u003e@​dhensen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3054\"\u003esanic-org/sanic#3054\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amarquard089\"\u003e\u003ccode\u003e@​amarquard089\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3035\"\u003esanic-org/sanic#3035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tdaron\"\u003e\u003ccode\u003e@​tdaron\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3088\"\u003esanic-org/sanic#3088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3109\"\u003esanic-org/sanic#3109\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sanic-org/sanic/commit/785d77f8fe208576a48d339bd81d866021154092\"\u003e\u003ccode\u003e785d77f\u003c/code\u003e\u003c/a\u003e Prepare for v25.12 release (\u003ca href=\"https://redirect.github.com/sanic-org/sanic/issues/3124\"\u003e#3124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sanic-org/sanic/commit/dc0939e682eeaace8b2832f634999f3390b1d5d1\"\u003e\u003ccode\u003edc0939e\u003c/code\u003e\u003c/a\u003e Check state in shutdown for handling uvloop double kill (\u003ca href=\"https://redirect.github.com/sanic-org/sanic/issues/3122\"\u003e#3122\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sanic-org/sanic/commit/a64dc641a8e4ad777a4602d2bdec53d736901472\"\u003e\u003ccode\u003ea64dc64\u003c/code\u003e\u003c/a\u003e Respect KEEP_ALIVE config (\u003ca href=\"https://redirect.github.com/sanic-org/sanic/issues/3121\"\u003e#3121\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sanic-org/sanic/commit/7c9b8461c0b4d300c15fe66b6f9b5d031aee59eb\"\u003e\u003ccode\u003e7c9b846\u003c/code\u003e\u003c/a\u003e Respect LOG_EXTRA in all cases (\u003ca href=\"https://redirect.github.com/sanic-org/sanic/issues/3120\"\u003e#3120\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sanic-org/sanic/commit/9aef932b843abff359f7a06ffc75dd45bab99e79\"\u003e\u003ccode\u003e9aef932\u003c/code\u003e\u003c/a\u003e Explicit symlink params for static files/dirs (\u003ca href=\"https://redirect.github.com/sanic-org/sanic/issues/3117\"\u003e#3117\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sanic-org/sanic/commit/41f2b38041e4bacc56aac1d3b99131ae183c27e8\"\u003e\u003ccode\u003e41f2b38\u003c/code\u003e\u003c/a\u003e Fix static file serving for directories with CJK characters (\u003ca href=\"https://redirect.github.com/sanic-org/sanic/issues/3119\"\u003e#3119\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sanic-org/sanic/commit/82d8cc4c98d5dd2cd807279b61615acaaf06d5bb\"\u003e\u003ccode\u003e82d8cc4\u003c/code\u003e\u003c/a\u003e Return task when creating a task (\u003ca href=\"https://redirect.github.com/sanic-org/sanic/issues/3114\"\u003e#3114\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sanic-org/sanic/commit/002c8c2d8a1c338a93b5b666514bdbef4ec6d1bc\"\u003e\u003ccode\u003e002c8c2\u003c/code\u003e\u003c/a\u003e Remove v3.9 and add v3.14 (\u003ca href=\"https://redirect.github.com/sanic-org/sanic/issues/3115\"\u003e#3115\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sanic-org/sanic/commit/3ae8f8ad7f4c12a75f67982b9456999d935bf5c0\"\u003e\u003ccode\u003e3ae8f8a\u003c/code\u003e\u003c/a\u003e Add daemon mode to Sanic CLI  (\u003ca href=\"https://redirect.github.com/sanic-org/sanic/issues/3110\"\u003e#3110\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sanic-org/sanic/commit/8ac64685c72395da1862a90e18883c94e71562d9\"\u003e\u003ccode\u003e8ac6468\u003c/code\u003e\u003c/a\u003e Bump dawidd6/action-download-artifact from 3 to 6 in /.github/workflows (\u003ca href=\"https://redirect.github.com/sanic-org/sanic/issues/3109\"\u003e#3109\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sanic-org/sanic/compare/v24.12.0...v25.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.11.3 to 2.12.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.5 2025-11-26\u003c/h2\u003e\n\u003ch2\u003ev2.12.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.4 2025-11-05\u003c/h2\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method of the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1864\"\u003epydantic-core#1864\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.3 2025-10-17\u003c/h2\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eThis is the third 2.13 patch release, fixing issues related to the \u003ccode\u003eFieldInfo\u003c/code\u003e class, and reverting a change to the supported \u003ca href=\"https://docs.pydantic.dev/latest/concepts/validators/#model-validators\"\u003e\u003cem\u003eafter\u003c/em\u003e model validator\u003c/a\u003e function signatures.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.5\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.4\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in\n\u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1864\"\u003epydantic-core#1864\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.3\"\u003eGitHub release\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/pydantic/pydantic/commit/bd2d0dd0137dfa1a8fdff2529b9dfb1547980150\"\u003e\u003ccode\u003ebd2d0dd\u003c/code\u003e\u003c/a\u003e Prepare release v2.12.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7d0302ec7ec2cf115de3450a615522875bdd8b56\"\u003e\u003ccode\u003e7d0302e\u003c/code\u003e\u003c/a\u003e Document security implications when using \u003ccode\u003ecreate_model()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/e9ef980def726b6f59b6c495ddc9dc259a0228db\"\u003e\u003ccode\u003ee9ef980\u003c/code\u003e\u003c/a\u003e Fix typo in Standard Library Types documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f2c20c00c265a31a13c48f9bae923a87c829952e\"\u003e\u003ccode\u003ef2c20c0\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003epydantic-docs\u003c/code\u003e dev dependency, make use of versioning blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a76c1aa26f2d64a3fd080ac515d80832689197e8\"\u003e\u003ccode\u003ea76c1aa\u003c/code\u003e\u003c/a\u003e Update documentation about JSON Schema\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/8cbc72ca489891e574fba45238ee8bd4f8e719a2\"\u003e\u003ccode\u003e8cbc72c\u003c/code\u003e\u003c/a\u003e Add documentation about custom \u003ccode\u003e__init__()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/99eba599069da137b3f708ffa74627f2b456ba73\"\u003e\u003ccode\u003e99eba59\u003c/code\u003e\u003c/a\u003e Add additional test for \u003ccode\u003eFieldInfo.get_default()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c71076988e507ea93844c77c3bf0bbb85a5716af\"\u003e\u003ccode\u003ec710769\u003c/code\u003e\u003c/a\u003e Special case \u003ccode\u003eMISSING\u003c/code\u003e sentinel in \u003ccode\u003esmart_deepcopy()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/20a9d771c210fd77d52366ac923258c4c199727f\"\u003e\u003ccode\u003e20a9d77\u003c/code\u003e\u003c/a\u003e Do not delete mock validator/serializer in \u003ccode\u003erebuild_dataclass()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c86515a3a8f2120148fab2eaedd3bc45925779d0\"\u003e\u003ccode\u003ec86515a\u003c/code\u003e\u003c/a\u003e Update parts of the model and \u003ccode\u003erevalidate_instances\u003c/code\u003e documentation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.11.3...v2.12.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `datamodel-code-generator` from 0.28.5 to 0.52.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases\"\u003edatamodel-code-generator's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.52.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for multiple base classes in base_class_map and customBasePath by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2916\"\u003ekoxudaxi/datamodel-code-generator#2916\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003cstrong\u003ehash\u003c/strong\u003e to Pydantic v2 models used in sets by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2918\"\u003ekoxudaxi/datamodel-code-generator#2918\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Handle class name prefix correctly in GraphQL parser by \u003ca href=\"https://github.com/siminn-arnorgj\"\u003e\u003ccode\u003e@​siminn-arnorgj\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2926\"\u003ekoxudaxi/datamodel-code-generator#2926\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd TypedDict closed and extra_items support (PEP 728) by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2922\"\u003ekoxudaxi/datamodel-code-generator#2922\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix release-draft workflow to use pull_request_target and increase max_turns to 50 by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2930\"\u003ekoxudaxi/datamodel-code-generator#2930\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate from pyright to ty type checker by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2928\"\u003ekoxudaxi/datamodel-code-generator#2928\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix URL port handling in get_url_path_parts by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2933\"\u003ekoxudaxi/datamodel-code-generator#2933\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.52.1...0.52.2\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.52.1...0.52.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.52.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd --validators option for Pydantic v2 field validators by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2906\"\u003ekoxudaxi/datamodel-code-generator#2906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd dynamic model generation support by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2901\"\u003ekoxudaxi/datamodel-code-generator#2901\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSync zensical.toml nav with docs directory by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2908\"\u003ekoxudaxi/datamodel-code-generator#2908\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd deprecation warning for default output-model-type by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2910\"\u003ekoxudaxi/datamodel-code-generator#2910\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd deprecation warning and explicit --output-model-type to docs by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2911\"\u003ekoxudaxi/datamodel-code-generator#2911\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd llms.txt generator for LLM-friendly documentation by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2912\"\u003ekoxudaxi/datamodel-code-generator#2912\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove coverage fail_under check to combined coverage environment by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2909\"\u003ekoxudaxi/datamodel-code-generator#2909\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix YAML scientific notation parsing as float by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2913\"\u003ekoxudaxi/datamodel-code-generator#2913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd deprecated field support for Pydantic v2 by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2915\"\u003ekoxudaxi/datamodel-code-generator#2915\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd deprecation warning for Pydantic v2 without --use-annotated by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2914\"\u003ekoxudaxi/datamodel-code-generator#2914\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.52.0...0.52.1\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.52.0...0.52.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.52.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUnion fields with titles now wrapped in named models when \u003ccode\u003e--use-title-as-name\u003c/code\u003e is enabled - Previously, union-typed fields with a \u003ccode\u003etitle\u003c/code\u003e were generated as inline union types (e.g., \u003ccode\u003eTypeA | TypeB | TypeC | None\u003c/code\u003e). Now they generate a separate wrapper model using the title name, and the field references this wrapper type (e.g., \u003ccode\u003eProcessingStatusUnionTitle | None\u003c/code\u003e). This affects code that directly accesses union field values, as they now need to access the \u003ccode\u003e.root\u003c/code\u003e attribute (Pydantic v2) or \u003ccode\u003e.__root__\u003c/code\u003e (Pydantic v1) of the wrapper model. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2889\"\u003e#2889\u003c/a\u003e)\n\u003cstrong\u003eBefore:\u003c/strong\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eclass ProcessingTaskTitle(BaseModel):\n    processing_status_union: (\n        ProcessingStatusDetail | ExtendedProcessingTask | ProcessingStatusTitle | None\n    ) = Field('COMPLETED', title='Processing Status Union Title')\n\u003c/code\u003e\u003c/pre\u003e\n\u003cstrong\u003eAfter:\u003c/strong\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eclass ProcessingStatusUnionTitle(BaseModel):\n    __root__: (\n        ProcessingStatusDetail | ExtendedProcessingTask | ProcessingStatusTitle\n    ) = Field(..., title='Processing Status Union Title')\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/blob/main/CHANGELOG.md\"\u003edatamodel-code-generator's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.52.2\"\u003e0.52.2\u003c/a\u003e - 2026-01-05\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for multiple base classes in base_class_map and customBasePath by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2916\"\u003ekoxudaxi/datamodel-code-generator#2916\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003cstrong\u003ehash\u003c/strong\u003e to Pydantic v2 models used in sets by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2918\"\u003ekoxudaxi/datamodel-code-generator#2918\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Handle class name prefix correctly in GraphQL parser by \u003ca href=\"https://github.com/siminn-arnorgj\"\u003e\u003ccode\u003e@​siminn-arnorgj\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2926\"\u003ekoxudaxi/datamodel-code-generator#2926\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd TypedDict closed and extra_items support (PEP 728) by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2922\"\u003ekoxudaxi/datamodel-code-generator#2922\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix release-draft workflow to use pull_request_target and increase max_turns to 50 by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2930\"\u003ekoxudaxi/datamodel-code-generator#2930\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate from pyright to ty type checker by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2928\"\u003ekoxudaxi/datamodel-code-generator#2928\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix URL port handling in get_url_path_parts by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2933\"\u003ekoxudaxi/datamodel-code-generator#2933\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.52.1...0.52.2\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.52.1...0.52.2\u003c/a\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.52.1\"\u003e0.52.1\u003c/a\u003e - 2026-01-03\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd --validators option for Pydantic v2 field validators by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2906\"\u003ekoxudaxi/datamodel-code-generator#2906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd dynamic model generation support by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2901\"\u003ekoxudaxi/datamodel-code-generator#2901\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSync zensical.toml nav with docs directory by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2908\"\u003ekoxudaxi/datamodel-code-generator#2908\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd deprecation warning for default output-model-type by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2910\"\u003ekoxudaxi/datamodel-code-generator#2910\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd deprecation warning and explicit --output-model-type to docs by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2911\"\u003ekoxudaxi/datamodel-code-generator#2911\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd llms.txt generator for LLM-friendly documentation by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2912\"\u003ekoxudaxi/datamodel-code-generator#2912\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove coverage fail_under check to combined coverage environment by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2909\"\u003ekoxudaxi/datamodel-code-generator#2909\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix YAML scientific notation parsing as float by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2913\"\u003ekoxudaxi/datamodel-code-generator#2913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd deprecated field support for Pydantic v2 by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2915\"\u003ekoxudaxi/datamodel-code-generator#2915\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd deprecation warning for Pydantic v2 without --use-annotated by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2914\"\u003ekoxudaxi/datamodel-code-generator#2914\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.52.0...0.52.1\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.52.0...0.52.1\u003c/a\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.52.0\"\u003e0.52.0\u003c/a\u003e - 2026-01-02\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUnion fields with titles now wrapped in named models when \u003ccode\u003e--use-title-as-name\u003c/code\u003e is enabled - Previously, union-typed fields with a \u003ccode\u003etitle\u003c/code\u003e were generated as inline union types (e.g., \u003ccode\u003eTypeA | TypeB | TypeC | None\u003c/code\u003e). Now they generate a separate wrapper model using the title name, and the field references this wrapper type (e.g., \u003ccode\u003eProcessingStatusUnionTitle | None\u003c/code\u003e). This affects code that directly accesses union field values, as they now need to access the \u003ccode\u003e.root\u003c/code\u003e attribute (Pydantic v2) or \u003ccode\u003e.__root__\u003c/code\u003e (Pydantic v1) of the wrapper model. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2889\"\u003e#2889\u003c/a\u003e)\n\u003cstrong\u003eBefore:\u003c/strong\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eclass ProcessingTaskTitle(BaseModel):\n    processing_status_union: (\n        ProcessingStatusDetail | ExtendedProcessingTask | ProcessingStatusTitle | None\n    ) = Field('COMPLETED', title='Processing Status Union Title')\n\u003c/code\u003e\u003c/pre\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/koxudaxi/datamodel-code-generator/commit/794e02bdd8ed89fc2030d4b323df8480edae0335\"\u003e\u003ccode\u003e794e02b\u003c/code\u003e\u003c/a\u003e Fix URL port handling in get_url_path_parts (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2933\"\u003e#2933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/61c08d6fa777f1560e0c55151ae1c42037c469cb\"\u003e\u003ccode\u003e61c08d6\u003c/code\u003e\u003c/a\u003e Migrate from pyright to ty type checker (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2928\"\u003e#2928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/ee08fff3867457b6a09c0ca4fbfbd23ee128617e\"\u003e\u003ccode\u003eee08fff\u003c/code\u003e\u003c/a\u003e Fix release-draft workflow to use pull_request_target and increase max_turns ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/5acb17838e7fb8047f36a1bebcdfb2f432dd3b16\"\u003e\u003ccode\u003e5acb178\u003c/code\u003e\u003c/a\u003e Add TypedDict closed and extra_items support (PEP 728) (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2922\"\u003e#2922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/54c3ed9fcc073f79b5ffd2366cdc7f97f99ae4d2\"\u003e\u003ccode\u003e54c3ed9\u003c/code\u003e\u003c/a\u003e fix: Handle class name prefix correctly in GraphQL parser (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2926\"\u003e#2926\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/58e73ed8740d589623647008bb1fe230bac1aeda\"\u003e\u003ccode\u003e58e73ed\u003c/code\u003e\u003c/a\u003e Add \u003cstrong\u003ehash\u003c/strong\u003e to Pydantic v2 models used in sets (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2918\"\u003e#2918\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/960f7f932b253e3f78771ff907409a1cb21d73d6\"\u003e\u003ccode\u003e960f7f9\u003c/code\u003e\u003c/a\u003e Add support for multiple base classes in base_class_map and customBasePath (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/1b931d5f81e81f3f93582d8aac70e75ab1708a5d\"\u003e\u003ccode\u003e1b931d5\u003c/code\u003e\u003c/a\u003e docs: update CHANGELOG.md for 0.52.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/361fb5aa6a63ae570132daee0c587e633f62da6b\"\u003e\u003ccode\u003e361fb5a\u003c/code\u003e\u003c/a\u003e Add deprecation warning for Pydantic v2 without --use-annotated (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2914\"\u003e#2914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/69c51fdbbb60dc4c16d2a38914ab31145d2b2b7e\"\u003e\u003ccode\u003e69c51fd\u003c/code\u003e\u003c/a\u003e Add deprecated field support for Pydantic v2 (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2915\"\u003e#2915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.28.5...0.52.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy` from 2.0.40 to 2.0.45\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/releases\"\u003esqlalchemy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.0.45\u003c/h1\u003e\n\u003cp\u003eReleased: December 9, 2025\u003c/p\u003e\n\u003ch2\u003eorm\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where calling \u003ccode\u003eMapper.add_property()\u003c/code\u003e within mapper event\nhooks such as \u003ccode\u003eMapperEvents.instrument_class()\u003c/code\u003e,\n\u003ccode\u003eMapperEvents.after_mapper_constructed()\u003c/code\u003e, or\n\u003ccode\u003eMapperEvents.before_mapper_configured()\u003c/code\u003e would raise an\n\u003ccode\u003eAttributeError\u003c/code\u003e because the mapper's internal property collections were\nnot yet initialized. The \u003ccode\u003eMapper.add_property()\u003c/code\u003e method now handles\nearly-stage property additions correctly, allowing properties including\ncolumn properties, deferred columns, and relationships to be added during\nmapper initialization events.  Pull request courtesy G Allajmi.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12858\"\u003e#12858\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue in Python 3.14 where dataclass transformation would fail when\na mapped class using \u003ccode\u003eMappedAsDataclass\u003c/code\u003e included a\n\u003ccode\u003erelationship()\u003c/code\u003e referencing a class that was not available at\nruntime (e.g., within a \u003ccode\u003eTYPE_CHECKING\u003c/code\u003e block). This occurred when using\nPython 3.14's \u003ca href=\"https://peps.python.org/pep-0649\"\u003ePEP 649\u003c/a\u003e deferred annotations feature, which is the\ndefault behavior without a \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e\ndirective.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12952\"\u003e#12952\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eexamples\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e[examples] [bug]\u003c/strong\u003e Fixed the \u0026quot;short_selects\u0026quot; performance example where the cache was being\nused in all the examples, making it impossible to compare performance with\nand without the cache.   Less important comparisons like \u0026quot;lambdas\u0026quot; and\n\u0026quot;baked queries\u0026quot; have been removed.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003esql\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[sql] [bug]\u003c/strong\u003e Some improvements to the \u003ccode\u003e_sql.ClauseElement.params()\u003c/code\u003e method to\nreplace bound parameters in a query were made, however the ultimate issue\nin \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12915\"\u003e#12915\u003c/a\u003e involving ORM \u003ccode\u003e_orm.aliased()\u003c/code\u003e cannot be fixed fully\nuntil 2.1, where the method is being rewritten to work without relying on\nCore cloned traversal.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12915\"\u003e#12915\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[sql] [bug]\u003c/strong\u003e Fixed issue where using the \u003ccode\u003eColumnOperators.in_()\u003c/code\u003e operator with a\nnested \u003ccode\u003eCompoundSelect\u003c/code\u003e statement (e.g. an \u003ccode\u003eINTERSECT\u003c/code\u003e of\n\u003ccode\u003eUNION\u003c/code\u003e queries) would raise a \u003ccode\u003eNotImplementedError\u003c/code\u003e when the\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\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `alembic` from 1.15.2 to 1.18.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/alembic/releases\"\u003ealembic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.18.0\u003c/h1\u003e\n\u003cp\u003eReleased: January 9, 2026\u003c/p\u003e\n\u003ch2\u003efeature\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[feature] [operations]\u003c/strong\u003e When alembic is run in \u0026quot;verbose\u0026quot; mode, alembic now logs a message to\nindicate from which file is used to load the configuration.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1737\"\u003e#1737\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[feature] [autogenerate]\u003c/strong\u003e Autogenerate reflection sweeps now use the \u0026quot;bulk\u0026quot; inspector methods\nintroduced in SQLAlchemy 2.0, which for selected dialects including\nPostgreSQL and Oracle use batched queries to reflect whole collections of\ntables using O(1) queries rather than O(N).\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1771\"\u003e#1771\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[feature] [autogenerate]\u003c/strong\u003e Release 1.18.0 introduces a plugin system that allows for automatic\nloading of third-party extensions as well as configurable autogenerate\ncompare functionality on a per-environment basis.\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003ePlugin\u003c/code\u003e class provides a common interface for extensions that\nregister handlers among Alembic's existing extension points such as\n\u003ccode\u003eOperations.register_operation()\u003c/code\u003e and\n\u003ccode\u003eOperations.implementation_for()\u003c/code\u003e. A new interface for registering\nautogenerate comparison handlers,\n\u003ccode\u003ePlugin.add_autogenerate_comparator()\u003c/code\u003e, provides for autogenerate\ncompare functionality that may be custom-configured on a per-environment\nbasis using the new\n\u003ccode\u003eEnvironmentContext.configure.autogenerate_plugins\u003c/code\u003e parameter.\u003c/p\u003e\n\u003cp\u003eThe change does not impact well known Alembic add-ons such as\n\u003ccode\u003ealembic-utils\u003c/code\u003e, which continue to work as before; however, such add-ons\nhave the option to provide plugin entrypoints going forward.\u003c/p\u003e\n\u003cp\u003eAs part of this change, Alembic's autogenerate compare functionality is\nreorganized into a series of internal plugins under the\n\u003ccode\u003ealembic.autogenerate\u003c/code\u003e namespace, which may be individually or\ncollectively identified for inclusion and/or exclusion within the\n\u003ccode\u003eEnvironmentContext.configure()\u003c/code\u003e call using a new parameter\n\u003ccode\u003eEnvironmentContext.configure.autogenerate_plugins\u003c/code\u003e. This\nparameter is also where third party comparison plugins may also be\nindicated.\u003c/p\u003e\n\u003cp\u003eSee \u003ccode\u003ealembic.plugins.toplevel\u003c/code\u003e for complete documentation on\nthe new \u003ccode\u003ePlugin\u003c/code\u003e class as well as autogenerate-specific usage\ninstructions.\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\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/alembic/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `asyncpg` from 0.30.0 to 0.31.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/MagicStack/asyncpg/releases\"\u003easyncpg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.31.0\u003c/h2\u003e\n\u003cp\u003eEnable Python 3.14 with experimental subinterpreter/freethreading\nsupport.\u003c/p\u003e\n\u003ch1\u003eImprovements\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd Python 3.14 support, experimental subinterpreter/freethreading support (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1279\"\u003e#1279\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 9e42642b)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid performing type introspection on known types (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1243\"\u003e#1243\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 5c9986c4)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eprepare()\u003c/code\u003e not use named statements by default when cache is disabled (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1245\"\u003e#1245\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 5b14653e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement connection service file functionality (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1223\"\u003e#1223\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/AndrewJackson2020\"\u003e\u003ccode\u003e@​AndrewJackson2020\u003c/code\u003e\u003c/a\u003e in 1d63bb15)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eFixes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix multi port connection string issue (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1222\"\u003e#1222\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/AndrewJackson2020\"\u003e\u003ccode\u003e@​AndrewJackson2020\u003c/code\u003e\u003c/a\u003e in 01c0db7b)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid leaking connections if _can_use_connection fails (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1269\"\u003e#1269\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/yuliy-openai\"\u003e\u003ccode\u003e@​yuliy-openai\u003c/code\u003e\u003c/a\u003e in e94302d2)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eOther\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for EOL Python 3.8 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1281\"\u003e#1281\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 6c2c4904)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/71775a67277fc0aa5bd2b9f15e848826d7078c4d\"\u003e\u003ccode\u003e71775a6\u003c/code\u003e\u003c/a\u003e asyncpg v0.31.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/508cae6441968ef7613a623fece7083cce66c2b3\"\u003e\u003ccode\u003e508cae6\u003c/code\u003e\u003c/a\u003e Test on PostgreSQL 18 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1290\"\u003e#1290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/e534e5f15c73525a6509143b3828335517360f1b\"\u003e\u003ccode\u003ee534e5f\u003c/code\u003e\u003c/a\u003e Bump cibuildwheel\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/07fe5122a680f5768e39fc28d68c94b185037a52\"\u003e\u003ccode\u003e07fe512\u003c/code\u003e\u003c/a\u003e Bump pgproto\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/648b35f18199ebf2a30009376a6e9060cf7ad789\"\u003e\u003ccode\u003e648b35f\u003c/code\u003e\u003c/a\u003e Bump Cython to 3.2.1 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1288\"\u003e#1288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/9e42642b9110d206706697921b6e697a0972649d\"\u003e\u003ccode\u003e9e42642\u003c/code\u003e\u003c/a\u003e Add Python 3.14 support, experimental subinterpreter/freethreading support (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/6fe1c494ef5c3069fa9149c48bf9f8f2cd69f95e\"\u003e\u003ccode\u003e6fe1c49\u003c/code\u003e\u003c/a\u003e Move development deps away from extras and into dependency groups (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1280\"\u003e#1280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/7a548166c2b23561915c481bd332013e3a415cfb\"\u003e\u003ccode\u003e7a54816\u003c/code\u003e\u003c/a\u003e Fix a couple of missed Python version guards\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/6c2c4904e61b2cd2f502540730a24e246cff2ebd\"\u003e\u003ccode\u003e6c2c490\u003c/code\u003e\u003c/a\u003e Drop support for EOL Python 3.8 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1281\"\u003e#1281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/4c60ae890d1f3800f889679657357f91a6923568\"\u003e\u003ccode\u003e4c60ae8\u003c/code\u003e\u003c/a\u003e Bump version to 0.31.0.dev0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/MagicStack/asyncpg/compare/v0.30.0...v0.31.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `kubernetes` from 31.0.0 to 33.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kubernetes-client/python/releases\"\u003ekubernetes's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKubernetes Python Client v33.1.0 Stable Release\u003c/h2\u003e\n\u003cp\u003eGetting started:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install --pre --upgrade kubernetes\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from source, download attached zip file, then\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eunzip client-python-v33.1.0.zip\ncd client-python-v33.1.0\npython setup.py install\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThen follow examples in \u003ca href=\"https://github.com/kubernetes-client/python/tree/release-33.0/examples\"\u003ehttps://github.com/kubernetes-client/python/tree/release-33.0/examples\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eChangelog: \u003ca href=\"https://github.com/kubernetes-client/python/blob/release-33.0/CHANGELOG.md\"\u003ehttps://github.com/kubernetes-client/python/blob/release-33.0/CHANGELOG.md\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eKubernetes Python Client v33.1.0 Beta 1 Release\u003c/h2\u003e\n\u003cp\u003eGetting started:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install --pre --upgrade kubernetes\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from source, download attached zip file, then\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eunzip client-python-v33.1.0b1.zip\ncd client-python-v33.1.0b1\npython setup.py install\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThen follow examples in \u003ca href=\"https://github.com/kubernetes-client/python/tree/release-33.0/examples\"\u003ehttps://github.com/kubernetes-client/python/tree/release-33.0/examples\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eChangelog: \u003ca href=\"https://github.com/kubernetes-client/python/blob/release-33.0/CHANGELOG.md\"\u003ehttps://github.com/kubernetes-client/python/blob/release-33.0/CHANGELOG.md\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eKubernetes Python Client v33.1.0 Alpha 1 Release\u003c/h2\u003e\n\u003cp\u003eGetting started:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install --pre --upgrade kubernetes\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from source, download attached zip file, then\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eunzip client-python-v33.1.0a1.zip\ncd client-python-v33.1.0a1\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt; \n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kubernetes-client/python/blob/v33.1.0/CHANGELOG.md\"\u003ekubernetes's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev33.1.0\u003c/h1\u003e\n\u003cp\u003eKubernetes API Version: v1.33.1\u003c/p\u003e\n\u003ch1\u003ev33.1.0b1\u003c/h1\u003e\n\u003cp\u003eKubernetes API Version: v1.33.1\u003c/p\u003e\n\u003ch1\u003ev33.1.0a1\u003c/h1\u003e\n\u003cp\u003eKubernetes API Version: v1.33.1\u003c/p\u003e\n\u003ch3\u003eAPI Change\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eA new alpha feature gate, \u003ccode\u003eMutableCSINodeAllocatableCount\u003c/code\u003e, has been introduced.\u003c/p\u003e\n\u003cp\u003eWhen this feature gate is enabled, the \u003ccode\u003eCSINode.Spec.Drivers[*].Allocatable.Count\u003c/code\u003e field becomes mutable, and a new field, \u003ccode\u003eNodeAllocatableUpdatePeriodSeconds\u003c/code\u003e, is available in the \u003ccode\u003eCSIDriver\u003c/code\u003e object. This allows periodic updates to a node's reported allocatable volume capacity, preventing stateful pods from becoming stuck due to outdated information that kube-scheduler relies on. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130007\"\u003ekubernetes/kubernetes#130007\u003c/a\u003e, \u003ca href=\"https://github.com/torredil\"\u003e\u003ccode\u003e@​torredil\u003c/code\u003e\u003c/a\u003e) [SIG Apps, Node, Scheduling and Storage]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded feature gate \u003ccode\u003eDRAPartitionableDevices\u003c/code\u003e, when enabled, Dynamic Resource Allocation support partitionable devices allocation. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130764\"\u003ekubernetes/kubernetes#130764\u003c/a\u003e, \u003ca href=\"https://github.com/cici37\"\u003e\u003ccode\u003e@​cici37\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Scheduling, Storage and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded DRA support for a \u0026quot;one-of\u0026quot; prioritized list of selection criteria to satisfy a device request in a resource claim. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/128586\"\u003ekubernetes/kubernetes#128586\u003c/a\u003e, \u003ca href=\"https://github.com/mortent\"\u003e\u003ccode\u003e@​mortent\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Etcd, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a \u003ccode\u003e/flagz\u003c/code\u003e endpoint for kubelet endpoint (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/128857\"\u003ekubernetes/kubernetes#128857\u003c/a\u003e, \u003ca href=\"https://github.com/zhifei92\"\u003e\u003ccode\u003e@​zhifei92\u003c/code\u003e\u003c/a\u003e) [SIG Architecture, Instrumentation and Node]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a new \u003ccode\u003etolerance\u003c/code\u003e field to HorizontalPodAutoscaler, overriding the cluster-wide default. Enabled via the HPAConfigurableTolerance alpha feature gate. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130797\"\u003ekubernetes/kubernetes#130797\u003c/a\u003e, \u003ca href=\"https://github.com/jm-franc\"\u003e\u003ccode\u003e@​jm-franc\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Autoscaling, Etcd, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for configuring custom stop signals with a new StopSignal container lifecycle (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130556\"\u003ekubernetes/kubernetes#130556\u003c/a\u003e, \u003ca href=\"https://github.com/sreeram-venkitesh\"\u003e\u003ccode\u003e@​sreeram-venkitesh\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for in-place vertical scaling of Pods with sidecars (containers defined within \u003ccode\u003einitContainers\u003c/code\u003e where the \u003ccode\u003erestartPolicy\u003c/code\u003e is set to \u003ccode\u003eAlways\u003c/code\u003e). (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/128367\"\u003ekubernetes/kubernetes#128367\u003c/a\u003e, \u003ca href=\"https://github.com/vivzbansal\"\u003e\u003ccode\u003e@​vivzbansal\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, CLI, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCPUManager Policy Options support is GA (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130535\"\u003ekubernetes/kubernetes#130535\u003c/a\u003e, \u003ca href=\"https://github.com/ffromani\"\u003e\u003ccode\u003e@​ffromani\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChanged the Pod API to support \u003ccode\u003ehugepage resources\u003c/code\u003e at \u003ccode\u003espec\u003c/code\u003e level for pod-level resources. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130577\"\u003ekubernetes/kubernetes#130577\u003c/a\u003e, \u003ca href=\"https://github.com/KevinTMtz\"\u003e\u003ccode\u003e@​KevinTMtz\u003c/code\u003e\u003c/a\u003e) [SIG Apps, CLI, Node, Scheduling, Storage and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA API: The maximum number of pods that can use the same ResourceClaim is now 256 instead of 32. Downgrading a cluster where this relaxed limit is in use to Kubernetes 1.32.0 is not supported, as version 1.32.0 would refuse to update ResourceClaims with more than 32 entries in the \u003ccode\u003estatus.reservedFor\u003c/code\u003e field. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/129543\"\u003ekubernetes/kubernetes#129543\u003c/a\u003e, \u003ca href=\"https://github.com/pohly\"\u003e\u003ccode\u003e@​pohly\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA: CEL expressions using attribute strings exceeded the cost limit because their cost estimation was incomple...\n\n_Description has been truncated_","html_url":"https://github.com/SwissDataScienceCenter/renku-data-services/pull/1164","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/SwissDataScienceCenter%2Frenku-data-services/issues/1164","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1164/packages"},{"uuid":"3681223713","node_id":"PR_kwDODoBT_M62W842","number":114,"state":"open","title":"build(deps): bump syrupy from 4.7.2 to 5.0.0","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":6,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-12-01T14:17:33.000Z","updated_at":"2025-12-01T14:19:19.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps)","packages":[{"name":"syrupy","old_version":"4.7.2","new_version":"5.0.0","repository_url":"https://github.com/syrupy-project/syrupy"}],"path":null,"ecosystem":"pip"},"body":"Bumps [syrupy](https://github.com/syrupy-project/syrupy) from 4.7.2 to 5.0.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/syrupy-project/syrupy/releases\"\u003esyrupy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.0.0\u003c/h2\u003e\n\u003ch2\u003eSyrupy 5.0.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e(2025-09-28)\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eThis release introduces new features, bug fixes, and a major license change. It also includes several \u003cstrong\u003ebreaking changes\u003c/strong\u003e, so please review those carefully before upgrading.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch3\u003eNew Features ✨\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eAdd \u003ccode\u003e--snapshot-dirname\u003c/code\u003e option:\u003c/strong\u003e A new option, \u003ccode\u003e--snapshot-dirname\u003c/code\u003e, is now available to change the default directory snapshots are stored in. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003e#810\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003esyrupy-project/syrupy#810\u003c/a\u003e))\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRemove private underscore prefix:\u003c/strong\u003e The unnecessary underscore prefixes have been removed from public methods for better code clarity. ([\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003e8cfc905\u003c/a\u003e](\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003ehttps://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\u003c/a\u003e))\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch3\u003eBug Fixes 🐛\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFix terminal summary for \u003ccode\u003exdist\u003c/code\u003e workers:\u003c/strong\u003e Resolves an issue where the terminal summary was not displayed correctly with \u003ccode\u003exdist\u003c/code\u003e workers. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/978\"\u003e#978\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/978\"\u003esyrupy-project/syrupy#978\u003c/a\u003e))\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eEnsure \u003ccode\u003epytest_assertrepr_compare\u003c/code\u003e hook is called first:\u003c/strong\u003e This change ensures that Syrupy's assertion hook takes precedence, improving compatibility with other plugins. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/984\"\u003e#984\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/984\"\u003esyrupy-project/syrupy#984\u003c/a\u003e))\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch3\u003eBreaking Changes ⚠️\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eLicense change:\u003c/strong\u003e The project has switched to the more permissive \u003cstrong\u003eMIT license\u003c/strong\u003e. This change applies to all versions from 5.0.0 and beyond. If you need to use the previous Apache 2.0 license, you must continue to use Syrupy versions 4.x or earlier. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/945\"\u003e#945\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/945\"\u003esyrupy-project/syrupy#945\u003c/a\u003e))\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003ePython and pytest version requirements:\u003c/strong\u003e Syrupy now requires \u003cstrong\u003ePython 3.10\u003c/strong\u003e or higher. Support for Python 3.8 has been dropped as it reached its end of life in October 2024. The minimum required version of \u003cstrong\u003epytest is v8\u003c/strong\u003e. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/904\"\u003e#904\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/904\"\u003esyrupy-project/syrupy#904\u003c/a\u003e), [\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003e#1024\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003esyrupy-project/syrupy#1024\u003c/a\u003e))\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eMethod and constant name changes:\u003c/strong\u003e Several methods and constants have been renamed for improved clarity and to align with public API standards.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ccode\u003eSnapshotCollectionStorage\u003c/code\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e_read_snapshot_collection\u003c/code\u003e -\u0026gt; \u003ccode\u003eread_snapshot_collection\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_read_snapshot_data_from_location\u003c/code\u003e -\u0026gt; \u003ccode\u003eread_snapshot_data_from_location\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_write_snapshot_collection\u003c/code\u003e -\u0026gt; \u003ccode\u003ewrite_snapshot_collection\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_get_file_basename\u003c/code\u003e -\u0026gt; \u003ccode\u003eget_file_basename\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_file_extension\u003c/code\u003e -\u0026gt; \u003ccode\u003efile_extension\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ccode\u003eAmberDataSerializer\u003c/code\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e_snapshot_sort_key\u003c/code\u003e -\u0026gt; \u003ccode\u003esnapshot_sort_key\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eConstants\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eSNAPSHOT_EMPTY_FOSSIL_KEY\u003c/code\u003e -\u0026gt; \u003ccode\u003eSNAPSHOT_EMPTY_COLLECTION_KEY\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSNAPSHOT_UNKNOWN_FOSSIL_KEY\u003c/code\u003e -\u0026gt; \u003ccode\u003eSNAPSHOT_UNKNOWN_COLLECTION_KEY\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSNAPSHOT_DIRNAME\u003c/code\u003e has been removed in favour of the property on the \u003ccode\u003eSnapshotCollectionStorage\u003c/code\u003e class and associated CLI option.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\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/paul-ollis\"\u003e\u003ccode\u003e@​paul-ollis\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/978\"\u003esyrupy-project/syrupy#978\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rahuliyer95\"\u003e\u003ccode\u003e@​rahuliyer95\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/984\"\u003esyrupy-project/syrupy#984\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\"\u003ehttps://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/syrupy-project/syrupy/blob/main/CHANGELOG.md\"\u003esyrupy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\"\u003e5.0.0\u003c/a\u003e (2025-09-28)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch to MIT license (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/945\"\u003e#945\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/d74d340f8884fdb04831fcf77f29d66e098aaa66\"\u003ed74d340\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlock terminal summary for xdist workers. (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/978\"\u003e#978\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/33a848df7c4a33577e4057eae5792f6592ad3172\"\u003e33a848d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eensure syrupy's pytest_assertrepr_compare hook is called first. (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/984\"\u003e#984\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/eb0024d339248b7e1f76fdb65ed30ba3e19c0857\"\u003eeb0024d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove incorrect private underscore prefix from public methods (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003e8cfc905\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd --snapshot-dirname option, close \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003e#810\u003c/a\u003e (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/27135c7c861441962c2cedde841f3e4fed2949fd\"\u003e27135c7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edrop support for py3.8, raise min. pytest to v8 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/904\"\u003e#904\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/a879ff15ad82e59a2f387db0822be072a5684f2f\"\u003ea879ff1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate min. python version to 3.10 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003e#1024\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/16b4113cd56da96e84a90ebda0919e9b8dd35954\"\u003e16b4113\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe following methods have been renamed:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSnapshotCollectionStorage\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e_read_snapshot_collection -\u0026gt; read_snapshot_collection\u003c/li\u003e\n\u003cli\u003e_read_snapshot_data_from_location -\u0026gt; read_snapshot_data_from_location\u003c/li\u003e\n\u003cli\u003e_write_snapshot_collection -\u0026gt; write_snapshot_collection\u003c/li\u003e\n\u003cli\u003e_get_file_basename -\u0026gt; get_file_basename\u003c/li\u003e\n\u003cli\u003e_file_extension -\u0026gt; file_extension\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eAmberDataSerializer\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e_snapshot_sort_key -\u0026gt; snapshot_sort_key\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRenamed constants to improve clarity:\u003c/p\u003e\n\u003cp\u003econstants\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSNAPSHOT_EMPTY_FOSSIL_KEY -\u0026gt; SNAPSHOT_EMPTY_COLLECTION_KEY\u003c/li\u003e\n\u003cli\u003eSNAPSHOT_UNKNOWN_FOSSIL_KEY -\u0026gt; SNAPSHOT_UNKNOWN_COLLECTION_KEY\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003eMin. python version is now 3.10.\u003c/li\u003e\n\u003cli\u003eThe Syrupy project is switching from Apache 2.0 to a more permissive MIT license. By using Syrupy \u0026gt;=5, you agree to abide by this new license. You can continue to use Syrupy v1 through v4 under Apache 2.0.\u003c/li\u003e\n\u003cli\u003eDrops support for Python 3.8 which is end of life as of October 2024. Raises the minimum version of pytest to v8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.9.0...v4.9.1\"\u003e4.9.1\u003c/a\u003e (2025-03-24)\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/syrupy-project/syrupy/commit/9b4cc82e50e29f84dcb55054c8eab281c90a280b\"\u003e\u003ccode\u003e9b4cc82\u003c/code\u003e\u003c/a\u003e chore(release): 5.0.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/af15385acd5bf617815aa0d19e2df907bbbd2d83\"\u003e\u003ccode\u003eaf15385\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1027\"\u003e#1027\u003c/a\u003e from syrupy-project/test_py_3_14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/461ad224d192a18296934e2434b9302fb0984007\"\u003e\u003ccode\u003e461ad22\u003c/code\u003e\u003c/a\u003e chore: test against py3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/95ffbcb085eb920920a7241c814a55c1e948f148\"\u003e\u003ccode\u003e95ffbcb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1026\"\u003e#1026\u003c/a\u003e from syrupy-project/rename_methods\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/27135c7c861441962c2cedde841f3e4fed2949fd\"\u003e\u003ccode\u003e27135c7\u003c/code\u003e\u003c/a\u003e feat: add --snapshot-dirname option, close \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003e#810\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003e\u003ccode\u003e8cfc905\u003c/code\u003e\u003c/a\u003e refactor: remove incorrect private underscore prefix from public methods\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/e1dbf5dc2a1148480aa9601a5e1c21928954b8cc\"\u003e\u003ccode\u003ee1dbf5d\u003c/code\u003e\u003c/a\u003e chore(deps): update python docker tag to v3.13.7 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1025\"\u003e#1025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/16b4113cd56da96e84a90ebda0919e9b8dd35954\"\u003e\u003ccode\u003e16b4113\u003c/code\u003e\u003c/a\u003e feat: update min. python version to 3.10 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003e#1024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/434c63fdabbaaf2372ec94c8968fe025c4a306e6\"\u003e\u003ccode\u003e434c63f\u003c/code\u003e\u003c/a\u003e chore(deps): update codecov/codecov-action action to v5.5.1 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1021\"\u003e#1021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/b2e49bad7741f06c17a0be9f4608c0db5db13cf5\"\u003e\u003ccode\u003eb2e49ba\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency pytest to v8.4.2 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1022\"\u003e#1022\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.7.2...v5.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=syrupy\u0026package-manager=uv\u0026previous-version=4.7.2\u0026new-version=5.0.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/spraakbanken/json-arrays-py/pull/114","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/spraakbanken%2Fjson-arrays-py/issues/114","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/114/packages"},{"uuid":"3600243545","node_id":"PR_kwDOLGfNoc6yIYKd","number":61,"state":"closed","title":"build(deps): bump syrupy from 4.7.2 to 5.0.0","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-11-21T10:14:41.000Z","author_association":null,"state_reason":null,"created_at":"2025-11-07T13:00:26.000Z","updated_at":"2025-11-21T10:14:43.000Z","time_to_close":1199655,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps)","packages":[{"name":"syrupy","old_version":"4.7.2","new_version":"5.0.0","repository_url":"https://github.com/syrupy-project/syrupy"}],"path":null,"ecosystem":"pip"},"body":"Bumps [syrupy](https://github.com/syrupy-project/syrupy) from 4.7.2 to 5.0.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/syrupy-project/syrupy/releases\"\u003esyrupy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.0.0\u003c/h2\u003e\n\u003ch2\u003eSyrupy 5.0.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e(2025-09-28)\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eThis release introduces new features, bug fixes, and a major license change. It also includes several \u003cstrong\u003ebreaking changes\u003c/strong\u003e, so please review those carefully before upgrading.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch3\u003eNew Features ✨\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eAdd \u003ccode\u003e--snapshot-dirname\u003c/code\u003e option:\u003c/strong\u003e A new option, \u003ccode\u003e--snapshot-dirname\u003c/code\u003e, is now available to change the default directory snapshots are stored in. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003e#810\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003esyrupy-project/syrupy#810\u003c/a\u003e))\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRemove private underscore prefix:\u003c/strong\u003e The unnecessary underscore prefixes have been removed from public methods for better code clarity. ([\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003e8cfc905\u003c/a\u003e](\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003ehttps://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\u003c/a\u003e))\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch3\u003eBug Fixes 🐛\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFix terminal summary for \u003ccode\u003exdist\u003c/code\u003e workers:\u003c/strong\u003e Resolves an issue where the terminal summary was not displayed correctly with \u003ccode\u003exdist\u003c/code\u003e workers. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/978\"\u003e#978\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/978\"\u003esyrupy-project/syrupy#978\u003c/a\u003e))\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eEnsure \u003ccode\u003epytest_assertrepr_compare\u003c/code\u003e hook is called first:\u003c/strong\u003e This change ensures that Syrupy's assertion hook takes precedence, improving compatibility with other plugins. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/984\"\u003e#984\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/984\"\u003esyrupy-project/syrupy#984\u003c/a\u003e))\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch3\u003eBreaking Changes ⚠️\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eLicense change:\u003c/strong\u003e The project has switched to the more permissive \u003cstrong\u003eMIT license\u003c/strong\u003e. This change applies to all versions from 5.0.0 and beyond. If you need to use the previous Apache 2.0 license, you must continue to use Syrupy versions 4.x or earlier. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/945\"\u003e#945\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/945\"\u003esyrupy-project/syrupy#945\u003c/a\u003e))\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003ePython and pytest version requirements:\u003c/strong\u003e Syrupy now requires \u003cstrong\u003ePython 3.10\u003c/strong\u003e or higher. Support for Python 3.8 has been dropped as it reached its end of life in October 2024. The minimum required version of \u003cstrong\u003epytest is v8\u003c/strong\u003e. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/904\"\u003e#904\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/904\"\u003esyrupy-project/syrupy#904\u003c/a\u003e), [\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003e#1024\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003esyrupy-project/syrupy#1024\u003c/a\u003e))\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eMethod and constant name changes:\u003c/strong\u003e Several methods and constants have been renamed for improved clarity and to align with public API standards.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ccode\u003eSnapshotCollectionStorage\u003c/code\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e_read_snapshot_collection\u003c/code\u003e -\u0026gt; \u003ccode\u003eread_snapshot_collection\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_read_snapshot_data_from_location\u003c/code\u003e -\u0026gt; \u003ccode\u003eread_snapshot_data_from_location\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_write_snapshot_collection\u003c/code\u003e -\u0026gt; \u003ccode\u003ewrite_snapshot_collection\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_get_file_basename\u003c/code\u003e -\u0026gt; \u003ccode\u003eget_file_basename\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_file_extension\u003c/code\u003e -\u0026gt; \u003ccode\u003efile_extension\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ccode\u003eAmberDataSerializer\u003c/code\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e_snapshot_sort_key\u003c/code\u003e -\u0026gt; \u003ccode\u003esnapshot_sort_key\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eConstants\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eSNAPSHOT_EMPTY_FOSSIL_KEY\u003c/code\u003e -\u0026gt; \u003ccode\u003eSNAPSHOT_EMPTY_COLLECTION_KEY\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSNAPSHOT_UNKNOWN_FOSSIL_KEY\u003c/code\u003e -\u0026gt; \u003ccode\u003eSNAPSHOT_UNKNOWN_COLLECTION_KEY\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSNAPSHOT_DIRNAME\u003c/code\u003e has been removed in favour of the property on the \u003ccode\u003eSnapshotCollectionStorage\u003c/code\u003e class and associated CLI option.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\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/paul-ollis\"\u003e\u003ccode\u003e@​paul-ollis\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/978\"\u003esyrupy-project/syrupy#978\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rahuliyer95\"\u003e\u003ccode\u003e@​rahuliyer95\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/984\"\u003esyrupy-project/syrupy#984\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\"\u003ehttps://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/syrupy-project/syrupy/blob/main/CHANGELOG.md\"\u003esyrupy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\"\u003e5.0.0\u003c/a\u003e (2025-09-28)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch to MIT license (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/945\"\u003e#945\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/d74d340f8884fdb04831fcf77f29d66e098aaa66\"\u003ed74d340\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlock terminal summary for xdist workers. (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/978\"\u003e#978\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/33a848df7c4a33577e4057eae5792f6592ad3172\"\u003e33a848d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eensure syrupy's pytest_assertrepr_compare hook is called first. (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/984\"\u003e#984\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/eb0024d339248b7e1f76fdb65ed30ba3e19c0857\"\u003eeb0024d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove incorrect private underscore prefix from public methods (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003e8cfc905\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd --snapshot-dirname option, close \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003e#810\u003c/a\u003e (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/27135c7c861441962c2cedde841f3e4fed2949fd\"\u003e27135c7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edrop support for py3.8, raise min. pytest to v8 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/904\"\u003e#904\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/a879ff15ad82e59a2f387db0822be072a5684f2f\"\u003ea879ff1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate min. python version to 3.10 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003e#1024\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/16b4113cd56da96e84a90ebda0919e9b8dd35954\"\u003e16b4113\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe following methods have been renamed:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSnapshotCollectionStorage\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e_read_snapshot_collection -\u0026gt; read_snapshot_collection\u003c/li\u003e\n\u003cli\u003e_read_snapshot_data_from_location -\u0026gt; read_snapshot_data_from_location\u003c/li\u003e\n\u003cli\u003e_write_snapshot_collection -\u0026gt; write_snapshot_collection\u003c/li\u003e\n\u003cli\u003e_get_file_basename -\u0026gt; get_file_basename\u003c/li\u003e\n\u003cli\u003e_file_extension -\u0026gt; file_extension\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eAmberDataSerializer\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e_snapshot_sort_key -\u0026gt; snapshot_sort_key\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRenamed constants to improve clarity:\u003c/p\u003e\n\u003cp\u003econstants\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSNAPSHOT_EMPTY_FOSSIL_KEY -\u0026gt; SNAPSHOT_EMPTY_COLLECTION_KEY\u003c/li\u003e\n\u003cli\u003eSNAPSHOT_UNKNOWN_FOSSIL_KEY -\u0026gt; SNAPSHOT_UNKNOWN_COLLECTION_KEY\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003eMin. python version is now 3.10.\u003c/li\u003e\n\u003cli\u003eThe Syrupy project is switching from Apache 2.0 to a more permissive MIT license. By using Syrupy \u0026gt;=5, you agree to abide by this new license. You can continue to use Syrupy v1 through v4 under Apache 2.0.\u003c/li\u003e\n\u003cli\u003eDrops support for Python 3.8 which is end of life as of October 2024. Raises the minimum version of pytest to v8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.9.0...v4.9.1\"\u003e4.9.1\u003c/a\u003e (2025-03-24)\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/syrupy-project/syrupy/commit/9b4cc82e50e29f84dcb55054c8eab281c90a280b\"\u003e\u003ccode\u003e9b4cc82\u003c/code\u003e\u003c/a\u003e chore(release): 5.0.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/af15385acd5bf617815aa0d19e2df907bbbd2d83\"\u003e\u003ccode\u003eaf15385\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1027\"\u003e#1027\u003c/a\u003e from syrupy-project/test_py_3_14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/461ad224d192a18296934e2434b9302fb0984007\"\u003e\u003ccode\u003e461ad22\u003c/code\u003e\u003c/a\u003e chore: test against py3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/95ffbcb085eb920920a7241c814a55c1e948f148\"\u003e\u003ccode\u003e95ffbcb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1026\"\u003e#1026\u003c/a\u003e from syrupy-project/rename_methods\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/27135c7c861441962c2cedde841f3e4fed2949fd\"\u003e\u003ccode\u003e27135c7\u003c/code\u003e\u003c/a\u003e feat: add --snapshot-dirname option, close \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003e#810\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003e\u003ccode\u003e8cfc905\u003c/code\u003e\u003c/a\u003e refactor: remove incorrect private underscore prefix from public methods\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/e1dbf5dc2a1148480aa9601a5e1c21928954b8cc\"\u003e\u003ccode\u003ee1dbf5d\u003c/code\u003e\u003c/a\u003e chore(deps): update python docker tag to v3.13.7 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1025\"\u003e#1025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/16b4113cd56da96e84a90ebda0919e9b8dd35954\"\u003e\u003ccode\u003e16b4113\u003c/code\u003e\u003c/a\u003e feat: update min. python version to 3.10 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003e#1024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/434c63fdabbaaf2372ec94c8968fe025c4a306e6\"\u003e\u003ccode\u003e434c63f\u003c/code\u003e\u003c/a\u003e chore(deps): update codecov/codecov-action action to v5.5.1 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1021\"\u003e#1021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/b2e49bad7741f06c17a0be9f4608c0db5db13cf5\"\u003e\u003ccode\u003eb2e49ba\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency pytest to v8.4.2 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1022\"\u003e#1022\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.7.2...v5.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=syrupy\u0026package-manager=uv\u0026previous-version=4.7.2\u0026new-version=5.0.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/spraakbanken/sparv-sbx-ocr-correction-viklofg-sweocr/pull/61","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/spraakbanken%2Fsparv-sbx-ocr-correction-viklofg-sweocr/issues/61","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/61/packages"},{"uuid":"3578449189","node_id":"PR_kwDOAU-ALs6xAkBS","number":1308,"state":"closed","title":"Bump the all-deps group in /requirements with 7 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-12-02T01:12:03.000Z","author_association":null,"state_reason":null,"created_at":"2025-11-01T21:01:44.000Z","updated_at":"2025-12-02T01:12:04.000Z","time_to_close":2607019,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"all-deps","update_count":7,"packages":[{"name":"django-filter","old_version":"25.1","new_version":"25.2","repository_url":"https://github.com/carltongibson/django-filter"},{"name":"sphinx","old_version":"8.1.3","new_version":"8.2.3","repository_url":"https://github.com/sphinx-doc/sphinx"},{"name":"flake8-bugbear","old_version":"24.12.12","new_version":"25.10.21","repository_url":"https://github.com/PyCQA/flake8-bugbear"},{"name":"flake8-isort","old_version":"6.1.2","new_version":"7.0.0","repository_url":"https://github.com/gforcada/flake8-isort"},{"name":"isort","old_version":"6.1.0","new_version":"7.0.0","repository_url":"https://github.com/PyCQA/isort"},{"name":"faker","old_version":"37.8.0","new_version":"37.12.0","repository_url":"https://github.com/joke2k/faker"},{"name":"syrupy","old_version":"4.9.1","new_version":"5.0.0","repository_url":"https://github.com/syrupy-project/syrupy"}],"path":"/requirements","ecosystem":"pip"},"body":"Bumps the all-deps group in /requirements with 7 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [django-filter](https://github.com/carltongibson/django-filter) | `25.1` | `25.2` |\n| [sphinx](https://github.com/sphinx-doc/sphinx) | `8.1.3` | `8.2.3` |\n| [flake8-bugbear](https://github.com/PyCQA/flake8-bugbear) | `24.12.12` | `25.10.21` |\n| [flake8-isort](https://github.com/gforcada/flake8-isort) | `6.1.2` | `7.0.0` |\n| [isort](https://github.com/PyCQA/isort) | `6.1.0` | `7.0.0` |\n| [faker](https://github.com/joke2k/faker) | `37.8.0` | `37.12.0` |\n| [syrupy](https://github.com/syrupy-project/syrupy) | `4.9.1` | `5.0.0` |\n\nUpdates `django-filter` from 25.1 to 25.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/carltongibson/django-filter/blob/main/CHANGES.rst\"\u003edjango-filter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 25.2 (2025-10-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded testing for Django 6.0.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped support for Django \u0026lt;5.2 LTS\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped support for Python 3.9.\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/carltongibson/django-filter/commit/17ec565554bea4119ad74d2ffccdfb9740d9845b\"\u003e\u003ccode\u003e17ec565\u003c/code\u003e\u003c/a\u003e Bumped version for 25.2 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/9b4b8fdbfe84d471b2e69b7b28faacdd0dca2661\"\u003e\u003ccode\u003e9b4b8fd\u003c/code\u003e\u003c/a\u003e Updated testing for Django 6.0. (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1730\"\u003e#1730\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/1b07b3e4c22354af31f3dcbaf4337566d7803fd4\"\u003e\u003ccode\u003e1b07b3e\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 in the github-actions group (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1726\"\u003e#1726\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/27a116864880a503b869c87a61e3e3ee597dae42\"\u003e\u003ccode\u003e27a1168\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1722\"\u003e#1722\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/7f59b6f092dadee749540a93c760f84fe5e08b9f\"\u003e\u003ccode\u003e7f59b6f\u003c/code\u003e\u003c/a\u003e Add drf as optional dependencies (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1724\"\u003e#1724\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/635343ec55c9928bfa297314711df77fa83ff6c7\"\u003e\u003ccode\u003e635343e\u003c/code\u003e\u003c/a\u003e Add reference anchors to filter types to facilitate intersphinx refs (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1706\"\u003e#1706\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/7b3176e2ea05a42f2684296733004579f6dcece5\"\u003e\u003ccode\u003e7b3176e\u003c/code\u003e\u003c/a\u003e Document steps for postgres full text search (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1704\"\u003e#1704\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/carltongibson/django-filter/compare/25.1...25.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx` from 8.1.3 to 8.2.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sphinx-doc/sphinx/releases\"\u003esphinx's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eSphinx 8.2.3\u003c/h2\u003e\n\u003cp\u003eChangelog: \u003ca href=\"https://www.sphinx-doc.org/en/master/changes/8.2.html\"\u003ehttps://www.sphinx-doc.org/en/master/changes/8.2.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eSphinx 8.2.2\u003c/h2\u003e\n\u003cp\u003eChangelog: \u003ca href=\"https://www.sphinx-doc.org/en/master/changes/8.2.html\"\u003ehttps://www.sphinx-doc.org/en/master/changes/8.2.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eSphinx 8.2.1\u003c/h2\u003e\n\u003cp\u003eChangelog: \u003ca href=\"https://www.sphinx-doc.org/en/master/changes/8.2.html\"\u003ehttps://www.sphinx-doc.org/en/master/changes/8.2.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eSphinx 8.2.0\u003c/h2\u003e\n\u003cp\u003eChangelog: \u003ca href=\"https://www.sphinx-doc.org/en/master/changes/8.2.html\"\u003ehttps://www.sphinx-doc.org/en/master/changes/8.2.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/13000\"\u003e#13000\u003c/a\u003e: Drop Python 3.10 support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eIncompatible changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/13044\"\u003e#13044\u003c/a\u003e: Remove the internal and undocumented \u003ccode\u003ehas_equations\u003c/code\u003e data\nfrom the \u003ccode\u003eMathDomain\u003c/code\u003e domain.\nThe undocumented \u003ccode\u003eMathDomain.has_equations\u003c/code\u003e method\nnow unconditionally returns \u003ccode\u003eTrue\u003c/code\u003e.\nThese are replaced by the \u003ccode\u003ehas_maths_elements\u003c/code\u003e key of the page context dict.\nPatch by Adam Turner.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/13227\"\u003e#13227\u003c/a\u003e: HTML output for sequences of keys in the \u003ccode\u003ekbd\u003c/code\u003e role\nno longer uses a \u003ccode\u003e\u0026lt;kbd class=\u0026quot;kbd compound\u0026quot;\u0026gt;\u003c/code\u003e element to wrap\nthe keys and separators, but places them directly in the relevant parent node.\nThis means that CSS rulesets targeting \u003ccode\u003ekbd.compound\u003c/code\u003e or \u003ccode\u003e.kbd.compound\u003c/code\u003e\nwill no longer have any effect.\nPatch by Adam Turner.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecated\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/13037\"\u003e#13037\u003c/a\u003e: Deprecate the \u003ccode\u003eSingleHTMLBuilder.fix_refuris\u003c/code\u003e method.\nPatch by James Addison.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/13083\"\u003e#13083\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/13330\"\u003e#13330\u003c/a\u003e: Un-deprecate \u003ccode\u003esphinx.util.import_object\u003c/code\u003e.\nPatch by Matthias Geier.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFeatures added\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/13173\"\u003e#13173\u003c/a\u003e: Add a new \u003ccode\u003eduplicate_declaration\u003c/code\u003e warning type,\nwith \u003ccode\u003eduplicate_declaration.c\u003c/code\u003e and \u003ccode\u003eduplicate_declaration.cpp\u003c/code\u003e subtypes.\nPatch by Julien Lecomte and Adam Turner.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/11824\"\u003e#11824\u003c/a\u003e: linkcode: Allow extensions to add support for a domain by defining\nthe keys that should be present.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/847ad0c991e21db9daa02fec09acbd456f353300\"\u003e\u003ccode\u003e847ad0c\u003c/code\u003e\u003c/a\u003e Bump to 8.2.3 final\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/4091fe335444236181f765adaf9e9bf0a2bcc735\"\u003e\u003ccode\u003e4091fe3\u003c/code\u003e\u003c/a\u003e Add CHANGES for Sphinx 8.2.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/c84c21ff935e840f67413e9397fc6a75cb87e529\"\u003e\u003ccode\u003ec84c21f\u003c/code\u003e\u003c/a\u003e Correct the date for Sphinx 8.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/b3881bb23471584d3999ecbb03cb20184da22738\"\u003e\u003ccode\u003eb3881bb\u003c/code\u003e\u003c/a\u003e Fix _CurrentDocument membership testing with '{c,cpp}:parent_symbol'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/92b5303219101dee99ca50c245c5eb65257d4580\"\u003e\u003ccode\u003e92b5303\u003c/code\u003e\u003c/a\u003e Define \u003ccode\u003e_StrPath.__radd__()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/5739a9d58d2e5005259718d615d4c8ec3971173a\"\u003e\u003ccode\u003e5739a9d\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/ee96ef304265d9969488f7bcd09b37826ac7c43c\"\u003e\u003ccode\u003eee96ef3\u003c/code\u003e\u003c/a\u003e Bump to 8.2.2 final\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/3e0021c7aa4e1f1b91d035d10b5f0b3a66b4f206\"\u003e\u003ccode\u003e3e0021c\u003c/code\u003e\u003c/a\u003e Move Sphinx 8.2.2 CHANGES to doc/changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/1a62f3170ad7f2fe3f1f1bfc1d22e0e402e8e274\"\u003e\u003ccode\u003e1a62f31\u003c/code\u003e\u003c/a\u003e Fix apidoc extension not setting default header/package name (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/13391\"\u003e#13391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/13d2899666c9e492809adb690b9a66f7f7064ce6\"\u003e\u003ccode\u003e13d2899\u003c/code\u003e\u003c/a\u003e Replace \u003ccode\u003eNone\u003c/code\u003e filename with \u003ccode\u003e''\u003c/code\u003e in \u003ccode\u003eSphinx.add_js_file()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/13402\"\u003e#13402\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sphinx-doc/sphinx/compare/v8.1.3...v8.2.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flake8-bugbear` from 24.12.12 to 25.10.21\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/PyCQA/flake8-bugbear/releases\"\u003eflake8-bugbear's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.10.21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB042: New check for reminding to call super().\u003cstrong\u003einit\u003c/strong\u003e in custom exceptions\u003c/li\u003e\n\u003cli\u003eB028: Skip if skip_file_prefixes is used (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/503\"\u003e#503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB912: New check for \u003ccode\u003emap()\u003c/code\u003e without an explicit \u003ccode\u003estrict=\u003c/code\u003e parameter. (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/516\"\u003e#516\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd python3.14 Support / CI\u003c/li\u003e\n\u003cli\u003eRemove python3.9 support / CI\u003c/li\u003e\n\u003cli\u003eflake8-bugbear now requires at least Python 3.10, like the next release of flake8\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/cdd75f1942294a152f864c978376f59b2ec08558\"\u003e\u003ccode\u003ecdd75f1\u003c/code\u003e\u003c/a\u003e Update CHANGES + move to version 25.10.21 to release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/4601fe6e1993d7a8309dd26105a55d8c77aeae0d\"\u003e\u003ccode\u003e4601fe6\u003c/code\u003e\u003c/a\u003e Drop 3.9 support + add 3.14 CI (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/524\"\u003e#524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/39699611b4b399a6e81d726e76c58cbcdffa25ab\"\u003e\u003ccode\u003e3969961\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/523\"\u003e#523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/6276149b6807114307569d67be8516dae306beab\"\u003e\u003ccode\u003e6276149\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/522\"\u003e#522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/d264420dec52a034efe05f160c4ac157f053c6e8\"\u003e\u003ccode\u003ed264420\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/520\"\u003e#520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/6ce427def45cffbf8b12a83649526a52a7a32c58\"\u003e\u003ccode\u003e6ce427d\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/519\"\u003e#519\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/5bae5d98084913eccc100f980101084564eb1a54\"\u003e\u003ccode\u003e5bae5d9\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/518\"\u003e#518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/67f82f1d221690ad2a1d6692a5f06b5d37c55423\"\u003e\u003ccode\u003e67f82f1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/515\"\u003e#515\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/ca05a35ebf84f44a137e4aae3000cb3d14d83e96\"\u003e\u003ccode\u003eca05a35\u003c/code\u003e\u003c/a\u003e B912: check if map calls have strict flag (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/517\"\u003e#517\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/5962bbd925aebae15c1ea5cf58d347a33c74265c\"\u003e\u003ccode\u003e5962bbd\u003c/code\u003e\u003c/a\u003e Add B042 into README\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/PyCQA/flake8-bugbear/compare/24.12.12...25.10.21\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flake8-isort` from 6.1.2 to 7.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/gforcada/flake8-isort/blob/main/CHANGES.rst\"\u003eflake8-isort's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.0.0 (2025-10-25)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd support for isort 7.0.0.\n[gforcada]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrop python 3.9 support and add Python 3.14 support.\n[gforcada]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBump pypy minimum version to 3.10.\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/gforcada/flake8-isort/commit/a34569a71e9fe8560357a8c2d62607819aed6982\"\u003e\u003ccode\u003ea34569a\u003c/code\u003e\u003c/a\u003e Preparing release 7.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gforcada/flake8-isort/commit/c5c3e7e51e6f099978b9e491888e2a76ac5368b4\"\u003e\u003ccode\u003ec5c3e7e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gforcada/flake8-isort/issues/158\"\u003e#158\u003c/a\u003e from gforcada/py314\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gforcada/flake8-isort/commit/7d2b96c5ddd36f3b8cb9b00ff8ecefd720dcd9af\"\u003e\u003ccode\u003e7d2b96c\u003c/code\u003e\u003c/a\u003e Update CHANGES\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gforcada/flake8-isort/commit/4aa848c2047858008a17f49f17cab6c11d371d1b\"\u003e\u003ccode\u003e4aa848c\u003c/code\u003e\u003c/a\u003e chore(ci): bump python version for linting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gforcada/flake8-isort/commit/b80c95ab0e3d8cde99a277e291138224e501262b\"\u003e\u003ccode\u003eb80c95a\u003c/code\u003e\u003c/a\u003e fix(ci): bump pypy version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gforcada/flake8-isort/commit/4e5c91e43f69fc8ae292738fc39b65ebfd2bc8ac\"\u003e\u003ccode\u003e4e5c91e\u003c/code\u003e\u003c/a\u003e chore: add Python 3.14, drop 3.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gforcada/flake8-isort/commit/074d53a632a02f024c71c173ebb8e01d9e292c01\"\u003e\u003ccode\u003e074d53a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gforcada/flake8-isort/issues/157\"\u003e#157\u003c/a\u003e from gforcada/gforcada-patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gforcada/flake8-isort/commit/34059b4eb5a7ad5c00199a74969fd3fa214de611\"\u003e\u003ccode\u003e34059b4\u003c/code\u003e\u003c/a\u003e Update CHANGES\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gforcada/flake8-isort/commit/915547f4eba1e8413414c23b2385761ef3090f08\"\u003e\u003ccode\u003e915547f\u003c/code\u003e\u003c/a\u003e Update pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gforcada/flake8-isort/commit/353f45a7dc5679710a271d59afbe264edf4a6cac\"\u003e\u003ccode\u003e353f45a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gforcada/flake8-isort/issues/155\"\u003e#155\u003c/a\u003e from gforcada/maintenance\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/gforcada/flake8-isort/compare/6.1.2...7.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `isort` from 6.1.0 to 7.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/PyCQA/isort/releases\"\u003eisort's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.0.0\u003c/h2\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003ch2\u003e:boom: Breaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2430\"\u003e#2430\u003c/a\u003e) \u003ca href=\"https://github.com/DanielNoord\"\u003e\u003ccode\u003e@​DanielNoord\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:rocket: Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eShow absolute paths in skipped file messages (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2416\"\u003e#2416\u003c/a\u003e) \u003ca href=\"https://github.com/pranlawate\"\u003e\u003ccode\u003e@​pranlawate\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:beetle: Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSome fixes for Python 3.14 (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2433\"\u003e#2433\u003c/a\u003e) \u003ca href=\"https://github.com/DanielNoord\"\u003e\u003ccode\u003e@​DanielNoord\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest on \u003ccode\u003e3.14\u003c/code\u003e and fix any bugs (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2425\"\u003e#2425\u003c/a\u003e) \u003ca href=\"https://github.com/DanielNoord\"\u003e\u003ccode\u003e@​DanielNoord\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate CHANGELOG.md + Fix Formatting and Grammar (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2419\"\u003e#2419\u003c/a\u003e) \u003ca href=\"https://github.com/lukbrew25\"\u003e\u003ccode\u003e@​lukbrew25\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix output of hanging indent for long lines with noqa (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2407\"\u003e#2407\u003c/a\u003e) \u003ca href=\"https://github.com/matan1008\"\u003e\u003ccode\u003e@​matan1008\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:construction_worker: Continuous Integration\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFormat with \u003ccode\u003eruff\u003c/code\u003e instead of \u003ccode\u003eblack\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2432\"\u003e#2432\u003c/a\u003e) \u003ca href=\"https://github.com/DanielNoord\"\u003e\u003ccode\u003e@​DanielNoord\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTarget 3.10 for \u003ccode\u003eruff\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2431\"\u003e#2431\u003c/a\u003e) \u003ca href=\"https://github.com/DanielNoord\"\u003e\u003ccode\u003e@​DanielNoord\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate development dependencies to latest version (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2426\"\u003e#2426\u003c/a\u003e) \u003ca href=\"https://github.com/DanielNoord\"\u003e\u003ccode\u003e@​DanielNoord\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update pre-commit examples to version 6.1.0 (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2413\"\u003e#2413\u003c/a\u003e) \u003ca href=\"https://github.com/pranlawate\"\u003e\u003ccode\u003e@​pranlawate\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSmall cleanup for developer environment (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2418\"\u003e#2418\u003c/a\u003e) \u003ca href=\"https://github.com/DanielNoord\"\u003e\u003ccode\u003e@​DanielNoord\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:package: Dependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump actions/setup-python from 5 to 6 in the github-actions group (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2411\"\u003e#2411\u003c/a\u003e) @\u003ca href=\"https://github.com/apps/dependabot\"\u003edependabot[bot]\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/PyCQA/isort/blob/main/CHANGELOG.md\"\u003eisort's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003cp\u003eNOTE: isort follows the \u003ca href=\"https://semver.org/\"\u003esemver\u003c/a\u003e versioning standard.\nFind out more about isort's release policy \u003ca href=\"https://pycqa.github.io/isort/docs/major_releases/release_policy\"\u003ehere\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/PyCQA/isort/commit/0a09c783808cfe77bb3269250f663ff733d23302\"\u003e\u003ccode\u003e0a09c78\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2433\"\u003e#2433\u003c/a\u003e from DanielNoord/python-314\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/isort/commit/0fee794a05b5d0c471ac80bc8943f9843ca29644\"\u003e\u003ccode\u003e0fee794\u003c/code\u003e\u003c/a\u003e Add 3.14 to \u003ccode\u003estdlibds\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/isort/commit/332a1ad0b68bf3a3acac055b0ec3666408b3b425\"\u003e\u003ccode\u003e332a1ad\u003c/code\u003e\u003c/a\u003e Bump \u003ccode\u003ezstandard\u003c/code\u003e for 3.14 compat\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/isort/commit/f756e5653afcf6d79ec4d0240b1868cbebd8fafd\"\u003e\u003ccode\u003ef756e56\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2432\"\u003e#2432\u003c/a\u003e from DanielNoord/ruff-it-up\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/isort/commit/52f5134889d345ff35afdcb86501c8221b804c70\"\u003e\u003ccode\u003e52f5134\u003c/code\u003e\u003c/a\u003e Format with \u003ccode\u003eruff\u003c/code\u003e instead of \u003ccode\u003eblack\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/isort/commit/012aa69fcadb3c89ff92a3d96aa449be7ae6746f\"\u003e\u003ccode\u003e012aa69\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2431\"\u003e#2431\u003c/a\u003e from DanielNoord/ruff-it-up\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/isort/commit/89773dbb371192541092657972a74e9ce0bbbc74\"\u003e\u003ccode\u003e89773db\u003c/code\u003e\u003c/a\u003e Target 3.10 with \u003ccode\u003eruff\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/isort/commit/933e382f98a0c77b4c6e33c4e3ef12bd57192884\"\u003e\u003ccode\u003e933e382\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2430\"\u003e#2430\u003c/a\u003e from DanielNoord/drop-39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/isort/commit/8b6e00cbe643a216da57fed4baa282d0a4a1b829\"\u003e\u003ccode\u003e8b6e00c\u003c/code\u003e\u003c/a\u003e Remove support for Python 3.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/isort/commit/b5f9f296ad873734e8caa3a731f27360648d9b37\"\u003e\u003ccode\u003eb5f9f29\u003c/code\u003e\u003c/a\u003e Bump profile plugin to 3.10+ and re-lock\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/PyCQA/isort/compare/6.1.0...7.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `faker` from 37.8.0 to 37.12.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/joke2k/faker/releases\"\u003efaker's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v37.12.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/joke2k/faker/blob/refs/tags/v37.12.0/CHANGELOG.md\"\u003eCHANGELOG.md\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eRelease v37.11.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/joke2k/faker/blob/refs/tags/v37.11.0/CHANGELOG.md\"\u003eCHANGELOG.md\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eRelease v37.10.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/joke2k/faker/blob/refs/tags/v37.10.0/CHANGELOG.md\"\u003eCHANGELOG.md\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eRelease v37.9.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/joke2k/faker/blob/refs/tags/v37.9.0/CHANGELOG.md\"\u003eCHANGELOG.md\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/joke2k/faker/blob/master/CHANGELOG.md\"\u003efaker's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e\u003ca href=\"https://github.com/joke2k/faker/compare/v37.11.0...v37.12.0\"\u003ev37.12.0 - 2025-10-07\u003c/a\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd french VAT number. Thanks \u003ca href=\"https://github.com/fabien-michel\"\u003e\u003ccode\u003e@​fabien-michel\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003ca href=\"https://github.com/joke2k/faker/compare/v37.9.0...v37.11.0\"\u003ev37.11.0 - 2025-10-07\u003c/a\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd French company APE code. Thanks \u003ca href=\"https://github.com/fabien-michel\"\u003e\u003ccode\u003e@​fabien-michel\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003ca href=\"https://github.com/joke2k/faker/compare/v37.8.0...v37.9.0\"\u003ev37.9.0 - 2025-10-07\u003c/a\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd names generation to \u003ccode\u003een_KE\u003c/code\u003e locale. Thanks \u003ca href=\"https://github.com/titustum\"\u003e\u003ccode\u003e@​titustum\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/949a8d6ff538b86a6a40b2082beaeade480e891a\"\u003e\u003ccode\u003e949a8d6\u003c/code\u003e\u003c/a\u003e Bump version: 37.11.0 → 37.12.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/dcb996c2f4f0c09393f1dafdf5d66100ec8b0be5\"\u003e\u003ccode\u003edcb996c\u003c/code\u003e\u003c/a\u003e :pencil: Update CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/a257bd5a0807e8d23a3b2aac3d79169e7bc7df4b\"\u003e\u003ccode\u003ea257bd5\u003c/code\u003e\u003c/a\u003e :lipstick: Lint code\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/42e1e9c569213e6d3b6c1e8d3915d93637d5d7ad\"\u003e\u003ccode\u003e42e1e9c\u003c/code\u003e\u003c/a\u003e feat: add french VAT number (\u003ca href=\"https://redirect.github.com/joke2k/faker/issues/2265\"\u003e#2265\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/178b17d233294608a29391b859aefa4239b71980\"\u003e\u003ccode\u003e178b17d\u003c/code\u003e\u003c/a\u003e fix table\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/f581c15777ab1898b7534f1af6ccc8ddd7507eb7\"\u003e\u003ccode\u003ef581c15\u003c/code\u003e\u003c/a\u003e :lipstick: lint code\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/e90f028c3a809e76841af8a0dfa5dd4d92d5fdc2\"\u003e\u003ccode\u003ee90f028\u003c/code\u003e\u003c/a\u003e Add info about new provider to communityproviders.rst (\u003ca href=\"https://redirect.github.com/joke2k/faker/issues/2268\"\u003e#2268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/fa0915aaa944ab0c59dfd85858d4649e4e2db35b\"\u003e\u003ccode\u003efa0915a\u003c/code\u003e\u003c/a\u003e Fix bank dry violation (\u003ca href=\"https://redirect.github.com/joke2k/faker/issues/2267\"\u003e#2267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/5bbe46a8d28e45cffa2233376656cf806e5771b2\"\u003e\u003ccode\u003e5bbe46a\u003c/code\u003e\u003c/a\u003e :pencil: Fix CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/2a366a6163dfd767a1ccdb1684109e6156a745ee\"\u003e\u003ccode\u003e2a366a6\u003c/code\u003e\u003c/a\u003e Bump version: 37.10.0 → 37.11.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/joke2k/faker/compare/v37.8.0...v37.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `syrupy` from 4.9.1 to 5.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/syrupy-project/syrupy/releases\"\u003esyrupy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.0.0\u003c/h2\u003e\n\u003ch2\u003eSyrupy 5.0.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e(2025-09-28)\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eThis release introduces new features, bug fixes, and a major license change. It also includes several \u003cstrong\u003ebreaking changes\u003c/strong\u003e, so please review those carefully before upgrading.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch3\u003eNew Features ✨\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eAdd \u003ccode\u003e--snapshot-dirname\u003c/code\u003e option:\u003c/strong\u003e A new option, \u003ccode\u003e--snapshot-dirname\u003c/code\u003e, is now available to change the default directory snapshots are stored in. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003e#810\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003esyrupy-project/syrupy#810\u003c/a\u003e))\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRemove private underscore prefix:\u003c/strong\u003e The unnecessary underscore prefixes have been removed from public methods for better code clarity. ([\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003e8cfc905\u003c/a\u003e](\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003ehttps://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\u003c/a\u003e))\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch3\u003eBug Fixes 🐛\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFix terminal summary for \u003ccode\u003exdist\u003c/code\u003e workers:\u003c/strong\u003e Resolves an issue where the terminal summary was not displayed correctly with \u003ccode\u003exdist\u003c/code\u003e workers. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/978\"\u003e#978\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/978\"\u003esyrupy-project/syrupy#978\u003c/a\u003e))\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eEnsure \u003ccode\u003epytest_assertrepr_compare\u003c/code\u003e hook is called first:\u003c/strong\u003e This change ensures that Syrupy's assertion hook takes precedence, improving compatibility with other plugins. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/984\"\u003e#984\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/984\"\u003esyrupy-project/syrupy#984\u003c/a\u003e))\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch3\u003eBreaking Changes ⚠️\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eLicense change:\u003c/strong\u003e The project has switched to the more permissive \u003cstrong\u003eMIT license\u003c/strong\u003e. This change applies to all versions from 5.0.0 and beyond. If you need to use the previous Apache 2.0 license, you must continue to use Syrupy versions 4.x or earlier. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/945\"\u003e#945\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/945\"\u003esyrupy-project/syrupy#945\u003c/a\u003e))\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003ePython and pytest version requirements:\u003c/strong\u003e Syrupy now requires \u003cstrong\u003ePython 3.10\u003c/strong\u003e or higher. Support for Python 3.8 has been dropped as it reached its end of life in October 2024. The minimum required version of \u003cstrong\u003epytest is v8\u003c/strong\u003e. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/904\"\u003e#904\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/904\"\u003esyrupy-project/syrupy#904\u003c/a\u003e), [\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003e#1024\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003esyrupy-project/syrupy#1024\u003c/a\u003e))\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eMethod and constant name changes:\u003c/strong\u003e Several methods and constants have been renamed for improved clarity and to align with public API standards.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ccode\u003eSnapshotCollectionStorage\u003c/code\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e_read_snapshot_collection\u003c/code\u003e -\u0026gt; \u003ccode\u003eread_snapshot_collection\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_read_snapshot_data_from_location\u003c/code\u003e -\u0026gt; \u003ccode\u003eread_snapshot_data_from_location\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_write_snapshot_collection\u003c/code\u003e -\u0026gt; \u003ccode\u003ewrite_snapshot_collection\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_get_file_basename\u003c/code\u003e -\u0026gt; \u003ccode\u003eget_file_basename\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_file_extension\u003c/code\u003e -\u0026gt; \u003ccode\u003efile_extension\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ccode\u003eAmberDataSerializer\u003c/code\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e_snapshot_sort_key\u003c/code\u003e -\u0026gt; \u003ccode\u003esnapshot_sort_key\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eConstants\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eSNAPSHOT_EMPTY_FOSSIL_KEY\u003c/code\u003e -\u0026gt; \u003ccode\u003eSNAPSHOT_EMPTY_COLLECTION_KEY\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSNAPSHOT_UNKNOWN_FOSSIL_KEY\u003c/code\u003e -\u0026gt; \u003ccode\u003eSNAPSHOT_UNKNOWN_COLLECTION_KEY\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSNAPSHOT_DIRNAME\u003c/code\u003e has been removed in favour of the property on the \u003ccode\u003eSnapshotCollectionStorage\u003c/code\u003e class and associated CLI option.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\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/paul-ollis\"\u003e\u003ccode\u003e@​paul-ollis\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/978\"\u003esyrupy-project/syrupy#978\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rahuliyer95\"\u003e\u003ccode\u003e@​rahuliyer95\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/984\"\u003esyrupy-project/syrupy#984\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\"\u003ehttps://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/syrupy-project/syrupy/blob/main/CHANGELOG.md\"\u003esyrupy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\"\u003e5.0.0\u003c/a\u003e (2025-09-28)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch to MIT license (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/945\"\u003e#945\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/d74d340f8884fdb04831fcf77f29d66e098aaa66\"\u003ed74d340\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlock terminal summary for xdist workers. (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/978\"\u003e#978\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/33a848df7c4a33577e4057eae5792f6592ad3172\"\u003e33a848d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eensure syrupy's pytest_assertrepr_compare hook is called first. (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/984\"\u003e#984\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/eb0024d339248b7e1f76fdb65ed30ba3e19c0857\"\u003eeb0024d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove incorrect private underscore prefix from public methods (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003e8cfc905\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd --snapshot-dirname option, close \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003e#810\u003c/a\u003e (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/27135c7c861441962c2cedde841f3e4fed2949fd\"\u003e27135c7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edrop support for py3.8, raise min. pytest to v8 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/904\"\u003e#904\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/a879ff15ad82e59a2f387db0822be072a5684f2f\"\u003ea879ff1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate min. python version to 3.10 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003e#1024\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/16b4113cd56da96e84a90ebda0919e9b8dd35954\"\u003e16b4113\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe following methods have been renamed:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSnapshotCollectionStorage\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e_read_snapshot_collection -\u0026gt; read_snapshot_collection\u003c/li\u003e\n\u003cli\u003e_read_snapshot_data_from_location -\u0026gt; read_snapshot_data_from_location\u003c/li\u003e\n\u003cli\u003e_write_snapshot_collection -\u0026gt; write_snapshot_collection\u003c/li\u003e\n\u003cli\u003e_get_file_basename -\u0026gt; get_file_basename\u003c/li\u003e\n\u003cli\u003e_file_extension -\u0026gt; file_extension\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eAmberDataSerializer\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e_snapshot_sort_key -\u0026gt; snapshot_sort_key\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRenamed constants to improve clarity:\u003c/p\u003e\n\u003cp\u003econstants\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSNAPSHOT_EMPTY_FOSSIL_KEY -\u0026gt; SNAPSHOT_EMPTY_COLLECTION_KEY\u003c/li\u003e\n\u003cli\u003eSNAPSHOT_UNKNOWN_FOSSIL_KEY -\u0026gt; SNAPSHOT_UNKNOWN_COLLECTION_KEY\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003eMin. python version is now 3.10.\u003c/li\u003e\n\u003cli\u003eThe Syrupy project is switching from Apache 2.0 to a more permissive MIT license. By using Syrupy \u0026gt;=5, you agree to abide by this new license. You can continue to use Syrupy v1 through v4 under Apache 2.0.\u003c/li\u003e\n\u003cli\u003eDrops support for Python 3.8 which is end of life as of October 2024. Raises the minimum version of pytest to v8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/9b4cc82e50e29f84dcb55054c8eab281c90a280b\"\u003e\u003ccode\u003e9b4cc82\u003c/code\u003e\u003c/a\u003e chore(release): 5.0.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/af15385acd5bf617815aa0d19e2df907bbbd2d83\"\u003e\u003ccode\u003eaf15385\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1027\"\u003e#1027\u003c/a\u003e from syrupy-project/test_py_3_14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/461ad224d192a18296934e2434b9302fb0984007\"\u003e\u003ccode\u003e461ad22\u003c/code\u003e\u003c/a\u003e chore: test against py3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/95ffbcb085eb920920a7241c814a55c1e948f148\"\u003e\u003ccode\u003e95ffbcb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1026\"\u003e#1026\u003c/a\u003e from syrupy-project/rename_methods\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/27135c7c861441962c2cedde841f3e4fed2949fd\"\u003e\u003ccode\u003e27135c7\u003c/code\u003e\u003c/a\u003e feat: add --snapshot-dirname option, close \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003e#810\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003e\u003ccode\u003e8cfc905\u003c/code\u003e\u003c/a\u003e refactor: remove incorrect private underscore prefix from public methods\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/e1dbf5dc2a1148480aa9601a5e1c21928954b8cc\"\u003e\u003ccode\u003ee1dbf5d\u003c/code\u003e\u003c/a\u003e chore(deps): update python docker tag to v3.13.7 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1025\"\u003e#1025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/16b4113cd56da96e84a90ebda0919e9b8dd35954\"\u003e\u003ccode\u003e16b4113\u003c/code\u003e\u003c/a\u003e feat: update min. python version to 3.10 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003e#1024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/434c63fdabbaaf2372ec94c8968fe025c4a306e6\"\u003e\u003ccode\u003e434c63f\u003c/code\u003e\u003c/a\u003e chore(deps): update codecov/codecov-action action to v5.5.1 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1021\"\u003e#1021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/b2e49bad7741f06c17a0be9f4608c0db5db13cf5\"\u003e\u003ccode\u003eb2e49ba\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency pytest to v8.4.2 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1022\"\u003e#1022\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/django-json-api/django-rest-framework-json-api/pull/1308","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/django-json-api%2Fdjango-rest-framework-json-api/issues/1308","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1308/packages"},{"uuid":"2884457487","node_id":"PR_kwDOCJmDMM6r7VQP","number":2495,"state":"open","title":"chore(deps-dev): bump syrupy from 4.9.1 to 5.0.0","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-10-03T10:02:02.000Z","updated_at":"2025-10-03T10:02:03.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps-dev)","packages":[{"name":"syrupy","old_version":"4.9.1","new_version":"5.0.0","repository_url":"https://github.com/syrupy-project/syrupy"}],"path":null,"ecosystem":"pip"},"body":"Bumps [syrupy](https://github.com/syrupy-project/syrupy) from 4.9.1 to 5.0.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/syrupy-project/syrupy/releases\"\u003esyrupy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.0.0\u003c/h2\u003e\n\u003ch2\u003eSyrupy 5.0.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e(2025-09-28)\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eThis release introduces new features, bug fixes, and a major license change. It also includes several \u003cstrong\u003ebreaking changes\u003c/strong\u003e, so please review those carefully before upgrading.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch3\u003eNew Features ✨\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eAdd \u003ccode\u003e--snapshot-dirname\u003c/code\u003e option:\u003c/strong\u003e A new option, \u003ccode\u003e--snapshot-dirname\u003c/code\u003e, is now available to change the default directory snapshots are stored in. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003e#810\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003esyrupy-project/syrupy#810\u003c/a\u003e))\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRemove private underscore prefix:\u003c/strong\u003e The unnecessary underscore prefixes have been removed from public methods for better code clarity. ([\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003e8cfc905\u003c/a\u003e](\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003ehttps://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\u003c/a\u003e))\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch3\u003eBug Fixes 🐛\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFix terminal summary for \u003ccode\u003exdist\u003c/code\u003e workers:\u003c/strong\u003e Resolves an issue where the terminal summary was not displayed correctly with \u003ccode\u003exdist\u003c/code\u003e workers. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/978\"\u003e#978\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/978\"\u003esyrupy-project/syrupy#978\u003c/a\u003e))\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eEnsure \u003ccode\u003epytest_assertrepr_compare\u003c/code\u003e hook is called first:\u003c/strong\u003e This change ensures that Syrupy's assertion hook takes precedence, improving compatibility with other plugins. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/984\"\u003e#984\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/984\"\u003esyrupy-project/syrupy#984\u003c/a\u003e))\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch3\u003eBreaking Changes ⚠️\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eLicense change:\u003c/strong\u003e The project has switched to the more permissive \u003cstrong\u003eMIT license\u003c/strong\u003e. This change applies to all versions from 5.0.0 and beyond. If you need to use the previous Apache 2.0 license, you must continue to use Syrupy versions 4.x or earlier. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/945\"\u003e#945\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/945\"\u003esyrupy-project/syrupy#945\u003c/a\u003e))\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003ePython and pytest version requirements:\u003c/strong\u003e Syrupy now requires \u003cstrong\u003ePython 3.10\u003c/strong\u003e or higher. Support for Python 3.8 has been dropped as it reached its end of life in October 2024. The minimum required version of \u003cstrong\u003epytest is v8\u003c/strong\u003e. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/904\"\u003e#904\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/904\"\u003esyrupy-project/syrupy#904\u003c/a\u003e), [\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003e#1024\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003esyrupy-project/syrupy#1024\u003c/a\u003e))\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eMethod and constant name changes:\u003c/strong\u003e Several methods and constants have been renamed for improved clarity and to align with public API standards.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ccode\u003eSnapshotCollectionStorage\u003c/code\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e_read_snapshot_collection\u003c/code\u003e -\u0026gt; \u003ccode\u003eread_snapshot_collection\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_read_snapshot_data_from_location\u003c/code\u003e -\u0026gt; \u003ccode\u003eread_snapshot_data_from_location\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_write_snapshot_collection\u003c/code\u003e -\u0026gt; \u003ccode\u003ewrite_snapshot_collection\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_get_file_basename\u003c/code\u003e -\u0026gt; \u003ccode\u003eget_file_basename\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_file_extension\u003c/code\u003e -\u0026gt; \u003ccode\u003efile_extension\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ccode\u003eAmberDataSerializer\u003c/code\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e_snapshot_sort_key\u003c/code\u003e -\u0026gt; \u003ccode\u003esnapshot_sort_key\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eConstants\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eSNAPSHOT_EMPTY_FOSSIL_KEY\u003c/code\u003e -\u0026gt; \u003ccode\u003eSNAPSHOT_EMPTY_COLLECTION_KEY\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSNAPSHOT_UNKNOWN_FOSSIL_KEY\u003c/code\u003e -\u0026gt; \u003ccode\u003eSNAPSHOT_UNKNOWN_COLLECTION_KEY\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSNAPSHOT_DIRNAME\u003c/code\u003e has been removed in favour of the property on the \u003ccode\u003eSnapshotCollectionStorage\u003c/code\u003e class and associated CLI option.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\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/paul-ollis\"\u003e\u003ccode\u003e@​paul-ollis\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/978\"\u003esyrupy-project/syrupy#978\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rahuliyer95\"\u003e\u003ccode\u003e@​rahuliyer95\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/984\"\u003esyrupy-project/syrupy#984\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\"\u003ehttps://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/syrupy-project/syrupy/blob/main/CHANGELOG.md\"\u003esyrupy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\"\u003e5.0.0\u003c/a\u003e (2025-09-28)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch to MIT license (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/945\"\u003e#945\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/d74d340f8884fdb04831fcf77f29d66e098aaa66\"\u003ed74d340\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlock terminal summary for xdist workers. (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/978\"\u003e#978\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/33a848df7c4a33577e4057eae5792f6592ad3172\"\u003e33a848d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eensure syrupy's pytest_assertrepr_compare hook is called first. (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/984\"\u003e#984\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/eb0024d339248b7e1f76fdb65ed30ba3e19c0857\"\u003eeb0024d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove incorrect private underscore prefix from public methods (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003e8cfc905\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd --snapshot-dirname option, close \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003e#810\u003c/a\u003e (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/27135c7c861441962c2cedde841f3e4fed2949fd\"\u003e27135c7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edrop support for py3.8, raise min. pytest to v8 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/904\"\u003e#904\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/a879ff15ad82e59a2f387db0822be072a5684f2f\"\u003ea879ff1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate min. python version to 3.10 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003e#1024\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/16b4113cd56da96e84a90ebda0919e9b8dd35954\"\u003e16b4113\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe following methods have been renamed:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSnapshotCollectionStorage\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e_read_snapshot_collection -\u0026gt; read_snapshot_collection\u003c/li\u003e\n\u003cli\u003e_read_snapshot_data_from_location -\u0026gt; read_snapshot_data_from_location\u003c/li\u003e\n\u003cli\u003e_write_snapshot_collection -\u0026gt; write_snapshot_collection\u003c/li\u003e\n\u003cli\u003e_get_file_basename -\u0026gt; get_file_basename\u003c/li\u003e\n\u003cli\u003e_file_extension -\u0026gt; file_extension\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eAmberDataSerializer\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e_snapshot_sort_key -\u0026gt; snapshot_sort_key\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRenamed constants to improve clarity:\u003c/p\u003e\n\u003cp\u003econstants\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSNAPSHOT_EMPTY_FOSSIL_KEY -\u0026gt; SNAPSHOT_EMPTY_COLLECTION_KEY\u003c/li\u003e\n\u003cli\u003eSNAPSHOT_UNKNOWN_FOSSIL_KEY -\u0026gt; SNAPSHOT_UNKNOWN_COLLECTION_KEY\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003eMin. python version is now 3.10.\u003c/li\u003e\n\u003cli\u003eThe Syrupy project is switching from Apache 2.0 to a more permissive MIT license. By using Syrupy \u0026gt;=5, you agree to abide by this new license. You can continue to use Syrupy v1 through v4 under Apache 2.0.\u003c/li\u003e\n\u003cli\u003eDrops support for Python 3.8 which is end of life as of October 2024. Raises the minimum version of pytest to v8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/9b4cc82e50e29f84dcb55054c8eab281c90a280b\"\u003e\u003ccode\u003e9b4cc82\u003c/code\u003e\u003c/a\u003e chore(release): 5.0.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/af15385acd5bf617815aa0d19e2df907bbbd2d83\"\u003e\u003ccode\u003eaf15385\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1027\"\u003e#1027\u003c/a\u003e from syrupy-project/test_py_3_14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/461ad224d192a18296934e2434b9302fb0984007\"\u003e\u003ccode\u003e461ad22\u003c/code\u003e\u003c/a\u003e chore: test against py3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/95ffbcb085eb920920a7241c814a55c1e948f148\"\u003e\u003ccode\u003e95ffbcb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1026\"\u003e#1026\u003c/a\u003e from syrupy-project/rename_methods\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/27135c7c861441962c2cedde841f3e4fed2949fd\"\u003e\u003ccode\u003e27135c7\u003c/code\u003e\u003c/a\u003e feat: add --snapshot-dirname option, close \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003e#810\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003e\u003ccode\u003e8cfc905\u003c/code\u003e\u003c/a\u003e refactor: remove incorrect private underscore prefix from public methods\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/e1dbf5dc2a1148480aa9601a5e1c21928954b8cc\"\u003e\u003ccode\u003ee1dbf5d\u003c/code\u003e\u003c/a\u003e chore(deps): update python docker tag to v3.13.7 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1025\"\u003e#1025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/16b4113cd56da96e84a90ebda0919e9b8dd35954\"\u003e\u003ccode\u003e16b4113\u003c/code\u003e\u003c/a\u003e feat: update min. python version to 3.10 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003e#1024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/434c63fdabbaaf2372ec94c8968fe025c4a306e6\"\u003e\u003ccode\u003e434c63f\u003c/code\u003e\u003c/a\u003e chore(deps): update codecov/codecov-action action to v5.5.1 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1021\"\u003e#1021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/b2e49bad7741f06c17a0be9f4608c0db5db13cf5\"\u003e\u003ccode\u003eb2e49ba\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency pytest to v8.4.2 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1022\"\u003e#1022\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=syrupy\u0026package-manager=pip\u0026previous-version=4.9.1\u0026new-version=5.0.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/projectcaluma/caluma/pull/2495","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/projectcaluma%2Fcaluma/issues/2495","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/2495/packages"},{"uuid":"2879652199","node_id":"PR_kwDOI_U7IM6rpAFn","number":260,"state":"open","title":"Update syrupy requirement from ~=4.9 to ~=5.0","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-10-01T21:08:29.000Z","updated_at":"2025-10-01T21:08:30.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Update","packages":[{"name":"syrupy","old_version":"~=4.9","new_version":"~=5.0","repository_url":"https://github.com/syrupy-project/syrupy"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [syrupy](https://github.com/syrupy-project/syrupy) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/syrupy-project/syrupy/releases\"\u003esyrupy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.0.0\u003c/h2\u003e\n\u003ch2\u003eSyrupy 5.0.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e(2025-09-28)\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eThis release introduces new features, bug fixes, and a major license change. It also includes several \u003cstrong\u003ebreaking changes\u003c/strong\u003e, so please review those carefully before upgrading.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch3\u003eNew Features ✨\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eAdd \u003ccode\u003e--snapshot-dirname\u003c/code\u003e option:\u003c/strong\u003e A new option, \u003ccode\u003e--snapshot-dirname\u003c/code\u003e, is now available to change the default directory snapshots are stored in. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003e#810\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003esyrupy-project/syrupy#810\u003c/a\u003e))\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRemove private underscore prefix:\u003c/strong\u003e The unnecessary underscore prefixes have been removed from public methods for better code clarity. ([\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003e8cfc905\u003c/a\u003e](\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003ehttps://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\u003c/a\u003e))\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch3\u003eBug Fixes 🐛\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFix terminal summary for \u003ccode\u003exdist\u003c/code\u003e workers:\u003c/strong\u003e Resolves an issue where the terminal summary was not displayed correctly with \u003ccode\u003exdist\u003c/code\u003e workers. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/978\"\u003e#978\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/978\"\u003esyrupy-project/syrupy#978\u003c/a\u003e))\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eEnsure \u003ccode\u003epytest_assertrepr_compare\u003c/code\u003e hook is called first:\u003c/strong\u003e This change ensures that Syrupy's assertion hook takes precedence, improving compatibility with other plugins. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/984\"\u003e#984\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/984\"\u003esyrupy-project/syrupy#984\u003c/a\u003e))\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch3\u003eBreaking Changes ⚠️\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eLicense change:\u003c/strong\u003e The project has switched to the more permissive \u003cstrong\u003eMIT license\u003c/strong\u003e. This change applies to all versions from 5.0.0 and beyond. If you need to use the previous Apache 2.0 license, you must continue to use Syrupy versions 4.x or earlier. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/945\"\u003e#945\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/945\"\u003esyrupy-project/syrupy#945\u003c/a\u003e))\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003ePython and pytest version requirements:\u003c/strong\u003e Syrupy now requires \u003cstrong\u003ePython 3.10\u003c/strong\u003e or higher. Support for Python 3.8 has been dropped as it reached its end of life in October 2024. The minimum required version of \u003cstrong\u003epytest is v8\u003c/strong\u003e. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/904\"\u003e#904\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/904\"\u003esyrupy-project/syrupy#904\u003c/a\u003e), [\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003e#1024\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003esyrupy-project/syrupy#1024\u003c/a\u003e))\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eMethod and constant name changes:\u003c/strong\u003e Several methods and constants have been renamed for improved clarity and to align with public API standards.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ccode\u003eSnapshotCollectionStorage\u003c/code\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e_read_snapshot_collection\u003c/code\u003e -\u0026gt; \u003ccode\u003eread_snapshot_collection\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_read_snapshot_data_from_location\u003c/code\u003e -\u0026gt; \u003ccode\u003eread_snapshot_data_from_location\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_write_snapshot_collection\u003c/code\u003e -\u0026gt; \u003ccode\u003ewrite_snapshot_collection\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_get_file_basename\u003c/code\u003e -\u0026gt; \u003ccode\u003eget_file_basename\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_file_extension\u003c/code\u003e -\u0026gt; \u003ccode\u003efile_extension\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ccode\u003eAmberDataSerializer\u003c/code\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e_snapshot_sort_key\u003c/code\u003e -\u0026gt; \u003ccode\u003esnapshot_sort_key\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eConstants\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eSNAPSHOT_EMPTY_FOSSIL_KEY\u003c/code\u003e -\u0026gt; \u003ccode\u003eSNAPSHOT_EMPTY_COLLECTION_KEY\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSNAPSHOT_UNKNOWN_FOSSIL_KEY\u003c/code\u003e -\u0026gt; \u003ccode\u003eSNAPSHOT_UNKNOWN_COLLECTION_KEY\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSNAPSHOT_DIRNAME\u003c/code\u003e has been removed in favour of the property on the \u003ccode\u003eSnapshotCollectionStorage\u003c/code\u003e class and associated CLI option.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\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/paul-ollis\"\u003e\u003ccode\u003e@​paul-ollis\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/978\"\u003esyrupy-project/syrupy#978\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rahuliyer95\"\u003e\u003ccode\u003e@​rahuliyer95\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/984\"\u003esyrupy-project/syrupy#984\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\"\u003ehttps://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/syrupy-project/syrupy/blob/main/CHANGELOG.md\"\u003esyrupy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\"\u003e5.0.0\u003c/a\u003e (2025-09-28)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch to MIT license (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/945\"\u003e#945\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/d74d340f8884fdb04831fcf77f29d66e098aaa66\"\u003ed74d340\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlock terminal summary for xdist workers. (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/978\"\u003e#978\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/33a848df7c4a33577e4057eae5792f6592ad3172\"\u003e33a848d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eensure syrupy's pytest_assertrepr_compare hook is called first. (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/984\"\u003e#984\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/eb0024d339248b7e1f76fdb65ed30ba3e19c0857\"\u003eeb0024d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove incorrect private underscore prefix from public methods (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003e8cfc905\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd --snapshot-dirname option, close \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003e#810\u003c/a\u003e (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/27135c7c861441962c2cedde841f3e4fed2949fd\"\u003e27135c7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edrop support for py3.8, raise min. pytest to v8 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/904\"\u003e#904\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/a879ff15ad82e59a2f387db0822be072a5684f2f\"\u003ea879ff1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate min. python version to 3.10 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003e#1024\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/16b4113cd56da96e84a90ebda0919e9b8dd35954\"\u003e16b4113\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe following methods have been renamed:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSnapshotCollectionStorage\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e_read_snapshot_collection -\u0026gt; read_snapshot_collection\u003c/li\u003e\n\u003cli\u003e_read_snapshot_data_from_location -\u0026gt; read_snapshot_data_from_location\u003c/li\u003e\n\u003cli\u003e_write_snapshot_collection -\u0026gt; write_snapshot_collection\u003c/li\u003e\n\u003cli\u003e_get_file_basename -\u0026gt; get_file_basename\u003c/li\u003e\n\u003cli\u003e_file_extension -\u0026gt; file_extension\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eAmberDataSerializer\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e_snapshot_sort_key -\u0026gt; snapshot_sort_key\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRenamed constants to improve clarity:\u003c/p\u003e\n\u003cp\u003econstants\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSNAPSHOT_EMPTY_FOSSIL_KEY -\u0026gt; SNAPSHOT_EMPTY_COLLECTION_KEY\u003c/li\u003e\n\u003cli\u003eSNAPSHOT_UNKNOWN_FOSSIL_KEY -\u0026gt; SNAPSHOT_UNKNOWN_COLLECTION_KEY\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003eMin. python version is now 3.10.\u003c/li\u003e\n\u003cli\u003eThe Syrupy project is switching from Apache 2.0 to a more permissive MIT license. By using Syrupy \u0026gt;=5, you agree to abide by this new license. You can continue to use Syrupy v1 through v4 under Apache 2.0.\u003c/li\u003e\n\u003cli\u003eDrops support for Python 3.8 which is end of life as of October 2024. Raises the minimum version of pytest to v8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.9.0...v4.9.1\"\u003e4.9.1\u003c/a\u003e (2025-03-24)\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/syrupy-project/syrupy/commit/9b4cc82e50e29f84dcb55054c8eab281c90a280b\"\u003e\u003ccode\u003e9b4cc82\u003c/code\u003e\u003c/a\u003e chore(release): 5.0.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/af15385acd5bf617815aa0d19e2df907bbbd2d83\"\u003e\u003ccode\u003eaf15385\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1027\"\u003e#1027\u003c/a\u003e from syrupy-project/test_py_3_14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/461ad224d192a18296934e2434b9302fb0984007\"\u003e\u003ccode\u003e461ad22\u003c/code\u003e\u003c/a\u003e chore: test against py3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/95ffbcb085eb920920a7241c814a55c1e948f148\"\u003e\u003ccode\u003e95ffbcb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1026\"\u003e#1026\u003c/a\u003e from syrupy-project/rename_methods\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/27135c7c861441962c2cedde841f3e4fed2949fd\"\u003e\u003ccode\u003e27135c7\u003c/code\u003e\u003c/a\u003e feat: add --snapshot-dirname option, close \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003e#810\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003e\u003ccode\u003e8cfc905\u003c/code\u003e\u003c/a\u003e refactor: remove incorrect private underscore prefix from public methods\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/e1dbf5dc2a1148480aa9601a5e1c21928954b8cc\"\u003e\u003ccode\u003ee1dbf5d\u003c/code\u003e\u003c/a\u003e chore(deps): update python docker tag to v3.13.7 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1025\"\u003e#1025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/16b4113cd56da96e84a90ebda0919e9b8dd35954\"\u003e\u003ccode\u003e16b4113\u003c/code\u003e\u003c/a\u003e feat: update min. python version to 3.10 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003e#1024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/434c63fdabbaaf2372ec94c8968fe025c4a306e6\"\u003e\u003ccode\u003e434c63f\u003c/code\u003e\u003c/a\u003e chore(deps): update codecov/codecov-action action to v5.5.1 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1021\"\u003e#1021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/b2e49bad7741f06c17a0be9f4608c0db5db13cf5\"\u003e\u003ccode\u003eb2e49ba\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency pytest to v8.4.2 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1022\"\u003e#1022\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.9.0...v5.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/AllSpiceIO/py-allspice/pull/260","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/AllSpiceIO%2Fpy-allspice/issues/260","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/260/packages"},{"uuid":"3473736817","node_id":"PR_kwDODStzz86rkOqq","number":813,"state":"closed","title":"Bump the development-dependencies group with 13 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2025-10-30T10:33:53.000Z","author_association":null,"state_reason":null,"created_at":"2025-10-01T14:06:28.000Z","updated_at":"2025-10-30T10:33:54.000Z","time_to_close":2492845,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"development-dependencies","update_count":13,"packages":[{"name":"coverage","old_version":"7.10.2","new_version":"7.10.7","repository_url":"https://github.com/nedbat/coveragepy"},{"name":"mypy","old_version":"1.17.1","new_version":"1.18.2","repository_url":"https://github.com/python/mypy"},{"name":"pyinstaller","old_version":"6.15.0","new_version":"6.16.0","repository_url":"https://github.com/pyinstaller/pyinstaller"},{"name":"pyinstaller-hooks-contrib","old_version":"2025.8","new_version":"2025.9","repository_url":"https://github.com/pyinstaller/pyinstaller-hooks-contrib"},{"name":"pytest","old_version":"8.4.1","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-cov","old_version":"6.2.1","new_version":"7.0.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"ruff","old_version":"0.12.7","new_version":"0.13.2","repository_url":"https://github.com/astral-sh/ruff"},{"name":"syrupy","old_version":"4.9.1","new_version":"5.0.0","repository_url":"https://github.com/syrupy-project/syrupy"},{"name":"types-cachetools","old_version":"6.1.0.20250717","new_version":"6.2.0.20250827","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"types-setuptools","old_version":"80.9.0.20250801","new_version":"80.9.0.20250822","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"furo","old_version":"2025.7.19","new_version":"2025.9.25","repository_url":"https://github.com/pradyunsg/furo"},{"name":"sphinx-autobuild","old_version":"2024.10.3","new_version":"2025.8.25","repository_url":"https://github.com/sphinx-doc/sphinx-autobuild"},{"name":"sphinx-click","old_version":"6.0.0","new_version":"6.1.0","repository_url":"https://github.com/click-contrib/sphinx-click"}],"path":null,"ecosystem":"pip"},"body":"Bumps the development-dependencies group with 13 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [coverage](https://github.com/nedbat/coveragepy) | `7.10.2` | `7.10.7` |\n| [mypy](https://github.com/python/mypy) | `1.17.1` | `1.18.2` |\n| [pyinstaller](https://github.com/pyinstaller/pyinstaller) | `6.15.0` | `6.16.0` |\n| [pyinstaller-hooks-contrib](https://github.com/pyinstaller/pyinstaller-hooks-contrib) | `2025.8` | `2025.9` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.1` | `8.4.2` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `6.2.1` | `7.0.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.12.7` | `0.13.2` |\n| [syrupy](https://github.com/syrupy-project/syrupy) | `4.9.1` | `5.0.0` |\n| [types-cachetools](https://github.com/typeshed-internal/stub_uploader) | `6.1.0.20250717` | `6.2.0.20250827` |\n| [types-setuptools](https://github.com/typeshed-internal/stub_uploader) | `80.9.0.20250801` | `80.9.0.20250822` |\n| [furo](https://github.com/pradyunsg/furo) | `2025.7.19` | `2025.9.25` |\n| [sphinx-autobuild](https://github.com/sphinx-doc/sphinx-autobuild) | `2024.10.3` | `2025.8.25` |\n| [sphinx-click](https://github.com/click-contrib/sphinx-click) | `6.0.0` | `6.1.0` |\n\nUpdates `coverage` from 7.10.2 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.10.2...7.10.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.17.1 to 1.18.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.18.2\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix crash on recursive alias (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19845\"\u003e19845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd additional guidance for stubtest errors when runtime is \u003ccode\u003eobject.__init__\u003c/code\u003e (Stephen Morton, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19733\"\u003e19733\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix handling of None values in f-string expressions in mypyc (BobTheBuidler, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19846\"\u003e19846\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAli Hamdan\u003c/li\u003e\n\u003cli\u003eAnthony Sottile\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003eBrian Schubert\u003c/li\u003e\n\u003cli\u003eChainfire\u003c/li\u003e\n\u003cli\u003eCharlie Denton\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eCoolCat467\u003c/li\u003e\n\u003cli\u003eDaniel Hnyk\u003c/li\u003e\n\u003cli\u003eEmily\u003c/li\u003e\n\u003cli\u003eEmma Smith\u003c/li\u003e\n\u003cli\u003eEthan Sarp\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJahongir Qurbonov\u003c/li\u003e\n\u003cli\u003eJelle Zijlstra\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eJukka Lehtosalo\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eOmer Hadari\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003cli\u003ePrinceNaroliya\u003c/li\u003e\n\u003cli\u003eRandolf Scholz\u003c/li\u003e\n\u003cli\u003eRobsdedude\u003c/li\u003e\n\u003cli\u003eSaul Shanabrook\u003c/li\u003e\n\u003cli\u003eShantanu\u003c/li\u003e\n\u003cli\u003eStanislav Terliakov\u003c/li\u003e\n\u003cli\u003eStephen Morton\u003c/li\u003e\n\u003cli\u003ewyattscarpenter\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI’d also like to thank my employer, Dropbox, for supporting mypy development.\u003c/p\u003e\n\u003ch2\u003eMypy 1.17\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.17 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features and bug fixes.\nYou can install it as follows:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython3 -m pip install -U mypy\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eYou can read the full documentation for this release on \u003ca href=\"http://mypy.readthedocs.io\"\u003eRead the Docs\u003c/a\u003e.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/df05f05555ee62dbdb9960c64cad186172e92be1\"\u003e\u003ccode\u003edf05f05\u003c/code\u003e\u003c/a\u003e remove +dev from version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/01a7a1285d03cb7a330359b22cb462aacb5f9720\"\u003e\u003ccode\u003e01a7a12\u003c/code\u003e\u003c/a\u003e Update changelog for 1.18.2 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19873\"\u003e#19873\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/ca5abf09f3bfc543ac9c18a364696bc5da20bc03\"\u003e\u003ccode\u003eca5abf0\u003c/code\u003e\u003c/a\u003e Typeshed cherry-pick: Make type of \u003ccode\u003eunitest.mock.Any\u003c/code\u003e a subclass of \u003ccode\u003eAny\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python/mypy/issues/1\"\u003e#1\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/9d794b57d9c5b03d61caa3286756c05e0ae3021b\"\u003e\u003ccode\u003e9d794b5\u003c/code\u003e\u003c/a\u003e [mypyc] fix: inappropriate \u003ccode\u003eNone\u003c/code\u003es in f-strings (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19846\"\u003e#19846\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2c0510c84868b6bb42ef0f305b701e530a85c25f\"\u003e\u003ccode\u003e2c0510c\u003c/code\u003e\u003c/a\u003e stubtest: additional guidance on errors when runtime is object.\u003cstrong\u003einit\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19733\"\u003e#19733\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2f3f03c3e39e68dbfa3544c01a34f99803b3e1c2\"\u003e\u003ccode\u003e2f3f03c\u003c/code\u003e\u003c/a\u003e Bump version to 1.18.2+dev for point release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/76698412bc1f3ca99000d52649acd5a0e06aa71d\"\u003e\u003ccode\u003e7669841\u003c/code\u003e\u003c/a\u003e Fix crash on recursive alias in indirection.py (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19845\"\u003e#19845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/03fbaa941bccc3a9f8aea796d586603b67119bf2\"\u003e\u003ccode\u003e03fbaa9\u003c/code\u003e\u003c/a\u003e bump version to 1.18.1 due to wheels failure\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/b44a1fbf0cf9fd90fd29d6bcd9f64c55dd2fd4c8\"\u003e\u003ccode\u003eb44a1fb\u003c/code\u003e\u003c/a\u003e removed +dev from version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/7197a99d1aebb1b7a584f82a53c44efb7dddf136\"\u003e\u003ccode\u003e7197a99\u003c/code\u003e\u003c/a\u003e Removed Unreleased in the Changelog for Release 1.18 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19827\"\u003e#19827\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.17.1...v1.18.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyinstaller` from 6.15.0 to 6.16.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyinstaller/pyinstaller/releases\"\u003epyinstaller's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev6.16.0\u003c/h2\u003e\n\u003cp\u003ePlease see the \u003ca href=\"https://pyinstaller.org/en/v6.16.0/CHANGES.html#id1\"\u003ev6.16.0 section of the changelog\u003c/a\u003e for a list of the changes since v6.15.0.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyinstaller/pyinstaller/blob/develop/doc/CHANGES.rst\"\u003epyinstaller's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.16.0 (2025-09-13)\u003c/h2\u003e\n\u003cp\u003eFeatures\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* (POSIX) Adjust the destination directory for collected python's standard\n  extensions, from ``lib-dynload`` to ``python3.x/lib-dynload`` directory,\n  in order to preserve the relative relationship between the extension\n  location and the (grand-parent) shared library directory that is commonly\n  found in POSIX python environments. This is required for compatibility\n  with upcoming Linux builds of ``astral-sh/python-build-standalone#`` that\n  will set relative library paths in extensions via both ``DT_NEEDED`` and\n  ``DT_RPATH``. (:issue:`9212`)\n* Rework the anonymization of the ``co_filename`` attribute in collected\n  code objects - instead of trying to obtain anonymized relative name by\n  removing known path prefixes from the original absolute-path ``co_filename``,\n  we now construct the anonymized relative name directly from the collected\n  module's (or script's) destination name w.r.t. its destination container\n  (i.e., the ``PKG`` archive, the ``PYZ`` archive, or the ``base_library.zip``\n  archive). (:issue:`9226`)\n* Rework the search for python shared library in order to reduce amount of\n  guess-work and better accommodate variations in naming across platforms\n  and due to different build options (e.g., debug build with \u0026quot;d\u0026quot; suffix,\n  free-thread build with \u0026quot;t\u0026quot; suffix, combination of both).\n\u003cp\u003eOn Windows, the loaded python DLL is now resolved by calling\n\u003ccode\u003eGetModuleFileName\u003c/code\u003e\non the handle exposed by :data:\u003ccode\u003esys.dllhandle\u003c/code\u003e; this applies to python.org\nWindows\nbuilds, Anaconda python on Windows, and MSYS2 python.\u003c/p\u003e\n\u003cp\u003eOn other platforms, first explicitly verify that shared library is enabled,\nby checking the value of \u003ccode\u003ePy_ENABLE_SHARED\u003c/code\u003e variable exposed by the\n\u003ccode\u003esysconfig\u003c/code\u003e module. On macOS, also check if .framework bundle is\nenabled instead, which is implied by a non-empty \u003ccode\u003ePYTHONFRAMEWORK\u003c/code\u003e\nvariable in \u003ccode\u003esysconfig\u003c/code\u003e. If shared library is enabled, use \u003ccode\u003eINSTSONAME\u003c/code\u003e\nvariable exposed by \u003ccode\u003esysconfig\u003c/code\u003e module as the only source of truth\nw.r.t. its name. This works even with Debian-packaged python and\n\u003ccode\u003eastral-sh/python-build-standalone\u003c/code\u003e POSIX builds; while they have\ntheir \u003ccode\u003epython\u003c/code\u003e executable statically linked against python shared\nlibrary, they seem to properly set these variables.\u003c/p\u003e\n\u003cp\u003eIn contrast, both Linux and macOS builds of Anaconda python seem to\nbuild their interpreter executable and python shared library separately,\nso the interpreter reports \u003ccode\u003ePy_ENABLE_SHARED\u003c/code\u003e variable to be set to \u003ccode\u003e0\u003c/code\u003e\n(and \u003ccode\u003eINSTSONAME\u003c/code\u003e gives name of the static library). Therefore, for\nAnaconda python on non-Windows, use the old approach of guessing the\nlibrary name from the major and minor version and whether free-threading\nis enabled or not (i.e., the presence of the \u0026quot;t\u0026quot; suffix).\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyinstaller/pyinstaller/commit/7f2ae63f703ae27955722eac4891678b546d513a\"\u003e\u003ccode\u003e7f2ae63\u003c/code\u003e\u003c/a\u003e Release v6.16.0. [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyinstaller/pyinstaller/commit/26838344a27c93c4461a0d76f24a77a1a0da4c78\"\u003e\u003ccode\u003e2683834\u003c/code\u003e\u003c/a\u003e ci: move work-around for potentially broken setuptools upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyinstaller/pyinstaller/commit/383196a847af1a9faefcdcd2295c17a46dfbc850\"\u003e\u003ccode\u003e383196a\u003c/code\u003e\u003c/a\u003e ci: fix check for broken setuptools upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyinstaller/pyinstaller/commit/5447da7971c6e156f98f6fe96a2952ac058b00bd\"\u003e\u003ccode\u003e5447da7\u003c/code\u003e\u003c/a\u003e ci/test requirements: Track setuptools in tests/requirements-libraries.txt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyinstaller/pyinstaller/commit/95226dac821f89cd45c3f9cc4a66a542b883ee47\"\u003e\u003ccode\u003e95226da\u003c/code\u003e\u003c/a\u003e Remove empty pytest.ini allegedly needed by test entrypoints\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyinstaller/pyinstaller/commit/255305debec6a7f56ca4fd29ad0905cd60251359\"\u003e\u003ccode\u003e255305d\u003c/code\u003e\u003c/a\u003e setup: Drop questionable/pointless project keywords\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyinstaller/pyinstaller/commit/5df0f47c88465fdc25e3279813ebdcd2ba2c74cb\"\u003e\u003ccode\u003e5df0f47\u003c/code\u003e\u003c/a\u003e setup: Drop setuptools, move to hatchling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyinstaller/pyinstaller/commit/100c9ce0e9c0525e6a83bbebb541f7034cea69cd\"\u003e\u003ccode\u003e100c9ce\u003c/code\u003e\u003c/a\u003e bootloader build: Address noisy deprecation warning from waf\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyinstaller/pyinstaller/commit/52782f8e1f8fb76084d6812c2d5f2c46b2ae071d\"\u003e\u003ccode\u003e52782f8\u003c/code\u003e\u003c/a\u003e release: Add retry for compiling with qemu\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyinstaller/pyinstaller/commit/9e84501bdc70c500cba7344b6698f4a2134a09b6\"\u003e\u003ccode\u003e9e84501\u003c/code\u003e\u003c/a\u003e Move non packaging configuration out of setup.cfg/pyproject.toml\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyinstaller/pyinstaller/compare/v6.15.0...v6.16.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyinstaller-hooks-contrib` from 2025.8 to 2025.9\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyinstaller/pyinstaller-hooks-contrib/releases\"\u003epyinstaller-hooks-contrib's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2025.9\u003c/h2\u003e\n\u003cp\u003ePlease see the \u003ca href=\"https://www.github.com/pyinstaller/pyinstaller-hooks-contrib/tree/v2025.9/CHANGELOG.rst\"\u003echangelog\u003c/a\u003e for more details\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/pyinstaller/pyinstaller-hooks-contrib/blob/master/CHANGELOG.rst\"\u003epyinstaller-hooks-contrib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025.9 (2025-09-24)\u003c/h2\u003e\n\u003cp\u003eNew hooks\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Add hook for ``cumm`` to ensure that header files from ``cumm/include``\n  directory are collected. (`[#941](https://github.com/pyinstaller/pyinstaller-hooks-contrib/issues/941)\n  \u0026lt;https://github.com/pyinstaller/pyinstaller-hooks-contrib/issues/941\u0026gt;`_)\n* Add hook for ``globus_sdk`` package. (`[#940](https://github.com/pyinstaller/pyinstaller-hooks-contrib/issues/940)\n  \u0026lt;https://github.com/pyinstaller/pyinstaller-hooks-contrib/issues/940\u0026gt;`_)\n* Add hook for ``pointcept`` to collect its source .py files for\n  TorchScript/JIT. (`[#941](https://github.com/pyinstaller/pyinstaller-hooks-contrib/issues/941)\n  \u0026lt;https://github.com/pyinstaller/pyinstaller-hooks-contrib/issues/941\u0026gt;`_)\n\u003cp\u003eUpdated hooks\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eHarden \u003ccode\u003eblib2to3\u003c/code\u003e and \u003ccode\u003etorch\u003c/code\u003e hooks against missing \u003ccode\u003eRECORD\u003c/code\u003e in\nthe corresponding distributions' metadata, which would lead to a\n\u003ccode\u003e'NoneType' object is not iterable\u003c/code\u003e error when the hook tries to iterate\nover distribution's file list. (\u003ccode\u003e[#942](https://github.com/pyinstaller/pyinstaller-hooks-contrib/issues/942) \u0026lt;https://github.com/pyinstaller/pyinstaller-hooks-contrib/issues/942\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003enumba\u003c/code\u003e hook for changes made in \u003ccode\u003enumba\u003c/code\u003e v0.62.0 (i.e., removal\nof the new type system that was previously introduced in v0.61 series).\n(\u003ccode\u003e[#949](https://github.com/pyinstaller/pyinstaller-hooks-contrib/issues/949) \u0026lt;https://github.com/pyinstaller/pyinstaller-hooks-contrib/issues/949\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003etorch\u003c/code\u003e hook to check whether \u003ccode\u003etorch\u003c/code\u003e is installed via\nAnaconda \u003ccode\u003epytorch\u003c/code\u003e package, and collect DLLs from Anaconda \u003ccode\u003emkl\u003c/code\u003e\npackage and its dependencies, if necessary. (\u003ccode\u003e[#941](https://github.com/pyinstaller/pyinstaller-hooks-contrib/issues/941) \u0026lt;https://github.com/pyinstaller/pyinstaller-hooks-contrib/issues/941\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/pyinstaller/pyinstaller-hooks-contrib/commit/7bbc31095478c8845208537bf19c59e2d5fb2930\"\u003e\u003ccode\u003e7bbc310\u003c/code\u003e\u003c/a\u003e Release v2025.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyinstaller/pyinstaller-hooks-contrib/commit/800eb2c86c77e6f8284109d26437fe4d6178b47e\"\u003e\u003ccode\u003e800eb2c\u003c/code\u003e\u003c/a\u003e Scheduled weekly dependency update for week 38 (\u003ca href=\"https://redirect.github.com/pyinstaller/pyinstaller-hooks-contrib/issues/948\"\u003e#948\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyinstaller/pyinstaller-hooks-contrib/commit/1befd936569471e5357d765bc56995d883c3ffd3\"\u003e\u003ccode\u003e1befd93\u003c/code\u003e\u003c/a\u003e hooks: update \u003ccode\u003enumba\u003c/code\u003e hook for changes made in \u003ccode\u003enumba\u003c/code\u003e v0.62.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyinstaller/pyinstaller-hooks-contrib/commit/53ddb3821b744b893240d7285d64e78073e1e265\"\u003e\u003ccode\u003e53ddb38\u003c/code\u003e\u003c/a\u003e Scheduled weekly dependency update for week 37 (\u003ca href=\"https://redirect.github.com/pyinstaller/pyinstaller-hooks-contrib/issues/947\"\u003e#947\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyinstaller/pyinstaller-hooks-contrib/commit/34e96037025869c2f57f8fbdfa546a8b2fa03401\"\u003e\u003ccode\u003e34e9603\u003c/code\u003e\u003c/a\u003e Scheduled weekly dependency update for week 36 (\u003ca href=\"https://redirect.github.com/pyinstaller/pyinstaller-hooks-contrib/issues/944\"\u003e#944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyinstaller/pyinstaller-hooks-contrib/commit/99284ecea116c90795729df1a970c61c63d62701\"\u003e\u003ccode\u003e99284ec\u003c/code\u003e\u003c/a\u003e hooks: update clr hook to use importlib_metadata from compat module\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyinstaller/pyinstaller-hooks-contrib/commit/31294a5930f146c3794e653a51d57f007f7cc6c9\"\u003e\u003ccode\u003e31294a5\u003c/code\u003e\u003c/a\u003e hooks: harden blib2to3 and torch hooks against missing RECORD in metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyinstaller/pyinstaller-hooks-contrib/commit/780e05e1f1d8f408bdf01a874fa39e0a8371f1fc\"\u003e\u003ccode\u003e780e05e\u003c/code\u003e\u003c/a\u003e ci: macOS: remove the pre-installed cmake\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyinstaller/pyinstaller-hooks-contrib/commit/dd7b3f49643def70ee11be6d00f2280c1996745e\"\u003e\u003ccode\u003edd7b3f4\u003c/code\u003e\u003c/a\u003e Tests: Requirements: Scheduled weekly dependency update for week 35\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyinstaller/pyinstaller-hooks-contrib/commit/9c7bdc9311aedc0c83a5dbbdf1348b7fee8dc855\"\u003e\u003ccode\u003e9c7bdc9\u003c/code\u003e\u003c/a\u003e hooks: add a hook for pointcept\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyinstaller/pyinstaller-hooks-contrib/compare/v2025.8...v2025.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.4.1 to 8.4.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.4.2\u003c/h2\u003e\n\u003ch1\u003epytest 8.4.2 (2025-09-03)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13478\"\u003e#13478\u003c/a\u003e: Fixed a crash when using \u003ccode\u003econsole_output_style\u003c/code\u003e{.interpreted-text role=\u0026quot;confval\u0026quot;} with \u003ccode\u003etimes\u003c/code\u003e and a module is skipped.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13530\"\u003e#13530\u003c/a\u003e: Fixed a crash when using \u003ccode\u003epytest.approx\u003c/code\u003e{.interpreted-text role=\u0026quot;func\u0026quot;} and \u003ccode\u003edecimal.Decimal\u003c/code\u003e{.interpreted-text role=\u0026quot;class\u0026quot;} instances with the \u003ccode\u003edecimal.FloatOperation\u003c/code\u003e{.interpreted-text role=\u0026quot;class\u0026quot;} trap set.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13549\"\u003e#13549\u003c/a\u003e: No longer evaluate type annotations in Python \u003ccode\u003e3.14\u003c/code\u003e when inspecting function signatures.\u003c/p\u003e\n\u003cp\u003eThis prevents crashes during module collection when modules do not explicitly use \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e and import types for annotations within a \u003ccode\u003eif TYPE_CHECKING:\u003c/code\u003e block.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13559\"\u003e#13559\u003c/a\u003e: Added missing [int]{.title-ref} and [float]{.title-ref} variants to the [Literal]{.title-ref} type annotation of the [type]{.title-ref} parameter in \u003ccode\u003epytest.Parser.addini\u003c/code\u003e{.interpreted-text role=\u0026quot;meth\u0026quot;}.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13563\"\u003e#13563\u003c/a\u003e: \u003ccode\u003epytest.approx\u003c/code\u003e{.interpreted-text role=\u0026quot;func\u0026quot;} now only imports \u003ccode\u003enumpy\u003c/code\u003e if NumPy is already in \u003ccode\u003esys.modules\u003c/code\u003e. This fixes unconditional import behavior introduced in [8.4.0]{.title-ref}.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13577\"\u003e#13577\u003c/a\u003e: Clarify that \u003ccode\u003epytest_generate_tests\u003c/code\u003e is discovered in test modules/classes; other hooks must be in \u003ccode\u003econftest.py\u003c/code\u003e or plugins.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13480\"\u003e#13480\u003c/a\u003e: Self-testing: fixed a few test failures when run with \u003ccode\u003e-Wdefault\u003c/code\u003e or a similar override.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13547\"\u003e#13547\u003c/a\u003e: Self-testing: corrected expected message for \u003ccode\u003etest_doctest_unexpected_exception\u003c/code\u003e in Python \u003ccode\u003e3.14\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13684\"\u003e#13684\u003c/a\u003e: Make pytest's own testsuite insensitive to the presence of the \u003ccode\u003eCI\u003c/code\u003e environment variable -- by \u003ccode\u003eogrisel\u003c/code\u003e{.interpreted-text role=\u0026quot;user\u0026quot;}.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bfae4224fd554d3d7f2c277a4cc092b6ec6af3ae\"\u003e\u003ccode\u003ebfae422\u003c/code\u003e\u003c/a\u003e Prepare release version 8.4.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/89905381a163be30ae87d62e5f750e902d750c5f\"\u003e\u003ccode\u003e8990538\u003c/code\u003e\u003c/a\u003e Fix passenv CI in tox ini and make tests insensitive to the presence of the C...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ca676bfe005aebcb12f4146d1b0f1d2772e2cd5d\"\u003e\u003ccode\u003eca676bf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13687\"\u003e#13687\u003c/a\u003e from pytest-dev/patchback/backports/8.4.x/e63f6e51c...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/975a60a63ce385a44655596e254c1899feaa53e4\"\u003e\u003ccode\u003e975a60a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13686\"\u003e#13686\u003c/a\u003e from pytest-dev/patchback/backports/8.4.x/12bde8af6...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7723ce84b87ab08f86ddafcb342acc28ba5ec99d\"\u003e\u003ccode\u003e7723ce8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13683\"\u003e#13683\u003c/a\u003e from even-even/fix_Exeption_to_Exception_in_errorMe...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7f05680d1301e0969b30bcb3c4b27433c9ee2b7\"\u003e\u003ccode\u003eb7f0568\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13685\"\u003e#13685\u003c/a\u003e from CoretexShadow/fix/docs-pytest-generate-tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/2c94c4a6948ba53440818389298157fa5d5f94cd\"\u003e\u003ccode\u003e2c94c4a\u003c/code\u003e\u003c/a\u003e add missing colon (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13640\"\u003e#13640\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13641\"\u003e#13641\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c3d7684bc01c8c48d05145a30c5211ca8656c68c\"\u003e\u003ccode\u003ec3d7684\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13606\"\u003e#13606\u003c/a\u003e from pytest-dev/patchback/backports/8.4.x/5f9938563...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/dc6e3be2ddc75a149b6d102d9b7c82ee47a00cfa\"\u003e\u003ccode\u003edc6e3be\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13605\"\u003e#13605\u003c/a\u003e from The-Compiler/training-update-2025-07\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f87289c36c8dbe7740e3020f5546b6f8b0861ff0\"\u003e\u003ccode\u003ef87289c\u003c/code\u003e\u003c/a\u003e Fix crash with \u003ccode\u003etimes\u003c/code\u003e output style and skipped module (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13573\"\u003e#13573\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13579\"\u003e#13579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.4.1...8.4.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-cov` from 6.2.1 to 7.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst\"\u003epytest-cov's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.0.0 (2025-09-09)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped support for subprocesses measurement.\u003c/p\u003e\n\u003cp\u003eIt was a feature added long time ago when coverage lacked a nice way to measure subprocesses created in tests.\nIt relied on a \u003ccode\u003e.pth\u003c/code\u003e file, there was no way to opt-out and it created bad interations\nwith \u003ccode\u003ecoverage's new patch system \u0026lt;https://coverage.readthedocs.io/en/latest/config.html#run-patch\u0026gt;\u003c/code\u003e_ added\nin \u003ccode\u003e7.10 \u0026lt;https://coverage.readthedocs.io/en/7.10.6/changes.html#version-7-10-0-2025-07-24\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003eTo migrate to this release you might need to enable the suprocess patch, example for \u003ccode\u003e.coveragerc\u003c/code\u003e:\u003c/p\u003e\n\u003cp\u003e.. code-block:: ini\u003c/p\u003e\n\u003cp\u003e[run]\npatch = subprocess\u003c/p\u003e\n\u003cp\u003eThis release also requires at least coverage 7.10.6.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSwitched packaging to have metadata completely in \u003ccode\u003epyproject.toml\u003c/code\u003e and use \u003ccode\u003ehatchling \u0026lt;https://pypi.org/project/hatchling/\u0026gt;\u003c/code\u003e_ for\nbuilding.\nContributed by Ofek Lev in \u003ccode\u003e[#551](https://github.com/pytest-dev/pytest-cov/issues/551) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/551\u0026gt;\u003c/code\u003e_\nwith some extras in \u003ccode\u003e[#716](https://github.com/pytest-dev/pytest-cov/issues/716) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/716\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved some not really necessary testing deps like \u003ccode\u003esix\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.3.0 (2025-09-06)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for markdown reports.\nContributed by Marcos Boger in \u003ccode\u003e[#712](https://github.com/pytest-dev/pytest-cov/issues/712) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/712\u0026gt;\u003c/code\u003e_\nand \u003ccode\u003e[#714](https://github.com/pytest-dev/pytest-cov/issues/714) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/714\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eFixed some formatting issues in docs.\nAnonymous contribution in \u003ccode\u003e[#706](https://github.com/pytest-dev/pytest-cov/issues/706) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/706\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/224d8964caad90074a8cf6dc8720b8f70f31629b\"\u003e\u003ccode\u003e224d896\u003c/code\u003e\u003c/a\u003e Bump version: 6.3.0 → 7.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/73424e3999f865eac72e27f09d5fe11b9703cfd6\"\u003e\u003ccode\u003e73424e3\u003c/code\u003e\u003c/a\u003e Cleanup the docs a bit.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/36f1cc2967831dbd4c8aa70086fc86dc495f8b9a\"\u003e\u003ccode\u003e36f1cc2\u003c/code\u003e\u003c/a\u003e Bump pins in template.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/f299c590a63a48e51e3ae949993dc7bb1f1d480d\"\u003e\u003ccode\u003ef299c59\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 2 updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/25f0b2e0cdbc345c0d3e49170f7a328c3e0d805f\"\u003e\u003ccode\u003e25f0b2e\u003c/code\u003e\u003c/a\u003e Update docs/config.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/bb23eacc5531fb8f499213d8420407e0d72f88e3\"\u003e\u003ccode\u003ebb23eac\u003c/code\u003e\u003c/a\u003e Improve configuration docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/a19531e91e1ab753ccf648a2d9bab08a6fddebb9\"\u003e\u003ccode\u003ea19531e\u003c/code\u003e\u003c/a\u003e Switch from build/pre-commit to uv/prek - this should make this faster.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/82f999391073f2fb8ae422af452602f310086a2a\"\u003e\u003ccode\u003e82f9993\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/211b5cd41c29916bc643b4a11b00578ba4fd6fe8\"\u003e\u003ccode\u003e211b5cd\u003c/code\u003e\u003c/a\u003e Fix links.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/97aadd74bcbc00a2078d240e8fe871dd62b83d80\"\u003e\u003ccode\u003e97aadd7\u003c/code\u003e\u003c/a\u003e Update some ci config, reformat and apply some lint fixes.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-cov/compare/v6.2.1...v7.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.12.7 to 0.13.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.13.2\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-09-25.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Implement \u003ccode\u003eblocking-path-method\u003c/code\u003e (\u003ccode\u003eASYNC240\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20264\"\u003e#20264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Implement \u003ccode\u003emap-without-explicit-strict\u003c/code\u003e (\u003ccode\u003eB912\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20429\"\u003e#20429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bultins\u003c/code\u003e] Detect class-scope builtin shadowing in decorators, default args, and attribute initializers (\u003ccode\u003eA003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20178\"\u003e#20178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Implement \u003ccode\u003elogging-eager-conversion\u003c/code\u003e (\u003ccode\u003eRUF065\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19942\"\u003e#19942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInclude \u003ccode\u003e.pyw\u003c/code\u003e files by default when linting and formatting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20458\"\u003e#20458\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeduplicate input paths (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20105\"\u003e#20105\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Preserve trailing commas for single-element lists (\u003ccode\u003eC409\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19571\"\u003e#19571\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Avoid syntax error from conflict with \u003ccode\u003ePIE790\u003c/code\u003e (\u003ccode\u003ePYI021\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20010\"\u003e#20010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Correct fix for positive \u003ccode\u003emaxsplit\u003c/code\u003e without separator (\u003ccode\u003eSIM905\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20056\"\u003e#20056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix \u003ccode\u003eUP008\u003c/code\u003e not to apply when \u003ccode\u003e__class__\u003c/code\u003e is a local variable (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20497\"\u003e#20497\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Fix \u003ccode\u003eB004\u003c/code\u003e to skip invalid \u003ccode\u003ehasattr\u003c/code\u003e/\u003ccode\u003egetattr\u003c/code\u003e calls (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20486\"\u003e#20486\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Replace \u003ccode\u003e-nan\u003c/code\u003e with \u003ccode\u003enan\u003c/code\u003e when using the value to construct a \u003ccode\u003eDecimal\u003c/code\u003e (\u003ccode\u003eFURB164\u003c/code\u003e ) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20391\"\u003e#20391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd 'Finding ways to help' to CONTRIBUTING.md (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20567\"\u003e#20567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate import path to \u003ccode\u003eruff-wasm-web\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20539\"\u003e#20539\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Clarify the supported hashing functions (\u003ccode\u003eS324\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20534\"\u003e#20534\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eplayground\u003c/code\u003e] Allow hover quick fixes to appear for overlapping diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20527\"\u003e#20527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eplayground\u003c/code\u003e] Fix non‑BMP code point handling in quick fixes and markers (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20526\"\u003e#20526\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BurntSushi\"\u003e\u003ccode\u003e@​BurntSushi\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtshiba\"\u003e\u003ccode\u003e@​mtshiba\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/second-ed\"\u003e\u003ccode\u003e@​second-ed\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/danparizher\"\u003e\u003ccode\u003e@​danparizher\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ShikChen\"\u003e\u003ccode\u003e@​ShikChen\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PieterCK\"\u003e\u003ccode\u003e@​PieterCK\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GDYendell\"\u003e\u003ccode\u003e@​GDYendell\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RazerM\"\u003e\u003ccode\u003e@​RazerM\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TaKO8Ki\"\u003e\u003ccode\u003e@​TaKO8Ki\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntbre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.13.2\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.13.2\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-09-25.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Implement \u003ccode\u003eblocking-path-method\u003c/code\u003e (\u003ccode\u003eASYNC240\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20264\"\u003e#20264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Implement \u003ccode\u003emap-without-explicit-strict\u003c/code\u003e (\u003ccode\u003eB912\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20429\"\u003e#20429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bultins\u003c/code\u003e] Detect class-scope builtin shadowing in decorators, default args, and attribute initializers (\u003ccode\u003eA003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20178\"\u003e#20178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Implement \u003ccode\u003elogging-eager-conversion\u003c/code\u003e (\u003ccode\u003eRUF065\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19942\"\u003e#19942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInclude \u003ccode\u003e.pyw\u003c/code\u003e files by default when linting and formatting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20458\"\u003e#20458\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeduplicate input paths (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20105\"\u003e#20105\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Preserve trailing commas for single-element lists (\u003ccode\u003eC409\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19571\"\u003e#19571\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Avoid syntax error from conflict with \u003ccode\u003ePIE790\u003c/code\u003e (\u003ccode\u003ePYI021\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20010\"\u003e#20010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Correct fix for positive \u003ccode\u003emaxsplit\u003c/code\u003e without separator (\u003ccode\u003eSIM905\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20056\"\u003e#20056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix \u003ccode\u003eUP008\u003c/code\u003e not to apply when \u003ccode\u003e__class__\u003c/code\u003e is a local variable (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20497\"\u003e#20497\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Fix \u003ccode\u003eB004\u003c/code\u003e to skip invalid \u003ccode\u003ehasattr\u003c/code\u003e/\u003ccode\u003egetattr\u003c/code\u003e calls (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20486\"\u003e#20486\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Replace \u003ccode\u003e-nan\u003c/code\u003e with \u003ccode\u003enan\u003c/code\u003e when using the value to construct a \u003ccode\u003eDecimal\u003c/code\u003e (\u003ccode\u003eFURB164\u003c/code\u003e ) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20391\"\u003e#20391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd 'Finding ways to help' to CONTRIBUTING.md (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20567\"\u003e#20567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate import path to \u003ccode\u003eruff-wasm-web\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20539\"\u003e#20539\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Clarify the supported hashing functions (\u003ccode\u003eS324\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20534\"\u003e#20534\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eplayground\u003c/code\u003e] Allow hover quick fixes to appear for overlapping diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20527\"\u003e#20527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eplayground\u003c/code\u003e] Fix non‑BMP code point handling in quick fixes and markers (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20526\"\u003e#20526\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BurntSushi\"\u003e\u003ccode\u003e@​BurntSushi\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtshiba\"\u003e\u003ccode\u003e@​mtshiba\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/second-ed\"\u003e\u003ccode\u003e@​second-ed\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/danparizher\"\u003e\u003ccode\u003e@​danparizher\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ShikChen\"\u003e\u003ccode\u003e@​ShikChen\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PieterCK\"\u003e\u003ccode\u003e@​PieterCK\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GDYendell\"\u003e\u003ccode\u003e@​GDYendell\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RazerM\"\u003e\u003ccode\u003e@​RazerM\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TaKO8Ki\"\u003e\u003ccode\u003e@​TaKO8Ki\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntbre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.13.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b0bdf0334e38417f8617057cd0392a4b53954120\"\u003e\u003ccode\u003eb0bdf03\u003c/code\u003e\u003c/a\u003e Bump 0.13.2 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20576\"\u003e#20576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7331d393c555ece88aa69f685562163790ddf611\"\u003e\u003ccode\u003e7331d39\u003c/code\u003e\u003c/a\u003e Update rooster to 0.1.0 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20575\"\u003e#20575\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/529e5fa6c24ea68501adb18245eab27c701598d2\"\u003e\u003ccode\u003e529e5fa\u003c/code\u003e\u003c/a\u003e [ty] Ecosystem analyzer: timing report (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20571\"\u003e#20571\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/efbb80f7475c63b62981444d5c429109ff12ad32\"\u003e\u003ccode\u003eefbb80f\u003c/code\u003e\u003c/a\u003e [ty] Remove hack in protocol satisfiability check (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20568\"\u003e#20568\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9f3cffc65cb834661e17263245761a66f9474af0\"\u003e\u003ccode\u003e9f3cffc\u003c/code\u003e\u003c/a\u003e Add 'Finding ways to help' to CONTRIBUTING.md (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20567\"\u003e#20567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/21be94ac33f445d8a681babec6c56ca3d1b67156\"\u003e\u003ccode\u003e21be94a\u003c/code\u003e\u003c/a\u003e [ty] Explicitly test assignability/subtyping between unions of nominal types ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b7d5dc98c193cc5cab00d557b6a392d35137d990\"\u003e\u003ccode\u003eb7d5dc9\u003c/code\u003e\u003c/a\u003e [ty] Add tests for interactions of \u003ccode\u003e@classmethod\u003c/code\u003e, \u003ccode\u003e@staticmethod\u003c/code\u003e, and proto...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e1bb74b25a0f730a5baff263d753ffe03cf857b1\"\u003e\u003ccode\u003ee1bb74b\u003c/code\u003e\u003c/a\u003e [ty] Match variadic argument to variadic parameter (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20511\"\u003e#20511\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/edeb45804ef9dbe348d393f3ab77288062a3c77e\"\u003e\u003ccode\u003eedeb458\u003c/code\u003e\u003c/a\u003e [ty] fallback to resolve_real_module in file_to_module (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20461\"\u003e#20461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/bea92c822980b1575d58542dffa2c960393d7603\"\u003e\u003ccode\u003ebea92c8\u003c/code\u003e\u003c/a\u003e [ty] More precise type inference for dictionary literals (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20523\"\u003e#20523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.12.7...0.13.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `syrupy` from 4.9.1 to 5.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/syrupy-project/syrupy/releases\"\u003esyrupy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.0.0\u003c/h2\u003e\n\u003ch2\u003eSyrupy 5.0.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e(2025-09-28)\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eThis release introduces new features, bug fixes, and a major license change. It also includes several \u003cstrong\u003ebreaking changes\u003c/strong\u003e, so please review those carefully before upgrading.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch3\u003eNew Features ✨\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eAdd \u003ccode\u003e--snapshot-dirname\u003c/code\u003e option:\u003c/strong\u003e A new option, \u003ccode\u003e--snapshot-dirname\u003c/code\u003e, is now available to change the default directory snapshots are stored in. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003e#810\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003esyrupy-project/syrupy#810\u003c/a\u003e))\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRemove private underscore prefix:\u003c/strong\u003e The unnecessary underscore prefixes have been removed from public methods for better code clarity. ([\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003e8cfc905\u003c/a\u003e](\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003ehttps://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\u003c/a\u003e))\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch3\u003eBug Fixes 🐛\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFix terminal summary for \u003ccode\u003exdist\u003c/code\u003e workers:\u003c/strong\u003e Resolves an issue where the terminal summary was not displayed correctly with \u003ccode\u003exdist\u003c/code\u003e workers. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/978\"\u003e#978\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/978\"\u003esyrupy-project/syrupy#978\u003c/a\u003e))\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eEnsure \u003ccode\u003epytest_assertrepr_compare\u003c/code\u003e hook is called first:\u003c/strong\u003e This change ensures that Syrupy's assertion hook takes precedence, improving compatibility with other plugins. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/984\"\u003e#984\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/984\"\u003esyrupy-project/syrupy#984\u003c/a\u003e))\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch3\u003eBreaking Changes ⚠️\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eLicense change:\u003c/strong\u003e The project has switched to the more permissive \u003cstrong\u003eMIT license\u003c/strong\u003e. This change applies to all versions from 5.0.0 and beyond. If you need to use the previous Apache 2.0 license, you must continue to use Syrupy versions 4.x or earlier. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/945\"\u003e#945\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/945\"\u003esyrupy-project/syrupy#945\u003c/a\u003e))\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003ePython and pytest version requirements:\u003c/strong\u003e Syrupy now requires \u003cstrong\u003ePython 3.10\u003c/strong\u003e or higher. Support for Python 3.8 has been dropped as it reached its end of life in October 2024. The minimum required version of \u003cstrong\u003epytest is v8\u003c/strong\u003e. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/904\"\u003e#904\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/904\"\u003esyrupy-project/syrupy#904\u003c/a\u003e), [\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003e#1024\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003esyrupy-project/syrupy#1024\u003c/a\u003e))\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eMethod and constant name changes:\u003c/strong\u003e Several methods and constants have been renamed for improved clarity and to align with public API standards.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ccode\u003eSnapshotCollectionStorage\u003c/code\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e_read_snapshot_collection\u003c/code\u003e -\u0026gt; \u003ccode\u003eread_snapshot_collection\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_read_snapshot_data_from_location\u003c/code\u003e -\u0026gt; \u003ccode\u003eread_snapshot_data_from_location\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_write_snapshot_collection\u003c/code\u003e -\u0026gt; \u003ccode\u003ewrite_snapshot_collection\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_get_file_basename\u003c/code\u003e -\u0026gt; \u003ccode\u003eget_file_basename\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_file_extension\u003c/code\u003e -\u0026gt; \u003ccode\u003efile_extension\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ccode\u003eAmberDataSerializer\u003c/code\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e_snapshot_sort_key\u003c/code\u003e -\u0026gt; \u003ccode\u003esnapshot_sort_key\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eConstants\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eSNAPSHOT_EMPTY_FOSSIL_KEY\u003c/code\u003e -\u0026gt; \u003ccode\u003eSNAPSHOT_EMPTY_COLLECTION_KEY\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSNAPSHOT_UNKNOWN_FOSSIL_KEY\u003c/code\u003e -\u0026gt; \u003ccode\u003eSNAPSHOT_UNKNOWN_COLLECTION_KEY\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSNAPSHOT_DIRNAME\u003c/code\u003e has been removed in favour of the property on the \u003ccode\u003eSnapshotCollectionStorage\u003c/code\u003e class and associated CLI option.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\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/paul-ollis\"\u003e\u003ccode\u003e@​paul-ollis\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/978\"\u003esyrupy-project/syrupy#978\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rahuliyer95\"\u003e\u003ccode\u003e@​rahuliyer95\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/984\"\u003esyrupy-project/syrupy#984\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\"\u003ehttps://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/syrupy-project/syrupy/blob/main/CHANGELOG.md\"\u003esyrupy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\"\u003e5.0.0\u003c/a\u003e (2025-09-28)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch to MIT license (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/945\"\u003e#945\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/d74d340f8884fdb04831fcf77f29d66e098aaa66\"\u003ed74d340\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlock terminal summary for xdist workers. (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/978\"\u003e#978\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/33a848df7c4a33577e4057eae5792f6592ad3172\"\u003e33a848d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eensure syrupy's pytest_assertrepr_compare hook is called first. (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/984\"\u003e#984\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/eb0024d339248b7e1f76fdb65ed30ba3e19c0857\"\u003eeb0024d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove incorrect private underscore prefix from public methods (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003e8cfc905\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd --snapshot-dirname option, close \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003e#810\u003c/a\u003e (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/27135c7c861441962c2cedde841f3e4fed2949fd\"\u003e27135c7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edrop support for py3.8, raise min. pytest to v8 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/904\"\u003e#904\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/a879ff15ad82e59a2f387db0822be072a5684f2f\"\u003ea879ff1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate min. python version to 3.10 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003e#1024\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/16b4113cd56da96e84a90ebda0919e9b8dd35954\"\u003e16b4113\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe following methods have been renamed:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSnapshotCollectionStorage\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e_read_snapshot_collection -\u0026gt; read_snapshot_collection\u003c/li\u003e\n\u003cli\u003e_read_snapshot_data_from_location -\u0026gt; read_snapshot_data_from_location\u003c/li\u003e\n\u003cli\u003e_write_snapshot_collection -\u0026gt; write_snapshot_collection\u003c/li\u003e\n\u003cli\u003e_get_file_basename -\u0026gt; get_file_basename\u003c/li\u003e\n\u003cli\u003e_file_extension -\u0026gt; file_extension\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eAmberDataSerializer\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e_snapshot_sort_key -\u0026gt; snapshot_sort_key\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRenamed constants to improve clarity:\u003c/p\u003e\n\u003cp\u003econstants\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSNAPSHOT_EMPTY_FOSSIL_KEY -\u0026gt; SNAPSHOT_EMPTY_COLLECTION_KEY\u003c/li\u003e\n\u003cli\u003eSNAPSHOT_UNKNOWN_FOSSIL_KEY -\u0026gt; SNAPSHOT_UNKNOWN_COLLECTION_KEY\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003eMin. python version is now 3.10.\u003c/li\u003e\n\u003cli\u003eThe Syrupy project is switching from Apache 2.0 to a more permissive MIT license. By using Syrupy \u0026gt;=5, you agree to abide by this new license. You can continue to use Syrupy v1 through v4 under Apache 2.0.\u003c/li\u003e\n\u003cli\u003eDrops support for Python 3.8 which is end of life as of October 2024. Raises the minimum version of pytest to v8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/9b4cc82e50e29f84dcb55054c8eab281c90a280b\"\u003e\u003ccode\u003e9b4cc82\u003c/code\u003e\u003c/a\u003e chore(release): 5.0.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/af15385acd5bf617815aa0d19e2df907bbbd2d83\"\u003e\u003ccode\u003eaf15385\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1027\"\u003e#1027\u003c/a\u003e from syrupy-project/test_py_3_14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/461ad224d192a18296934e2434b9302fb0984007\"\u003e\u003ccode\u003e461ad22\u003c/code\u003e\u003c/a\u003e chore: test against py3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/95ffbcb085eb920920a7241c814a55c1e948f148\"\u003e\u003ccode\u003e95ffbcb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1026\"\u003e#1026\u003c/a\u003e from syrupy-project/rename_methods\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/27135c7c861441962c2cedde841f3e4fed2949fd\"\u003e\u003ccode\u003e27135c7\u003c/code\u003e\u003c/a\u003e feat: add --snapshot-dirname option, close \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003e#810\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003e\u003ccode\u003e8cfc905\u003c/code\u003e\u003c/a\u003e refactor: remove incorrect private underscore prefix from public methods\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/e1dbf5dc2a1148480aa9601a5e1c21928954b8cc\"\u003e\u003ccode\u003ee1dbf5d\u003c/code\u003e\u003c/a\u003e chore(deps): update python docker tag to v3.13.7 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1025\"\u003e#1025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/16b4113cd56da96e84a90ebda0919e9b8dd35954\"\u003e\u003ccode\u003e16b4113\u003c/code\u003e\u003c/a\u003e feat: update min. python version to 3.10 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003e#1024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/434c63fdabbaaf2372ec94c8968fe025c4a306e6\"\u003e\u003ccode\u003e434c63f\u003c/code\u003e\u003c/a\u003e chore(deps): update codecov/codecov-action action to v5.5.1 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1021\"\u003e#1021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/b2e49bad7741f06c17a0be9f4608c0db5db13cf5\"\u003e\u003ccode\u003eb2e49ba\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency pytest to v8.4.2 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1022\"\u003e#1022\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `types-cachetools` from 6.1.0.20250717 to 6.2.0.20250827\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/typeshed-internal/stub_uploader/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `types-setuptools` from 80.9.0.20250801 to 80.9.0.20250822\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/typeshed-internal/stub_uploader/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `furo` from 2025.7.19 to 2025.9.25\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pradyunsg/furo/blob/main/docs/changelog.md\"\u003efuro's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003e2025.09.25 -- Gleaming Green\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChange the dark mode code back to \u003ccode\u003enative\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2025.07.19 -- Frozen Flame\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Switch to accessible-pygments themes\u003c/li\u003e\n\u003cli\u003e✨ Prefetch the sidebar logos\u003c/li\u003e\n\u003cli\u003e✨ Fix flickering header drop shadow on Safari\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003erel=edit\u003c/code\u003e attribute to \u0026quot;Edit this page\u0026quot; link/icon\u003c/li\u003e\n\u003cli\u003eBump NodeJS and npm dependency versions\u003c/li\u003e\n\u003cli\u003eBump Saas \u0026amp; Webpack major versions\u003c/li\u003e\n\u003cli\u003eImprove current page detection to be resilient to sticky elements above header\u003c/li\u003e\n\u003cli\u003eModernise Sass and use \u003ccode\u003e@use\u003c/code\u003e + \u003ccode\u003e@forward\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove top of code \u003ccode\u003eborder-radius\u003c/code\u003e with captions\u003c/li\u003e\n\u003cli\u003eRemove \u0026quot;debug printf\u0026quot; for headerTop value\u003c/li\u003e\n\u003cli\u003eUse distinct images for light and dark mode in the documentation\u003c/li\u003e\n\u003cli\u003eUse the modern Saas Modules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.08.06 -- Energetic Eminence\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add support for Sphinx 8\u003c/li\u003e\n\u003cli\u003e✨ Add smoother transitions between breakpoints\u003c/li\u003e\n\u003cli\u003eIncrease specificity of table-wrapper selector\u003c/li\u003e\n\u003cli\u003eAvoid page breaks inside paragraphs\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.07.18 -- Dull Denim\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove how icons are handled and aligned.\u003c/li\u003e\n\u003cli\u003eImprove scroll event handler.\u003c/li\u003e\n\u003cli\u003eHide the copybutton by default.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003esource_view_link\u003c/code\u003e configuration handling.\u003c/li\u003e\n\u003cli\u003eFix close tag on pencil icon.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.05.06 -- Cheerful Cerulean\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add new custom icons for auto mode, reflecting the currently active theme.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/7c5f8fac52926f4854141cb5bf374c1681aedbec\"\u003e\u003ccode\u003e7c5f8fa\u003c/code\u003e\u003c/a\u003e Prepare release: 2025.09.25\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/8bfdc54b2e8803450a2cb5dcab643a40b6934be2\"\u003e\u003ccode\u003e8bfdc54\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/d92b62fee4cedd5b2ac1d267353d96541c9e0fb0\"\u003e\u003ccode\u003ed92b62f\u003c/code\u003e\u003c/a\u003e Switch the dark mode theme back to \u003ccode\u003enative\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/83c3446288014357bb8a7875bb81b664b7f15896\"\u003e\u003ccode\u003e83c3446\u003c/code\u003e\u003c/a\u003e Add Blender to \u0026quot;used by\u0026quot; section (\u003ca href=\"https://redirect.github.com/pradyunsg/furo/issues/898\"\u003e#898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/426ea05d879ee7dfdf74ba7c8b089f73081abbfd\"\u003e\u003ccode\u003e426ea05\u003c/code\u003e\u003c/a\u003e Remove old scrollbar selectors (\u003ca href=\"https://redirect.github.com/pradyunsg/furo/issues/892\"\u003e#892\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/d22d31c4b196a29092ac606737b6e9a7ae99273a\"\u003e\u003ccode\u003ed22d31c\u003c/code\u003e\u003c/a\u003e Remove trailing slash on void elements (\u003ca href=\"https://redirect.github.com/pradyunsg/furo/issues/895\"\u003e#895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/f91944a688410f0aecd936b02f658279814ec017\"\u003e\u003ccode\u003ef91944a\u003c/code\u003e\u003c/a\u003e Fix invalid HTML5 (\u003ca href=\"https://redirect.github.com/pradyunsg/furo/issues/894\"\u003e#894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/a1f74d89a18ca59d231fe365bcc1616f6934ad28\"\u003e\u003ccode\u003ea1f74d8\u003c/code\u003e\u003c/a\u003e Back to development\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pradyunsg/furo/compare/2025.07.19...2025.09.25\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-autobuild` from 2024.10.3 to 2025.8.25\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/releases\"\u003esphinx-autobuild's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 2025.08.25\u003c/h2\u003e\n\u003cp\u003e2025.08.25\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/blob/main/NEWS.rst\"\u003esphinx-autobuild's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003eunreleased\u003c/h2\u003e\n\u003ch2\u003e2025.08.25 - 2025-08-25\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9-3.10 to match Sphinx.\u003c/li\u003e\n\u003cli\u003eDeclare support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd an optional \u003ccode\u003e--post-build\u003c/code\u003e flag to run additional commands\nafter building the documentation.\u003c/li\u003e\n\u003cli\u003eAdd support for the \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e environment variable\nto help with debugging.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.03 - 2024-10-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove error handling for failures in pre-build commands.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.02 - 2024-10-02\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eShow the changed paths that triggered the rebuild.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.19 - 2024-09-19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix path filtering on Windows by normalising path separators.\u003c/li\u003e\n\u003cli\u003eFilter various directories by default (\u003ccode\u003e.git\u003c/code\u003e, \u003ccode\u003evenv\u003c/code\u003e, etc).\u003c/li\u003e\n\u003cli\u003eServe the correct directory when using make mode (\u003ccode\u003e-M\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.18 - 2024-09-18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRun Sphinx through the Python entry point rather than the binary on PATH.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.17 - 2024-09-17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRelax checks for paths that aren't required to exist.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.03 - 2024-09-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix support for Python 3.9.\u003c/li\u003e\n\u003cli\u003eFix running \u003ccode\u003esphinx-autobuild\u003c/code\u003e via entry point scripts.\u003c/li\u003e\n\u003cli\u003eRun \u003ccode\u003esphinx-build\u003c/code\u003e in a subprocess to mitigate autdoc issues.\u003c/li\u003e\n\u003cli\u003eSupport the \u003ccode\u003e-M\u003c/code\u003e 'make mode' option for \u003ccode\u003esphinx-build\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/sphinx-doc/sphinx-autobuild/commit/fd726c54b3610e5f3393e7098af972a6cf163e69\"\u003e\u003ccode\u003efd726c5\u003c/code\u003e\u003c/a\u003e Release 2025.08.25\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/f810750ea7884bada86611ec1419fa64533123cf\"\u003e\u003ccode\u003ef810750\u003c/code\u003e\u003c/a\u003e Update pre-commit versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/12e0553059bd5a3df83e9775d9fb99fbb9ec8473\"\u003e\u003ccode\u003e12e0553\u003c/code\u003e\u003c/a\u003e Format \u003ccode\u003epyproject.toml\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/6d039d483eb28e8185971a9e5c7ee38d1f674d6f\"\u003e\u003ccode\u003e6d039d4\u003c/code\u003e\u003c/a\u003e Declare support for Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/c4a47b070179b85aa0cd2f721023d23965c883cd\"\u003e\u003ccode\u003ec4a47b0\u003c/code\u003e\u003c/a\u003e Fix name of 'test' nox session in docs (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/193\"\u003e#193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/48fcf5cd36cab2719c3135894c1bd31097171e92\"\u003e\u003ccode\u003e48fcf5c\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e--help\u003c/code\u003e with Python 3.14 and Sphinx 8.2.3 (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/199\"\u003e#199\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/0c52892160d078f66ab2b31e5f83988db473deee\"\u003e\u003ccode\u003e0c52892\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e to aid debugging (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/192\"\u003e#192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/cc58cc115f5b9a0db8f4a2313c07440b120c3c0d\"\u003e\u003ccode\u003ecc58cc1\u003c/code\u003e\u003c/a\u003e Add a \u003ccode\u003e--post-build\u003c/code\u003e argument (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/190\"\u003e#190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/92bcf108565c9e7345ad1e11553e35609324ff0d\"\u003e\u003ccode\u003e92bcf10\u003c/code\u003e\u003c/a\u003e Require Python 3.11 or newer, to match Sphinx (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/189\"\u003e#189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/compare/2024.10.03...2025.08.25\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-click` from 6.0.0 to 6.1.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/58473a8dac250898e1dc7dfac5622dc938264bb4\"\u003e\u003ccode\u003e58473a8\u003c/code\u003e\u003c/a\u003e Migrate to trusted publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/0d4f938d799a669658fc2b0ef3ede100d9abf5ab\"\u003e\u003ccode\u003e0d4f938\u003c/code\u003e\u003c/a\u003e Drop support for Python \u0026lt; 3.10, add Python 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/073353abfc0f6a72ca3fc33b7272072ec422cccb\"\u003e\u003ccode\u003e073353a\u003c/code\u003e\u003c/a\u003e Migrate setuptools, mypy configuration to pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/83a5a17736958a9e4119ecb9ad271e3f1bf223fc\"\u003e\u003ccode\u003e83a5a17\u003c/code\u003e\u003c/a\u003e Prefer Group over MultiCommand\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/d9705e8a369211d60db0279fafb58f7f7fa079a7\"\u003e\u003ccode\u003ed9705e8\u003c/code\u003e\u003c/a\u003e Bump actions versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/a94049aed188e1d8ea58c5bb747218634b685625\"\u003e\u003ccode\u003ea94049a\u003c/code\u003e\u003c/a\u003e pre-commit: Bump versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/dc11fe14f6fa859773276f7492e326e49e47e0ba\"\u003e\u003ccode\u003edc11fe1\u003c/code\u003e\u003c/a\u003e pre-commit: Migrate to ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/c999be2eb4d2e7dd1bbee314be6d03c499a62cbf\"\u003e\u003ccode\u003ec999be2\u003c/code\u003e\u003c/a\u003e pre-commit: Bump versions\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/click-contrib/sphinx-click/compare/6.0.0...6.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n...\n\n_Description has been truncated_","html_url":"https://github.com/abey79/vpype/pull/813","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/abey79%2Fvpype/issues/813","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/813/packages"},{"uuid":"2878391383","node_id":"PR_kwDOKiWn2s6rkMRX","number":246,"state":"closed","title":"Bump syrupy from 4.9.1 to 5.0.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":"2025-10-01T14:05:55.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-10-01T14:04:41.000Z","updated_at":"2025-10-01T14:05:56.000Z","time_to_close":74,"merged_at":"2025-10-01T14:05:55.000Z","merged_by":"github-actions[bot]","closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"syrupy","old_version":"4.9.1","new_version":"5.0.0","repository_url":"https://github.com/syrupy-project/syrupy"}],"path":null,"ecosystem":"pip"},"body":"Bumps [syrupy](https://github.com/syrupy-project/syrupy) from 4.9.1 to 5.0.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/syrupy-project/syrupy/releases\"\u003esyrupy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.0.0\u003c/h2\u003e\n\u003ch2\u003eSyrupy 5.0.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e(2025-09-28)\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eThis release introduces new features, bug fixes, and a major license change. It also includes several \u003cstrong\u003ebreaking changes\u003c/strong\u003e, so please review those carefully before upgrading.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch3\u003eNew Features ✨\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eAdd \u003ccode\u003e--snapshot-dirname\u003c/code\u003e option:\u003c/strong\u003e A new option, \u003ccode\u003e--snapshot-dirname\u003c/code\u003e, is now available to change the default directory snapshots are stored in. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003e#810\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003esyrupy-project/syrupy#810\u003c/a\u003e))\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRemove private underscore prefix:\u003c/strong\u003e The unnecessary underscore prefixes have been removed from public methods for better code clarity. ([\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003e8cfc905\u003c/a\u003e](\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003ehttps://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\u003c/a\u003e))\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch3\u003eBug Fixes 🐛\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFix terminal summary for \u003ccode\u003exdist\u003c/code\u003e workers:\u003c/strong\u003e Resolves an issue where the terminal summary was not displayed correctly with \u003ccode\u003exdist\u003c/code\u003e workers. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/978\"\u003e#978\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/978\"\u003esyrupy-project/syrupy#978\u003c/a\u003e))\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eEnsure \u003ccode\u003epytest_assertrepr_compare\u003c/code\u003e hook is called first:\u003c/strong\u003e This change ensures that Syrupy's assertion hook takes precedence, improving compatibility with other plugins. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/984\"\u003e#984\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/984\"\u003esyrupy-project/syrupy#984\u003c/a\u003e))\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch3\u003eBreaking Changes ⚠️\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eLicense change:\u003c/strong\u003e The project has switched to the more permissive \u003cstrong\u003eMIT license\u003c/strong\u003e. This change applies to all versions from 5.0.0 and beyond. If you need to use the previous Apache 2.0 license, you must continue to use Syrupy versions 4.x or earlier. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/945\"\u003e#945\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/945\"\u003esyrupy-project/syrupy#945\u003c/a\u003e))\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003ePython and pytest version requirements:\u003c/strong\u003e Syrupy now requires \u003cstrong\u003ePython 3.10\u003c/strong\u003e or higher. Support for Python 3.8 has been dropped as it reached its end of life in October 2024. The minimum required version of \u003cstrong\u003epytest is v8\u003c/strong\u003e. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/904\"\u003e#904\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/904\"\u003esyrupy-project/syrupy#904\u003c/a\u003e), [\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003e#1024\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003esyrupy-project/syrupy#1024\u003c/a\u003e))\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eMethod and constant name changes:\u003c/strong\u003e Several methods and constants have been renamed for improved clarity and to align with public API standards.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ccode\u003eSnapshotCollectionStorage\u003c/code\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e_read_snapshot_collection\u003c/code\u003e -\u0026gt; \u003ccode\u003eread_snapshot_collection\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_read_snapshot_data_from_location\u003c/code\u003e -\u0026gt; \u003ccode\u003eread_snapshot_data_from_location\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_write_snapshot_collection\u003c/code\u003e -\u0026gt; \u003ccode\u003ewrite_snapshot_collection\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_get_file_basename\u003c/code\u003e -\u0026gt; \u003ccode\u003eget_file_basename\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_file_extension\u003c/code\u003e -\u0026gt; \u003ccode\u003efile_extension\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ccode\u003eAmberDataSerializer\u003c/code\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e_snapshot_sort_key\u003c/code\u003e -\u0026gt; \u003ccode\u003esnapshot_sort_key\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eConstants\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eSNAPSHOT_EMPTY_FOSSIL_KEY\u003c/code\u003e -\u0026gt; \u003ccode\u003eSNAPSHOT_EMPTY_COLLECTION_KEY\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSNAPSHOT_UNKNOWN_FOSSIL_KEY\u003c/code\u003e -\u0026gt; \u003ccode\u003eSNAPSHOT_UNKNOWN_COLLECTION_KEY\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSNAPSHOT_DIRNAME\u003c/code\u003e has been removed in favour of the property on the \u003ccode\u003eSnapshotCollectionStorage\u003c/code\u003e class and associated CLI option.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\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/paul-ollis\"\u003e\u003ccode\u003e@​paul-ollis\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/978\"\u003esyrupy-project/syrupy#978\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rahuliyer95\"\u003e\u003ccode\u003e@​rahuliyer95\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/984\"\u003esyrupy-project/syrupy#984\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\"\u003ehttps://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/syrupy-project/syrupy/blob/main/CHANGELOG.md\"\u003esyrupy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\"\u003e5.0.0\u003c/a\u003e (2025-09-28)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch to MIT license (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/945\"\u003e#945\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/d74d340f8884fdb04831fcf77f29d66e098aaa66\"\u003ed74d340\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlock terminal summary for xdist workers. (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/978\"\u003e#978\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/33a848df7c4a33577e4057eae5792f6592ad3172\"\u003e33a848d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eensure syrupy's pytest_assertrepr_compare hook is called first. (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/984\"\u003e#984\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/eb0024d339248b7e1f76fdb65ed30ba3e19c0857\"\u003eeb0024d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove incorrect private underscore prefix from public methods (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003e8cfc905\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd --snapshot-dirname option, close \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003e#810\u003c/a\u003e (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/27135c7c861441962c2cedde841f3e4fed2949fd\"\u003e27135c7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edrop support for py3.8, raise min. pytest to v8 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/904\"\u003e#904\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/a879ff15ad82e59a2f387db0822be072a5684f2f\"\u003ea879ff1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate min. python version to 3.10 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003e#1024\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/16b4113cd56da96e84a90ebda0919e9b8dd35954\"\u003e16b4113\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe following methods have been renamed:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSnapshotCollectionStorage\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e_read_snapshot_collection -\u0026gt; read_snapshot_collection\u003c/li\u003e\n\u003cli\u003e_read_snapshot_data_from_location -\u0026gt; read_snapshot_data_from_location\u003c/li\u003e\n\u003cli\u003e_write_snapshot_collection -\u0026gt; write_snapshot_collection\u003c/li\u003e\n\u003cli\u003e_get_file_basename -\u0026gt; get_file_basename\u003c/li\u003e\n\u003cli\u003e_file_extension -\u0026gt; file_extension\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eAmberDataSerializer\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e_snapshot_sort_key -\u0026gt; snapshot_sort_key\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRenamed constants to improve clarity:\u003c/p\u003e\n\u003cp\u003econstants\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSNAPSHOT_EMPTY_FOSSIL_KEY -\u0026gt; SNAPSHOT_EMPTY_COLLECTION_KEY\u003c/li\u003e\n\u003cli\u003eSNAPSHOT_UNKNOWN_FOSSIL_KEY -\u0026gt; SNAPSHOT_UNKNOWN_COLLECTION_KEY\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003eMin. python version is now 3.10.\u003c/li\u003e\n\u003cli\u003eThe Syrupy project is switching from Apache 2.0 to a more permissive MIT license. By using Syrupy \u0026gt;=5, you agree to abide by this new license. You can continue to use Syrupy v1 through v4 under Apache 2.0.\u003c/li\u003e\n\u003cli\u003eDrops support for Python 3.8 which is end of life as of October 2024. Raises the minimum version of pytest to v8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/9b4cc82e50e29f84dcb55054c8eab281c90a280b\"\u003e\u003ccode\u003e9b4cc82\u003c/code\u003e\u003c/a\u003e chore(release): 5.0.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/af15385acd5bf617815aa0d19e2df907bbbd2d83\"\u003e\u003ccode\u003eaf15385\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1027\"\u003e#1027\u003c/a\u003e from syrupy-project/test_py_3_14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/461ad224d192a18296934e2434b9302fb0984007\"\u003e\u003ccode\u003e461ad22\u003c/code\u003e\u003c/a\u003e chore: test against py3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/95ffbcb085eb920920a7241c814a55c1e948f148\"\u003e\u003ccode\u003e95ffbcb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1026\"\u003e#1026\u003c/a\u003e from syrupy-project/rename_methods\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/27135c7c861441962c2cedde841f3e4fed2949fd\"\u003e\u003ccode\u003e27135c7\u003c/code\u003e\u003c/a\u003e feat: add --snapshot-dirname option, close \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003e#810\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003e\u003ccode\u003e8cfc905\u003c/code\u003e\u003c/a\u003e refactor: remove incorrect private underscore prefix from public methods\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/e1dbf5dc2a1148480aa9601a5e1c21928954b8cc\"\u003e\u003ccode\u003ee1dbf5d\u003c/code\u003e\u003c/a\u003e chore(deps): update python docker tag to v3.13.7 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1025\"\u003e#1025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/16b4113cd56da96e84a90ebda0919e9b8dd35954\"\u003e\u003ccode\u003e16b4113\u003c/code\u003e\u003c/a\u003e feat: update min. python version to 3.10 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003e#1024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/434c63fdabbaaf2372ec94c8968fe025c4a306e6\"\u003e\u003ccode\u003e434c63f\u003c/code\u003e\u003c/a\u003e chore(deps): update codecov/codecov-action action to v5.5.1 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1021\"\u003e#1021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/b2e49bad7741f06c17a0be9f4608c0db5db13cf5\"\u003e\u003ccode\u003eb2e49ba\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency pytest to v8.4.2 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1022\"\u003e#1022\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=syrupy\u0026package-manager=pip\u0026previous-version=4.9.1\u0026new-version=5.0.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/livingbio/fuzzy-json/pull/246","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/livingbio%2Ffuzzy-json/issues/246","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/246/packages"}],"issue_packages":[{"old_version":"5.2.0","new_version":"5.3.1","update_type":"minor","path":null,"pr_created_at":"2026-06-05T22:44:08.000Z","version_change":"5.2.0 → 5.3.1","issue":{"uuid":"4600650957","node_id":"PR_kwDOSYHNdc7jSq5K","number":12,"state":"closed","title":"build(deps): bump syrupy from 5.2.0 to 5.3.1","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-06-12T22:44:34.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-05T22:44:08.000Z","updated_at":"2026-06-12T22:44:36.000Z","time_to_close":604826,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps)","packages":[{"name":"syrupy","old_version":"5.2.0","new_version":"5.3.1","repository_url":"https://github.com/syrupy-project/syrupy"}],"path":null,"ecosystem":"pip"},"body":"Bumps [syrupy](https://github.com/syrupy-project/syrupy) from 5.2.0 to 5.3.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/syrupy-project/syrupy/releases\"\u003esyrupy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.3.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix(test): mark pydantic and attrs as dependencies for running internal tests by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1108\"\u003esyrupy-project/syrupy#1108\u003c/a\u003e -- \u003cstrong\u003eThis only affects users trying to run the syrupy tests themselves, not consumers of syrupy.\u003c/strong\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): update astral-sh/setup-uv action to v8.1.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1103\"\u003esyrupy-project/syrupy#1103\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update python docker tag to v3.14.4 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1102\"\u003esyrupy-project/syrupy#1102\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update benchmark-action/github-action-benchmark action to v1.22.1 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1105\"\u003esyrupy-project/syrupy#1105\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.3.0...v5.3.1\"\u003ehttps://github.com/syrupy-project/syrupy/compare/v5.3.0...v5.3.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efeat: add --snapshot-update-new-only flag (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/843\"\u003e#843\u003c/a\u003e) by \u003ca href=\"https://github.com/SAY-5\"\u003e\u003ccode\u003e@​SAY-5\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1098\"\u003esyrupy-project/syrupy#1098\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc.\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore: move release marker by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1095\"\u003esyrupy-project/syrupy#1095\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update codecov/codecov-action action to v5.5.4 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1089\"\u003esyrupy-project/syrupy#1089\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency pytest to v9.0.3 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1096\"\u003esyrupy-project/syrupy#1096\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: include tests in sdist by \u003ca href=\"https://github.com/Lovlace777\"\u003e\u003ccode\u003e@​Lovlace777\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1099\"\u003esyrupy-project/syrupy#1099\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: skip benchmark on forks by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1100\"\u003esyrupy-project/syrupy#1100\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update dev dependencies by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1101\"\u003esyrupy-project/syrupy#1101\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/Lovlace777\"\u003e\u003ccode\u003e@​Lovlace777\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1099\"\u003esyrupy-project/syrupy#1099\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SAY-5\"\u003e\u003ccode\u003e@​SAY-5\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1098\"\u003esyrupy-project/syrupy#1098\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.2.0...v5.3.0\"\u003ehttps://github.com/syrupy-project/syrupy/compare/v5.2.0...v5.3.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/syrupy-project/syrupy/blob/main/CHANGELOG.md\"\u003esyrupy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/releases/tag/v5.3.1\"\u003ev5.3.1\u003c/a\u003e (2026-05-31)\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix(test): mark pydantic and attrs as dependencies for running internal tests by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1108\"\u003esyrupy-project/syrupy#1108\u003c/a\u003e -- \u003cstrong\u003eThis only affects users trying to run the syrupy tests themselves, not consumers of syrupy.\u003c/strong\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): update astral-sh/setup-uv action to v8.1.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1103\"\u003esyrupy-project/syrupy#1103\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update python docker tag to v3.14.4 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1102\"\u003esyrupy-project/syrupy#1102\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update benchmark-action/github-action-benchmark action to v1.22.1 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1105\"\u003esyrupy-project/syrupy#1105\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.3.0...v5.3.1\"\u003ehttps://github.com/syrupy-project/syrupy/compare/v5.3.0...v5.3.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/releases/tag/v5.3.0\"\u003ev5.3.0\u003c/a\u003e (2026-05-31)\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efeat: add --snapshot-update-new-only flag (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/843\"\u003e#843\u003c/a\u003e) by \u003ca href=\"https://github.com/SAY-5\"\u003e\u003ccode\u003e@​SAY-5\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1098\"\u003esyrupy-project/syrupy#1098\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc.\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore: move release marker by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1095\"\u003esyrupy-project/syrupy#1095\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update codecov/codecov-action action to v5.5.4 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1089\"\u003esyrupy-project/syrupy#1089\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency pytest to v9.0.3 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1096\"\u003esyrupy-project/syrupy#1096\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: include tests in sdist by \u003ca href=\"https://github.com/Lovlace777\"\u003e\u003ccode\u003e@​Lovlace777\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1099\"\u003esyrupy-project/syrupy#1099\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: skip benchmark on forks by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1100\"\u003esyrupy-project/syrupy#1100\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update dev dependencies by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1101\"\u003esyrupy-project/syrupy#1101\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/Lovlace777\"\u003e\u003ccode\u003e@​Lovlace777\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1099\"\u003esyrupy-project/syrupy#1099\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SAY-5\"\u003e\u003ccode\u003e@​SAY-5\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1098\"\u003esyrupy-project/syrupy#1098\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.2.0...v5.3.0\"\u003ehttps://github.com/syrupy-project/syrupy/compare/v5.2.0...v5.3.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/syrupy-project/syrupy/commit/c528216d5fa53517f9df34f49db55d3e455377c9\"\u003e\u003ccode\u003ec528216\u003c/code\u003e\u003c/a\u003e fix(test): mark pydantic and attrs as dependencies for running internal tests...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/32b9ccb6d2da49b91e3052e33b9e1e208963bf55\"\u003e\u003ccode\u003e32b9ccb\u003c/code\u003e\u003c/a\u003e chore(deps): update benchmark-action/github-action-benchmark action to v1.22....\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/520f813ebf7f5c61bc45564b750cbfa836df0f2f\"\u003e\u003ccode\u003e520f813\u003c/code\u003e\u003c/a\u003e chore(deps): update python docker tag to v3.14.4 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1102\"\u003e#1102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/9ad6eb48c90cadf3f1e13705414a612eed72637f\"\u003e\u003ccode\u003e9ad6eb4\u003c/code\u003e\u003c/a\u003e chore(deps): update astral-sh/setup-uv action to v8.1.0 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1103\"\u003e#1103\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/06c5ab4688ad816ef50c320f764f20e53ea89ae5\"\u003e\u003ccode\u003e06c5ab4\u003c/code\u003e\u003c/a\u003e chore(release): 5.3.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/5887f25a02e6bb6d0b2b0cd9853d86c259345f1c\"\u003e\u003ccode\u003e5887f25\u003c/code\u003e\u003c/a\u003e chore: update dev dependencies (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1101\"\u003e#1101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/2daa56e2b74f7ed1b3e74086d9509ac7454a41be\"\u003e\u003ccode\u003e2daa56e\u003c/code\u003e\u003c/a\u003e feat: add --snapshot-update-new-only flag (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/843\"\u003e#843\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1098\"\u003e#1098\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/61c4e07e7a710270c4ebc3435652bc7d945fc60c\"\u003e\u003ccode\u003e61c4e07\u003c/code\u003e\u003c/a\u003e chore: skip benchmark on forks (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1100\"\u003e#1100\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/a4880a798e64546118c4afc4e1b655cf1ea17cb2\"\u003e\u003ccode\u003ea4880a7\u003c/code\u003e\u003c/a\u003e fix: include tests in sdist (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1099\"\u003e#1099\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/719a71ab83f94119072d5db79568b90b0455a7a1\"\u003e\u003ccode\u003e719a71a\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency pytest to v9.0.3 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1096\"\u003e#1096\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.2.0...v5.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=syrupy\u0026package-manager=uv\u0026previous-version=5.2.0\u0026new-version=5.3.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/AntoineD/syrupy-matplotlib/pull/12","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/AntoineD%2Fsyrupy-matplotlib/issues/12","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/12/packages"}},{"old_version":"5.1.0","new_version":"5.3.1","update_type":"minor","path":null,"pr_created_at":"2026-05-31T21:13:56.000Z","version_change":"5.1.0 → 5.3.1","issue":{"uuid":"4559030694","node_id":"PR_kwDOFFAJd87hKFIB","number":13,"state":"closed","title":"Bump syrupy from 5.1.0 to 5.3.1","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-31T21:36:44.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-31T21:13:56.000Z","updated_at":"2026-05-31T21:36:46.000Z","time_to_close":1368,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"syrupy","old_version":"5.1.0","new_version":"5.3.1","repository_url":"https://github.com/syrupy-project/syrupy"}],"path":null,"ecosystem":"pip"},"body":"Bumps [syrupy](https://github.com/syrupy-project/syrupy) from 5.1.0 to 5.3.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/syrupy-project/syrupy/releases\"\u003esyrupy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.3.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix(test): mark pydantic and attrs as dependencies for running internal tests by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1108\"\u003esyrupy-project/syrupy#1108\u003c/a\u003e -- \u003cstrong\u003eThis only affects users trying to run the syrupy tests themselves, not consumers of syrupy.\u003c/strong\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): update astral-sh/setup-uv action to v8.1.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1103\"\u003esyrupy-project/syrupy#1103\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update python docker tag to v3.14.4 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1102\"\u003esyrupy-project/syrupy#1102\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update benchmark-action/github-action-benchmark action to v1.22.1 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1105\"\u003esyrupy-project/syrupy#1105\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.3.0...v5.3.1\"\u003ehttps://github.com/syrupy-project/syrupy/compare/v5.3.0...v5.3.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efeat: add --snapshot-update-new-only flag (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/843\"\u003e#843\u003c/a\u003e) by \u003ca href=\"https://github.com/SAY-5\"\u003e\u003ccode\u003e@​SAY-5\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1098\"\u003esyrupy-project/syrupy#1098\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc.\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore: move release marker by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1095\"\u003esyrupy-project/syrupy#1095\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update codecov/codecov-action action to v5.5.4 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1089\"\u003esyrupy-project/syrupy#1089\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency pytest to v9.0.3 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1096\"\u003esyrupy-project/syrupy#1096\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: include tests in sdist by \u003ca href=\"https://github.com/Lovlace777\"\u003e\u003ccode\u003e@​Lovlace777\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1099\"\u003esyrupy-project/syrupy#1099\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: skip benchmark on forks by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1100\"\u003esyrupy-project/syrupy#1100\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update dev dependencies by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1101\"\u003esyrupy-project/syrupy#1101\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/Lovlace777\"\u003e\u003ccode\u003e@​Lovlace777\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1099\"\u003esyrupy-project/syrupy#1099\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SAY-5\"\u003e\u003ccode\u003e@​SAY-5\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1098\"\u003esyrupy-project/syrupy#1098\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.2.0...v5.3.0\"\u003ehttps://github.com/syrupy-project/syrupy/compare/v5.2.0...v5.3.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.2.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): update actions/checkout action to v6.0.2 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1065\"\u003esyrupy-project/syrupy#1065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update actions/setup-python action to v6.2.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1066\"\u003esyrupy-project/syrupy#1066\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency ruff to v0.14.14 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1067\"\u003esyrupy-project/syrupy#1067\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency coverage to v7.13.2 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1068\"\u003esyrupy-project/syrupy#1068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: migrate to uv, close \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1019\"\u003e#1019\u003c/a\u003e by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1049\"\u003esyrupy-project/syrupy#1049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency coverage to v7.13.2 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1069\"\u003esyrupy-project/syrupy#1069\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency debugpy to v1.8.19 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1070\"\u003esyrupy-project/syrupy#1070\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency mypy to v1.19.1 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1071\"\u003esyrupy-project/syrupy#1071\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency ruff to v0.14.14 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1072\"\u003esyrupy-project/syrupy#1072\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/syrupy-project/syrupy/blob/main/CHANGELOG.md\"\u003esyrupy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/releases/tag/v5.3.1\"\u003ev5.3.1\u003c/a\u003e (2026-05-31)\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix(test): mark pydantic and attrs as dependencies for running internal tests by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1108\"\u003esyrupy-project/syrupy#1108\u003c/a\u003e -- \u003cstrong\u003eThis only affects users trying to run the syrupy tests themselves, not consumers of syrupy.\u003c/strong\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): update astral-sh/setup-uv action to v8.1.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1103\"\u003esyrupy-project/syrupy#1103\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update python docker tag to v3.14.4 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1102\"\u003esyrupy-project/syrupy#1102\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update benchmark-action/github-action-benchmark action to v1.22.1 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1105\"\u003esyrupy-project/syrupy#1105\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.3.0...v5.3.1\"\u003ehttps://github.com/syrupy-project/syrupy/compare/v5.3.0...v5.3.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/releases/tag/v5.3.0\"\u003ev5.3.0\u003c/a\u003e (2026-05-31)\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efeat: add --snapshot-update-new-only flag (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/843\"\u003e#843\u003c/a\u003e) by \u003ca href=\"https://github.com/SAY-5\"\u003e\u003ccode\u003e@​SAY-5\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1098\"\u003esyrupy-project/syrupy#1098\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc.\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore: move release marker by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1095\"\u003esyrupy-project/syrupy#1095\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update codecov/codecov-action action to v5.5.4 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1089\"\u003esyrupy-project/syrupy#1089\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency pytest to v9.0.3 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1096\"\u003esyrupy-project/syrupy#1096\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: include tests in sdist by \u003ca href=\"https://github.com/Lovlace777\"\u003e\u003ccode\u003e@​Lovlace777\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1099\"\u003esyrupy-project/syrupy#1099\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: skip benchmark on forks by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1100\"\u003esyrupy-project/syrupy#1100\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update dev dependencies by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1101\"\u003esyrupy-project/syrupy#1101\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/Lovlace777\"\u003e\u003ccode\u003e@​Lovlace777\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1099\"\u003esyrupy-project/syrupy#1099\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SAY-5\"\u003e\u003ccode\u003e@​SAY-5\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1098\"\u003esyrupy-project/syrupy#1098\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.2.0...v5.3.0\"\u003ehttps://github.com/syrupy-project/syrupy/compare/v5.2.0...v5.3.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/releases/tag/v5.2.0\"\u003ev5.2.0\u003c/a\u003e (2026-05-16)\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): update actions/checkout action to v6.0.2 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1065\"\u003esyrupy-project/syrupy#1065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update actions/setup-python action to v6.2.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1066\"\u003esyrupy-project/syrupy#1066\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency ruff to v0.14.14 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1067\"\u003esyrupy-project/syrupy#1067\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency coverage to v7.13.2 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1068\"\u003esyrupy-project/syrupy#1068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: migrate to uv, close \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1019\"\u003e#1019\u003c/a\u003e by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1049\"\u003esyrupy-project/syrupy#1049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency coverage to v7.13.2 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1069\"\u003esyrupy-project/syrupy#1069\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/c528216d5fa53517f9df34f49db55d3e455377c9\"\u003e\u003ccode\u003ec528216\u003c/code\u003e\u003c/a\u003e fix(test): mark pydantic and attrs as dependencies for running internal tests...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/32b9ccb6d2da49b91e3052e33b9e1e208963bf55\"\u003e\u003ccode\u003e32b9ccb\u003c/code\u003e\u003c/a\u003e chore(deps): update benchmark-action/github-action-benchmark action to v1.22....\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/520f813ebf7f5c61bc45564b750cbfa836df0f2f\"\u003e\u003ccode\u003e520f813\u003c/code\u003e\u003c/a\u003e chore(deps): update python docker tag to v3.14.4 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1102\"\u003e#1102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/9ad6eb48c90cadf3f1e13705414a612eed72637f\"\u003e\u003ccode\u003e9ad6eb4\u003c/code\u003e\u003c/a\u003e chore(deps): update astral-sh/setup-uv action to v8.1.0 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1103\"\u003e#1103\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/06c5ab4688ad816ef50c320f764f20e53ea89ae5\"\u003e\u003ccode\u003e06c5ab4\u003c/code\u003e\u003c/a\u003e chore(release): 5.3.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/5887f25a02e6bb6d0b2b0cd9853d86c259345f1c\"\u003e\u003ccode\u003e5887f25\u003c/code\u003e\u003c/a\u003e chore: update dev dependencies (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1101\"\u003e#1101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/2daa56e2b74f7ed1b3e74086d9509ac7454a41be\"\u003e\u003ccode\u003e2daa56e\u003c/code\u003e\u003c/a\u003e feat: add --snapshot-update-new-only flag (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/843\"\u003e#843\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1098\"\u003e#1098\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/61c4e07e7a710270c4ebc3435652bc7d945fc60c\"\u003e\u003ccode\u003e61c4e07\u003c/code\u003e\u003c/a\u003e chore: skip benchmark on forks (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1100\"\u003e#1100\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/a4880a798e64546118c4afc4e1b655cf1ea17cb2\"\u003e\u003ccode\u003ea4880a7\u003c/code\u003e\u003c/a\u003e fix: include tests in sdist (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1099\"\u003e#1099\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/719a71ab83f94119072d5db79568b90b0455a7a1\"\u003e\u003ccode\u003e719a71a\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency pytest to v9.0.3 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1096\"\u003e#1096\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.1.0...v5.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=syrupy\u0026package-manager=uv\u0026previous-version=5.1.0\u0026new-version=5.3.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/john-kurkowski/taxes/pull/13","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/john-kurkowski%2Ftaxes/issues/13","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/13/packages"}},{"old_version":"4.9.1","new_version":"5.2.0","update_type":"major","path":"/libs/community","pr_created_at":"2026-05-18T23:10:03.000Z","version_change":"4.9.1 → 5.2.0","issue":{"uuid":"4473189974","node_id":"PR_kwDOOhGBj87c2x9-","number":670,"state":"closed","title":"chore(deps): bump the major group in /libs/community with 9 updates","user":"dependabot[bot]","labels":["dependencies","infra","python:uv"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-05-26T15:14:18.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-18T23:10:03.000Z","updated_at":"2026-05-26T15:33:01.000Z","time_to_close":662655,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"major","update_count":9,"packages":[{"name":"pytest-cov","old_version":"6.3.0","new_version":"7.1.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pytest-asyncio","old_version":"0.26.0","new_version":"1.3.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"syrupy","old_version":"4.9.1","new_version":"5.2.0","repository_url":"https://github.com/syrupy-project/syrupy"},{"name":"setuptools","old_version":"78.1.1","new_version":"82.0.1","repository_url":"https://github.com/pypa/setuptools"},{"name":"mypy","old_version":"1.20.0","new_version":"2.1.0","repository_url":"https://github.com/python/mypy"},{"name":"types-pytz","old_version":"2023.4.0.20240130","new_version":"2026.2.0.20260518","repository_url":"https://github.com/python/typeshed"},{"name":"mypy-protobuf","old_version":"3.7.0","new_version":"5.1.0","repository_url":"https://github.com/nipunn1313/mypy-protobuf"},{"name":"azure-search-documents","old_version":"11.6.0","new_version":"12.0.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"pdfminer-six","old_version":"20251230","new_version":"20260107","repository_url":"https://github.com/pdfminer/pdfminer.six"}],"path":"/libs/community","ecosystem":"pip"},"body":"Bumps the major group in /libs/community with 9 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `6.3.0` | `7.1.0` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `0.26.0` | `1.3.0` |\n| [syrupy](https://github.com/syrupy-project/syrupy) | `4.9.1` | `5.2.0` |\n| [setuptools](https://github.com/pypa/setuptools) | `78.1.1` | `82.0.1` |\n| [mypy](https://github.com/python/mypy) | `1.20.0` | `2.1.0` |\n| [types-pytz](https://github.com/python/typeshed) | `2023.4.0.20240130` | `2026.2.0.20260518` |\n| [mypy-protobuf](https://github.com/nipunn1313/mypy-protobuf) | `3.7.0` | `5.1.0` |\n| [azure-search-documents](https://github.com/Azure/azure-sdk-for-python) | `11.6.0` | `12.0.0` |\n| [pdfminer-six](https://github.com/pdfminer/pdfminer.six) | `20251230` | `20260107` |\n\nUpdates `pytest-cov` from 6.3.0 to 7.1.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst\"\u003epytest-cov's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.1.0 (2026-03-21)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed total coverage computation to always be consistent, regardless of reporting settings.\nPreviously some reports could produce different total counts, and consequently can make --cov-fail-under behave different depending on\nreporting options.\nSee \u003ccode\u003e[#641](https://github.com/pytest-dev/pytest-cov/issues/641) \u0026lt;https://github.com/pytest-dev/pytest-cov/issues/641\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove handling of ResourceWarning from sqlite3.\u003c/p\u003e\n\u003cp\u003eThe plugin adds warning filter for sqlite3 \u003ccode\u003eResourceWarning\u003c/code\u003e unclosed database (since 6.2.0).\nIt checks if there is already existing plugin for this message by comparing filter regular expression.\nWhen filter is specified on command line the message is escaped and does not match an expected message.\nA check for an escaped regular expression is added to handle this case.\u003c/p\u003e\n\u003cp\u003eWith this fix one can suppress \u003ccode\u003eResourceWarning\u003c/code\u003e from sqlite3 from command line::\u003c/p\u003e\n\u003cp\u003epytest -W \u0026quot;ignore:unclosed database in \u0026lt;sqlite3.Connection object at:ResourceWarning\u0026quot; ...\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eVarious improvements to documentation.\nContributed by Art Pelling in \u003ccode\u003e[#718](https://github.com/pytest-dev/pytest-cov/issues/718) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/718\u0026gt;\u003c/code\u003e_ and\n\u0026quot;vivodi\u0026quot; in \u003ccode\u003e[#738](https://github.com/pytest-dev/pytest-cov/issues/738) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/738\u0026gt;\u003c/code\u003e\u003cem\u003e.\nAlso closed \u003ccode\u003e[#736](https://github.com/pytest-dev/pytest-cov/issues/736) \u0026lt;https://github.com/pytest-dev/pytest-cov/issues/736\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed some assertions in tests.\nContributed by in Markéta Machová in \u003ccode\u003e[#722](https://github.com/pytest-dev/pytest-cov/issues/722) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/722\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved unnecessary coverage configuration copying (meant as a backup because reporting commands had configuration side-effects before coverage 5.0).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e7.0.0 (2025-09-09)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped support for subprocesses measurement.\u003c/p\u003e\n\u003cp\u003eIt was a feature added long time ago when coverage lacked a nice way to measure subprocesses created in tests.\nIt relied on a \u003ccode\u003e.pth\u003c/code\u003e file, there was no way to opt-out and it created bad interations\nwith \u003ccode\u003ecoverage's new patch system \u0026lt;https://coverage.readthedocs.io/en/latest/config.html#run-patch\u0026gt;\u003c/code\u003e_ added\nin \u003ccode\u003e7.10 \u0026lt;https://coverage.readthedocs.io/en/7.10.6/changes.html#version-7-10-0-2025-07-24\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003eTo migrate to this release you might need to enable the suprocess patch, example for \u003ccode\u003e.coveragerc\u003c/code\u003e:\u003c/p\u003e\n\u003cp\u003e.. code-block:: ini\u003c/p\u003e\n\u003cp\u003e[run]\npatch = subprocess\u003c/p\u003e\n\u003cp\u003eThis release also requires at least coverage 7.10.6.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSwitched packaging to have metadata completely in \u003ccode\u003epyproject.toml\u003c/code\u003e and use \u003ccode\u003ehatchling \u0026lt;https://pypi.org/project/hatchling/\u0026gt;\u003c/code\u003e_ for\nbuilding.\nContributed by Ofek Lev in \u003ccode\u003e[#551](https://github.com/pytest-dev/pytest-cov/issues/551) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/551\u0026gt;\u003c/code\u003e_\nwith some extras in \u003ccode\u003e[#716](https://github.com/pytest-dev/pytest-cov/issues/716) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/716\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved some not really necessary testing deps like \u003ccode\u003esix\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/66c8a526b1246b5eb8fb1bc218878131bc628622\"\u003e\u003ccode\u003e66c8a52\u003c/code\u003e\u003c/a\u003e Bump version: 7.0.0 → 7.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/f7076624784332594aa4cb3585d4757d295db15e\"\u003e\u003ccode\u003ef707662\u003c/code\u003e\u003c/a\u003e Make the examples use pypy 3.11.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/6049a7847872e3139e6c82e93787123df5dc8672\"\u003e\u003ccode\u003e6049a78\u003c/code\u003e\u003c/a\u003e Make context test use the old ctracer (seems the new sysmon tracer behaves di...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/8ebf20bbbc73478b3f8fd36d30237d9ea083f06b\"\u003e\u003ccode\u003e8ebf20b\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/861d30e60d571f97259c6b718b71c819d5dbc3b9\"\u003e\u003ccode\u003e861d30e\u003c/code\u003e\u003c/a\u003e Remove the backup context manager  - shouldn't be needed since coverage 5.0, ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/fd4c956014035527f0c3c8d7faef3f8cfdadac7f\"\u003e\u003ccode\u003efd4c956\u003c/code\u003e\u003c/a\u003e Pass the precision on the nulled total (seems that there's some caching goion...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/78c9c4ecb005faf4962fd86ff7bf9c9cce9554d6\"\u003e\u003ccode\u003e78c9c4e\u003c/code\u003e\u003c/a\u003e Only run the 3.9 on older deps.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/4849a922e8be725c662a3d9175da571ace6545dc\"\u003e\u003ccode\u003e4849a92\u003c/code\u003e\u003c/a\u003e Punctuation.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/197c35e2f37031fd1927715307ab6eed7cb3d2b7\"\u003e\u003ccode\u003e197c35e\u003c/code\u003e\u003c/a\u003e Update changelog and hopefully I don't forget to publish release again :))\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/14dc1c92d44108384e39803888635fdbfc578b7f\"\u003e\u003ccode\u003e14dc1c9\u003c/code\u003e\u003c/a\u003e Update examples to use 3.11 and make the adhoc layout example look a bit more...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-cov/compare/v6.3.0...v7.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-asyncio` from 0.26.0 to 1.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/releases\"\u003epytest-asyncio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epytest-asyncio 1.3.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/tree/1.3.0\"\u003e1.3.0\u003c/a\u003e - 2025-11-10\u003c/h1\u003e\n\u003ch2\u003eRemoved\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.9 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1278\"\u003e#1278\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for pytest 9 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1279\"\u003e#1279\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNotes for Downstream Packagers\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTested Python versions include free threaded Python 3.14t (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1274\"\u003e#1274\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTests are run in the same pytest process, instead of spawning a subprocess with \u003ccode\u003epytest.Pytester.runpytest_subprocess\u003c/code\u003e. This prevents the test suite from accidentally using a system installation of pytest-asyncio, which could result in test errors. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1275\"\u003e#1275\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epytest-asyncio 1.2.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/tree/1.2.0\"\u003e1.2.0\u003c/a\u003e - 2025-09-12\u003c/h1\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e--asyncio-debug\u003c/code\u003e CLI option and \u003ccode\u003easyncio_debug\u003c/code\u003e configuration option to enable asyncio debug mode for the default event loop. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/980\"\u003e#980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003epytest.UsageError\u003c/code\u003e for invalid configuration values of \u003ccode\u003easyncio_default_fixture_loop_scope\u003c/code\u003e and \u003ccode\u003easyncio_default_test_loop_scope\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1189\"\u003e#1189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCompatibility with the Pyright type checker (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/731\"\u003e#731\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eRuntimeError: There is no current event loop in thread 'MainThread'\u003c/code\u003e when any test unsets the event loop (such as when using \u003ccode\u003easyncio.run\u003c/code\u003e and \u003ccode\u003easyncio.Runner\u003c/code\u003e). (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1177\"\u003e#1177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeprecation warning when decorating an asynchronous fixture with \u003ccode\u003e@pytest.fixture\u003c/code\u003e in [strict]{.title-ref} mode. The warning message now refers to the correct package. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1198\"\u003e#1198\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNotes for Downstream Packagers\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump the minimum required version of tox to v4.28. This change is only relevant if you use the \u003ccode\u003etox.ini\u003c/code\u003e file provided by pytest-asyncio to run tests.\u003c/li\u003e\n\u003cli\u003eExtend dependency on typing-extensions\u0026gt;=4.12 from Python\u0026lt;3.10 to Python\u0026lt;3.13.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epytest-asyncio 1.1.1\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/tree/v1.1.1\"\u003ev1.1.1\u003c/a\u003e - 2025-09-12\u003c/h1\u003e\n\u003ch2\u003eNotes for Downstream Packagers\u003c/h2\u003e\n\u003cp\u003e- Addresses a build problem with setuptoos-scm \u0026gt;= 9 caused by invalid setuptools-scm configuration in pytest-asyncio. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1192\"\u003e#1192\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003epytest-asyncio 1.1.0\u003c/h2\u003e\n\u003ch1\u003eAdded\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003ePropagation of ContextVars from async fixtures to other fixtures and tests on Python 3.10 and older (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/127\"\u003e#127\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCancellation of tasks when the \u003ccode\u003eloop_scope\u003c/code\u003e ends (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/200\"\u003e#200\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWarning when the current event loop is closed by a test\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eFixed\u003c/h1\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/2e9695fcf8c5c514f30f57b7d14ab83846357b96\"\u003e\u003ccode\u003e2e9695f\u003c/code\u003e\u003c/a\u003e docs: Compile changelog for v1.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/dd0e9ba3fa672fd6bf375004319742f8d3a50e12\"\u003e\u003ccode\u003edd0e9ba\u003c/code\u003e\u003c/a\u003e docs: Reference correct issue in news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/4c31abe5bf46bca3c9bdc7b18405f3deba4145d0\"\u003e\u003ccode\u003e4c31abe\u003c/code\u003e\u003c/a\u003e Build(deps): Bump nh3 from 0.3.1 to 0.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/13e94770d7bb146c329ae0e02486c0a6b38f3772\"\u003e\u003ccode\u003e13e9477\u003c/code\u003e\u003c/a\u003e Link to migration guides from changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/4d2cf3c36f47d7c4d563d401cdf229b35da34fbe\"\u003e\u003ccode\u003e4d2cf3c\u003c/code\u003e\u003c/a\u003e tests: handle Python 3.14 DefaultEventLoopPolicy deprecation warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/ee3549b6efb729b934e370e2be8040b25b034010\"\u003e\u003ccode\u003eee3549b\u003c/code\u003e\u003c/a\u003e test: Remove obsolete test for the event_loop fixture.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/7a67c82c5ae548f0968438e9dfa0f282d51c4597\"\u003e\u003ccode\u003e7a67c82\u003c/code\u003e\u003c/a\u003e tests: Fix failing test by preventing warning conversion to error.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/a17b689a750d05b6fc9369f5fb2b06baaba83536\"\u003e\u003ccode\u003ea17b689\u003c/code\u003e\u003c/a\u003e test: add pytest config to isolated test directories\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/18afc9df5a3153dc1fbdc4e11a56517ef95480df\"\u003e\u003ccode\u003e18afc9d\u003c/code\u003e\u003c/a\u003e fix(tests): replace runpytest_subprocess with runpytest\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/cdc6bd1de75b4738289eafd546f5e27a0bfd3b41\"\u003e\u003ccode\u003ecdc6bd1\u003c/code\u003e\u003c/a\u003e Add support for pytest 9 and drop Python 3.9 support\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/compare/v0.26.0...v1.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `syrupy` from 4.9.1 to 5.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/syrupy-project/syrupy/releases\"\u003esyrupy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.2.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): update actions/checkout action to v6.0.2 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1065\"\u003esyrupy-project/syrupy#1065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update actions/setup-python action to v6.2.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1066\"\u003esyrupy-project/syrupy#1066\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency ruff to v0.14.14 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1067\"\u003esyrupy-project/syrupy#1067\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency coverage to v7.13.2 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1068\"\u003esyrupy-project/syrupy#1068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: migrate to uv, close \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1019\"\u003e#1019\u003c/a\u003e by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1049\"\u003esyrupy-project/syrupy#1049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency coverage to v7.13.2 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1069\"\u003esyrupy-project/syrupy#1069\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency debugpy to v1.8.19 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1070\"\u003esyrupy-project/syrupy#1070\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency mypy to v1.19.1 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1071\"\u003esyrupy-project/syrupy#1071\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency ruff to v0.14.14 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1072\"\u003esyrupy-project/syrupy#1072\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update python docker tag to v3.14.3 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1073\"\u003esyrupy-project/syrupy#1073\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update astral-sh/setup-uv action to v7.3.1 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1076\"\u003esyrupy-project/syrupy#1076\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update lock file by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1077\"\u003esyrupy-project/syrupy#1077\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update benchmark-action/github-action-benchmark action to v1.21.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1078\"\u003esyrupy-project/syrupy#1078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update astral-sh/setup-uv action to v7.5.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1080\"\u003esyrupy-project/syrupy#1080\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1081\"\u003e#1081\u003c/a\u003e): Handle unicode line-endings correctly when serializing by \u003ca href=\"https://github.com/DRMacIver\"\u003e\u003ccode\u003e@​DRMacIver\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1082\"\u003esyrupy-project/syrupy#1082\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: add DRMacIver as a contributor for bug by \u003ca href=\"https://github.com/allcontributors\"\u003e\u003ccode\u003e@​allcontributors\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1083\"\u003esyrupy-project/syrupy#1083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update lockfile by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1086\"\u003esyrupy-project/syrupy#1086\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: migrate off semantic-release to trusted publishing by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1093\"\u003esyrupy-project/syrupy#1093\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: set name/email by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1094\"\u003esyrupy-project/syrupy#1094\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/DRMacIver\"\u003e\u003ccode\u003e@​DRMacIver\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1082\"\u003esyrupy-project/syrupy#1082\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.1.0...v5.2.0\"\u003ehttps://github.com/syrupy-project/syrupy/compare/v5.1.0...v5.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.1.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.0.0...v5.1.0\"\u003e5.1.0\u003c/a\u003e (2026-01-25)\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd serializer plugin system; plugins for data models (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1062\"\u003e#1062\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/df9bc8f6b3a222dde82167e10a2e6bb57456305a\"\u003edf9bc8f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev5.0.0\u003c/h2\u003e\n\u003ch2\u003eSyrupy 5.0.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e(2025-09-28)\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eThis release introduces new features, bug fixes, and a major license change. It also includes several \u003cstrong\u003ebreaking changes\u003c/strong\u003e, so please review those carefully before upgrading.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch3\u003eNew Features ✨\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eAdd \u003ccode\u003e--snapshot-dirname\u003c/code\u003e option:\u003c/strong\u003e A new option, \u003ccode\u003e--snapshot-dirname\u003c/code\u003e, is now available to change the default directory snapshots are stored in. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003e#810\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003esyrupy-project/syrupy#810\u003c/a\u003e))\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRemove private underscore prefix:\u003c/strong\u003e The unnecessary underscore prefixes have been removed from public methods for better code clarity. ([\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003e8cfc905\u003c/a\u003e](\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003ehttps://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\u003c/a\u003e))\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c!-- 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/syrupy-project/syrupy/blob/main/CHANGELOG.md\"\u003esyrupy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/releases/tag/v5.2.0\"\u003ev5.2.0\u003c/a\u003e (2026-05-16)\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): update actions/checkout action to v6.0.2 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1065\"\u003esyrupy-project/syrupy#1065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update actions/setup-python action to v6.2.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1066\"\u003esyrupy-project/syrupy#1066\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency ruff to v0.14.14 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1067\"\u003esyrupy-project/syrupy#1067\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency coverage to v7.13.2 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1068\"\u003esyrupy-project/syrupy#1068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: migrate to uv, close \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1019\"\u003e#1019\u003c/a\u003e by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1049\"\u003esyrupy-project/syrupy#1049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency coverage to v7.13.2 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1069\"\u003esyrupy-project/syrupy#1069\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency debugpy to v1.8.19 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1070\"\u003esyrupy-project/syrupy#1070\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency mypy to v1.19.1 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1071\"\u003esyrupy-project/syrupy#1071\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency ruff to v0.14.14 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1072\"\u003esyrupy-project/syrupy#1072\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update python docker tag to v3.14.3 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1073\"\u003esyrupy-project/syrupy#1073\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update astral-sh/setup-uv action to v7.3.1 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1076\"\u003esyrupy-project/syrupy#1076\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update lock file by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1077\"\u003esyrupy-project/syrupy#1077\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update benchmark-action/github-action-benchmark action to v1.21.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1078\"\u003esyrupy-project/syrupy#1078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update astral-sh/setup-uv action to v7.5.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1080\"\u003esyrupy-project/syrupy#1080\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1081\"\u003e#1081\u003c/a\u003e): Handle unicode line-endings correctly when serializing by \u003ca href=\"https://github.com/DRMacIver\"\u003e\u003ccode\u003e@​DRMacIver\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1082\"\u003esyrupy-project/syrupy#1082\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: add DRMacIver as a contributor for bug by \u003ca href=\"https://github.com/allcontributors\"\u003e\u003ccode\u003e@​allcontributors\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1083\"\u003esyrupy-project/syrupy#1083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update lockfile by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1086\"\u003esyrupy-project/syrupy#1086\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: migrate off semantic-release to trusted publishing by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1093\"\u003esyrupy-project/syrupy#1093\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: set name/email by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1094\"\u003esyrupy-project/syrupy#1094\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/DRMacIver\"\u003e\u003ccode\u003e@​DRMacIver\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1082\"\u003esyrupy-project/syrupy#1082\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.1.0...v5.2.0\"\u003ehttps://github.com/syrupy-project/syrupy/compare/v5.1.0...v5.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.1.1...v5.1.2\"\u003e5.1.2\u003c/a\u003e (2026-04-06)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebuild configuration (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1086\"\u003e#1086\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/a997e3e643b55342af2e1d89d7b24d6c1fbadc1f\"\u003ea997e3e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.1.0...v5.1.1\"\u003e5.1.1\u003c/a\u003e (2026-04-06)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1081\"\u003e#1081\u003c/a\u003e:\u003c/strong\u003e Handle unicode line-endings correctly when serializing (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1082\"\u003e#1082\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/04f4cc8e21ae743d4ebc95a0961f0802f57f1856\"\u003e04f4cc8\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1081\"\u003e#1081\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.0.0...v5.1.0\"\u003e5.1.0\u003c/a\u003e (2026-01-25)\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd serializer plugin system; plugins for data models (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1062\"\u003e#1062\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/df9bc8f6b3a222dde82167e10a2e6bb57456305a\"\u003edf9bc8f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\"\u003e5.0.0\u003c/a\u003e (2025-09-28)\u003c/h1\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/c6bc988ee61ded4c1bea1e13a1d95e42c68219b0\"\u003e\u003ccode\u003ec6bc988\u003c/code\u003e\u003c/a\u003e chore: push on correct branch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/659f456bfef13df50fef5c95f84248b8fd720a60\"\u003e\u003ccode\u003e659f456\u003c/code\u003e\u003c/a\u003e chore: add id-token write\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/6401bc28aab02447dfc698beba33df6fd6d93817\"\u003e\u003ccode\u003e6401bc2\u003c/code\u003e\u003c/a\u003e chore: set name/email (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1094\"\u003e#1094\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/f1e3f0bac92a683a7412d4e1fbaf076e82c932de\"\u003e\u003ccode\u003ef1e3f0b\u003c/code\u003e\u003c/a\u003e chore: migrate off semantic-release to trusted publishing (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1093\"\u003e#1093\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8ff4d46fe1b4392d9d2f3ac1a2228911d9939948\"\u003e\u003ccode\u003e8ff4d46\u003c/code\u003e\u003c/a\u003e chore(release): 5.1.2 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/a997e3e643b55342af2e1d89d7b24d6c1fbadc1f\"\u003e\u003ccode\u003ea997e3e\u003c/code\u003e\u003c/a\u003e fix: build configuration (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1086\"\u003e#1086\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/561c94a136b183f5f22eb71f5b660e0f46e01b5b\"\u003e\u003ccode\u003e561c94a\u003c/code\u003e\u003c/a\u003e chore(release): 5.1.1 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/dfdba17b3cb983a5452f35e712c074cc1186d935\"\u003e\u003ccode\u003edfdba17\u003c/code\u003e\u003c/a\u003e docs: add DRMacIver as a contributor for bug (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1083\"\u003e#1083\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/04f4cc8e21ae743d4ebc95a0961f0802f57f1856\"\u003e\u003ccode\u003e04f4cc8\u003c/code\u003e\u003c/a\u003e fix(\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1081\"\u003e#1081\u003c/a\u003e): Handle unicode line-endings correctly when serializing (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1082\"\u003e#1082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/34f9b27e699a690e7ca1644a8a64d10a0e7d789c\"\u003e\u003ccode\u003e34f9b27\u003c/code\u003e\u003c/a\u003e chore(deps): update astral-sh/setup-uv action to v7.5.0 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1080\"\u003e#1080\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `setuptools` from 78.1.1 to 82.0.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/setuptools/blob/main/NEWS.rst\"\u003esetuptools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev82.0.1\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix the loading of \u003ccode\u003elauncher manifest.xml\u003c/code\u003e file. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5047\"\u003e#5047\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReplaced deprecated \u003ccode\u003ejson.__version__\u003c/code\u003e with fixture in tests. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5186\"\u003e#5186\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd advice about how to improve predictability when installing sdists. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5168\"\u003e#5168\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4941\"\u003e#4941\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5157\"\u003e#5157\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5169\"\u003e#5169\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5175\"\u003e#5175\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev82.0.0\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epkg_resources\u003c/code\u003e has been removed from Setuptools. Most common uses of \u003ccode\u003epkg_resources\u003c/code\u003e have been superseded by the \u003ccode\u003eimportlib.resources \u0026lt;https://docs.python.org/3/library/importlib.resources.html\u0026gt;\u003c/code\u003e_ and \u003ccode\u003eimportlib.metadata \u0026lt;https://docs.python.org/3/library/importlib.metadata.html\u0026gt;\u003c/code\u003e_ projects. Projects and environments relying on \u003ccode\u003epkg_resources\u003c/code\u003e for namespace packages or other behavior should depend on older versions of \u003ccode\u003esetuptools\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/3085\"\u003e#3085\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev81.0.0\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved support for the --dry-run parameter to setup.py. This one feature by its nature threads through lots of core and ancillary functionality, adding complexity and friction. Removal of this parameter will help decouple the compiler functionality from distutils and thus the eventual full integration of distutils. These changes do affect some class and function signatures, so any derivative functionality may require some compatibility shims to support their expected interface. Please report any issues to the Setuptools project for investigation. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev80.10.2\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate vendored dependencies. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5159\"\u003e#5159\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eMisc\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/5a13876673a41e3cd21d4d6e587f53d0fb4fd8e5\"\u003e\u003ccode\u003e5a13876\u003c/code\u003e\u003c/a\u003e Bump version: 82.0.0 → 82.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/51ab8f183f1c4112675d8d6ec6b004406d518ee8\"\u003e\u003ccode\u003e51ab8f1\u003c/code\u003e\u003c/a\u003e Avoid using (deprecated) 'json.\u003cstrong\u003eversion\u003c/strong\u003e' in tests (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5194\"\u003e#5194\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/f9c37b20bb0ed11203f676f9683452a4c3ace6f6\"\u003e\u003ccode\u003ef9c37b2\u003c/code\u003e\u003c/a\u003e Docs/CI: Fix intersphinx references (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5195\"\u003e#5195\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/8173db2a4fc0f6cb28926b3dba59116b79f435c8\"\u003e\u003ccode\u003e8173db2\u003c/code\u003e\u003c/a\u003e Docs: Fix intersphinx references\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/09bafbc74923f2a3591b5b098be75d6af6ca5141\"\u003e\u003ccode\u003e09bafbc\u003c/code\u003e\u003c/a\u003e Fix past tense on newsfragment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/461ea56c8e629819a23920f44d9298d4f041abde\"\u003e\u003ccode\u003e461ea56\u003c/code\u003e\u003c/a\u003e Add news fragment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/c4ffe535b58235ff9f9ebe90d24a2cffb57e70ae\"\u003e\u003ccode\u003ec4ffe53\u003c/code\u003e\u003c/a\u003e Avoid using (deprecated) 'json.\u003cstrong\u003eversion\u003c/strong\u003e' in tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/749258b1a96c7accc05ea7d842fb19fc378866fe\"\u003e\u003ccode\u003e749258b\u003c/code\u003e\u003c/a\u003e Cleanup \u003ccode\u003epkg_resources\u003c/code\u003e dependencies and configuration (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5175\"\u003e#5175\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/2019c16701667db1010c62ec11c6ef78c2e58206\"\u003e\u003ccode\u003e2019c16\u003c/code\u003e\u003c/a\u003e Parse \u003ccode\u003eext-module.define-macros\u003c/code\u003e from \u003ccode\u003epyproject.toml\u003c/code\u003e as list of tuples (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5169\"\u003e#5169\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/b809c86a37d97fcce290d5f51d4c293ab40bc685\"\u003e\u003ccode\u003eb809c86\u003c/code\u003e\u003c/a\u003e Sync setuptools schema with validate-pyproject (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5157\"\u003e#5157\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/setuptools/compare/v78.1.1...v82.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.20.0 to 2.1.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eMypy Release Notes\u003c/h1\u003e\n\u003ch2\u003eNext Release\u003c/h2\u003e\n\u003ch2\u003eMypy 2.1\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 2.1.0 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\nimprovements and bug fixes. You can install it as follows:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython3 -m pip install -U mypy\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eYou can read the full documentation for this release on \u003ca href=\"http://mypy.readthedocs.io\"\u003eRead the Docs\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003elibrt.vecs: Fast Growable Array Type for Mypyc\u003c/h3\u003e\n\u003cp\u003eThe new \u003ccode\u003elibrt.vecs\u003c/code\u003e module provides an efficient growable array type \u003ccode\u003evec\u003c/code\u003e that is\noptimized for mypyc use. It provides fast, packed arrays with integer and floating point\nvalue types, which can be \u003cstrong\u003eseveral times faster\u003c/strong\u003e than \u003ccode\u003elist\u003c/code\u003e, and tens of times faster\nthan \u003ccode\u003earray.array\u003c/code\u003e in code compiled using mypyc. It also supports nested \u003ccode\u003evec\u003c/code\u003e objects and\nnon-value-type items, such as \u003ccode\u003evec[vec[str]]\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eRefer to the \u003ca href=\"https://mypyc.readthedocs.io/en/latest/librt_vecs.html\"\u003edocumentation\u003c/a\u003e for\nthe details.\u003c/p\u003e\n\u003cp\u003eContributed by Jukka Lehtosalo.\u003c/p\u003e\n\u003ch3\u003elibrt.random: Fast Pseudo-Random Number Generation\u003c/h3\u003e\n\u003cp\u003eThe new \u003ccode\u003elibrt.random\u003c/code\u003e module provides fast pseudo-random number generation that is\noptimized for code compiled using mypyc. It can be 3x to 10x faster than the stdlib\n\u003ccode\u003erandom\u003c/code\u003e module in compiled code.\u003c/p\u003e\n\u003cp\u003eRefer to the \u003ca href=\"https://mypyc.readthedocs.io/en/latest/librt_random.html\"\u003edocumentation\u003c/a\u003e for\nthe details.\u003c/p\u003e\n\u003cp\u003eContributed by Jukka Lehtosalo (PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21433\"\u003e21433\u003c/a\u003e).\u003c/p\u003e\n\u003ch3\u003eMypyc Improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMake compilation order with multiple files consistent (Piotr Sawicki, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21419\"\u003e21419\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on accessing \u003ccode\u003eStopAsyncIteration\u003c/code\u003e (Piotr Sawicki, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21406\"\u003e21406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix incremental compilation with \u003ccode\u003eseparate\u003c/code\u003e flag (Vaggelis Danias, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21299\"\u003e21299\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes to Crashes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix crash on partial type with \u003ccode\u003e--allow-redefinition\u003c/code\u003e and \u003ccode\u003eglobal\u003c/code\u003e declaration (Jukka Lehtosalo, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21428\"\u003e21428\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix broken awaitable generator patching (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21435\"\u003e21435\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges to Messages\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c1c336d7e34eb313080c79b156518c58d27c7234\"\u003e\u003ccode\u003ec1c336d\u003c/code\u003e\u003c/a\u003e Remove +dev from version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/74df14b7cbf08140236aa45bbb7f42219b0b1df7\"\u003e\u003ccode\u003e74df14b\u003c/code\u003e\u003c/a\u003e Add changelog for mypy 2.1 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21464\"\u003e#21464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/022d9bc96f86c40f338a5cf150f1806cc8f300ff\"\u003e\u003ccode\u003e022d9bc\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;TypeForm: Enable by default (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21262\"\u003e#21262\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8826288214f1cb31496e610667481221e025359c\"\u003e\u003ccode\u003e8826288\u003c/code\u003e\u003c/a\u003e [mypyc] Document librt.random (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21463\"\u003e#21463\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/3f4067b699dbe52d08e42ef3b3ebfdebdc06bd96\"\u003e\u003ccode\u003e3f4067b\u003c/code\u003e\u003c/a\u003e Bump librt version to 0.11.0 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21458\"\u003e#21458\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2b1eb58a250c5f1eb4ef5fb1f312ff528c5a1d4e\"\u003e\u003ccode\u003e2b1eb58\u003c/code\u003e\u003c/a\u003e [mypyc] Enable incremental self-compilation (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21369\"\u003e#21369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8152f4af3f6c03beaf2660026240f0fdce7feecc\"\u003e\u003ccode\u003e8152f4a\u003c/code\u003e\u003c/a\u003e Respect file config comments for stale modules (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21444\"\u003e#21444\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/116d60bdd3fdfe8d97c6afe99370910db56f1b92\"\u003e\u003ccode\u003e116d60b\u003c/code\u003e\u003c/a\u003e Fix nondeterminism from nonassociativity of overload joins (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21455\"\u003e#21455\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/6c4af8e42110cea3f84bc02add2ca7b89c268210\"\u003e\u003ccode\u003e6c4af8e\u003c/code\u003e\u003c/a\u003e Fix function call message change for small number of args (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21432\"\u003e#21432\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/4b8fdcaf24032592510e8f15421fb32d82a71800\"\u003e\u003ccode\u003e4b8fdca\u003c/code\u003e\u003c/a\u003e [mypyc] Add librt.random module (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21433\"\u003e#21433\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.20.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 `types-pytz` from 2023.4.0.20240130 to 2026.2.0.20260518\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/python/typeshed/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy-protobuf` from 3.7.0 to 5.1.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nipunn1313/mypy-protobuf/blob/main/CHANGELOG.md\"\u003emypy-protobuf's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOn fields without presence and non-oneofs, override typing for Has/ClearField and WhichOneof\u003c/li\u003e\n\u003cli\u003eIf file is deprecated, deprecate all messages, enums, services, fields\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.0.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003ebuiltins.property\u003c/code\u003e to handle conflicts with fields named \u003ccode\u003eproperty\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eMangle all non provided message type imports, this prevents conflicts with field names like \u003ccode\u003ecollections\u003c/code\u003e, \u003ccode\u003ebuiltins\u003c/code\u003e, etc.\n\u003cul\u003e\n\u003cli\u003eDo not mangle message imports, as that would be a breaking change.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eBREAKING: Refactor import statements\n\u003cul\u003e\n\u003cli\u003eMove to model similar to protoc pyi generator. This prevents name collisions in field names\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003efrom test.a.b import c as _c\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eIf multiple names collied, append \u003ccode\u003e_{count}\u003c/code\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003efrom test.a.x import c as _c_1\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix bug in duplicate package name imports\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eExport stub methods as properties instead of attributes if deprecated and mark as such\u003c/li\u003e\n\u003cli\u003eExport enum fields as properties on class level (not module level) enums if deprecated and mark as such\u003c/li\u003e\n\u003cli\u003eExport fields as properties with getters/setters if deprecated and mark as such\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.0.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBREAKING: Drop support for \u003ccode\u003epy_generic_services\u003c/code\u003e as it was removed from the protobuf compiler starting in version 6.30\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://protobuf.dev/news/2024-10-02/#rpc-service-interfaces\"\u003ehttps://protobuf.dev/news/2024-10-02/#rpc-service-interfaces\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eDrop testing support for protobuf \u0026lt;6.32 because they don't support editions\n\u003cul\u003e\n\u003cli\u003eWith some more work this could be added back in a testing refactor\u003c/li\u003e\n\u003cli\u003eProtobuf \u0026lt;6.32 still had the edition enums and field options, so it \u003cem\u003eshould\u003c/em\u003e still work. But is untested\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd support for editions (up to 2024)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003egenerate_concrete_servicer_stubs\u003c/code\u003e option to generate concrete instead of abstract servicer stubs\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esync_only\u003c/code\u003e/\u003ccode\u003easync_only\u003c/code\u003e options to generate only sync or async version of GRPC stubs\u003c/li\u003e\n\u003cli\u003eSwitch to types-grpcio instead of no longer maintained grpc-stubs\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e_HasFieldArgType\u003c/code\u003e and \u003ccode\u003e_ClearFieldArgType\u003c/code\u003e aliases to allow for typing field manipulation functions\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e_WhichOneofArgType_\u0026lt;oneof_name\u0026gt;\u003c/code\u003e and \u003ccode\u003e_WhichOneofReturnType_\u0026lt;oneof_name\u0026gt;\u003c/code\u003e type aliases\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003e__new__\u003c/code\u003e overloads for async stubs instead of \u003ccode\u003eTypeVar\u003c/code\u003e based \u003ccode\u003e__init__\u003c/code\u003e overloads.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/nipunn1313/mypy-protobuf/issues/707\"\u003enipunn1313/mypy-protobuf#707\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eSupport file level field presence feature setting\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nipunn1313/mypy-protobuf/commit/e92875b9ae3a123bfd7b1e249935a33ed7b16a34\"\u003e\u003ccode\u003ee92875b\u003c/code\u003e\u003c/a\u003e prep 5.1.0 release (\u003ca href=\"https://redirect.github.com/nipunn1313/mypy-protobuf/issues/725\"\u003e#725\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nipunn1313/mypy-protobuf/commit/4e9458b6b424ca1ac65f72affe1d6a25561c2282\"\u003e\u003ccode\u003e4e9458b\u003c/code\u003e\u003c/a\u003e Deprecate if file deprecation option is set (\u003ca href=\"https://redirect.github.com/nipunn1313/mypy-protobuf/issues/724\"\u003e#724\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nipunn1313/mypy-protobuf/commit/b3a563edd046efe12460a080f8d149400496efcf\"\u003e\u003ccode\u003eb3a563e\u003c/code\u003e\u003c/a\u003e Add typing for Has/ClearField and WhichOneof when they aren't available (\u003ca href=\"https://redirect.github.com/nipunn1313/mypy-protobuf/issues/723\"\u003e#723\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nipunn1313/mypy-protobuf/commit/47fa102ae5d2bd2a1fdde2adf94cf006a3e939a4\"\u003e\u003ccode\u003e47fa102\u003c/code\u003e\u003c/a\u003e Prep 5.0.0 release (\u003ca href=\"https://redirect.github.com/nipunn1313/mypy-protobuf/issues/720\"\u003e#720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nipunn1313/mypy-protobuf/commit/d0a0ea96f3bddc8a3abc4b14174fb6b6e0c8b352\"\u003e\u003ccode\u003ed0a0ea9\u003c/code\u003e\u003c/a\u003e Add additional deprecation support (\u003ca href=\"https://redirect.github.com/nipunn1313/mypy-protobuf/issues/713\"\u003e#713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nipunn1313/mypy-protobuf/commit/9851ab87f51d8148600b09af315d9c446b43a084\"\u003e\u003ccode\u003e9851ab8\u003c/code\u003e\u003c/a\u003e Add googleapis as test fodder (\u003ca href=\"https://redirect.github.com/nipunn1313/mypy-protobuf/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nipunn1313/mypy-protobuf/commit/5f5a3ba62ae389e1ba850aacde4ad5c7abc8bfd4\"\u003e\u003ccode\u003e5f5a3ba\u003c/code\u003e\u003c/a\u003e Move to pyproject.toml (\u003ca href=\"https://redirect.github.com/nipunn1313/mypy-protobuf/issues/718\"\u003e#718\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nipunn1313/mypy-protobuf/commit/7d68665906b16a0fa4e880af8bf940dc7492211a\"\u003e\u003ccode\u003e7d68665\u003c/code\u003e\u003c/a\u003e prep 3.8.0 release (\u003ca href=\"https://redirect.github.com/nipunn1313/mypy-protobuf/issues/715\"\u003e#715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nipunn1313/mypy-protobuf/commit/7b20d4eeebb3a8161d2c0591fe66847a5909ba55\"\u003e\u003ccode\u003e7b20d4e\u003c/code\u003e\u003c/a\u003e Support file level field presence feature setting (\u003ca href=\"https://redirect.github.com/nipunn1313/mypy-protobuf/issues/717\"\u003e#717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nipunn1313/mypy-protobuf/commit/f35584a0834f0e9d59efc44b2320eeabd6c43982\"\u003e\u003ccode\u003ef35584a\u003c/code\u003e\u003c/a\u003e Add flags to generate only sync or only async stubs (\u003ca href=\"https://redirect.github.com/nipunn1313/mypy-protobuf/issues/694\"\u003e#694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nipunn1313/mypy-protobuf/compare/v3.7.0...v5.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `azure-search-documents` from 11.6.0 to 12.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/releases\"\u003eazure-search-documents's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eazure-search-documents_12.0.0\u003c/h2\u003e\n\u003ch2\u003e12.0.0 (2026-04-01)\u003c/h2\u003e\n\u003ch3\u003eFeatures Added\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBelow clients, models, and enum members are added for knowledge base support\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.knowledgebases.KnowledgeBaseRetrievalClient\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.indexes.models.AzureBlobKnowledgeSource\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.indexes.models.IndexedOneLakeKnowledgeSource\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.indexes.models.KnowledgeBase\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.indexes.models.SearchIndexKnowledgeSource\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.indexes.models.WebKnowledgeSource\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.knowledgebases.models.KnowledgeBaseActivityRecordType.MODEL_WEB_SUMMARIZATION\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.knowledgebases.models.KnowledgeBaseModelWebSummarizationActivityRecord\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.knowledgebases.models.KnowledgeRetrievalMinimalReasoningEffort\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.knowledgebases.models.KnowledgeRetrievalReasoningEffort\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.knowledgebases.models.KnowledgeSourceStatistics\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.knowledgebases.models.KnowledgeSourceStatus\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.knowledgebases.models.KnowledgeSourceSynchronizationError\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBelow properties are added or changed for index and indexer enhancements\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.indexes.models.SearchIndexerDataSourceConnection.identity\u003c/code\u003e for managed identity support on data source connections.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.indexes.models.SearchIndexerKnowledgeStore.identity\u003c/code\u003e for managed identity support on knowledge store projections.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.indexes.models.SearchResourceEncryptionKey.key_version\u003c/code\u003e changed from required to optional, aligning with service behavior.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBelow enum members and properties are added for Markdown parsing\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.indexes.models.BlobIndexerParsingMode.MARKDOWN\u003c/code\u003e enum value for native Markdown file parsing in blob indexers.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.indexes.models.IndexingParametersConfiguration.markdown_header_depth\u003c/code\u003e (\u003ccode\u003eh1\u003c/code\u003e through \u003ccode\u003eh6\u003c/code\u003e) to set header depth for sectioning.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.indexes.models.IndexingParametersConfiguration.markdown_parsing_submode\u003c/code\u003e (\u003ccode\u003eoneToOne\u003c/code\u003e or \u003ccode\u003eoneToMany\u003c/code\u003e) to control document splitting.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBelow models are added\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.indexes.models.ChatCompletionCommonModelParameters\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.indexes.models.ChatCompletionResponseFormat\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.indexes.models.ChatCompletionSchema\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.indexes.models.ChatCompletionSkill\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.indexes.models.ContentUnderstandingSkill\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.indexes.models.ContentUnderstandingSkillChunkingProperties\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.indexes.models.ContentUnderstandingSkillChunkingUnit\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.indexes.models.ContentUnderstandingSkillExtractionOptions\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.knowledgebases.models.AIServices\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.knowledgebases.models.CompletedSynchronizationState\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.knowledgebases.models.SynchronizationState\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eserialize()\u003c/code\u003e and \u003ccode\u003edeserialize()\u003c/code\u003e methods on models are removed. Use \u003ccode\u003eas_dict()\u003c/code\u003e to serialize and the model constructor to deserialize (e.g., \u003ccode\u003eindex.as_dict()\u003c/code\u003e instead of \u003ccode\u003eindex.serialize()\u003c/code\u003e, \u003ccode\u003eSearchIndex(data)\u003c/code\u003e instead of \u003ccode\u003eSearchIndex.deserialize(data)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eBelow models do not exist in this release\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.indexes.models.EntityRecognitionSkill\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.indexes.models.EntityRecognitionSkillVersion\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eazure.search.documents.indexes.models.PathHierarchyTokenizer\u003c/code\u003e (renamed to \u003ccode\u003ePathHierarchyTokenizerV2\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/0af31f93d5aa5cda79b7993237b424004db0c8c0\"\u003e\u003ccode\u003e0af31f9\u003c/code\u003e\u003c/a\u003e Sync eng/common directory with azure-sdk-tools for PR 15388 (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/46632\"\u003e#46632\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/71121118731e3190e671ebeceab222ec7c0a0539\"\u003e\u003ccode\u003e7112111\u003c/code\u003e\u003c/a\u003e Increment version for core releases (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/46660\"\u003e#46660\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/6b097634a5cf2fd15b83bc899f28039d31591dc3\"\u003e\u003ccode\u003e6b09763\u003c/code\u003e\u003c/a\u003e Use constants to decide distro version in the exporter (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/46613\"\u003e#46613\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/79197c992a009f2292ce78544ef10d073d0fb75a\"\u003e\u003ccode\u003e79197c9\u003c/code\u003e\u003c/a\u003e [Search] Regenerate azure-search-documents from 2026-04-01 GA spec patch (SHA...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/d0f245510f127d13e100d9bf0dc0178f714f702e\"\u003e\u003ccode\u003ed0f2455\u003c/code\u003e\u003c/a\u003e Remove Ruff support (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/46578\"\u003e#46578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/c14e6ba98f0302547bb22fa341cdf727214377e5\"\u003e\u003ccode\u003ec14e6ba\u003c/code\u003e\u003c/a\u003e [Core] Prepare release (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/46612\"\u003e#46612\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/a08ffff3a2a0960b904b869f059bd9b19d3ace26\"\u003e\u003ccode\u003ea08ffff\u003c/code\u003e\u003c/a\u003e [Core] Set kwarg explicitly in method signatures (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/46633\"\u003e#46633\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/31fd1c3583d2da455df56e70f1738242550adc92\"\u003e\u003ccode\u003e31fd1c3\u003c/code\u003e\u003c/a\u003e [AutoPR azure-mgmt-web]-generated-from-SDK Generation - Python-6087407 (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/46019\"\u003e#46019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/2bdb89e8f7e7036619df22d0d8230365f74d9863\"\u003e\u003ccode\u003e2bdb89e\u003c/code\u003e\u003c/a\u003e [Core] Prepare release (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/46631\"\u003e#46631\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/f915b0b509359e41a2b966d85a4b56cf42bb0cdf\"\u003e\u003ccode\u003ef915b0b\u003c/code\u003e\u003c/a\u003e Update sync workflow pointer (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/46593\"\u003e#46593\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/compare/azure-search-documents_11.6.0...azure-search-documents_12.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pdfminer-six` from 20251230 to 20260107\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pdfminer/pdfminer.six/releases\"\u003epdfminer-six's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e20260107\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport cmap types 6, 10 and 12 (\u003ca href=\"https://redirect.github.com/pdfminer/pdfminer.six/pull/1213\"\u003e#598\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEncapsulate error when failing to get attribute or data from stream (\u003ca href=\"https://redirect.github.com/pdfminer/pdfminer.six/pull/1225\"\u003e#1225\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pdfminer/pdfminer.six/pull/1226\"\u003e#1226\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eValidate maximum size of xref start (\u003ca href=\"https://redirect.github.com/pdfminer/pdfminer.six/pull/1227\"\u003e#1227\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse lazy %-style formatting for logging (\u003ca href=\"https://redirect.github.com/pdfminer/pdfminer.six/pull/1234\"\u003e#1234\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUnused methods close, tell and poll on PSBaseParser (\u003ca href=\"https://redirect.github.com/pdfminer/pdfminer.six/pull/1230\"\u003e#1230\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/pdfminer/pdfminer.six/blob/master/CHANGELOG.md\"\u003epdfminer-six's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[20260107]\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport cmap types 6, 10 and 12 (\u003ca href=\"https://redirect.github.com/pdfminer/pdfminer.six/pull/1213\"\u003e#598\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEncapsulate error when failing to get attribute or data from stream (\u003ca href=\"https://redirect.github.com/pdfminer/pdfminer.six/pull/1225\"\u003e#1225\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pdfminer/pdfminer.six/pull/1226\"\u003e#1226\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eValidate maximum size of xref start (\u003ca href=\"https://redirect.github.com/pdfminer/pdfminer.six/pull/1227\"\u003e#1227\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse lazy %-style formatting for logging (\u003ca href=\"https://redirect.github.com/pdfminer/pdfminer.six/pull/1234\"\u003e#1234\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUnused methods close, tell and poll on PSBaseParser (\u003ca href=\"https://redirect.github.com/pdfminer/pdfminer.six/pull/1230\"\u003e#1230\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/pdfminer/pdfminer.six/commit/9e1243c4ad000bf9bbe60e81fc8dde2fccc0ed3b\"\u003e\u003ccode\u003e9e1243c\u003c/code\u003e\u003c/a\u003e chore: bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pdfminer/pdfminer.six/commit/0d38cef56f298ade0c06256ca4391b78aac9de20\"\u003e\u003ccode\u003e0d38cef\u003c/code\u003e\u003c/a\u003e perf: use lazy %-style logging (\u003ca href=\"https://redirect.github.com/pdfminer/pdfminer.six/issues/1234\"\u003e#1234\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pdfminer/pdfminer.six/commit/30677062259b229deda1e402e9d40aef628f0831\"\u003e\u003ccode\u003e3067706\u003c/code\u003e\u003c/a\u003e remove: unused methods close, tell and poll on PSBaseParser (\u003ca href=\"https://redirect.github.com/pdfminer/pdfminer.six/issues/1230\"\u003e#1230\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pdfminer/pdfminer.six/commit/c706bdc161b0add59344a28756b090d5a99293d0\"\u003e\u003ccode\u003ec706bdc\u003c/code\u003e\u003c/a\u003e fix: validate maximum size of xref start (\u003ca href=\"https://redirect.github.com/pdfminer/pdfminer.six/issues/1227\"\u003e#1227\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pdfminer/pdfminer.six/commit/48f3404e4da37cf165bfb87a271b1f023222d5d9\"\u003e\u003ccode\u003e48f3404\u003c/code\u003e\u003c/a\u003e fix: encapsulate error when parsing data from stream (\u003ca href=\"https://redirect.github.com/pdfminer/pdfminer.six/issues/1226\"\u003e#1226\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pdfminer/pdfminer.six/commit/426116fab84bd3d1542b9e7a15dcddb17556929b\"\u003e\u003ccode\u003e426116f\u003c/code\u003e\u003c/a\u003e fix: encapsulate errors when failing to get attribute from stream (\u003ca href=\"https://redirect.github.com/pdfminer/pdfminer.six/issues/1225\"\u003e#1225\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pdfminer/pdfminer.six/commit/a2a353f5e0f5837f6113dbf058d60efa330e6eb8\"\u003e\u003ccode\u003ea2a353f\u003c/code\u003e\u003c/a\u003e feat: add support for cmap types 6, 10 and 12 (\u003ca href=\"https://redirect.github.com/pdfminer/pdfminer.six/issues/1213\"\u003e#1213\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pdfminer/pdfminer.six/compare/20251230...20260107\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/langchain-ai/langchain-community/pull/670","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/langchain-ai%2Flangchain-community/issues/670","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/670/packages"}},{"old_version":"5.1.0","new_version":"5.2.0","update_type":"minor","path":null,"pr_created_at":"2026-05-18T22:47:17.000Z","version_change":"5.1.0 → 5.2.0","issue":{"uuid":"4473088730","node_id":"PR_kwDOKjBbgs7c2dRv","number":1005,"state":"open","title":"chore: Bump syrupy from 5.1.0 to 5.2.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-18T22:47:17.000Z","updated_at":"2026-05-18T22:49:10.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore: Bump","packages":[{"name":"syrupy","old_version":"5.1.0","new_version":"5.2.0","repository_url":"https://github.com/syrupy-project/syrupy"}],"path":null,"ecosystem":"pip"},"body":"Bumps [syrupy](https://github.com/syrupy-project/syrupy) from 5.1.0 to 5.2.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/syrupy-project/syrupy/releases\"\u003esyrupy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.2.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): update actions/checkout action to v6.0.2 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1065\"\u003esyrupy-project/syrupy#1065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update actions/setup-python action to v6.2.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1066\"\u003esyrupy-project/syrupy#1066\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency ruff to v0.14.14 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1067\"\u003esyrupy-project/syrupy#1067\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency coverage to v7.13.2 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1068\"\u003esyrupy-project/syrupy#1068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: migrate to uv, close \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1019\"\u003e#1019\u003c/a\u003e by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1049\"\u003esyrupy-project/syrupy#1049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency coverage to v7.13.2 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1069\"\u003esyrupy-project/syrupy#1069\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency debugpy to v1.8.19 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1070\"\u003esyrupy-project/syrupy#1070\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency mypy to v1.19.1 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1071\"\u003esyrupy-project/syrupy#1071\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency ruff to v0.14.14 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1072\"\u003esyrupy-project/syrupy#1072\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update python docker tag to v3.14.3 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1073\"\u003esyrupy-project/syrupy#1073\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update astral-sh/setup-uv action to v7.3.1 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1076\"\u003esyrupy-project/syrupy#1076\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update lock file by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1077\"\u003esyrupy-project/syrupy#1077\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update benchmark-action/github-action-benchmark action to v1.21.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1078\"\u003esyrupy-project/syrupy#1078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update astral-sh/setup-uv action to v7.5.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1080\"\u003esyrupy-project/syrupy#1080\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1081\"\u003e#1081\u003c/a\u003e): Handle unicode line-endings correctly when serializing by \u003ca href=\"https://github.com/DRMacIver\"\u003e\u003ccode\u003e@​DRMacIver\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1082\"\u003esyrupy-project/syrupy#1082\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: add DRMacIver as a contributor for bug by \u003ca href=\"https://github.com/allcontributors\"\u003e\u003ccode\u003e@​allcontributors\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1083\"\u003esyrupy-project/syrupy#1083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update lockfile by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1086\"\u003esyrupy-project/syrupy#1086\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: migrate off semantic-release to trusted publishing by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1093\"\u003esyrupy-project/syrupy#1093\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: set name/email by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1094\"\u003esyrupy-project/syrupy#1094\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/DRMacIver\"\u003e\u003ccode\u003e@​DRMacIver\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1082\"\u003esyrupy-project/syrupy#1082\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.1.0...v5.2.0\"\u003ehttps://github.com/syrupy-project/syrupy/compare/v5.1.0...v5.2.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/syrupy-project/syrupy/blob/main/CHANGELOG.md\"\u003esyrupy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/releases/tag/v5.2.0\"\u003ev5.2.0\u003c/a\u003e (2026-05-16)\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): update actions/checkout action to v6.0.2 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1065\"\u003esyrupy-project/syrupy#1065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update actions/setup-python action to v6.2.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1066\"\u003esyrupy-project/syrupy#1066\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency ruff to v0.14.14 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1067\"\u003esyrupy-project/syrupy#1067\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency coverage to v7.13.2 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1068\"\u003esyrupy-project/syrupy#1068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: migrate to uv, close \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1019\"\u003e#1019\u003c/a\u003e by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1049\"\u003esyrupy-project/syrupy#1049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency coverage to v7.13.2 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1069\"\u003esyrupy-project/syrupy#1069\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency debugpy to v1.8.19 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1070\"\u003esyrupy-project/syrupy#1070\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency mypy to v1.19.1 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1071\"\u003esyrupy-project/syrupy#1071\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update dependency ruff to v0.14.14 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1072\"\u003esyrupy-project/syrupy#1072\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update python docker tag to v3.14.3 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1073\"\u003esyrupy-project/syrupy#1073\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update astral-sh/setup-uv action to v7.3.1 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1076\"\u003esyrupy-project/syrupy#1076\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update lock file by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1077\"\u003esyrupy-project/syrupy#1077\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update benchmark-action/github-action-benchmark action to v1.21.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1078\"\u003esyrupy-project/syrupy#1078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): update astral-sh/setup-uv action to v7.5.0 by \u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1080\"\u003esyrupy-project/syrupy#1080\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1081\"\u003e#1081\u003c/a\u003e): Handle unicode line-endings correctly when serializing by \u003ca href=\"https://github.com/DRMacIver\"\u003e\u003ccode\u003e@​DRMacIver\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1082\"\u003esyrupy-project/syrupy#1082\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: add DRMacIver as a contributor for bug by \u003ca href=\"https://github.com/allcontributors\"\u003e\u003ccode\u003e@​allcontributors\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1083\"\u003esyrupy-project/syrupy#1083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update lockfile by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1086\"\u003esyrupy-project/syrupy#1086\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: migrate off semantic-release to trusted publishing by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1093\"\u003esyrupy-project/syrupy#1093\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: set name/email by \u003ca href=\"https://github.com/noahnu\"\u003e\u003ccode\u003e@​noahnu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1094\"\u003esyrupy-project/syrupy#1094\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/DRMacIver\"\u003e\u003ccode\u003e@​DRMacIver\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/1082\"\u003esyrupy-project/syrupy#1082\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.1.0...v5.2.0\"\u003ehttps://github.com/syrupy-project/syrupy/compare/v5.1.0...v5.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.1.1...v5.1.2\"\u003e5.1.2\u003c/a\u003e (2026-04-06)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebuild configuration (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1086\"\u003e#1086\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/a997e3e643b55342af2e1d89d7b24d6c1fbadc1f\"\u003ea997e3e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.1.0...v5.1.1\"\u003e5.1.1\u003c/a\u003e (2026-04-06)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1081\"\u003e#1081\u003c/a\u003e:\u003c/strong\u003e Handle unicode line-endings correctly when serializing (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1082\"\u003e#1082\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/04f4cc8e21ae743d4ebc95a0961f0802f57f1856\"\u003e04f4cc8\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1081\"\u003e#1081\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/syrupy-project/syrupy/commit/c6bc988ee61ded4c1bea1e13a1d95e42c68219b0\"\u003e\u003ccode\u003ec6bc988\u003c/code\u003e\u003c/a\u003e chore: push on correct branch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/659f456bfef13df50fef5c95f84248b8fd720a60\"\u003e\u003ccode\u003e659f456\u003c/code\u003e\u003c/a\u003e chore: add id-token write\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/6401bc28aab02447dfc698beba33df6fd6d93817\"\u003e\u003ccode\u003e6401bc2\u003c/code\u003e\u003c/a\u003e chore: set name/email (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1094\"\u003e#1094\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/f1e3f0bac92a683a7412d4e1fbaf076e82c932de\"\u003e\u003ccode\u003ef1e3f0b\u003c/code\u003e\u003c/a\u003e chore: migrate off semantic-release to trusted publishing (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1093\"\u003e#1093\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8ff4d46fe1b4392d9d2f3ac1a2228911d9939948\"\u003e\u003ccode\u003e8ff4d46\u003c/code\u003e\u003c/a\u003e chore(release): 5.1.2 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/a997e3e643b55342af2e1d89d7b24d6c1fbadc1f\"\u003e\u003ccode\u003ea997e3e\u003c/code\u003e\u003c/a\u003e fix: build configuration (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1086\"\u003e#1086\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/561c94a136b183f5f22eb71f5b660e0f46e01b5b\"\u003e\u003ccode\u003e561c94a\u003c/code\u003e\u003c/a\u003e chore(release): 5.1.1 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/dfdba17b3cb983a5452f35e712c074cc1186d935\"\u003e\u003ccode\u003edfdba17\u003c/code\u003e\u003c/a\u003e docs: add DRMacIver as a contributor for bug (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1083\"\u003e#1083\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/04f4cc8e21ae743d4ebc95a0961f0802f57f1856\"\u003e\u003ccode\u003e04f4cc8\u003c/code\u003e\u003c/a\u003e fix(\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1081\"\u003e#1081\u003c/a\u003e): Handle unicode line-endings correctly when serializing (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1082\"\u003e#1082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/34f9b27e699a690e7ca1644a8a64d10a0e7d789c\"\u003e\u003ccode\u003e34f9b27\u003c/code\u003e\u003c/a\u003e chore(deps): update astral-sh/setup-uv action to v7.5.0 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1080\"\u003e#1080\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.1.0...v5.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=syrupy\u0026package-manager=pip\u0026previous-version=5.1.0\u0026new-version=5.2.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/Twingate/kubernetes-operator/pull/1005","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Twingate%2Fkubernetes-operator/issues/1005","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1005/packages"}},{"old_version":"\u003e=5.0.0","new_version":"\u003e=5.1.0","update_type":"minor","path":null,"pr_created_at":"2026-05-05T00:25:20.000Z","version_change":"\u003e=5.0.0 → \u003e=5.1.0","issue":{"uuid":"4380596965","node_id":"PR_kwDODVijX87YNywd","number":645,"state":"open","title":"chore(deps-dev): update syrupy requirement from \u003e=5.0.0 to \u003e=5.1.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-05T00:25:20.000Z","updated_at":"2026-05-05T00:28:00.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps-dev): update","packages":[{"name":"syrupy","old_version":"\u003e=5.0.0","new_version":"\u003e=5.1.0","repository_url":"https://github.com/syrupy-project/syrupy"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [syrupy](https://github.com/syrupy-project/syrupy) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/syrupy-project/syrupy/releases\"\u003esyrupy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.1.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.0.0...v5.1.0\"\u003e5.1.0\u003c/a\u003e (2026-01-25)\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd serializer plugin system; plugins for data models (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1062\"\u003e#1062\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/df9bc8f6b3a222dde82167e10a2e6bb57456305a\"\u003edf9bc8f\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/syrupy-project/syrupy/blob/main/CHANGELOG.md\"\u003esyrupy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.0.0...v5.1.0\"\u003e5.1.0\u003c/a\u003e (2026-01-25)\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd serializer plugin system; plugins for data models (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1062\"\u003e#1062\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/df9bc8f6b3a222dde82167e10a2e6bb57456305a\"\u003edf9bc8f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\"\u003e5.0.0\u003c/a\u003e (2025-09-28)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch to MIT license (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/945\"\u003e#945\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/d74d340f8884fdb04831fcf77f29d66e098aaa66\"\u003ed74d340\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlock terminal summary for xdist workers. (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/978\"\u003e#978\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/33a848df7c4a33577e4057eae5792f6592ad3172\"\u003e33a848d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eensure syrupy's pytest_assertrepr_compare hook is called first. (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/984\"\u003e#984\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/eb0024d339248b7e1f76fdb65ed30ba3e19c0857\"\u003eeb0024d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove incorrect private underscore prefix from public methods (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003e8cfc905\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd --snapshot-dirname option, close \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003e#810\u003c/a\u003e (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/27135c7c861441962c2cedde841f3e4fed2949fd\"\u003e27135c7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edrop support for py3.8, raise min. pytest to v8 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/904\"\u003e#904\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/a879ff15ad82e59a2f387db0822be072a5684f2f\"\u003ea879ff1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate min. python version to 3.10 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003e#1024\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/16b4113cd56da96e84a90ebda0919e9b8dd35954\"\u003e16b4113\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe following methods have been renamed:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSnapshotCollectionStorage\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e_read_snapshot_collection -\u0026gt; read_snapshot_collection\u003c/li\u003e\n\u003cli\u003e_read_snapshot_data_from_location -\u0026gt; read_snapshot_data_from_location\u003c/li\u003e\n\u003cli\u003e_write_snapshot_collection -\u0026gt; write_snapshot_collection\u003c/li\u003e\n\u003cli\u003e_get_file_basename -\u0026gt; get_file_basename\u003c/li\u003e\n\u003cli\u003e_file_extension -\u0026gt; file_extension\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eAmberDataSerializer\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e_snapshot_sort_key -\u0026gt; snapshot_sort_key\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRenamed constants to improve clarity:\u003c/p\u003e\n\u003cp\u003econstants\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSNAPSHOT_EMPTY_FOSSIL_KEY -\u0026gt; SNAPSHOT_EMPTY_COLLECTION_KEY\u003c/li\u003e\n\u003cli\u003eSNAPSHOT_UNKNOWN_FOSSIL_KEY -\u0026gt; SNAPSHOT_UNKNOWN_COLLECTION_KEY\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/7096efdee61a8e1bc47492bdd0bc860766df40e9\"\u003e\u003ccode\u003e7096efd\u003c/code\u003e\u003c/a\u003e chore(release): 5.1.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/07aa00dd48d65e74814cec863b5f236e09afb464\"\u003e\u003ccode\u003e07aa00d\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency attrs to v25 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1063\"\u003e#1063\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/1f29ae061e9557e205e50fb2f9971ee95c4bd08e\"\u003e\u003ccode\u003e1f29ae0\u003c/code\u003e\u003c/a\u003e docs: add bwrob as a contributor for code (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1064\"\u003e#1064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/df9bc8f6b3a222dde82167e10a2e6bb57456305a\"\u003e\u003ccode\u003edf9bc8f\u003c/code\u003e\u003c/a\u003e feat: add serializer plugin system; plugins for data models (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1062\"\u003e#1062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/841257deaf598df7c3d154b8e2d694f8bb7e5055\"\u003e\u003ccode\u003e841257d\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency coverage to v7.13.1 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1061\"\u003e#1061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/2d8dfa7f7bb2a5f7c0210107dbb65b62a615d434\"\u003e\u003ccode\u003e2d8dfa7\u003c/code\u003e\u003c/a\u003e chore(deps): update codecov/codecov-action action to v5.5.2 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1056\"\u003e#1056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/f5f9ef77027983d3b62d8cc5bfc3a9ef058fe509\"\u003e\u003ccode\u003ef5f9ef7\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency debugpy to v1.8.18 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1057\"\u003e#1057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/eaeb6ae11f57aa3e595d4c45e7be4a3ed2d66dfc\"\u003e\u003ccode\u003eeaeb6ae\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency pytest to v9.0.2 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/263b23b768ef761c3f7e1faa0671b0709c1887b1\"\u003e\u003ccode\u003e263b23b\u003c/code\u003e\u003c/a\u003e chore(deps): update python docker tag to v3.14.1 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1054\"\u003e#1054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/a0dd77b023fee34ff0968a822e0d0740c9c7fb93\"\u003e\u003ccode\u003ea0dd77b\u003c/code\u003e\u003c/a\u003e chore(deps): update actions/checkout action to v6.0.1 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1053\"\u003e#1053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.0.0...v5.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/ramses-rf/ramses_rf/pull/645","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ramses-rf%2Framses_rf/issues/645","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/645/packages"}},{"old_version":"4.9.1","new_version":"5.1.0","update_type":"major","path":null,"pr_created_at":"2026-02-08T16:27:16.000Z","version_change":"4.9.1 → 5.1.0","issue":{"uuid":"3913045712","node_id":"PR_kwDOJVkqEs7CT_7Z","number":1204,"state":"open","title":"chore(deps): bump the poetry group across 3 directories with 46 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-02-08T16:27:16.000Z","updated_at":"2026-02-25T18:00:32.433Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"poetry","update_count":46,"packages":[{"name":"pydantic","old_version":"2.11.3","new_version":"2.12.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"sqlalchemy","old_version":"2.0.40","new_version":"2.0.46","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"alembic","old_version":"1.15.2","new_version":"1.18.3","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"asyncpg","old_version":"0.30.0","new_version":"0.31.0","repository_url":"https://github.com/MagicStack/asyncpg"},{"name":"pyjwt","old_version":"2.10.1","new_version":"2.11.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"tenacity","old_version":"9.1.2","new_version":"9.1.4","repository_url":"https://github.com/jd/tenacity"},{"name":"kubernetes","old_version":"31.0.0","new_version":"33.1.0","repository_url":"https://github.com/kubernetes-client/python"},{"name":"python-ulid","old_version":"3.0.0","new_version":"3.1.0","repository_url":"https://github.com/mdomke/python-ulid"},{"name":"python-gitlab","old_version":"5.6.0","new_version":"8.0.0","repository_url":"https://github.com/python-gitlab/python-gitlab"},{"name":"psycopg","old_version":"3.2.6","new_version":"3.3.2","repository_url":"https://github.com/psycopg/psycopg"},{"name":"urllib3","old_version":"2.6.0","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"},{"name":"authlib","old_version":"1.6.0","new_version":"1.6.7","repository_url":"https://github.com/authlib/authlib"},{"name":"marshmallow","old_version":"3.26.2","new_version":"4.2.2","repository_url":"https://github.com/marshmallow-code/marshmallow"},{"name":"escapism","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jupyterhub/escapism"},{"name":"sentry-sdk","old_version":"2.26.1","new_version":"2.52.0","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"authzed","old_version":"1.21.1","new_version":"1.24.2","repository_url":"https://github.com/authzed/authzed-py"},{"name":"cryptography","old_version":"44.0.2","new_version":"46.0.4","repository_url":"https://github.com/pyca/cryptography"},{"name":"setuptools","old_version":"75.9.1","new_version":"82.0.0","repository_url":"https://github.com/pypa/setuptools"},{"name":"kr8s","old_version":"0.20.7","new_version":"0.20.15","repository_url":"https://github.com/kr8s-org/kr8s"},{"name":"werkzeug","old_version":"3.1.3","new_version":"3.1.5","repository_url":"https://github.com/pallets/werkzeug"},{"name":"aiofiles","old_version":"24.1.0","new_version":"25.1.0","repository_url":"https://github.com/Tinche/aiofiles"},{"name":"protobuf","old_version":"5.29.4","new_version":"6.33.5","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"poetry","old_version":"2.1.2","new_version":"2.3.2","repository_url":"https://github.com/python-poetry/poetry"},{"name":"parsy","old_version":"2.1","new_version":"2.2","repository_url":"https://github.com/python-parsy/parsy"},{"name":"posthog","old_version":"3.25.0","new_version":"7.8.3","repository_url":"https://github.com/posthog/posthog-python"},{"name":"markdown-code-runner","old_version":"2.2.0","new_version":"2.7.0","repository_url":"https://github.com/basnijholt/markdown-code-runner"},{"name":"bandit","old_version":"1.8.3","new_version":"1.9.3","repository_url":"https://github.com/PyCQA/bandit"},{"name":"mypy","old_version":"1.15.0","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"pytest","old_version":"8.3.5","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-cov","old_version":"6.1.1","new_version":"7.0.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pre-commit","old_version":"4.2.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"aiosqlite","old_version":"0.20.0","new_version":"0.22.1","repository_url":"https://github.com/omnilib/aiosqlite"},{"name":"types-pyyaml","old_version":"6.0.12.20250402","new_version":"6.0.12.20250915","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"schemathesis","old_version":"3.39.7","new_version":"4.10.0","repository_url":"https://github.com/schemathesis/schemathesis"},{"name":"pytest-asyncio","old_version":"0.21.2","new_version":"1.3.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"pytest-postgresql","old_version":"6.1.1","new_version":"8.0.0","repository_url":"https://github.com/dbfixtures/pytest-postgresql"},{"name":"ruff","old_version":"0.8.6","new_version":"0.15.0","repository_url":"https://github.com/astral-sh/ruff"},{"name":"debugpy","old_version":"1.8.14","new_version":"1.8.20","repository_url":"https://github.com/microsoft/debugpy"},{"name":"pytest-xdist","old_version":"3.6.1","new_version":"3.8.0","repository_url":"https://github.com/pytest-dev/pytest-xdist"},{"name":"types-requests","old_version":"2.32.0.20250328","new_version":"2.32.4.20260107","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"types-aiofiles","old_version":"24.1.0.20250326","new_version":"25.1.0.20251011","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"uvloop","old_version":"0.21.0","new_version":"0.22.1","repository_url":"https://github.com/MagicStack/uvloop"},{"name":"syrupy","old_version":"4.9.1","new_version":"5.1.0","repository_url":"https://github.com/syrupy-project/syrupy"},{"name":"ruamel-yaml","old_version":"0.18.14","new_version":"0.19.1"},{"name":"datamodel-code-generator","old_version":"0.28.5","new_version":"0.53.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"}],"path":null,"ecosystem":"pip"},"body":"Bumps the poetry group with 46 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.11.3` | `2.12.5` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.40` | `2.0.46` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.15.2` | `1.18.3` |\n| [asyncpg](https://github.com/MagicStack/asyncpg) | `0.30.0` | `0.31.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.10.1` | `2.11.0` |\n| [tenacity](https://github.com/jd/tenacity) | `9.1.2` | `9.1.4` |\n| [kubernetes](https://github.com/kubernetes-client/python) | `31.0.0` | `33.1.0` |\n| [python-ulid](https://github.com/mdomke/python-ulid) | `3.0.0` | `3.1.0` |\n| [python-gitlab](https://github.com/python-gitlab/python-gitlab) | `5.6.0` | `8.0.0` |\n| [psycopg](https://github.com/psycopg/psycopg) | `3.2.6` | `3.3.2` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.6.0` | `2.6.3` |\n| [authlib](https://github.com/authlib/authlib) | `1.6.0` | `1.6.7` |\n| [marshmallow](https://github.com/marshmallow-code/marshmallow) | `3.26.2` | `4.2.2` |\n| [escapism](https://github.com/jupyterhub/escapism) | `1.0.1` | `1.1.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.26.1` | `2.52.0` |\n| [authzed](https://github.com/authzed/authzed-py) | `1.21.1` | `1.24.2` |\n| [cryptography](https://github.com/pyca/cryptography) | `44.0.2` | `46.0.4` |\n| [setuptools](https://github.com/pypa/setuptools) | `75.9.1` | `82.0.0` |\n| [kr8s](https://github.com/kr8s-org/kr8s) | `0.20.7` | `0.20.15` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.3` | `3.1.5` |\n| [aiofiles](https://github.com/Tinche/aiofiles) | `24.1.0` | `25.1.0` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `5.29.4` | `6.33.5` |\n| [poetry](https://github.com/python-poetry/poetry) | `2.1.2` | `2.3.2` |\n| [parsy](https://github.com/python-parsy/parsy) | `2.1` | `2.2` |\n| [posthog](https://github.com/posthog/posthog-python) | `3.25.0` | `7.8.3` |\n| [markdown-code-runner](https://github.com/basnijholt/markdown-code-runner) | `2.2.0` | `2.7.0` |\n| [bandit](https://github.com/PyCQA/bandit) | `1.8.3` | `1.9.3` |\n| [mypy](https://github.com/python/mypy) | `1.15.0` | `1.19.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.5` | `8.4.2` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `6.1.1` | `7.0.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.2.0` | `4.5.1` |\n| [aiosqlite](https://github.com/omnilib/aiosqlite) | `0.20.0` | `0.22.1` |\n| [types-pyyaml](https://github.com/typeshed-internal/stub_uploader) | `6.0.12.20250402` | `6.0.12.20250915` |\n| [schemathesis](https://github.com/schemathesis/schemathesis) | `3.39.7` | `4.10.0` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `0.21.2` | `1.3.0` |\n| [pytest-postgresql](https://github.com/dbfixtures/pytest-postgresql) | `6.1.1` | `8.0.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.8.6` | `0.15.0` |\n| [debugpy](https://github.com/microsoft/debugpy) | `1.8.14` | `1.8.20` |\n| [pytest-xdist](https://github.com/pytest-dev/pytest-xdist) | `3.6.1` | `3.8.0` |\n| [types-requests](https://github.com/typeshed-internal/stub_uploader) | `2.32.0.20250328` | `2.32.4.20260107` |\n| [types-aiofiles](https://github.com/typeshed-internal/stub_uploader) | `24.1.0.20250326` | `25.1.0.20251011` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [uvloop](https://github.com/MagicStack/uvloop) | `0.21.0` | `0.22.1` |\n| [syrupy](https://github.com/syrupy-project/syrupy) | `4.9.1` | `5.1.0` |\n| ruamel-yaml | `0.18.14` | `0.19.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.28.5` | `0.53.0` |\n\nBumps the poetry group with 25 updates in the /projects/renku_data_service directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.11.3` | `2.12.5` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.40` | `2.0.46` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.15.2` | `1.18.3` |\n| [asyncpg](https://github.com/MagicStack/asyncpg) | `0.30.0` | `0.31.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.10.1` | `2.11.0` |\n| [tenacity](https://github.com/jd/tenacity) | `9.1.2` | `9.1.4` |\n| [kubernetes](https://github.com/kubernetes-client/python) | `31.0.0` | `35.0.0` |\n| [python-ulid](https://github.com/mdomke/python-ulid) | `3.0.0` | `3.1.0` |\n| [python-gitlab](https://github.com/python-gitlab/python-gitlab) | `5.6.0` | `8.0.0` |\n| [psycopg](https://github.com/psycopg/psycopg) | `3.2.6` | `3.3.2` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.6.2` | `2.6.3` |\n| [authlib](https://github.com/authlib/authlib) | `1.6.0` | `1.6.7` |\n| [marshmallow](https://github.com/marshmallow-code/marshmallow) | `3.26.2` | `4.2.2` |\n| [escapism](https://github.com/jupyterhub/escapism) | `1.0.1` | `1.1.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.26.1` | `2.52.0` |\n| [authzed](https://github.com/authzed/authzed-py) | `1.21.1` | `1.24.2` |\n| [cryptography](https://github.com/pyca/cryptography) | `44.0.2` | `46.0.4` |\n| [setuptools](https://github.com/pypa/setuptools) | `75.9.1` | `82.0.0` |\n| [kr8s](https://github.com/kr8s-org/kr8s) | `0.20.7` | `0.20.15` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.3` | `3.1.5` |\n| [aiofiles](https://github.com/Tinche/aiofiles) | `24.1.0` | `25.1.0` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `5.29.4` | `6.33.5` |\n| [parsy](https://github.com/python-parsy/parsy) | `2.1` | `2.2` |\n| [posthog](https://github.com/posthog/posthog-python) | `3.25.0` | `7.8.3` |\n| [markdown-code-runner](https://github.com/basnijholt/markdown-code-runner) | `2.2.0` | `2.7.0` |\n\nBumps the poetry group with 25 updates in the /projects/secrets_storage directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.11.3` | `2.12.5` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.40` | `2.0.46` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.15.2` | `1.18.3` |\n| [asyncpg](https://github.com/MagicStack/asyncpg) | `0.30.0` | `0.31.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.10.1` | `2.11.0` |\n| [tenacity](https://github.com/jd/tenacity) | `9.1.2` | `9.1.4` |\n| [kubernetes](https://github.com/kubernetes-client/python) | `31.0.0` | `35.0.0` |\n| [python-ulid](https://github.com/mdomke/python-ulid) | `3.0.0` | `3.1.0` |\n| [python-gitlab](https://github.com/python-gitlab/python-gitlab) | `5.6.0` | `8.0.0` |\n| [psycopg](https://github.com/psycopg/psycopg) | `3.2.6` | `3.3.2` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.6.2` | `2.6.3` |\n| [authlib](https://github.com/authlib/authlib) | `1.6.0` | `1.6.7` |\n| [marshmallow](https://github.com/marshmallow-code/marshmallow) | `3.26.1` | `4.2.2` |\n| [escapism](https://github.com/jupyterhub/escapism) | `1.0.1` | `1.1.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.26.1` | `2.52.0` |\n| [authzed](https://github.com/authzed/authzed-py) | `1.21.1` | `1.24.2` |\n| [cryptography](https://github.com/pyca/cryptography) | `44.0.2` | `46.0.4` |\n| [setuptools](https://github.com/pypa/setuptools) | `75.9.1` | `82.0.0` |\n| [kr8s](https://github.com/kr8s-org/kr8s) | `0.20.7` | `0.20.15` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.3` | `3.1.5` |\n| [aiofiles](https://github.com/Tinche/aiofiles) | `24.1.0` | `25.1.0` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `5.29.4` | `6.33.5` |\n| [parsy](https://github.com/python-parsy/parsy) | `2.1` | `2.2` |\n| [posthog](https://github.com/posthog/posthog-python) | `3.25.0` | `7.8.3` |\n| [markdown-code-runner](https://github.com/basnijholt/markdown-code-runner) | `2.2.0` | `2.7.0` |\n\n\nUpdates `pydantic` from 2.11.3 to 2.12.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.5 2025-11-26\u003c/h2\u003e\n\u003ch2\u003ev2.12.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.4 2025-11-05\u003c/h2\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method of the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1864\"\u003epydantic-core#1864\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.3 2025-10-17\u003c/h2\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eThis is the third 2.13 patch release, fixing issues related to the \u003ccode\u003eFieldInfo\u003c/code\u003e class, and reverting a change to the supported \u003ca href=\"https://docs.pydantic.dev/latest/concepts/validators/#model-validators\"\u003e\u003cem\u003eafter\u003c/em\u003e model validator\u003c/a\u003e function signatures.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.5\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.4\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in\n\u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1864\"\u003epydantic-core#1864\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.3\"\u003eGitHub release\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/pydantic/pydantic/commit/bd2d0dd0137dfa1a8fdff2529b9dfb1547980150\"\u003e\u003ccode\u003ebd2d0dd\u003c/code\u003e\u003c/a\u003e Prepare release v2.12.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7d0302ec7ec2cf115de3450a615522875bdd8b56\"\u003e\u003ccode\u003e7d0302e\u003c/code\u003e\u003c/a\u003e Document security implications when using \u003ccode\u003ecreate_model()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/e9ef980def726b6f59b6c495ddc9dc259a0228db\"\u003e\u003ccode\u003ee9ef980\u003c/code\u003e\u003c/a\u003e Fix typo in Standard Library Types documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f2c20c00c265a31a13c48f9bae923a87c829952e\"\u003e\u003ccode\u003ef2c20c0\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003epydantic-docs\u003c/code\u003e dev dependency, make use of versioning blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a76c1aa26f2d64a3fd080ac515d80832689197e8\"\u003e\u003ccode\u003ea76c1aa\u003c/code\u003e\u003c/a\u003e Update documentation about JSON Schema\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/8cbc72ca489891e574fba45238ee8bd4f8e719a2\"\u003e\u003ccode\u003e8cbc72c\u003c/code\u003e\u003c/a\u003e Add documentation about custom \u003ccode\u003e__init__()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/99eba599069da137b3f708ffa74627f2b456ba73\"\u003e\u003ccode\u003e99eba59\u003c/code\u003e\u003c/a\u003e Add additional test for \u003ccode\u003eFieldInfo.get_default()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c71076988e507ea93844c77c3bf0bbb85a5716af\"\u003e\u003ccode\u003ec710769\u003c/code\u003e\u003c/a\u003e Special case \u003ccode\u003eMISSING\u003c/code\u003e sentinel in \u003ccode\u003esmart_deepcopy()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/20a9d771c210fd77d52366ac923258c4c199727f\"\u003e\u003ccode\u003e20a9d77\u003c/code\u003e\u003c/a\u003e Do not delete mock validator/serializer in \u003ccode\u003erebuild_dataclass()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c86515a3a8f2120148fab2eaedd3bc45925779d0\"\u003e\u003ccode\u003ec86515a\u003c/code\u003e\u003c/a\u003e Update parts of the model and \u003ccode\u003erevalidate_instances\u003c/code\u003e documentation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.11.3...v2.12.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy` from 2.0.40 to 2.0.46\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/releases\"\u003esqlalchemy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.0.46\u003c/h1\u003e\n\u003cp\u003eReleased: January 21, 2026\u003c/p\u003e\n\u003ch2\u003etyping\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[typing] [bug]\u003c/strong\u003e Fixed typing issues where ORM mapped classes and aliased entities could not\nbe used as keys in result row mappings or as join targets in select\nstatements. Patterns such as \u003ccode\u003erow._mapping[User]\u003c/code\u003e,\n\u003ccode\u003erow._mapping[aliased(User)]\u003c/code\u003e, \u003ccode\u003erow._mapping[with_polymorphic(...)]\u003c/code\u003e\n(rejected by both mypy and Pylance), and \u003ccode\u003e.join(aliased(User))\u003c/code\u003e\n(rejected by Pylance) are documented and fully supported at runtime but\nwere previously rejected by type checkers. The type definitions for\n\u003ccode\u003e_KeyType\u003c/code\u003e and \u003ccode\u003e_FromClauseArgument\u003c/code\u003e have been updated to\naccept these ORM entity types.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13075\"\u003e#13075\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epostgresql\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[postgresql] [bug]\u003c/strong\u003e Fixed issue where PostgreSQL JSONB operators\n\u003ccode\u003e_postgresql.JSONB.Comparator.path_match()\u003c/code\u003e and\n\u003ccode\u003e_postgresql.JSONB.Comparator.path_exists()\u003c/code\u003e were applying incorrect\n\u003ccode\u003eVARCHAR\u003c/code\u003e casts to the right-hand side operand when used with newer\nPostgreSQL drivers such as psycopg. The operators now indicate the\nright-hand type as \u003ccode\u003eJSONPATH\u003c/code\u003e, which currently results in no casting\ntaking place, but is also compatible with explicit casts if the\nimplementation were require it at a later point.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13059\"\u003e#13059\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[postgresql] [bug]\u003c/strong\u003e Fixed regression in PostgreSQL dialect where JSONB subscription syntax\nwould generate incorrect SQL for \u003ccode\u003ecast()\u003c/code\u003e expressions returning JSONB,\ncausing syntax errors. The dialect now properly wraps cast expressions in\nparentheses when using the \u003ccode\u003e[]\u003c/code\u003e subscription syntax, generating\n\u003ccode\u003e(CAST(...))[index]\u003c/code\u003e instead of \u003ccode\u003eCAST(...)[index]\u003c/code\u003e to comply with\nPostgreSQL syntax requirements. This extends the fix from \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12778\"\u003e#12778\u003c/a\u003e\nwhich addressed the same issue for function calls.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13067\"\u003e#13067\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[postgresql] [bug]\u003c/strong\u003e Improved the foreign key reflection regular expression pattern used by the\nPostgreSQL dialect to be more permissive in matching identifier characters,\nallowing it to correctly handle unicode characters in table and column\nnames. This change improves compatibility with PostgreSQL variants such as\nCockroachDB that may use different quoting patterns in combination with\nunicode characters in their identifiers.  Pull request courtesy Gord\nThompson.\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\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `alembic` from 1.15.2 to 1.18.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/alembic/releases\"\u003ealembic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.18.3\u003c/h1\u003e\n\u003cp\u003eReleased: January 29, 2026\u003c/p\u003e\n\u003ch2\u003ebug\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [autogenerate]\u003c/strong\u003e Fixed regression in version 1.18.0 due to \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1771\"\u003e#1771\u003c/a\u003e where autogenerate\nwould raise \u003ccode\u003eNoReferencedTableError\u003c/code\u003e when a foreign key constraint\nreferenced a table that was not part of the initial table load, including\ntables filtered out by the\n\u003ccode\u003eEnvironmentContext.configure.include_name\u003c/code\u003e callable or tables\nin remote schemas that were not included in the initial reflection run.\u003c/p\u003e\n\u003cp\u003eThe change in \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1771\"\u003e#1771\u003c/a\u003e was a performance optimization that eliminated\nadditional reflection queries for tables that were only referenced by\nforeign keys but not explicitly included in the main reflection run.\nHowever, this optimization inadvertently removed the creation of\n\u003ccode\u003eTable\u003c/code\u003e objects for these referenced tables, causing autogenerate\nto fail when processing foreign key constraints that pointed to them.\u003c/p\u003e\n\u003cp\u003eThe fix creates placeholder \u003ccode\u003eTable\u003c/code\u003e objects for foreign key targets\nthat are not reflected, allowing the autogenerate comparison to proceed\nwithout error while maintaining the performance improvement from\n\u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1771\"\u003e#1771\u003c/a\u003e. When multiple foreign keys reference different columns in\nthe same filtered table, the placeholder table accumulates all necessary\ncolumns. These placeholder tables may be visible when using the\n\u003ccode\u003eEnvironmentContext.configure.include_object\u003c/code\u003e callable to\ninspect \u003ccode\u003eForeignKeyConstraint\u003c/code\u003e objects; they will have the name,\nschema and basic column information for the relevant columns present.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1787\"\u003e#1787\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [general]\u003c/strong\u003e Fixed regression caused by \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1669\"\u003e#1669\u003c/a\u003e which requires SQLAlchemy objects\nto support generic type subscripting; for the older SQLAlchemy 1.4 series,\nthis requires version 1.4.23.  Changed the minimum requirements to require\nversion 1.4.23 rather than 1.4.0.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1788\"\u003e#1788\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.18.2\u003c/h1\u003e\n\u003cp\u003eReleased: January 28, 2026\u003c/p\u003e\n\u003ch2\u003eusecase\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e[usecase] [operations]\u003c/strong\u003e The \u003ccode\u003eprimary_key\u003c/code\u003e parameter on \u003ccode\u003eColumn\u003c/code\u003e is now honored when\n\u003ccode\u003eOperations.add_column()\u003c/code\u003e is used, and will emit the \u0026quot;PRIMARY KEY\u0026quot;\nkeyword inline within the ADD COLUMN directive.  This is strictly a syntax\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/alembic/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `asyncpg` from 0.30.0 to 0.31.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/MagicStack/asyncpg/releases\"\u003easyncpg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.31.0\u003c/h2\u003e\n\u003cp\u003eEnable Python 3.14 with experimental subinterpreter/freethreading\nsupport.\u003c/p\u003e\n\u003ch1\u003eImprovements\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd Python 3.14 support, experimental subinterpreter/freethreading support (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1279\"\u003e#1279\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 9e42642b)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid performing type introspection on known types (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1243\"\u003e#1243\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 5c9986c4)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eprepare()\u003c/code\u003e not use named statements by default when cache is disabled (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1245\"\u003e#1245\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 5b14653e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement connection service file functionality (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1223\"\u003e#1223\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/AndrewJackson2020\"\u003e\u003ccode\u003e@​AndrewJackson2020\u003c/code\u003e\u003c/a\u003e in 1d63bb15)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eFixes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix multi port connection string issue (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1222\"\u003e#1222\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/AndrewJackson2020\"\u003e\u003ccode\u003e@​AndrewJackson2020\u003c/code\u003e\u003c/a\u003e in 01c0db7b)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid leaking connections if _can_use_connection fails (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1269\"\u003e#1269\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/yuliy-openai\"\u003e\u003ccode\u003e@​yuliy-openai\u003c/code\u003e\u003c/a\u003e in e94302d2)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eOther\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for EOL Python 3.8 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1281\"\u003e#1281\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 6c2c4904)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/71775a67277fc0aa5bd2b9f15e848826d7078c4d\"\u003e\u003ccode\u003e71775a6\u003c/code\u003e\u003c/a\u003e asyncpg v0.31.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/508cae6441968ef7613a623fece7083cce66c2b3\"\u003e\u003ccode\u003e508cae6\u003c/code\u003e\u003c/a\u003e Test on PostgreSQL 18 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1290\"\u003e#1290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/e534e5f15c73525a6509143b3828335517360f1b\"\u003e\u003ccode\u003ee534e5f\u003c/code\u003e\u003c/a\u003e Bump cibuildwheel\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/07fe5122a680f5768e39fc28d68c94b185037a52\"\u003e\u003ccode\u003e07fe512\u003c/code\u003e\u003c/a\u003e Bump pgproto\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/648b35f18199ebf2a30009376a6e9060cf7ad789\"\u003e\u003ccode\u003e648b35f\u003c/code\u003e\u003c/a\u003e Bump Cython to 3.2.1 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1288\"\u003e#1288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/9e42642b9110d206706697921b6e697a0972649d\"\u003e\u003ccode\u003e9e42642\u003c/code\u003e\u003c/a\u003e Add Python 3.14 support, experimental subinterpreter/freethreading support (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/6fe1c494ef5c3069fa9149c48bf9f8f2cd69f95e\"\u003e\u003ccode\u003e6fe1c49\u003c/code\u003e\u003c/a\u003e Move development deps away from extras and into dependency groups (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1280\"\u003e#1280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/7a548166c2b23561915c481bd332013e3a415cfb\"\u003e\u003ccode\u003e7a54816\u003c/code\u003e\u003c/a\u003e Fix a couple of missed Python version guards\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/6c2c4904e61b2cd2f502540730a24e246cff2ebd\"\u003e\u003ccode\u003e6c2c490\u003c/code\u003e\u003c/a\u003e Drop support for EOL Python 3.8 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1281\"\u003e#1281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/4c60ae890d1f3800f889679657357f91a6923568\"\u003e\u003ccode\u003e4c60ae8\u003c/code\u003e\u003c/a\u003e Bump version to 0.31.0.dev0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/MagicStack/asyncpg/compare/v0.30.0...v0.31.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyjwt` from 2.10.1 to 2.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/releases\"\u003epyjwt's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.11.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed type error in comment by \u003ca href=\"https://github.com/shuhaib-aot\"\u003e\u003ccode\u003e@​shuhaib-aot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1026\"\u003ejpadilla/pyjwt#1026\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1018\"\u003ejpadilla/pyjwt#1018\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1033\"\u003ejpadilla/pyjwt#1033\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake note of use of leeway with nbf by \u003ca href=\"https://github.com/djw8605\"\u003e\u003ccode\u003e@​djw8605\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1034\"\u003ejpadilla/pyjwt#1034\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1035\"\u003ejpadilla/pyjwt#1035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/964\"\u003e#964\u003c/a\u003e: Validate key against allowed types for Algorithm family by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/985\"\u003ejpadilla/pyjwt#985\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1024\"\u003e#1024\u003c/a\u003e: Add iterator for PyJWKSet by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1041\"\u003ejpadilla/pyjwt#1041\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1039\"\u003e#1039\u003c/a\u003e: Add iss, issuer type checks by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1040\"\u003ejpadilla/pyjwt#1040\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/660\"\u003e#660\u003c/a\u003e: Improve typing/logic for \u003ccode\u003eoptions\u003c/code\u003e in decode, decode_complete; Improve docs by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1045\"\u003ejpadilla/pyjwt#1045\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1042\"\u003ejpadilla/pyjwt#1042\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1052\"\u003ejpadilla/pyjwt#1052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1053\"\u003ejpadilla/pyjwt#1053\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1022\"\u003e#1022\u003c/a\u003e: Map \u003ccode\u003ealgorithm=None\u003c/code\u003e to \u0026quot;none\u0026quot; by \u003ca href=\"https://github.com/qqii\"\u003e\u003ccode\u003e@​qqii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1056\"\u003ejpadilla/pyjwt#1056\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1055\"\u003ejpadilla/pyjwt#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1058\"\u003ejpadilla/pyjwt#1058\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1060\"\u003ejpadilla/pyjwt#1060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1061\"\u003ejpadilla/pyjwt#1061\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1047\"\u003e#1047\u003c/a\u003e: Correct \u003ccode\u003ePyJWKClient.get_signing_key_from_jwt\u003c/code\u003e annotation  by \u003ca href=\"https://github.com/khvn26\"\u003e\u003ccode\u003e@​khvn26\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1048\"\u003ejpadilla/pyjwt#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1062\"\u003ejpadilla/pyjwt#1062\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed doc string typo in _validate_jti() function \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1063\"\u003e#1063\u003c/a\u003e by \u003ca href=\"https://github.com/kuldeepkhatke\"\u003e\u003ccode\u003e@​kuldeepkhatke\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1064\"\u003ejpadilla/pyjwt#1064\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1065\"\u003ejpadilla/pyjwt#1065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate SECURITY.md by \u003ca href=\"https://github.com/auvipy\"\u003e\u003ccode\u003e@​auvipy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1057\"\u003ejpadilla/pyjwt#1057\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTyping fix: use \u003ccode\u003efloat\u003c/code\u003e instead of \u003ccode\u003eint\u003c/code\u003e for \u003ccode\u003elifespan\u003c/code\u003e and \u003ccode\u003etimeout\u003c/code\u003e by \u003ca href=\"https://github.com/nikitagashkov\"\u003e\u003ccode\u003e@​nikitagashkov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1068\"\u003ejpadilla/pyjwt#1068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1067\"\u003ejpadilla/pyjwt#1067\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1071\"\u003ejpadilla/pyjwt#1071\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1076\"\u003ejpadilla/pyjwt#1076\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix TYP header documentation by \u003ca href=\"https://github.com/fobiasmog\"\u003e\u003ccode\u003e@​fobiasmog\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1046\"\u003ejpadilla/pyjwt#1046\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edoc: Document claims sub and jti by \u003ca href=\"https://github.com/cleder\"\u003e\u003ccode\u003e@​cleder\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1088\"\u003ejpadilla/pyjwt#1088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1077\"\u003ejpadilla/pyjwt#1077\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/setup-python from 5 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1089\"\u003ejpadilla/pyjwt#1089\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/stale from 8 to 10 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1090\"\u003ejpadilla/pyjwt#1090\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1083\"\u003ejpadilla/pyjwt#1083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1091\"\u003ejpadilla/pyjwt#1091\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1093\"\u003ejpadilla/pyjwt#1093\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1096\"\u003ejpadilla/pyjwt#1096\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eResolve package build warnings by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1105\"\u003ejpadilla/pyjwt#1105\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport Python 3.14, and test against PyPy 3.10+ by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1104\"\u003ejpadilla/pyjwt#1104\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix a \u003ccode\u003eSyntaxWarning\u003c/code\u003e caused by invalid escape sequences by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1103\"\u003ejpadilla/pyjwt#1103\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStandardize CHANGELOG links to PRs by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1110\"\u003ejpadilla/pyjwt#1110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate from \u003ccode\u003epep517\u003c/code\u003e, which is deprecated, to \u003ccode\u003ebuild\u003c/code\u003e by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1108\"\u003ejpadilla/pyjwt#1108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix incorrectly-named test suite function by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1116\"\u003ejpadilla/pyjwt#1116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Read the Docs builds by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1111\"\u003ejpadilla/pyjwt#1111\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-artifact from 4 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1118\"\u003ejpadilla/pyjwt#1118\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEscalate test suite warnings to errors by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1107\"\u003ejpadilla/pyjwt#1107\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd pyupgrade as a pre-commit hook by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1109\"\u003ejpadilla/pyjwt#1109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSimplify the test suite decorators by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1113\"\u003ejpadilla/pyjwt#1113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove coverage config and eliminate unused test suite code by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1115\"\u003ejpadilla/pyjwt#1115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild a shared wheel once in the test suite by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1114\"\u003ejpadilla/pyjwt#1114\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/jpadilla/pyjwt/blob/master/CHANGELOG.rst\"\u003epyjwt's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003ev2.11.0 \u0026lt;https://github.com/jpadilla/pyjwt/compare/2.10.1...2.11.0\u0026gt;\u003c/code\u003e__\u003c/h2\u003e\n\u003cp\u003eFixed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Enforce ECDSA curve validation per RFC 7518 Section 3.4.\n- Fix build system warnings by @kurtmckee in `[#1105](https://github.com/jpadilla/pyjwt/issues/1105) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1105\u0026gt;`__\n- Validate key against allowed types for Algorithm family in `[#964](https://github.com/jpadilla/pyjwt/issues/964) \u0026lt;https://github.com/jpadilla/pyjwt/pull/964\u0026gt;`__\n- Add iterator for JWKSet in `[#1041](https://github.com/jpadilla/pyjwt/issues/1041) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1041\u0026gt;`__\n- Validate `iss` claim is a string during encoding and decoding by @pachewise in `[#1040](https://github.com/jpadilla/pyjwt/issues/1040) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1040\u0026gt;`__\n- Improve typing/logic for `options` in decode, decode_complete by @pachewise in `[#1045](https://github.com/jpadilla/pyjwt/issues/1045) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1045\u0026gt;`__\n- Declare float supported type for lifespan and timeout by @nikitagashkov in `[#1068](https://github.com/jpadilla/pyjwt/issues/1068) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1068\u0026gt;`__\n- Fix ``SyntaxWarning``\\s/``DeprecationWarning``\\s caused by invalid escape sequences by @kurtmckee in `[#1103](https://github.com/jpadilla/pyjwt/issues/1103) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1103\u0026gt;`__\n- Development: Build a shared wheel once to speed up test suite setup times by @kurtmckee in `[#1114](https://github.com/jpadilla/pyjwt/issues/1114) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1114\u0026gt;`__\n- Development: Test type annotations across all supported Python versions,\n  increase the strictness of the type checking, and remove the mypy pre-commit hook\n  by @kurtmckee in `[#1112](https://github.com/jpadilla/pyjwt/issues/1112) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1112\u0026gt;`__\n\u003cp\u003eAdded\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14, and test against PyPy 3.10 and 3.11 by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1104](https://github.com/jpadilla/pyjwt/issues/1104) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1104\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDevelopment: Migrate to \u003ccode\u003ebuild\u003c/code\u003e to test package building in CI by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1108](https://github.com/jpadilla/pyjwt/issues/1108) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1108\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDevelopment: Improve coverage config and eliminate unused test suite code by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1115](https://github.com/jpadilla/pyjwt/issues/1115) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1115\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDocs: Standardize CHANGELOG links to PRs by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1110](https://github.com/jpadilla/pyjwt/issues/1110) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1110\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDocs: Fix Read the Docs builds by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1111](https://github.com/jpadilla/pyjwt/issues/1111) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1111\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDocs: Add example of using leeway with nbf by \u003ca href=\"https://github.com/djw8605\"\u003e\u003ccode\u003e@​djw8605\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1034](https://github.com/jpadilla/pyjwt/issues/1034) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1034\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDocs: Refactored docs with \u003ccode\u003eautodoc\u003c/code\u003e; added \u003ccode\u003ePyJWS\u003c/code\u003e and \u003ccode\u003ejwt.algorithms\u003c/code\u003e docs by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1045](https://github.com/jpadilla/pyjwt/issues/1045) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1045\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDocs: Documentation improvements for \u0026quot;sub\u0026quot; and \u0026quot;jti\u0026quot; claims by \u003ca href=\"https://github.com/cleder\"\u003e\u003ccode\u003e@​cleder\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1088](https://github.com/jpadilla/pyjwt/issues/1088) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1088\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDevelopment: Add pyupgrade as a pre-commit hook by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1109](https://github.com/jpadilla/pyjwt/issues/1109) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1109\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eAdd minimum key length validation for HMAC and RSA keys (CWE-326).\nWarns by default via \u003ccode\u003eInsecureKeyLengthWarning\u003c/code\u003e when keys are below\nminimum recommended lengths per RFC 7518 Section 3.2 (HMAC) and\nNIST SP 800-131A (RSA). Pass \u003ccode\u003eenforce_minimum_key_length=True\u003c/code\u003e in\noptions to \u003ccode\u003ePyJWT\u003c/code\u003e or \u003ccode\u003ePyJWS\u003c/code\u003e to raise \u003ccode\u003eInvalidKeyError\u003c/code\u003e instead.\u003c/li\u003e\n\u003cli\u003eRefactor \u003ccode\u003ePyJWT\u003c/code\u003e to own an internal \u003ccode\u003ePyJWS\u003c/code\u003e instance instead of\ncalling global \u003ccode\u003eapi_jws\u003c/code\u003e functions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/697344d25990641b8b2aa85f0a60634b590b5702\"\u003e\u003ccode\u003e697344d\u003c/code\u003e\u003c/a\u003e bump up version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/e4d0aec0248ef30cfc91bbcf0f011b0a318864c9\"\u003e\u003ccode\u003ee4d0aec\u003c/code\u003e\u003c/a\u003e fix: pre-commit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/df9a6a0c44906ff5f48676a65f522f21e31fcc0d\"\u003e\u003ccode\u003edf9a6a0\u003c/code\u003e\u003c/a\u003e fix: failing test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/2b2e53cd2377d09b082831c9406689c6cfe1ae80\"\u003e\u003ccode\u003e2b2e53c\u003c/code\u003e\u003c/a\u003e fix: docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/635c8d89dd8b8bea1813fe8830a26d0274a4e724\"\u003e\u003ccode\u003e635c8d8\u003c/code\u003e\u003c/a\u003e fix: failing mypy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/96ae3563b9db8f5e18621c4d612f622cf476c92b\"\u003e\u003ccode\u003e96ae356\u003c/code\u003e\u003c/a\u003e feat: add minimum key length validation for HMAC and RSA\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/5b8622773358e56d3d3c0a9acf404809ff34433a\"\u003e\u003ccode\u003e5b86227\u003c/code\u003e\u003c/a\u003e fix: enforce ECDSA curve validation per RFC 7518 Section 3.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/04947d75dc45ba1a4a66eaa2b24fbb0eb512ceab\"\u003e\u003ccode\u003e04947d7\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6 to 7 (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1125\"\u003e#1125\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/dd448344c3eb7bc54b7b395e0f6b00bb811be24a\"\u003e\u003ccode\u003edd44834\u003c/code\u003e\u003c/a\u003e Fix leeway value in usage documentation (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1124\"\u003e#1124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/407f0bde99383fd9c63f1ed4ef922322ab72b5a1\"\u003e\u003ccode\u003e407f0bd\u003c/code\u003e\u003c/a\u003e Thoroughly test type annotations, and resolve errors (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1112\"\u003e#1112\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.10.1...2.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tenacity` from 9.1.2 to 9.1.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jd/tenacity/releases\"\u003etenacity's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.1.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eretry()\u003c/code\u003e annotations with async \u003ccode\u003esleep=\u003c/code\u003e function by \u003ca href=\"https://github.com/Zac-HD\"\u003e\u003ccode\u003e@​Zac-HD\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/555\"\u003ejd/tenacity#555\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jd/tenacity/compare/9.1.3...9.1.4\"\u003ehttps://github.com/jd/tenacity/compare/9.1.3...9.1.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e9.1.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eApply formatting to num seconds in before_sleep_log by \u003ca href=\"https://github.com/aguinane\"\u003e\u003ccode\u003e@​aguinane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/489\"\u003ejd/tenacity#489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport Python 3.14 by \u003ca href=\"https://github.com/sandrobonazzola\"\u003e\u003ccode\u003e@​sandrobonazzola\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/528\"\u003ejd/tenacity#528\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTyping: Accept non-standard logger in helpers logging something by \u003ca href=\"https://github.com/k4nar\"\u003e\u003ccode\u003e@​k4nar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/540\"\u003ejd/tenacity#540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(wait): add \u003ccode\u003ewait_exception\u003c/code\u003e strategy by \u003ca href=\"https://github.com/capitan-davide\"\u003e\u003ccode\u003e@​capitan-davide\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/541\"\u003ejd/tenacity#541\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: fix syntax error in wait_chain docstring example by \u003ca href=\"https://github.com/VedantMadane\"\u003e\u003ccode\u003e@​VedantMadane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/548\"\u003ejd/tenacity#548\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: drop Python 3.9 support (EOL) by \u003ca href=\"https://github.com/Zac-HD\"\u003e\u003ccode\u003e@​Zac-HD\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/552\"\u003ejd/tenacity#552\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport async sleep for sync fn-to-retry by \u003ca href=\"https://github.com/Zac-HD\"\u003e\u003ccode\u003e@​Zac-HD\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/551\"\u003ejd/tenacity#551\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/aguinane\"\u003e\u003ccode\u003e@​aguinane\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/489\"\u003ejd/tenacity#489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sandrobonazzola\"\u003e\u003ccode\u003e@​sandrobonazzola\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/528\"\u003ejd/tenacity#528\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/k4nar\"\u003e\u003ccode\u003e@​k4nar\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/540\"\u003ejd/tenacity#540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/capitan-davide\"\u003e\u003ccode\u003e@​capitan-davide\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/541\"\u003ejd/tenacity#541\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/VedantMadane\"\u003e\u003ccode\u003e@​VedantMadane\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/548\"\u003ejd/tenacity#548\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Zac-HD\"\u003e\u003ccode\u003e@​Zac-HD\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jd/tenacity/pull/552\"\u003ejd/tenacity#552\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jd/tenacity/compare/9.1.2...9.1.3\"\u003ehttps://github.com/jd/tenacity/compare/9.1.2...9.1.3\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jd/tenacity/commit/d4e868d6b8368c00b5a1fad54de36c2c8c3a0fb3\"\u003e\u003ccode\u003ed4e868d\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eretry()\u003c/code\u003e annotations with async \u003ccode\u003esleep=\u003c/code\u003e function (\u003ca href=\"https://redirect.github.com/jd/tenacity/issues/555\"\u003e#555\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jd/tenacity/commit/24415ebbca6ecafdf870af06441656dd96149d1d\"\u003e\u003ccode\u003e24415eb\u003c/code\u003e\u003c/a\u003e support async sleep for sync fn (\u003ca href=\"https://redirect.github.com/jd/tenacity/issues/551\"\u003e#551\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jd/tenacity/commit/3bf33b44096077a0608855f6a380fd8a25fa6f26\"\u003e\u003ccode\u003e3bf33b4\u003c/code\u003e\u003c/a\u003e chore: drop Python 3.9 support (EOL) (\u003ca href=\"https://redirect.github.com/jd/tenacity/issues/552\"\u003e#552\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jd/tenacity/commit/7027da31d27155c7b1831e292a29575af7b5c2b1\"\u003e\u003ccode\u003e7027da3\u003c/code\u003e\u003c/a\u003e chore(deps): bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/jd/tenacity/issues/550\"\u003e#550\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jd/tenacity/commit/21ae7d0cc27069defd111e8ec81407f6d14089f6\"\u003e\u003ccode\u003e21ae7d0\u003c/code\u003e\u003c/a\u003e docs: fix syntax error in wait_chain docstring example (\u003ca href=\"https://redirect.github.com/jd/tenacity/issues/548\"\u003e#548\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jd/tenacity/commit/ef12c9ed1df4dec3748b1fa9304527245b041d2d\"\u003e\u003ccode\u003eef12c9e\u003c/code\u003e\u003c/a\u003e chore(deps): bump actions/checkout in the github-actions group (\u003ca href=\"https://redirect.github.com/jd/tenacity/issues/547\"\u003e#547\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jd/tenacity/commit/c35a4b341ef5e553c670290fbd8835b59d5f08a3\"\u003e\u003ccode\u003ec35a4b3\u003c/code\u003e\u003c/a\u003e chore(deps): bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/jd/tenacity/issues/545\"\u003e#545\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jd/tenacity/commit/e792bbaf0cab3685c8000899cb9f61e04d6f3e23\"\u003e\u003ccode\u003ee792bba\u003c/code\u003e\u003c/a\u003e ci: fix mypy (\u003ca href=\"https://redirect.github.com/jd/tenacity/issues/546\"\u003e#546\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jd/tenacity/commit/0f55245b8da5c4cc8385c2f692164a6ff52cd88e\"\u003e\u003ccode\u003e0f55245\u003c/code\u003e\u003c/a\u003e ci: remove reno requirements (\u003ca href=\"https://redirect.github.com/jd/tenacity/issues/542\"\u003e#542\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jd/tenacity/commit/815c34fec2c8d64fe2bc8a6bdd79bfb41f1938c6\"\u003e\u003ccode\u003e815c34f\u003c/code\u003e\u003c/a\u003e feat(wait): add \u003ccode\u003ewait_exception\u003c/code\u003e strategy (\u003ca href=\"https://redirect.github.com/jd/tenacity/issues/541\"\u003e#541\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jd/tenacity/compare/9.1.2...9.1.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `kubernetes` from 31.0.0 to 33.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kubernetes-client/python/releases\"\u003ekubernetes's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKubernetes Python Client v33.1.0 Stable Release\u003c/h2\u003e\n\u003cp\u003eGetting started:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install --pre --upgrade kubernetes\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from source, download attached zip file, then\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eunzip client-python-v33.1.0.zip\ncd client-python-v33.1.0\npython setup.py install\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThen follow examples in \u003ca href=\"https://github.com/kubernetes-client/python/tree/release-33.0/examples\"\u003ehttps://github.com/kubernetes-client/python/tree/release-33.0/examples\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eChangelog: \u003ca href=\"https://github.com/kubernetes-client/python/blob/release-33.0/CHANGELOG.md\"\u003ehttps://github.com/kubernetes-client/python/blob/release-33.0/CHANGELOG.md\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eKubernetes Python Client v33.1.0 Beta 1 Release\u003c/h2\u003e\n\u003cp\u003eGetting started:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install --pre --upgrade kubernetes\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from source, download attached zip file, then\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eunzip client-python-v33.1.0b1.zip\ncd client-python-v33.1.0b1\npython setup.py install\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThen follow examples in \u003ca href=\"https://github.com/kubernetes-client/python/tree/release-33.0/examples\"\u003ehttps://github.com/kubernetes-client/python/tree/release-33.0/examples\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eChangelog: \u003ca href=\"https://github.com/kubernetes-client/python/blob/release-33.0/CHANGELOG.md\"\u003ehttps://github.com/kubernetes-client/python/blob/release-33.0/CHANGELOG.md\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eKubernetes Python Client v33.1.0 Alpha 1 Release\u003c/h2\u003e\n\u003cp\u003eGetting started:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install --pre --upgrade kubernetes\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from source, download attached zip file, then\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eunzip client-python-v33.1.0a1.zip\ncd client-python-v33.1.0a1\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt; \n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kubernetes-client/python/blob/v33.1.0/CHANGELOG.md\"\u003ekubernetes's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev33.1.0\u003c/h1\u003e\n\u003cp\u003eKubernetes API Version: v1.33.1\u003c/p\u003e\n\u003ch1\u003ev33.1.0b1\u003c/h1\u003e\n\u003cp\u003eKubernetes API Version: v1.33.1\u003c/p\u003e\n\u003ch1\u003ev33.1.0a1\u003c/h1\u003e\n\u003cp\u003eKubernetes API Version: v1.33.1\u003c/p\u003e\n\u003ch3\u003eAPI Change\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eA new alpha feature gate, \u003ccode\u003eMutableCSINodeAllocatableCount\u003c/code\u003e, has been introduced.\u003c/p\u003e\n\u003cp\u003eWhen this feature gate is enabled, the \u003ccode\u003eCSINode.Spec.Drivers[*].Allocatable.Count\u003c/code\u003e field becomes mutable, and a new field, \u003ccode\u003eNodeAllocatableUpdatePeriodSeconds\u003c/code\u003e, is available in the \u003ccode\u003eCSIDriver\u003c/code\u003e object. This allows periodic updates to a node's reported allocatable volume capacity, preventing stateful pods from becoming stuck due to outdated information that kube-scheduler relies on. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130007\"\u003ekubernetes/kubernetes#130007\u003c/a\u003e, \u003ca href=\"https://github.com/torredil\"\u003e\u003ccode\u003e@​torredil\u003c/code\u003e\u003c/a\u003e) [SIG Apps, Node, Scheduling and Storage]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded feature gate \u003ccode\u003eDRAPartitionableDevices\u003c/code\u003e, when enabled, Dynamic Resource Allocation support partitionable devices allocation. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130764\"\u003ekubernetes/kubernetes#130764\u003c/a\u003e, \u003ca href=\"https://github.com/cici37\"\u003e\u003ccode\u003e@​cici37\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Scheduling, Storage and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded DRA support for a \u0026quot;one-of\u0026quot; prioritized list of selection criteria to satisfy a device request in a resource claim. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/128586\"\u003ekubernetes/kubernetes#128586\u003c/a\u003e, \u003ca href=\"https://github.com/mortent\"\u003e\u003ccode\u003e@​mortent\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Etcd, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a \u003ccode\u003e/flagz\u003c/code\u003e endpoint for kubelet endpoint (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/128857\"\u003ekubernetes/kubernetes#128857\u003c/a\u003e, \u003ca href=\"https://github.com/zhifei92\"\u003e\u003ccode\u003e@​zhifei92\u003c/code\u003e\u003c/a\u003e) [SIG Architecture, Instrumentation and Node]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a new \u003ccode\u003etolerance\u003c/code\u003e field to HorizontalPodAutoscaler, overriding the cluster-wide default. Enabled via the HPAConfigurableTolerance alpha feature gate. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130797\"\u003ekubernetes/kubernetes#130797\u003c/a\u003e, \u003ca href=\"https://github.com/jm-franc\"\u003e\u003ccode\u003e@​jm-franc\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Autoscaling, Etcd, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for configuring custom stop signals with a new StopSignal container lifecycle (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130556\"\u003ekubernetes/kubernetes#130556\u003c/a\u003e, \u003ca href=\"https://github.com/sreeram-venkitesh\"\u003e\u003ccode\u003e@​sreeram-venkitesh\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for in-place vertical scaling of Pods with sidecars (containers defined within \u003ccode\u003einitContainers\u003c/code\u003e where the \u003ccode\u003erestartPolicy\u003c/code\u003e is set to \u003ccode\u003eAlways\u003c/code\u003e). (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/128367\"\u003ekubernetes/kubernetes#128367\u003c/a\u003e, \u003ca href=\"https://github.com/vivzbansal\"\u003e\u003ccode\u003e@​vivzbansal\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, CLI, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCPUManager Policy Options support is GA (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130535\"\u003ekubernetes/kubernetes#130535\u003c/a\u003e, \u003ca href=\"https://github.com/ffromani\"\u003e\u003ccode\u003e@​ffromani\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChanged the Pod API to support \u003ccode\u003ehugepage resources\u003c/code\u003e at \u003ccode\u003espec\u003c/code\u003e level for pod-level resources. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130577\"\u003ekubernetes/kubernetes#130577\u003c/a\u003e, \u003ca href=\"https://github.com/KevinTMtz\"\u003e\u003ccode\u003e@​KevinTMtz\u003c/code\u003e\u003c/a\u003e) [SIG Apps, CLI, Node, Scheduling, Storage and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA API: The maximum number of pods that can use the same ResourceClaim is now 256 instead of 32. Downgrading a cluster where this relaxed limit is in use to Kubernetes 1.32.0 is not supported, as version 1.32.0 would refuse to update ResourceClaims with more than 32 entries in the \u003ccode\u003estatus.reservedFor\u003c/code\u003e field. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/129543\"\u003ekubernetes/kubernetes#129543\u003c/a\u003e, \u003ca href=\"https://github.com/pohly\"\u003e\u003ccode\u003e@​pohly\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA: CEL expressions using attribute strings exceeded the cost limit because their cost estimation was incomplete. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/129661\"\u003ekubernetes/kubernetes#129661\u003c/a\u003e, \u003ca href=\"https://github.com/pohly\"\u003e\u003ccode\u003e@​pohly\u003c/code\u003e\u003c/a\u003e) [SIG Node]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA: Device taints enable DRA drivers or admins to mark device as unusable, which prevents allocating them. Pods may also get evicted at runtime if a device becomes unusable, depending on the severity of the taint and whether the claim tolerates the taint. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130447\"\u003ekubernetes/kubernetes#130447\u003c/a\u003e, \u003ca href=\"https://github.com/pohly\"\u003e\u003ccode\u003e@​pohly\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Architecture, Auth, Etcd, Instrumentation, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA: Starting Kubernetes 1.33, only users with access to an admin namespace with the \u003ccode\u003ekubernetes.io/dra-admin-access\u003c/code\u003e label are authorized to create ResourceClaim or ResourceClaimTemplate objects with the \u003ccode\u003eadminAccess\u003c/code\u003e field in this admin namespace if they want to and only they can reference these ResourceClaims or ResourceClaimTemplates in their pod or deployment specs. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130225\"\u003ekubernetes/kubernetes#130225\u003c/a\u003e, \u003ca href=\"https://github.com/ritazh\"\u003e\u003ccode\u003e@​ritazh\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Auth, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA: when asking for \u0026quot;All\u0026quot; devices on a node, Kubernetes \u0026lt;= 1.32 proceeded to schedule pods onto nodes with no devices by not allocating any devices for those pods. Kubernetes 1.33 changes that to only picking nodes which have at least one device. Users who want the \u0026quot;proceed with scheduling also without devices\u0026quot; semantic can use the upcoming prioritized list feature with one sub-request for \u0026quot;all\u0026quot; devices and a second alternative with \u0026quot;count: 0\u0026quot;. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/129560\"\u003ekubernetes/kubernetes#129560\u003c/a\u003e, \u003ca href=\"https://github.com/bart0sh\"\u003e\u003ccode\u003e@​bart0sh\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery and Node]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExpanded the on-disk kubelet credential provider configuration to allow an optional \u003ccode\u003etokenAttribute\u003c/code\u003e field to be configured. When it is set, the kubelet will provision a token with the given audience bound to the current pod and its service account. This KSA token along with required annotations on the KSA defined in configuration will be sent to the credential provider plugin via its standard input (along with the image information that is already sent today). The KSA annotations to be sent are configurable in the kubelet credential provider configuration. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/128372\"\u003ekubernetes/kubernetes#128372\u003c/a\u003e, \u003ca href=\"https://github.com/aramase\"\u003e\u003ccode\u003e@​aramase\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Auth, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed the example validation rule in godoc:\u003c/p\u003e\n\u003cp\u003eWhen configuring a JWT authenticator:\u003c/p\u003e\n\u003cp\u003eIf username.expression uses 'claims.email', then 'claims.email_verified' must be used in\nusername.expression or extra[\u003cem\u003e].valueExpression or claimValidationRules[\u003c/em\u003e].expression.\nAn example claim validation rule expression that matches the validation automatically\napplied when username.claim is set to 'email' is 'claims.?email_verified.orValue(true) == true'.\nBy explicitly comparing the value to true, we let type-checking see the result will be a boolean,\nand to make sure a non-boolean \u003ccode\u003eemail_verified\u003c/code\u003e claim will be caught at runtime. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130875\"\u003ekubernetes/kubernetes#130875\u003c/a\u003e, \u003ca href=\"https://github.com/aramase\"\u003e\u003ccode\u003e@​aramase\u003c/code\u003e\u003c/a\u003e) [SIG Auth and Release]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFor the \u003ccode\u003eInPlacePodVerticalScaling\u003c/code\u003e feature, the API server will no longer set the resize status to \u003ccode\u003eProposed\u003c/code\u003e upon receiving a resize request. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130574\"\u003ekubernetes/kubernetes#130574\u003c/a\u003e, \u003ca href=\"https://github.com/natasha4...\n\n_Description has been truncated_","html_url":"https://github.com/SwissDataScienceCenter/renku-data-services/pull/1204","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/SwissDataScienceCenter%2Frenku-data-services/issues/1204","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1204/packages"}},{"old_version":"4.7.2","new_version":"5.1.0","update_type":"major","path":null,"pr_created_at":"2026-02-02T14:01:06.000Z","version_change":"4.7.2 → 5.1.0","issue":{"uuid":"3886092476","node_id":"PR_kwDODoBT_M7A7Ctp","number":119,"state":"open","title":"build(deps-dev): bump syrupy from 4.7.2 to 5.1.0","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":6,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-02-02T14:01:06.000Z","updated_at":"2026-02-02T14:02:41.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps-dev)","packages":[{"name":"syrupy","old_version":"4.7.2","new_version":"5.1.0","repository_url":"https://github.com/syrupy-project/syrupy"}],"path":null,"ecosystem":"pip"},"body":"Bumps [syrupy](https://github.com/syrupy-project/syrupy) from 4.7.2 to 5.1.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/syrupy-project/syrupy/releases\"\u003esyrupy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.1.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.0.0...v5.1.0\"\u003e5.1.0\u003c/a\u003e (2026-01-25)\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd serializer plugin system; plugins for data models (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1062\"\u003e#1062\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/df9bc8f6b3a222dde82167e10a2e6bb57456305a\"\u003edf9bc8f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev5.0.0\u003c/h2\u003e\n\u003ch2\u003eSyrupy 5.0.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e(2025-09-28)\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eThis release introduces new features, bug fixes, and a major license change. It also includes several \u003cstrong\u003ebreaking changes\u003c/strong\u003e, so please review those carefully before upgrading.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch3\u003eNew Features ✨\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eAdd \u003ccode\u003e--snapshot-dirname\u003c/code\u003e option:\u003c/strong\u003e A new option, \u003ccode\u003e--snapshot-dirname\u003c/code\u003e, is now available to change the default directory snapshots are stored in. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003e#810\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003esyrupy-project/syrupy#810\u003c/a\u003e))\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRemove private underscore prefix:\u003c/strong\u003e The unnecessary underscore prefixes have been removed from public methods for better code clarity. ([\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003e8cfc905\u003c/a\u003e](\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003ehttps://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\u003c/a\u003e))\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch3\u003eBug Fixes 🐛\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFix terminal summary for \u003ccode\u003exdist\u003c/code\u003e workers:\u003c/strong\u003e Resolves an issue where the terminal summary was not displayed correctly with \u003ccode\u003exdist\u003c/code\u003e workers. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/978\"\u003e#978\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/978\"\u003esyrupy-project/syrupy#978\u003c/a\u003e))\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eEnsure \u003ccode\u003epytest_assertrepr_compare\u003c/code\u003e hook is called first:\u003c/strong\u003e This change ensures that Syrupy's assertion hook takes precedence, improving compatibility with other plugins. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/984\"\u003e#984\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/984\"\u003esyrupy-project/syrupy#984\u003c/a\u003e))\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch3\u003eBreaking Changes ⚠️\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eLicense change:\u003c/strong\u003e The project has switched to the more permissive \u003cstrong\u003eMIT license\u003c/strong\u003e. This change applies to all versions from 5.0.0 and beyond. If you need to use the previous Apache 2.0 license, you must continue to use Syrupy versions 4.x or earlier. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/945\"\u003e#945\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/945\"\u003esyrupy-project/syrupy#945\u003c/a\u003e))\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003ePython and pytest version requirements:\u003c/strong\u003e Syrupy now requires \u003cstrong\u003ePython 3.10\u003c/strong\u003e or higher. Support for Python 3.8 has been dropped as it reached its end of life in October 2024. The minimum required version of \u003cstrong\u003epytest is v8\u003c/strong\u003e. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/904\"\u003e#904\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/904\"\u003esyrupy-project/syrupy#904\u003c/a\u003e), [\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003e#1024\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003esyrupy-project/syrupy#1024\u003c/a\u003e))\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eMethod and constant name changes:\u003c/strong\u003e Several methods and constants have been renamed for improved clarity and to align with public API standards.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ccode\u003eSnapshotCollectionStorage\u003c/code\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e_read_snapshot_collection\u003c/code\u003e -\u0026gt; \u003ccode\u003eread_snapshot_collection\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_read_snapshot_data_from_location\u003c/code\u003e -\u0026gt; \u003ccode\u003eread_snapshot_data_from_location\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_write_snapshot_collection\u003c/code\u003e -\u0026gt; \u003ccode\u003ewrite_snapshot_collection\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_get_file_basename\u003c/code\u003e -\u0026gt; \u003ccode\u003eget_file_basename\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_file_extension\u003c/code\u003e -\u0026gt; \u003ccode\u003efile_extension\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ccode\u003eAmberDataSerializer\u003c/code\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e_snapshot_sort_key\u003c/code\u003e -\u0026gt; \u003ccode\u003esnapshot_sort_key\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eConstants\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eSNAPSHOT_EMPTY_FOSSIL_KEY\u003c/code\u003e -\u0026gt; \u003ccode\u003eSNAPSHOT_EMPTY_COLLECTION_KEY\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSNAPSHOT_UNKNOWN_FOSSIL_KEY\u003c/code\u003e -\u0026gt; \u003ccode\u003eSNAPSHOT_UNKNOWN_COLLECTION_KEY\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/syrupy-project/syrupy/blob/main/CHANGELOG.md\"\u003esyrupy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.0.0...v5.1.0\"\u003e5.1.0\u003c/a\u003e (2026-01-25)\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd serializer plugin system; plugins for data models (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1062\"\u003e#1062\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/df9bc8f6b3a222dde82167e10a2e6bb57456305a\"\u003edf9bc8f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\"\u003e5.0.0\u003c/a\u003e (2025-09-28)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch to MIT license (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/945\"\u003e#945\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/d74d340f8884fdb04831fcf77f29d66e098aaa66\"\u003ed74d340\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlock terminal summary for xdist workers. (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/978\"\u003e#978\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/33a848df7c4a33577e4057eae5792f6592ad3172\"\u003e33a848d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eensure syrupy's pytest_assertrepr_compare hook is called first. (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/984\"\u003e#984\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/eb0024d339248b7e1f76fdb65ed30ba3e19c0857\"\u003eeb0024d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove incorrect private underscore prefix from public methods (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003e8cfc905\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd --snapshot-dirname option, close \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003e#810\u003c/a\u003e (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/27135c7c861441962c2cedde841f3e4fed2949fd\"\u003e27135c7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edrop support for py3.8, raise min. pytest to v8 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/904\"\u003e#904\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/a879ff15ad82e59a2f387db0822be072a5684f2f\"\u003ea879ff1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate min. python version to 3.10 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003e#1024\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/16b4113cd56da96e84a90ebda0919e9b8dd35954\"\u003e16b4113\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe following methods have been renamed:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSnapshotCollectionStorage\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e_read_snapshot_collection -\u0026gt; read_snapshot_collection\u003c/li\u003e\n\u003cli\u003e_read_snapshot_data_from_location -\u0026gt; read_snapshot_data_from_location\u003c/li\u003e\n\u003cli\u003e_write_snapshot_collection -\u0026gt; write_snapshot_collection\u003c/li\u003e\n\u003cli\u003e_get_file_basename -\u0026gt; get_file_basename\u003c/li\u003e\n\u003cli\u003e_file_extension -\u0026gt; file_extension\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eAmberDataSerializer\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e_snapshot_sort_key -\u0026gt; snapshot_sort_key\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRenamed constants to improve clarity:\u003c/p\u003e\n\u003cp\u003econstants\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSNAPSHOT_EMPTY_FOSSIL_KEY -\u0026gt; SNAPSHOT_EMPTY_COLLECTION_KEY\u003c/li\u003e\n\u003cli\u003eSNAPSHOT_UNKNOWN_FOSSIL_KEY -\u0026gt; SNAPSHOT_UNKNOWN_COLLECTION_KEY\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/7096efdee61a8e1bc47492bdd0bc860766df40e9\"\u003e\u003ccode\u003e7096efd\u003c/code\u003e\u003c/a\u003e chore(release): 5.1.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/07aa00dd48d65e74814cec863b5f236e09afb464\"\u003e\u003ccode\u003e07aa00d\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency attrs to v25 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1063\"\u003e#1063\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/1f29ae061e9557e205e50fb2f9971ee95c4bd08e\"\u003e\u003ccode\u003e1f29ae0\u003c/code\u003e\u003c/a\u003e docs: add bwrob as a contributor for code (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1064\"\u003e#1064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/df9bc8f6b3a222dde82167e10a2e6bb57456305a\"\u003e\u003ccode\u003edf9bc8f\u003c/code\u003e\u003c/a\u003e feat: add serializer plugin system; plugins for data models (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1062\"\u003e#1062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/841257deaf598df7c3d154b8e2d694f8bb7e5055\"\u003e\u003ccode\u003e841257d\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency coverage to v7.13.1 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1061\"\u003e#1061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/2d8dfa7f7bb2a5f7c0210107dbb65b62a615d434\"\u003e\u003ccode\u003e2d8dfa7\u003c/code\u003e\u003c/a\u003e chore(deps): update codecov/codecov-action action to v5.5.2 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1056\"\u003e#1056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/f5f9ef77027983d3b62d8cc5bfc3a9ef058fe509\"\u003e\u003ccode\u003ef5f9ef7\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency debugpy to v1.8.18 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1057\"\u003e#1057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/eaeb6ae11f57aa3e595d4c45e7be4a3ed2d66dfc\"\u003e\u003ccode\u003eeaeb6ae\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency pytest to v9.0.2 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/263b23b768ef761c3f7e1faa0671b0709c1887b1\"\u003e\u003ccode\u003e263b23b\u003c/code\u003e\u003c/a\u003e chore(deps): update python docker tag to v3.14.1 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1054\"\u003e#1054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/a0dd77b023fee34ff0968a822e0d0740c9c7fb93\"\u003e\u003ccode\u003ea0dd77b\u003c/code\u003e\u003c/a\u003e chore(deps): update actions/checkout action to v6.0.1 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1053\"\u003e#1053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.7.2...v5.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=syrupy\u0026package-manager=uv\u0026previous-version=4.7.2\u0026new-version=5.1.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/spraakbanken/json-arrays-py/pull/119","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/spraakbanken%2Fjson-arrays-py/issues/119","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/119/packages"}},{"old_version":"5.0.0","new_version":"5.1.0","update_type":"minor","path":null,"pr_created_at":"2026-01-26T22:57:13.000Z","version_change":"5.0.0 → 5.1.0","issue":{"uuid":"3858027622","node_id":"PR_kwDOHJ4bsM6_eOy5","number":575,"state":"open","title":"Bump syrupy from 5.0.0 to 5.1.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-01-26T22:57:13.000Z","updated_at":"2026-01-26T22:57:43.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"syrupy","old_version":"5.0.0","new_version":"5.1.0","repository_url":"https://github.com/syrupy-project/syrupy"}],"path":null,"ecosystem":"pip"},"body":"Bumps [syrupy](https://github.com/syrupy-project/syrupy) from 5.0.0 to 5.1.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/syrupy-project/syrupy/releases\"\u003esyrupy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.1.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.0.0...v5.1.0\"\u003e5.1.0\u003c/a\u003e (2026-01-25)\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd serializer plugin system; plugins for data models (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1062\"\u003e#1062\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/df9bc8f6b3a222dde82167e10a2e6bb57456305a\"\u003edf9bc8f\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/syrupy-project/syrupy/blob/main/CHANGELOG.md\"\u003esyrupy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.0.0...v5.1.0\"\u003e5.1.0\u003c/a\u003e (2026-01-25)\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd serializer plugin system; plugins for data models (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1062\"\u003e#1062\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/df9bc8f6b3a222dde82167e10a2e6bb57456305a\"\u003edf9bc8f\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/syrupy-project/syrupy/commit/7096efdee61a8e1bc47492bdd0bc860766df40e9\"\u003e\u003ccode\u003e7096efd\u003c/code\u003e\u003c/a\u003e chore(release): 5.1.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/07aa00dd48d65e74814cec863b5f236e09afb464\"\u003e\u003ccode\u003e07aa00d\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency attrs to v25 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1063\"\u003e#1063\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/1f29ae061e9557e205e50fb2f9971ee95c4bd08e\"\u003e\u003ccode\u003e1f29ae0\u003c/code\u003e\u003c/a\u003e docs: add bwrob as a contributor for code (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1064\"\u003e#1064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/df9bc8f6b3a222dde82167e10a2e6bb57456305a\"\u003e\u003ccode\u003edf9bc8f\u003c/code\u003e\u003c/a\u003e feat: add serializer plugin system; plugins for data models (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1062\"\u003e#1062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/841257deaf598df7c3d154b8e2d694f8bb7e5055\"\u003e\u003ccode\u003e841257d\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency coverage to v7.13.1 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1061\"\u003e#1061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/2d8dfa7f7bb2a5f7c0210107dbb65b62a615d434\"\u003e\u003ccode\u003e2d8dfa7\u003c/code\u003e\u003c/a\u003e chore(deps): update codecov/codecov-action action to v5.5.2 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1056\"\u003e#1056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/f5f9ef77027983d3b62d8cc5bfc3a9ef058fe509\"\u003e\u003ccode\u003ef5f9ef7\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency debugpy to v1.8.18 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1057\"\u003e#1057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/eaeb6ae11f57aa3e595d4c45e7be4a3ed2d66dfc\"\u003e\u003ccode\u003eeaeb6ae\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency pytest to v9.0.2 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/263b23b768ef761c3f7e1faa0671b0709c1887b1\"\u003e\u003ccode\u003e263b23b\u003c/code\u003e\u003c/a\u003e chore(deps): update python docker tag to v3.14.1 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1054\"\u003e#1054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/a0dd77b023fee34ff0968a822e0d0740c9c7fb93\"\u003e\u003ccode\u003ea0dd77b\u003c/code\u003e\u003c/a\u003e chore(deps): update actions/checkout action to v6.0.1 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1053\"\u003e#1053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.0.0...v5.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=syrupy\u0026package-manager=pip\u0026previous-version=5.0.0\u0026new-version=5.1.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/Ludy87/pyecotrend-ista/pull/575","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ludy87%2Fpyecotrend-ista/issues/575","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/575/packages"}},{"old_version":"5.0.0","new_version":"5.1.0","update_type":"minor","path":null,"pr_created_at":"2026-01-26T21:29:00.000Z","version_change":"5.0.0 → 5.1.0","issue":{"uuid":"3857742451","node_id":"PR_kwDOK-O-xM6_dRBO","number":230,"state":"open","title":"Bump syrupy from 5.0.0 to 5.1.0","user":"dependabot[bot]","labels":[":recycle: dependencies",":snake: python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-01-26T21:29:00.000Z","updated_at":"2026-01-26T21:30:11.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"syrupy","old_version":"5.0.0","new_version":"5.1.0","repository_url":"https://github.com/syrupy-project/syrupy"}],"path":null,"ecosystem":"pip"},"body":"Bumps [syrupy](https://github.com/syrupy-project/syrupy) from 5.0.0 to 5.1.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/syrupy-project/syrupy/releases\"\u003esyrupy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.1.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.0.0...v5.1.0\"\u003e5.1.0\u003c/a\u003e (2026-01-25)\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd serializer plugin system; plugins for data models (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1062\"\u003e#1062\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/df9bc8f6b3a222dde82167e10a2e6bb57456305a\"\u003edf9bc8f\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/syrupy-project/syrupy/blob/main/CHANGELOG.md\"\u003esyrupy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.0.0...v5.1.0\"\u003e5.1.0\u003c/a\u003e (2026-01-25)\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd serializer plugin system; plugins for data models (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1062\"\u003e#1062\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/df9bc8f6b3a222dde82167e10a2e6bb57456305a\"\u003edf9bc8f\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/syrupy-project/syrupy/commit/7096efdee61a8e1bc47492bdd0bc860766df40e9\"\u003e\u003ccode\u003e7096efd\u003c/code\u003e\u003c/a\u003e chore(release): 5.1.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/07aa00dd48d65e74814cec863b5f236e09afb464\"\u003e\u003ccode\u003e07aa00d\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency attrs to v25 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1063\"\u003e#1063\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/1f29ae061e9557e205e50fb2f9971ee95c4bd08e\"\u003e\u003ccode\u003e1f29ae0\u003c/code\u003e\u003c/a\u003e docs: add bwrob as a contributor for code (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1064\"\u003e#1064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/df9bc8f6b3a222dde82167e10a2e6bb57456305a\"\u003e\u003ccode\u003edf9bc8f\u003c/code\u003e\u003c/a\u003e feat: add serializer plugin system; plugins for data models (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1062\"\u003e#1062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/841257deaf598df7c3d154b8e2d694f8bb7e5055\"\u003e\u003ccode\u003e841257d\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency coverage to v7.13.1 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1061\"\u003e#1061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/2d8dfa7f7bb2a5f7c0210107dbb65b62a615d434\"\u003e\u003ccode\u003e2d8dfa7\u003c/code\u003e\u003c/a\u003e chore(deps): update codecov/codecov-action action to v5.5.2 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1056\"\u003e#1056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/f5f9ef77027983d3b62d8cc5bfc3a9ef058fe509\"\u003e\u003ccode\u003ef5f9ef7\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency debugpy to v1.8.18 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1057\"\u003e#1057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/eaeb6ae11f57aa3e595d4c45e7be4a3ed2d66dfc\"\u003e\u003ccode\u003eeaeb6ae\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency pytest to v9.0.2 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/263b23b768ef761c3f7e1faa0671b0709c1887b1\"\u003e\u003ccode\u003e263b23b\u003c/code\u003e\u003c/a\u003e chore(deps): update python docker tag to v3.14.1 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1054\"\u003e#1054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/a0dd77b023fee34ff0968a822e0d0740c9c7fb93\"\u003e\u003ccode\u003ea0dd77b\u003c/code\u003e\u003c/a\u003e chore(deps): update actions/checkout action to v6.0.1 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1053\"\u003e#1053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.0.0...v5.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=syrupy\u0026package-manager=pip\u0026previous-version=5.0.0\u0026new-version=5.1.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/miaucl/bring-api/pull/230","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/miaucl%2Fbring-api/issues/230","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/230/packages"}},{"old_version":"4.9.1","new_version":"5.1.0","update_type":"major","path":null,"pr_created_at":"2026-01-25T16:25:31.000Z","version_change":"4.9.1 → 5.1.0","issue":{"uuid":"3853496360","node_id":"PR_kwDOJVkqEs6_PnGE","number":1189,"state":"closed","title":"chore(deps): bump the poetry group across 3 directories with 44 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-02-01T16:37:37.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-25T16:25:31.000Z","updated_at":"2026-02-01T16:37:38.000Z","time_to_close":605526,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"poetry","update_count":44,"packages":[{"name":"pydantic","old_version":"2.11.3","new_version":"2.12.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"sqlalchemy","old_version":"2.0.40","new_version":"2.0.46","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"alembic","old_version":"1.15.2","new_version":"1.18.1","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"asyncpg","old_version":"0.30.0","new_version":"0.31.0","repository_url":"https://github.com/MagicStack/asyncpg"},{"name":"kubernetes","old_version":"31.0.0","new_version":"33.1.0","repository_url":"https://github.com/kubernetes-client/python"},{"name":"python-ulid","old_version":"3.0.0","new_version":"3.1.0","repository_url":"https://github.com/mdomke/python-ulid"},{"name":"python-gitlab","old_version":"5.6.0","new_version":"7.1.0","repository_url":"https://github.com/python-gitlab/python-gitlab"},{"name":"psycopg","old_version":"3.2.6","new_version":"3.3.2","repository_url":"https://github.com/psycopg/psycopg"},{"name":"urllib3","old_version":"2.6.0","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"},{"name":"authlib","old_version":"1.6.0","new_version":"1.6.6","repository_url":"https://github.com/authlib/authlib"},{"name":"marshmallow","old_version":"3.26.2","new_version":"4.2.1","repository_url":"https://github.com/marshmallow-code/marshmallow"},{"name":"escapism","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jupyterhub/escapism"},{"name":"sentry-sdk","old_version":"2.26.1","new_version":"2.50.0","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"authzed","old_version":"1.21.1","new_version":"1.24.1","repository_url":"https://github.com/authzed/authzed-py"},{"name":"cryptography","old_version":"44.0.2","new_version":"46.0.3","repository_url":"https://github.com/pyca/cryptography"},{"name":"setuptools","old_version":"75.9.1","new_version":"80.10.1","repository_url":"https://github.com/pypa/setuptools"},{"name":"kr8s","old_version":"0.20.7","new_version":"0.20.15","repository_url":"https://github.com/kr8s-org/kr8s"},{"name":"werkzeug","old_version":"3.1.3","new_version":"3.1.5","repository_url":"https://github.com/pallets/werkzeug"},{"name":"aiofiles","old_version":"24.1.0","new_version":"25.1.0","repository_url":"https://github.com/Tinche/aiofiles"},{"name":"protobuf","old_version":"5.29.4","new_version":"6.33.4","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"poetry","old_version":"2.1.2","new_version":"2.3.1","repository_url":"https://github.com/python-poetry/poetry"},{"name":"parsy","old_version":"2.1","new_version":"2.2","repository_url":"https://github.com/python-parsy/parsy"},{"name":"posthog","old_version":"3.25.0","new_version":"7.6.0","repository_url":"https://github.com/posthog/posthog-python"},{"name":"markdown-code-runner","old_version":"2.2.0","new_version":"2.7.0","repository_url":"https://github.com/basnijholt/markdown-code-runner"},{"name":"bandit","old_version":"1.8.3","new_version":"1.9.3","repository_url":"https://github.com/PyCQA/bandit"},{"name":"mypy","old_version":"1.15.0","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"pytest","old_version":"8.3.5","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-cov","old_version":"6.1.1","new_version":"7.0.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pre-commit","old_version":"4.2.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"aiosqlite","old_version":"0.20.0","new_version":"0.22.1","repository_url":"https://github.com/omnilib/aiosqlite"},{"name":"types-pyyaml","old_version":"6.0.12.20250402","new_version":"6.0.12.20250915","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"schemathesis","old_version":"3.39.7","new_version":"4.9.4","repository_url":"https://github.com/schemathesis/schemathesis"},{"name":"pytest-asyncio","old_version":"0.21.2","new_version":"1.3.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"pytest-postgresql","old_version":"6.1.1","new_version":"8.0.0","repository_url":"https://github.com/dbfixtures/pytest-postgresql"},{"name":"ruff","old_version":"0.8.6","new_version":"0.14.14","repository_url":"https://github.com/astral-sh/ruff"},{"name":"debugpy","old_version":"1.8.14","new_version":"1.8.19","repository_url":"https://github.com/microsoft/debugpy"},{"name":"pytest-xdist","old_version":"3.6.1","new_version":"3.8.0","repository_url":"https://github.com/pytest-dev/pytest-xdist"},{"name":"types-requests","old_version":"2.32.0.20250328","new_version":"2.32.4.20260107","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"types-aiofiles","old_version":"24.1.0.20250326","new_version":"25.1.0.20251011","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"uvloop","old_version":"0.21.0","new_version":"0.22.1","repository_url":"https://github.com/MagicStack/uvloop"},{"name":"syrupy","old_version":"4.9.1","new_version":"5.1.0","repository_url":"https://github.com/syrupy-project/syrupy"},{"name":"ruamel-yaml","old_version":"0.18.14","new_version":"0.19.1"},{"name":"datamodel-code-generator","old_version":"0.28.5","new_version":"0.53.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"}],"path":null,"ecosystem":"pip"},"body":"Bumps the poetry group with 44 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.11.3` | `2.12.5` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.40` | `2.0.46` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.15.2` | `1.18.1` |\n| [asyncpg](https://github.com/MagicStack/asyncpg) | `0.30.0` | `0.31.0` |\n| [kubernetes](https://github.com/kubernetes-client/python) | `31.0.0` | `33.1.0` |\n| [python-ulid](https://github.com/mdomke/python-ulid) | `3.0.0` | `3.1.0` |\n| [python-gitlab](https://github.com/python-gitlab/python-gitlab) | `5.6.0` | `7.1.0` |\n| [psycopg](https://github.com/psycopg/psycopg) | `3.2.6` | `3.3.2` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.6.0` | `2.6.3` |\n| [authlib](https://github.com/authlib/authlib) | `1.6.0` | `1.6.6` |\n| [marshmallow](https://github.com/marshmallow-code/marshmallow) | `3.26.2` | `4.2.1` |\n| [escapism](https://github.com/jupyterhub/escapism) | `1.0.1` | `1.1.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.26.1` | `2.50.0` |\n| [authzed](https://github.com/authzed/authzed-py) | `1.21.1` | `1.24.1` |\n| [cryptography](https://github.com/pyca/cryptography) | `44.0.2` | `46.0.3` |\n| [setuptools](https://github.com/pypa/setuptools) | `75.9.1` | `80.10.1` |\n| [kr8s](https://github.com/kr8s-org/kr8s) | `0.20.7` | `0.20.15` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.3` | `3.1.5` |\n| [aiofiles](https://github.com/Tinche/aiofiles) | `24.1.0` | `25.1.0` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `5.29.4` | `6.33.4` |\n| [poetry](https://github.com/python-poetry/poetry) | `2.1.2` | `2.3.1` |\n| [parsy](https://github.com/python-parsy/parsy) | `2.1` | `2.2` |\n| [posthog](https://github.com/posthog/posthog-python) | `3.25.0` | `7.6.0` |\n| [markdown-code-runner](https://github.com/basnijholt/markdown-code-runner) | `2.2.0` | `2.7.0` |\n| [bandit](https://github.com/PyCQA/bandit) | `1.8.3` | `1.9.3` |\n| [mypy](https://github.com/python/mypy) | `1.15.0` | `1.19.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.5` | `8.4.2` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `6.1.1` | `7.0.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.2.0` | `4.5.1` |\n| [aiosqlite](https://github.com/omnilib/aiosqlite) | `0.20.0` | `0.22.1` |\n| [types-pyyaml](https://github.com/typeshed-internal/stub_uploader) | `6.0.12.20250402` | `6.0.12.20250915` |\n| [schemathesis](https://github.com/schemathesis/schemathesis) | `3.39.7` | `4.9.4` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `0.21.2` | `1.3.0` |\n| [pytest-postgresql](https://github.com/dbfixtures/pytest-postgresql) | `6.1.1` | `8.0.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.8.6` | `0.14.14` |\n| [debugpy](https://github.com/microsoft/debugpy) | `1.8.14` | `1.8.19` |\n| [pytest-xdist](https://github.com/pytest-dev/pytest-xdist) | `3.6.1` | `3.8.0` |\n| [types-requests](https://github.com/typeshed-internal/stub_uploader) | `2.32.0.20250328` | `2.32.4.20260107` |\n| [types-aiofiles](https://github.com/typeshed-internal/stub_uploader) | `24.1.0.20250326` | `25.1.0.20251011` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [uvloop](https://github.com/MagicStack/uvloop) | `0.21.0` | `0.22.1` |\n| [syrupy](https://github.com/syrupy-project/syrupy) | `4.9.1` | `5.1.0` |\n| ruamel-yaml | `0.18.14` | `0.19.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.28.5` | `0.53.0` |\n\nBumps the poetry group with 23 updates in the /projects/renku_data_service directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.11.3` | `2.12.5` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.40` | `2.0.46` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.15.2` | `1.18.1` |\n| [asyncpg](https://github.com/MagicStack/asyncpg) | `0.30.0` | `0.31.0` |\n| [kubernetes](https://github.com/kubernetes-client/python) | `31.0.0` | `35.0.0` |\n| [python-ulid](https://github.com/mdomke/python-ulid) | `3.0.0` | `3.1.0` |\n| [python-gitlab](https://github.com/python-gitlab/python-gitlab) | `5.6.0` | `7.1.0` |\n| [psycopg](https://github.com/psycopg/psycopg) | `3.2.6` | `3.3.2` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.6.2` | `2.6.3` |\n| [authlib](https://github.com/authlib/authlib) | `1.6.0` | `1.6.6` |\n| [marshmallow](https://github.com/marshmallow-code/marshmallow) | `3.26.2` | `4.2.1` |\n| [escapism](https://github.com/jupyterhub/escapism) | `1.0.1` | `1.1.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.26.1` | `2.50.0` |\n| [authzed](https://github.com/authzed/authzed-py) | `1.21.1` | `1.24.1` |\n| [cryptography](https://github.com/pyca/cryptography) | `44.0.2` | `46.0.3` |\n| [setuptools](https://github.com/pypa/setuptools) | `75.9.1` | `80.10.1` |\n| [kr8s](https://github.com/kr8s-org/kr8s) | `0.20.7` | `0.20.15` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.3` | `3.1.5` |\n| [aiofiles](https://github.com/Tinche/aiofiles) | `24.1.0` | `25.1.0` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `5.29.4` | `6.33.4` |\n| [parsy](https://github.com/python-parsy/parsy) | `2.1` | `2.2` |\n| [posthog](https://github.com/posthog/posthog-python) | `3.25.0` | `7.6.0` |\n| [markdown-code-runner](https://github.com/basnijholt/markdown-code-runner) | `2.2.0` | `2.7.0` |\n\nBumps the poetry group with 23 updates in the /projects/secrets_storage directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.11.3` | `2.12.5` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.40` | `2.0.46` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.15.2` | `1.18.1` |\n| [asyncpg](https://github.com/MagicStack/asyncpg) | `0.30.0` | `0.31.0` |\n| [kubernetes](https://github.com/kubernetes-client/python) | `31.0.0` | `35.0.0` |\n| [python-ulid](https://github.com/mdomke/python-ulid) | `3.0.0` | `3.1.0` |\n| [python-gitlab](https://github.com/python-gitlab/python-gitlab) | `5.6.0` | `7.1.0` |\n| [psycopg](https://github.com/psycopg/psycopg) | `3.2.6` | `3.3.2` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.6.2` | `2.6.3` |\n| [authlib](https://github.com/authlib/authlib) | `1.6.0` | `1.6.6` |\n| [marshmallow](https://github.com/marshmallow-code/marshmallow) | `3.26.1` | `4.2.1` |\n| [escapism](https://github.com/jupyterhub/escapism) | `1.0.1` | `1.1.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.26.1` | `2.50.0` |\n| [authzed](https://github.com/authzed/authzed-py) | `1.21.1` | `1.24.1` |\n| [cryptography](https://github.com/pyca/cryptography) | `44.0.2` | `46.0.3` |\n| [setuptools](https://github.com/pypa/setuptools) | `75.9.1` | `80.10.1` |\n| [kr8s](https://github.com/kr8s-org/kr8s) | `0.20.7` | `0.20.15` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.3` | `3.1.5` |\n| [aiofiles](https://github.com/Tinche/aiofiles) | `24.1.0` | `25.1.0` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `5.29.4` | `6.33.4` |\n| [parsy](https://github.com/python-parsy/parsy) | `2.1` | `2.2` |\n| [posthog](https://github.com/posthog/posthog-python) | `3.25.0` | `7.6.0` |\n| [markdown-code-runner](https://github.com/basnijholt/markdown-code-runner) | `2.2.0` | `2.7.0` |\n\n\nUpdates `pydantic` from 2.11.3 to 2.12.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.5 2025-11-26\u003c/h2\u003e\n\u003ch2\u003ev2.12.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.4 2025-11-05\u003c/h2\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method of the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1864\"\u003epydantic-core#1864\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.3 2025-10-17\u003c/h2\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eThis is the third 2.13 patch release, fixing issues related to the \u003ccode\u003eFieldInfo\u003c/code\u003e class, and reverting a change to the supported \u003ca href=\"https://docs.pydantic.dev/latest/concepts/validators/#model-validators\"\u003e\u003cem\u003eafter\u003c/em\u003e model validator\u003c/a\u003e function signatures.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.5\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.4\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in\n\u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1864\"\u003epydantic-core#1864\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.3\"\u003eGitHub release\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/pydantic/pydantic/commit/bd2d0dd0137dfa1a8fdff2529b9dfb1547980150\"\u003e\u003ccode\u003ebd2d0dd\u003c/code\u003e\u003c/a\u003e Prepare release v2.12.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7d0302ec7ec2cf115de3450a615522875bdd8b56\"\u003e\u003ccode\u003e7d0302e\u003c/code\u003e\u003c/a\u003e Document security implications when using \u003ccode\u003ecreate_model()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/e9ef980def726b6f59b6c495ddc9dc259a0228db\"\u003e\u003ccode\u003ee9ef980\u003c/code\u003e\u003c/a\u003e Fix typo in Standard Library Types documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f2c20c00c265a31a13c48f9bae923a87c829952e\"\u003e\u003ccode\u003ef2c20c0\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003epydantic-docs\u003c/code\u003e dev dependency, make use of versioning blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a76c1aa26f2d64a3fd080ac515d80832689197e8\"\u003e\u003ccode\u003ea76c1aa\u003c/code\u003e\u003c/a\u003e Update documentation about JSON Schema\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/8cbc72ca489891e574fba45238ee8bd4f8e719a2\"\u003e\u003ccode\u003e8cbc72c\u003c/code\u003e\u003c/a\u003e Add documentation about custom \u003ccode\u003e__init__()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/99eba599069da137b3f708ffa74627f2b456ba73\"\u003e\u003ccode\u003e99eba59\u003c/code\u003e\u003c/a\u003e Add additional test for \u003ccode\u003eFieldInfo.get_default()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c71076988e507ea93844c77c3bf0bbb85a5716af\"\u003e\u003ccode\u003ec710769\u003c/code\u003e\u003c/a\u003e Special case \u003ccode\u003eMISSING\u003c/code\u003e sentinel in \u003ccode\u003esmart_deepcopy()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/20a9d771c210fd77d52366ac923258c4c199727f\"\u003e\u003ccode\u003e20a9d77\u003c/code\u003e\u003c/a\u003e Do not delete mock validator/serializer in \u003ccode\u003erebuild_dataclass()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c86515a3a8f2120148fab2eaedd3bc45925779d0\"\u003e\u003ccode\u003ec86515a\u003c/code\u003e\u003c/a\u003e Update parts of the model and \u003ccode\u003erevalidate_instances\u003c/code\u003e documentation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.11.3...v2.12.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy` from 2.0.40 to 2.0.46\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/releases\"\u003esqlalchemy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.0.46\u003c/h1\u003e\n\u003cp\u003eReleased: January 21, 2026\u003c/p\u003e\n\u003ch2\u003etyping\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[typing] [bug]\u003c/strong\u003e Fixed typing issues where ORM mapped classes and aliased entities could not\nbe used as keys in result row mappings or as join targets in select\nstatements. Patterns such as \u003ccode\u003erow._mapping[User]\u003c/code\u003e,\n\u003ccode\u003erow._mapping[aliased(User)]\u003c/code\u003e, \u003ccode\u003erow._mapping[with_polymorphic(...)]\u003c/code\u003e\n(rejected by both mypy and Pylance), and \u003ccode\u003e.join(aliased(User))\u003c/code\u003e\n(rejected by Pylance) are documented and fully supported at runtime but\nwere previously rejected by type checkers. The type definitions for\n\u003ccode\u003e_KeyType\u003c/code\u003e and \u003ccode\u003e_FromClauseArgument\u003c/code\u003e have been updated to\naccept these ORM entity types.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13075\"\u003e#13075\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epostgresql\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[postgresql] [bug]\u003c/strong\u003e Fixed issue where PostgreSQL JSONB operators\n\u003ccode\u003e_postgresql.JSONB.Comparator.path_match()\u003c/code\u003e and\n\u003ccode\u003e_postgresql.JSONB.Comparator.path_exists()\u003c/code\u003e were applying incorrect\n\u003ccode\u003eVARCHAR\u003c/code\u003e casts to the right-hand side operand when used with newer\nPostgreSQL drivers such as psycopg. The operators now indicate the\nright-hand type as \u003ccode\u003eJSONPATH\u003c/code\u003e, which currently results in no casting\ntaking place, but is also compatible with explicit casts if the\nimplementation were require it at a later point.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13059\"\u003e#13059\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[postgresql] [bug]\u003c/strong\u003e Fixed regression in PostgreSQL dialect where JSONB subscription syntax\nwould generate incorrect SQL for \u003ccode\u003ecast()\u003c/code\u003e expressions returning JSONB,\ncausing syntax errors. The dialect now properly wraps cast expressions in\nparentheses when using the \u003ccode\u003e[]\u003c/code\u003e subscription syntax, generating\n\u003ccode\u003e(CAST(...))[index]\u003c/code\u003e instead of \u003ccode\u003eCAST(...)[index]\u003c/code\u003e to comply with\nPostgreSQL syntax requirements. This extends the fix from \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12778\"\u003e#12778\u003c/a\u003e\nwhich addressed the same issue for function calls.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13067\"\u003e#13067\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[postgresql] [bug]\u003c/strong\u003e Improved the foreign key reflection regular expression pattern used by the\nPostgreSQL dialect to be more permissive in matching identifier characters,\nallowing it to correctly handle unicode characters in table and column\nnames. This change improves compatibility with PostgreSQL variants such as\nCockroachDB that may use different quoting patterns in combination with\nunicode characters in their identifiers.  Pull request courtesy Gord\nThompson.\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\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `alembic` from 1.15.2 to 1.18.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/alembic/releases\"\u003ealembic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.18.1\u003c/h1\u003e\n\u003cp\u003eReleased: January 14, 2026\u003c/p\u003e\n\u003ch2\u003ebug\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [autogenerate]\u003c/strong\u003e Fixed issue in new plugin system where the configured logger was not\ncorrectly using the \u003ccode\u003e__name__\u003c/code\u003e token to identify the logger.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1779\"\u003e#1779\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [operations]\u003c/strong\u003e Revised the change regarding SQLAlchemy 2.1 and deprecation warnings\nrelated to \u003ccode\u003eisolate_from_table=True\u003c/code\u003e. Further developments in release 2.1\nhave revised how this parameter will be modified.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.18.0\u003c/h1\u003e\n\u003cp\u003eReleased: January 9, 2026\u003c/p\u003e\n\u003ch2\u003efeature\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[feature] [operations]\u003c/strong\u003e When alembic is run in \u0026quot;verbose\u0026quot; mode, alembic now logs a message to\nindicate from which file is used to load the configuration.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1737\"\u003e#1737\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[feature] [autogenerate]\u003c/strong\u003e Autogenerate reflection sweeps now use the \u0026quot;bulk\u0026quot; inspector methods\nintroduced in SQLAlchemy 2.0, which for selected dialects including\nPostgreSQL and Oracle use batched queries to reflect whole collections of\ntables using O(1) queries rather than O(N).\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1771\"\u003e#1771\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[feature] [autogenerate]\u003c/strong\u003e Release 1.18.0 introduces a plugin system that allows for automatic\nloading of third-party extensions as well as configurable autogenerate\ncompare functionality on a per-environment basis.\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003ePlugin\u003c/code\u003e class provides a common interface for extensions that\nregister handlers among Alembic's existing extension points such as\n\u003ccode\u003eOperations.register_operation()\u003c/code\u003e and\n\u003ccode\u003eOperations.implementation_for()\u003c/code\u003e. A new interface for registering\nautogenerate comparison handlers,\n\u003ccode\u003ePlugin.add_autogenerate_comparator()\u003c/code\u003e, provides for autogenerate\ncompare functionality that may be custom-configured on a per-environment\nbasis using the new\n\u003ccode\u003eEnvironmentContext.configure.autogenerate_plugins\u003c/code\u003e parameter.\u003c/p\u003e\n\u003cp\u003eThe change does not impact well known Alembic add-ons such as\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\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/alembic/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `asyncpg` from 0.30.0 to 0.31.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/MagicStack/asyncpg/releases\"\u003easyncpg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.31.0\u003c/h2\u003e\n\u003cp\u003eEnable Python 3.14 with experimental subinterpreter/freethreading\nsupport.\u003c/p\u003e\n\u003ch1\u003eImprovements\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd Python 3.14 support, experimental subinterpreter/freethreading support (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1279\"\u003e#1279\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 9e42642b)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid performing type introspection on known types (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1243\"\u003e#1243\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 5c9986c4)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eprepare()\u003c/code\u003e not use named statements by default when cache is disabled (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1245\"\u003e#1245\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 5b14653e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement connection service file functionality (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1223\"\u003e#1223\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/AndrewJackson2020\"\u003e\u003ccode\u003e@​AndrewJackson2020\u003c/code\u003e\u003c/a\u003e in 1d63bb15)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eFixes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix multi port connection string issue (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1222\"\u003e#1222\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/AndrewJackson2020\"\u003e\u003ccode\u003e@​AndrewJackson2020\u003c/code\u003e\u003c/a\u003e in 01c0db7b)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid leaking connections if _can_use_connection fails (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1269\"\u003e#1269\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/yuliy-openai\"\u003e\u003ccode\u003e@​yuliy-openai\u003c/code\u003e\u003c/a\u003e in e94302d2)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eOther\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for EOL Python 3.8 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1281\"\u003e#1281\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 6c2c4904)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/71775a67277fc0aa5bd2b9f15e848826d7078c4d\"\u003e\u003ccode\u003e71775a6\u003c/code\u003e\u003c/a\u003e asyncpg v0.31.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/508cae6441968ef7613a623fece7083cce66c2b3\"\u003e\u003ccode\u003e508cae6\u003c/code\u003e\u003c/a\u003e Test on PostgreSQL 18 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1290\"\u003e#1290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/e534e5f15c73525a6509143b3828335517360f1b\"\u003e\u003ccode\u003ee534e5f\u003c/code\u003e\u003c/a\u003e Bump cibuildwheel\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/07fe5122a680f5768e39fc28d68c94b185037a52\"\u003e\u003ccode\u003e07fe512\u003c/code\u003e\u003c/a\u003e Bump pgproto\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/648b35f18199ebf2a30009376a6e9060cf7ad789\"\u003e\u003ccode\u003e648b35f\u003c/code\u003e\u003c/a\u003e Bump Cython to 3.2.1 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1288\"\u003e#1288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/9e42642b9110d206706697921b6e697a0972649d\"\u003e\u003ccode\u003e9e42642\u003c/code\u003e\u003c/a\u003e Add Python 3.14 support, experimental subinterpreter/freethreading support (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/6fe1c494ef5c3069fa9149c48bf9f8f2cd69f95e\"\u003e\u003ccode\u003e6fe1c49\u003c/code\u003e\u003c/a\u003e Move development deps away from extras and into dependency groups (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1280\"\u003e#1280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/7a548166c2b23561915c481bd332013e3a415cfb\"\u003e\u003ccode\u003e7a54816\u003c/code\u003e\u003c/a\u003e Fix a couple of missed Python version guards\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/6c2c4904e61b2cd2f502540730a24e246cff2ebd\"\u003e\u003ccode\u003e6c2c490\u003c/code\u003e\u003c/a\u003e Drop support for EOL Python 3.8 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1281\"\u003e#1281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/4c60ae890d1f3800f889679657357f91a6923568\"\u003e\u003ccode\u003e4c60ae8\u003c/code\u003e\u003c/a\u003e Bump version to 0.31.0.dev0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/MagicStack/asyncpg/compare/v0.30.0...v0.31.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `kubernetes` from 31.0.0 to 33.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kubernetes-client/python/releases\"\u003ekubernetes's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKubernetes Python Client v33.1.0 Stable Release\u003c/h2\u003e\n\u003cp\u003eGetting started:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install --pre --upgrade kubernetes\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from source, download attached zip file, then\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eunzip client-python-v33.1.0.zip\ncd client-python-v33.1.0\npython setup.py install\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThen follow examples in \u003ca href=\"https://github.com/kubernetes-client/python/tree/release-33.0/examples\"\u003ehttps://github.com/kubernetes-client/python/tree/release-33.0/examples\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eChangelog: \u003ca href=\"https://github.com/kubernetes-client/python/blob/release-33.0/CHANGELOG.md\"\u003ehttps://github.com/kubernetes-client/python/blob/release-33.0/CHANGELOG.md\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eKubernetes Python Client v33.1.0 Beta 1 Release\u003c/h2\u003e\n\u003cp\u003eGetting started:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install --pre --upgrade kubernetes\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from source, download attached zip file, then\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eunzip client-python-v33.1.0b1.zip\ncd client-python-v33.1.0b1\npython setup.py install\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThen follow examples in \u003ca href=\"https://github.com/kubernetes-client/python/tree/release-33.0/examples\"\u003ehttps://github.com/kubernetes-client/python/tree/release-33.0/examples\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eChangelog: \u003ca href=\"https://github.com/kubernetes-client/python/blob/release-33.0/CHANGELOG.md\"\u003ehttps://github.com/kubernetes-client/python/blob/release-33.0/CHANGELOG.md\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eKubernetes Python Client v33.1.0 Alpha 1 Release\u003c/h2\u003e\n\u003cp\u003eGetting started:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install --pre --upgrade kubernetes\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from source, download attached zip file, then\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eunzip client-python-v33.1.0a1.zip\ncd client-python-v33.1.0a1\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt; \n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kubernetes-client/python/blob/v33.1.0/CHANGELOG.md\"\u003ekubernetes's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev33.1.0\u003c/h1\u003e\n\u003cp\u003eKubernetes API Version: v1.33.1\u003c/p\u003e\n\u003ch1\u003ev33.1.0b1\u003c/h1\u003e\n\u003cp\u003eKubernetes API Version: v1.33.1\u003c/p\u003e\n\u003ch1\u003ev33.1.0a1\u003c/h1\u003e\n\u003cp\u003eKubernetes API Version: v1.33.1\u003c/p\u003e\n\u003ch3\u003eAPI Change\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eA new alpha feature gate, \u003ccode\u003eMutableCSINodeAllocatableCount\u003c/code\u003e, has been introduced.\u003c/p\u003e\n\u003cp\u003eWhen this feature gate is enabled, the \u003ccode\u003eCSINode.Spec.Drivers[*].Allocatable.Count\u003c/code\u003e field becomes mutable, and a new field, \u003ccode\u003eNodeAllocatableUpdatePeriodSeconds\u003c/code\u003e, is available in the \u003ccode\u003eCSIDriver\u003c/code\u003e object. This allows periodic updates to a node's reported allocatable volume capacity, preventing stateful pods from becoming stuck due to outdated information that kube-scheduler relies on. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130007\"\u003ekubernetes/kubernetes#130007\u003c/a\u003e, \u003ca href=\"https://github.com/torredil\"\u003e\u003ccode\u003e@​torredil\u003c/code\u003e\u003c/a\u003e) [SIG Apps, Node, Scheduling and Storage]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded feature gate \u003ccode\u003eDRAPartitionableDevices\u003c/code\u003e, when enabled, Dynamic Resource Allocation support partitionable devices allocation. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130764\"\u003ekubernetes/kubernetes#130764\u003c/a\u003e, \u003ca href=\"https://github.com/cici37\"\u003e\u003ccode\u003e@​cici37\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Scheduling, Storage and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded DRA support for a \u0026quot;one-of\u0026quot; prioritized list of selection criteria to satisfy a device request in a resource claim. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/128586\"\u003ekubernetes/kubernetes#128586\u003c/a\u003e, \u003ca href=\"https://github.com/mortent\"\u003e\u003ccode\u003e@​mortent\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Etcd, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a \u003ccode\u003e/flagz\u003c/code\u003e endpoint for kubelet endpoint (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/128857\"\u003ekubernetes/kubernetes#128857\u003c/a\u003e, \u003ca href=\"https://github.com/zhifei92\"\u003e\u003ccode\u003e@​zhifei92\u003c/code\u003e\u003c/a\u003e) [SIG Architecture, Instrumentation and Node]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a new \u003ccode\u003etolerance\u003c/code\u003e field to HorizontalPodAutoscaler, overriding the cluster-wide default. Enabled via the HPAConfigurableTolerance alpha feature gate. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130797\"\u003ekubernetes/kubernetes#130797\u003c/a\u003e, \u003ca href=\"https://github.com/jm-franc\"\u003e\u003ccode\u003e@​jm-franc\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Autoscaling, Etcd, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for configuring custom stop signals with a new StopSignal container lifecycle (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130556\"\u003ekubernetes/kubernetes#130556\u003c/a\u003e, \u003ca href=\"https://github.com/sreeram-venkitesh\"\u003e\u003ccode\u003e@​sreeram-venkitesh\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for in-place vertical scaling of Pods with sidecars (containers defined within \u003ccode\u003einitContainers\u003c/code\u003e where the \u003ccode\u003erestartPolicy\u003c/code\u003e is set to \u003ccode\u003eAlways\u003c/code\u003e). (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/128367\"\u003ekubernetes/kubernetes#128367\u003c/a\u003e, \u003ca href=\"https://github.com/vivzbansal\"\u003e\u003ccode\u003e@​vivzbansal\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, CLI, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCPUManager Policy Options support is GA (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130535\"\u003ekubernetes/kubernetes#130535\u003c/a\u003e, \u003ca href=\"https://github.com/ffromani\"\u003e\u003ccode\u003e@​ffromani\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChanged the Pod API to support \u003ccode\u003ehugepage resources\u003c/code\u003e at \u003ccode\u003espec\u003c/code\u003e level for pod-level resources. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130577\"\u003ekubernetes/kubernetes#130577\u003c/a\u003e, \u003ca href=\"https://github.com/KevinTMtz\"\u003e\u003ccode\u003e@​KevinTMtz\u003c/code\u003e\u003c/a\u003e) [SIG Apps, CLI, Node, Scheduling, Storage and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA API: The maximum number of pods that can use the same ResourceClaim is now 256 instead of 32. Downgrading a cluster where this relaxed limit is in use to Kubernetes 1.32.0 is not supported, as version 1.32.0 would refuse to update ResourceClaims with more than 32 entries in the \u003ccode\u003estatus.reservedFor\u003c/code\u003e field. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/129543\"\u003ekubernetes/kubernetes#129543\u003c/a\u003e, \u003ca href=\"https://github.com/pohly\"\u003e\u003ccode\u003e@​pohly\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA: CEL expressions using attribute strings exceeded the cost limit because their cost estimation was incomplete. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/129661\"\u003ekubernetes/kubernetes#129661\u003c/a\u003e, \u003ca href=\"https://github.com/pohly\"\u003e\u003ccode\u003e@​pohly\u003c/code\u003e\u003c/a\u003e) [SIG Node]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA: Device taints enable DRA drivers or admins to mark device as unusable, which prevents allocating them. Pods may also get evicted at runtime if a device becomes unusable, depending on the severity of the taint and whether the claim tolerates the taint. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130447\"\u003ekubernetes/kubernetes#130447\u003c/a\u003e, \u003ca href=\"https://github.com/pohly\"\u003e\u003ccode\u003e@​pohly\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Architecture, Auth, Etcd, Instrumentation, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA: Starting Kubernetes 1.33, only users with access to an admin namespace with the \u003ccode\u003ekubernetes.io/dra-admin-access\u003c/code\u003e label are authorized to create ResourceClaim or ResourceClaimTemplate objects with the \u003ccode\u003eadminAccess\u003c/code\u003e field in this admin namespace if they want to and only they can reference these ResourceClaims or ResourceClaimTemplates in their pod or deployment specs. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130225\"\u003ekubernetes/kubernetes#130225\u003c/a\u003e, \u003ca href=\"https://github.com/ritazh\"\u003e\u003ccode\u003e@​ritazh\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Auth, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA: when asking for \u0026quot;All\u0026quot; devices on a node, Kubernetes \u0026lt;= 1.32 proceeded to schedule pods onto nodes with no devices by not allocating any devices for those pods. Kubernetes 1.33 changes that to only picking nodes which have at least one device. Users who want the \u0026quot;proceed with scheduling also without devices\u0026quot; semantic can use the upcoming prioritized list feature with one sub-request for \u0026quot;all\u0026quot; devices and a second alternative with \u0026quot;count: 0\u0026quot;. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/129560\"\u003ekubernetes/kubernetes#129560\u003c/a\u003e, \u003ca href=\"https://github.com/bart0sh\"\u003e\u003ccode\u003e@​bart0sh\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery and Node]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExpanded the on-disk kubelet credential provider configuration to allow an optional \u003ccode\u003etokenAttribute\u003c/code\u003e field to be configured. When it is set, the kubelet will provision a token with the given audience bound to the current pod and its service account. This KSA token along with required annotations on the KSA defined in configuration will be sent to the credential provider plugin via its standard input (along with the image information that is already sent today). The KSA annotations to be sent are configurable in the kubelet credential provider configuration. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/128372\"\u003ekubernetes/kubernetes#128372\u003c/a\u003e, \u003ca href=\"https://github.com/aramase\"\u003e\u003ccode\u003e@​aramase\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Auth, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed the example validation rule in godoc:\u003c/p\u003e\n\u003cp\u003eWhen configuring a JWT authenticator:\u003c/p\u003e\n\u003cp\u003eIf username.expression uses 'claims.email', then 'claims.email_verified' must be used in\nusername.expression or extra[\u003cem\u003e].valueExpression or claimValidationRules[\u003c/em\u003e].expression.\nAn example claim validation rule expression that matches the validation automatically\napplied when username.claim is set to 'email' is 'claims.?email_verified.orValue(true) == true'.\nBy explicitly comparing the value to true, we let type-checking see the result will be a boolean,\nand to make sure a non-boolean \u003ccode\u003eemail_verified\u003c/code\u003e claim will be caught at runtime. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130875\"\u003ekubernetes/kubernetes#130875\u003c/a\u003e, \u003ca href=\"https://github.com/aramase\"\u003e\u003ccode\u003e@​aramase\u003c/code\u003e\u003c/a\u003e) [SIG Auth and Release]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFor the \u003ccode\u003eInPlacePodVerticalScaling\u003c/code\u003e feature, the API server will no longer set the resize status to \u003ccode\u003eProposed\u003c/code\u003e upon receiving a resize request. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130574\"\u003ekubernetes/kubernetes#130574\u003c/a\u003e, \u003ca href=\"https://github.com/natasha41575\"\u003e\u003ccode\u003e@​natasha41575\u003c/code\u003e\u003c/a\u003e) [SIG Apps, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eGraduate the \u003ccode\u003eMatchLabelKeys\u003c/code\u003e (MismatchLabelKeys) feature in PodAffinity (PodAntiAffinity) to GA (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130463\"\u003ekubernetes/kubernetes#130463\u003c/a\u003e, \u003ca href=\"https://github.com/sanposhiho\"\u003e\u003ccode\u003e@​sanposhiho\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eGraduated image volume sources to beta:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAllowed \u003ccode\u003esubPath\u003c/code\u003e/\u003ccode\u003esubPathExpr\u003c/code\u003e for image volumes\u003c/li\u003e\n\u003cli\u003eAdded kubelet metrics \u003ccode\u003ekubelet_image_volume_requested_total\u003c/code\u003e, \u003ccode\u003ekubelet_image_volume_mounted_succeed_total\u003c/code\u003e and \u003ccode\u003ekubelet_image_volume_mounted_errors_total\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130135\"\u003ekubernetes/kubernetes#130135\u003c/a\u003e, \u003ca href=\"https://github.com/saschagrunert\"\u003e\u003ccode\u003e@​saschagrunert\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Node and Testing]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplemented a new status field, \u003ccode\u003e.status.terminatingReplicas\u003c/code\u003e, for Deployments and ReplicaSets to track terminating pods. The new field is present when the \u003ccode\u003eDeploymentPodReplacementPolicy\u003c/code\u003e feature gate is enabled. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/128546\"\u003ekubernetes/kubernetes#128546\u003c/a\u003e, \u003ca href=\"https://github.com/atiratree\"\u003e\u003ccode\u003e@​atiratree\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplemented validation for \u003ccode\u003eNodeSelectorRequirement\u003c/code\u003e values in Kubernetes when creating pods. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/128212\"\u003ekubernetes/kubernetes#128212\u003c/a\u003e, \u003ca href=\"https://github.com/AxeZhan\"\u003e\u003ccode\u003e@​AxeZhan\u003c/code\u003e\u003c/a\u003e) [SIG Apps and Scheduling]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved how the API server responds to \u003cstrong\u003elist\u003c/strong\u003e requests where the response format negotiates to Protobuf. List responses in Protobuf are marshalled one element at the time, drastically reducing memory needed to serve large collections. Streaming list responses can be disabled via the \u003ccode\u003eStreamingCollectionEncodingToProtobuf\u003c/code\u003e feature gate. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/129407\"\u003ekubernetes/kubernetes#129407\u003c/a\u003e, \u003ca href=\"https://github.com/serathius\"\u003e\u003ccode\u003e@​serathius\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Architecture, Auth, CLI, Cloud Provider, Network, Node, Release, Scheduling, Storage and Testing]\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/kubernetes-client/python/commit/8f5578ee6845d33b3fb54867e2ea88349df6d07e\"\u003e\u003ccode\u003e8f5578e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kubernetes-client/python/issues/2412\"\u003e#2412\u003c/a\u003e from yliaog/automated-release-of-33.1.0-upstream-rel...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/5a367e94d1b185fb31c1683a5c4d834a467293b7\"\u003e\u003ccode\u003e5a367e9\u003c/code\u003e\u003c/a\u003e updated compatibility matrix and maintenance status\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/f00d2b7a0efb46acd38b82ea3ec483357ce70a1f\"\u003e\u003ccode\u003ef00d2b7\u003c/code\u003e\u003c/a\u003e generated client change\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/9d712b488e5d782c547c86271edc6c77fe4ee1d0\"\u003e\u003ccode\u003e9d712b4\u003c/code\u003e\u003c/a\u003e update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/45eb341e2bd3964d166de0a3055528b62f9e440e\"\u003e\u003ccode\u003e45eb341\u003c/code\u003e\u003c/a\u003e update version constants for 33.1.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/58551e416ac63b1ac0125262ccca2fbbcd23d63f\"\u003e\u003ccode\u003e58551e4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kubernetes-client/python/issues/2408\"\u003e#2408\u003c/a\u003e from yliaog/automated-release-of-33.1.0b1-upstream-r...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/bd6c75279449f75adc221a74e7a443d514a943e2\"\u003e\u003ccode\u003ebd6c752\u003c/code\u003e\u003c/a\u003e updated compatibility matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/de8ee89a7ce82613b650c5f3a251de79c12aff26\"\u003e\u003ccode\u003ede8ee89\u003c/code\u003e\u003c/a\u003e generated client change\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/fec5585a7d9878237f7b0e3930a8c98f70a72b57\"\u003e\u003ccode\u003efec5585\u003c/code\u003e\u003c/a\u003e update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-client/python/commit/78aee45d0be7f29d710312d879e58d5e47b671e4\"\u003e\u003ccode\u003e78aee45\u003c/code\u003e\u003c/a\u003e update version constants for 33.1.0b1 release\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kubernetes-client/python/compare/v31.0.0...v33.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-ulid` from 3.0.0 to 3.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mdomke/python-ulid/releases\"\u003epython-ulid's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.1.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded Python 3.13 to the trove classifiers.\u003c/li\u003e\n\u003cli\u003eOptimze \u003ccode\u003e@property\u003c/code\u003e to \u003ccode\u003e@cached_property\u003c/code\u003e \u003ca href=\"https://github.com/WH-2099\"\u003e\u003ccode\u003e@​WH-2099\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen generating ULIDs within the same millisecond, the library will ensure monotonic sort order by incrementing the randomness component by 1 bit. This process is described in the \u003ca href=\"https://github.com/ulid/spec/blob/master/README.md#monotonicity\"\u003espec\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSharpen regular expression for Pydantic \u003ca href=\"https://github.com/aplhk\"\u003e\u003ccode\u003e@​aplhk\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix Sphinx warnings when referencing ULID from an external project. \u003ca href=\"https://github.com/BoboTiG\"\u003e\u003ccode\u003e@​BoboTiG\u003c/code\u003e\u003c/a\u003e .\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mdomke/python-ulid/blob/main/CHANGELOG.rst\"\u003epython-ulid's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003e3.1.0\u003c/code\u003e_ - 2025-08-18\u003c/h2\u003e\n\u003cp\u003eChanged\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e* Added Python 3.13 to the trove classifiers.\n* Optimze ``@property`` to ``@cached_property`` `@WH-2099 \u0026lt;https://github.com/WH-2099\u0026gt;`_.\n* When generating ULIDs within the same millisecond, the library will ensure monotonic sort order by\n  incrementing the randomness component by 1 bit. This process is descrbied in the\n  `spec \u0026lt;https://github.com/ulid/spec/blob/master/README.md#monotonicity\u0026gt;`_.\n\u003cp\u003eFixed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e* Sharpen regular expression for Pydantic `@aplhk \u0026amp;lt;https://github.com/aplhk\u0026amp;gt;`_.\n* Fix Sphinx warnings when referencing ULID from an external project. `@BoboTiG \u0026amp;lt;https://github.com/BoboTiG\u0026amp;gt;`_.\n\u0026lt;/code\u0026gt;\u0026lt;/pre\u0026gt;\n\u0026lt;/blockquote\u0026gt;\n\u0026lt;/details\u0026gt;\n\u0026lt;details\u0026gt;\n\u0026lt;summary\u0026gt;Commits\u0026lt;/summary\u0026gt;\n\n\u0026lt;ul\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/mdomke/python-ulid/commit/12277593be322123b2f6ff39fbe329a3eb0b7c15\u0026quot;\u0026gt;\u0026lt;code\u0026gt;1227759\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; chore: Always specify byteorder for Python 3.9\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/mdomke/python-ulid/commit/14683ee0df6e4a2966ceb32d3497bc5d3a9d7079\u0026quot;\u0026gt;\u0026lt;code\u0026gt;14683ee\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Implement same ms monotonic sort order\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/mdomke/python-ulid/commit/51b4ab8dace5661a1689f4bcaaefbc529d0c4632\u0026quot;\u0026gt;\u0026lt;code\u0026gt;51b4ab8\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; chore: Add changelog for 3.1.0\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/mdomke/python-ulid/commit/c36c65f7730422591f6302a60d6a00324c7ba9a2\u0026quot;\u0026gt;\u0026lt;code\u0026gt;c36c65f\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Improve Sphinx interdoc\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/mdomke/python-ulid/commit/dfc3b9cee46518514d44fb34fd5d36d6f414b965\u0026quot;\u0026gt;\u0026lt;code\u0026gt;dfc3b9c\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Fix sphinx warnings (\u0026lt;a href=\u0026quot;https://redirect.github.com/mdomke/python-ulid/issues/35\u0026quot;\u0026gt;#35\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/mdomke/python-ulid/commit/59cd43d0d5aa3a8bf509f8da516d0c27597d020b\u0026quot;\u0026gt;\u0026lt;code\u0026gt;59cd43d\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Add uv and freezegun dependencies\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/mdomke/python-ulid/commit/9e56decb2b16ec8d6ebaccdc200de264e69f96e3\u0026quot;\u0026gt;\u0026lt;code\u0026gt;9e56dec\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Optimize regex pattern\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/mdomke/python-ulid/commit/9b3168bed2938e7de4a4d4565aec62a3eab7f5c5\u0026quot;\u0026gt;\u0026lt;code\u0026gt;9b3168b\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Update tooling, type checking and linting\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/mdomke/python-ulid/commit/929ef8ac34ef953c980490dd875b3100fc4351aa\u0026quot;\u0026gt;\u0026lt;code\u0026gt;929ef8a\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; Move dev dependences into pyproject.toml\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;\u0026lt;a href=\u0026quot;https://github.com/mdomke/python-ulid/commit/a1434e82a854f1796ba4ad5da5a095789038f506\u0026quot;\u0026gt;\u0026lt;code\u0026gt;a1434e8\u0026lt;/code\u0026gt;\u0026lt;/a\u0026gt; optimize property to cached_property (\u0026lt;a href=\u0026quot;https://redirect.github.com/mdomke/python-ulid/issues/37\u0026quot;\u0026gt;#37\u0026lt;/a\u0026gt;)\u0026lt;/li\u0026gt;\n\u0026lt;li\u0026gt;Additional commits viewable in \u0026lt;a href=\u0026quot;https://github.com/mdomke/python-ulid/compare/3.0.0...3.1.0\u0026quot;\u0026gt;compare view\u0026lt;/a\u0026gt;\u0026lt;/li\u0026gt;\n\u0026lt;/ul\u0026gt;\n\u0026lt;/details\u0026gt;\n\n\u0026lt;br /\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\n\nUpdates `python-gitlab` from 5.6.0 to 7.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-gitlab/python-gitlab/releases\"\u003epython-gitlab's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.1.0 (2025-12-28)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eutils\u003c/strong\u003e: Prevent negative sleep time in rate limit retry (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erelease\u003c/strong\u003e: Use the correct token for publish to GitHub (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/614a74c00f027f70b8e48a6b2a2ddcd3f823bffa\"\u003e\u003ccode\u003e614a74c\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eregistry-protection\u003c/strong\u003e: Add support for registry protection rule deletion (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTesting\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efunctional\u003c/strong\u003e: Update to GitLab 18.6 and resolve issues found (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v7.0.0...v7.1.0\"\u003ev7.0.0...v7.1.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.0.0 (2025-10-29)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support and add Python 3.14 (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/22941acc3f331d5b683599c014ec962ece5d4b76\"\u003e\u003ccode\u003e22941ac\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAs of python-gitlab 7.0.0, Python 3.9 is no longer supported. Python 3.10 or higher is required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eDetailed Changes\u003c/strong\u003e: \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v6.5.0...v7.0.0\"\u003ev6.5.0...v7.0.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6.5.0 (2025-10-17)\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis release is published under the LGPL-3.0-or-later License.\u003c/em\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003esemantic-release\u003c/strong\u003e: Enable CHANGELOG.md generation (\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/fb9693bf1e6798149196e57fed87bf2588ad3b47\"\u003e\u003ccode\u003efb9693b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-gitlab/python-gitlab/blob/main/CHANGELOG.md\"\u003epython-gitlab's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.1.0 (2025-12-28)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eutils\u003c/strong\u003e: Prevent negative sleep time in rate limit retry\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erelease\u003c/strong\u003e: Use the correct token for publish to GitHub\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/614a74c00f027f70b8e48a6b2a2ddcd3f823bffa\"\u003e\u003ccode\u003e614a74c\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eregistry-protection\u003c/strong\u003e: Add support for registry protection rule deletion\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTesting\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003efunctional\u003c/strong\u003e: Update to GitLab 18.6 and resolve issues found\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev7.0.0 (2025-10-29)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support and add Python 3.14\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/22941acc3f331d5b683599c014ec962ece5d4b76\"\u003e\u003ccode\u003e22941ac\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAs of python-gitlab 7.0.0, Python 3.9 is no longer supported. Python 3.10 or higher is required.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev6.5.0 (2025-10-17)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003esemantic-release\u003c/strong\u003e: Enable CHANGELOG.md generation\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/fb9693bf1e6798149196e57fed87bf2588ad3b47\"\u003e\u003ccode\u003efb9693b\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContinuous Integration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estale\u003c/strong\u003e: Fix permission for stale action and allow manual run\n(\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9357a374702dcc8049a6d8af636f48c736d3f160\"\u003e\u003ccode\u003e9357a37\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epull_mirror\u003c/strong\u003e: Fix incorrect start() method usage example\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/f49175d5bcb3634fd9c707446e5fc879e911b7fb\"\u003e\u003ccode\u003ef49175d\u003c/code\u003e\u003c/a\u003e chore: release v7.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/8719985bdb88057cd8dbc2bd27f6a1161cdac6fd\"\u003e\u003ccode\u003e8719985\u003c/code\u003e\u003c/a\u003e chore(deps): update github artifact actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9dd62c3f5bcf3e082c2733bd4edc068f993c22ec\"\u003e\u003ccode\u003e9dd62c3\u003c/code\u003e\u003c/a\u003e feat(registry-protection): add support for registry protection rule deletion\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/d6eac7bea8d755dbe11ef4ff8a5247aa1aba2e24\"\u003e\u003ccode\u003ed6eac7b\u003c/code\u003e\u003c/a\u003e chore(deps): update gitlab/gitlab-ee docker tag to v18.7.0-ee.0 (\u003ca href=\"https://redirect.github.com/python-gitlab/python-gitlab/issues/3218\"\u003e#3218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/c7c139b9e7823ec1800a819233aee469355ee8d1\"\u003e\u003ccode\u003ec7c139b\u003c/code\u003e\u003c/a\u003e test(functional): update to GitLab 18.6 and resolve issues found\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/40827f419020d84aa777fa42a289fb07dc2b3fa7\"\u003e\u003ccode\u003e40827f4\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/91793733df8de2bd371e2297c80b429a2fcaace1\"\u003e\u003ccode\u003e9179373\u003c/code\u003e\u003c/a\u003e chore(deps): update dessant/lock-threads action to v6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/3c72fd1e0d74ebd82c257ba1b810252c5a7295f7\"\u003e\u003ccode\u003e3c72fd1\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/422119576287de30e1b70411c7ab0bbe39231af7\"\u003e\u003ccode\u003e4221195\u003c/code\u003e\u003c/a\u003e fix(utils): prevent negative sleep time in rate limit retry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-gitlab/python-gitlab/commit/9f11323c60468d8fdccb4b08aac857f9c485f9d9\"\u003e\u003ccode\u003e9f11323\u003c/code\u003e\u003c/a\u003e chore(deps): update all non-major dependencies\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-gitlab/python-gitlab/compare/v5.6.0...v7.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg` from 3.2.6 to 3.3.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg/blob/master/docs/news.rst\"\u003epsycopg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e.. currentmodule:: psycopg\u003c/p\u003e\n\u003cp\u003e.. index::\nsingle: Release notes\nsingle: News\u003c/p\u003e\n\u003ch1\u003e\u003ccode\u003epsycopg\u003c/code\u003e release notes\u003c/h1\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003ePsyocpg 3.3.3 (unreleased)\n^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003eRetain \u003ccode\u003eError.pgconn\u003c/code\u003e when raising a single exception for multiple connection\nattempt errors (:ticket:\u003ccode\u003e[#1246](https://github.com/psycopg/psycopg/issues/1246)\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003ePsycopg 3.3.2\n^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003eFix race condition in adapters at startup (:ticket:\u003ccode\u003e[#1230](https://github.com/psycopg/psycopg/issues/1230)\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003ePsycopg 3.3.1\n^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003eFix iteration on server-side cursors (:ticket:\u003ccode\u003e[#1226](https://github.com/psycopg/psycopg/issues/1226)\u003c/code\u003e).\u003c/p\u003e\n\u003ch2\u003ePsycopg 3.3.0\u003c/h2\u003e\n\u003cp\u003e.. rubric:: New top-level features\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd :ref:\u003ccode\u003etemplate strings queries \\\u0026lt;template-strings\u0026gt;\u003c/code\u003e (:ticket:\u003ccode\u003e[#1054](https://github.com/psycopg/psycopg/issues/1054)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eMore flexible :ref:\u003ccode\u003ecomposite adaptation\u0026lt;adapt-composite\u0026gt;\u003c/code\u003e: it is now possible\nto adapt Python objects to PostgreSQL composites and back even if they are not\nsequences or if they take keyword arguments (:ticket:\u003ccode\u003e[#932](https://github.com/psycopg/psycopg/issues/932)\u003c/code\u003e, :ticket:\u003ccode\u003e[#1202](https://github.com/psycopg/psycopg/issues/1202)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eCursors are now iterators_, not just iterables_. This means you can call\n\u003ccode\u003enext\u003c/code\u003e\\ \u003ccode\u003e(cur)\u003c/code\u003e or \u003ccode\u003eanext\u003c/code\u003e\\ \u003ccode\u003e(cur)\u003c/code\u003e, which is useful as a :ref:\u003ccode\u003etype-safe expression \u0026lt;typing-fetchone\u0026gt;\u003c/code\u003e (:ticket:\u003ccode\u003e[#1064](https://github.com/psycopg/psycopg/issues/1064)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eCursor.set_result()\u003c/code\u003e and \u003ccode\u003eCursor.results()\u003c/code\u003e to move across the result\nsets of queries executed though \u003ccode\u003e~Cursor.executemany()\u003c/code\u003e or\n\u003ccode\u003e~Cursor.execute()\u003c/code\u003e with multiple statements (:tickets:\u003ccode\u003e[#1080](https://github.com/psycopg/psycopg/issues/1080), [#1170](https://github.com/psycopg/psycopg/issues/1170)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd :ref:\u003ccode\u003etransaction-status\u003c/code\u003e to report the status during and after a\n\u003ccode\u003e~Connection.transaction()\u003c/code\u003e block (:ticket:\u003ccode\u003e[#969](https://github.com/psycopg/psycopg/issues/969)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAllow to change loaders using \u003ccode\u003e~adapt.AdaptersMap.register_loader()\u003c/code\u003e on\n\u003ccode\u003eCursor.adapters\u003c/code\u003e after a query result has been already returned\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/bc9e7bde14acd080c7597185a7904a4bc246ed0e\"\u003e\u003ccode\u003ebc9e7bd\u003c/code\u003e\u003c/a\u003e chore: bump psycopg package version to 3.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/3bcabb4592c6352aedb23f315dbd81326e9fbd14\"\u003e\u003ccode\u003e3bcabb4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg/issues/1231\"\u003e#1231\u003c/a\u003e from noirbee/fix/1230-adapter-get-dumper-race-condition\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/08bfe006ae0d9dea00b69f6a6df8497a0c0e4965\"\u003e\u003ccode\u003e08bfe00\u003c/code\u003e\u003c/a\u003e fix(adapters): avoid race condition when replacing class name with itself\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/7be710e7cbe42c94288efeda0bb5a87ad9659f03\"\u003e\u003ccode\u003e7be710e\u003c/code\u003e\u003c/a\u003e fix: mark external libpq C functions as noexcept nogil\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/6a24300ad2392e502a7c9d3c244ead6852890d90\"\u003e\u003ccode\u003e6a24300\u003c/code\u003e\u003c/a\u003e docs: larger font for 3.3.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/5a60a1e6b2394e6d3ccdb1d08cfd24d6fbac3d78\"\u003e\u003ccode\u003e5a60a1e\u003c/code\u003e\u003c/a\u003e chore: bump psycopg package version to 3.3.2.dev1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/9bdd78cf4360b9229ab3f641c646e232fc69cc8a\"\u003e\u003ccode\u003e9bdd78c\u003c/code\u003e\u003c/a\u003e chore: bump psycopg package version to 3.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/4d27426bf197a1eca8ea99ab9e236e1c8e0f15fa\"\u003e\u003ccode\u003e4d27426\u003c/code\u003e\u003c/a\u003e Merge branch 'fix/server-cursor-iter'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/b9b82e86e3ce1972581a495ccbe28d5dbb15c449\"\u003e\u003ccode\u003eb9b82e8\u003c/code\u003e\u003c/a\u003e fix: fix iteration on server-side cursor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/2a75357de22bb63ede33006cd17c99b30e360cdf\"\u003e\u003ccode\u003e2a75357\u003c/code\u003e\u003c/a\u003e fix: add test to verify iteration in server-side cursor broken\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg/compare/3.2.6...3.3.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `urllib3` from 2.6.0 to 2.6.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/urllib3/urllib3/releases\"\u003eurllib3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.6.3\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a security issue where decompression-bomb safeguards of the streaming API were bypassed when HTTP redirects were followed. (CVE-2026-21441 reported by \u003ca href=\"https://github.com/D47A\"\u003e\u003ccode\u003e@​D47A\u003c/code\u003e\u003c/a\u003e, 8.9 High, GHSA-38jv-5279-wg99)\u003c/li\u003e\n\u003cli\u003eStarted treating \u003ccode\u003eRetry-After\u003c/code\u003e times greater than 6 hours as 6 hours by default. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3743\"\u003eurllib3/urllib3#3743\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eurllib3.connection.VerifiedHTTPSConnection\u003c/code\u003e on Emscripten. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3752\"\u003eurllib3/urllib3#3752\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.6.2\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPResponse.read_chunked()\u003c/code\u003e to properly handle leftover data in the decoder's buffer when reading compressed chunked responses. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3734\"\u003eurllib3/urllib3#3734\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.6.1\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRestore previously removed \u003ccode\u003eHTTPResponse.getheaders()\u003c/code\u003e and \u003ccode\u003eHTTPResponse.getheader()\u003c/code\u003e methods. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3731\"\u003e#3731\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/urllib3/urllib3/blob/main/CHANGES.rst\"\u003eurllib3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.6.3 (2026-01-07)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a high-severity security issue where decompression-bomb safeguards of\nthe streaming API were bypassed when HTTP redirects were followed.\n(\u003ccode\u003eGHSA-38jv-5279-wg99 \u0026lt;https://github.com/urllib3/urllib3/security/advisories/GHSA-38jv-5279-wg99\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eStarted treating \u003ccode\u003eRetry-After\u003c/code\u003e times greater than 6 hours as 6 hours by\ndefault. (\u003ccode\u003e[#3743](https://github.com/urllib3/urllib3/issues/3743) \u0026lt;https://github.com/urllib3/urllib3/issues/3743\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eurllib3.connection.VerifiedHTTPSConnection\u003c/code\u003e on Emscripten.\n(\u003ccode\u003e[#3752](https://github.com/urllib3/urllib3/issues/3752) \u0026lt;https://github.com/urllib3/urllib3/issues/3752\u0026gt;\u003c/...\n\n_Description has been truncated_","html_url":"https://github.com/SwissDataScienceCenter/renku-data-services/pull/1189","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/SwissDataScienceCenter%2Frenku-data-services/issues/1189","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1189/packages"}},{"old_version":"5.0.0","new_version":"5.1.0","update_type":"minor","path":"the dev-dependencies group across 1 directory","pr_created_at":"2026-01-25T16:05:27.000Z","version_change":"5.0.0 → 5.1.0","issue":{"uuid":"3853463909","node_id":"PR_kwDONegY-s6_PgT2","number":63,"state":"open","title":"Bump syrupy from 5.0.0 to 5.1.0 in the dev-dependencies group across 1 directory","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-01-25T16:05:27.000Z","updated_at":"2026-03-31T23:00:29.711Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"syrupy","old_version":"5.0.0","new_version":"5.1.0","repository_url":"https://github.com/syrupy-project/syrupy"}],"path":"the dev-dependencies group across 1 directory","ecosystem":"pip"},"body":"Bumps the dev-dependencies group with 1 update in the / directory: [syrupy](https://github.com/syrupy-project/syrupy).\n\nUpdates `syrupy` from 5.0.0 to 5.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/syrupy-project/syrupy/releases\"\u003esyrupy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.1.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.0.0...v5.1.0\"\u003e5.1.0\u003c/a\u003e (2026-01-25)\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd serializer plugin system; plugins for data models (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1062\"\u003e#1062\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/df9bc8f6b3a222dde82167e10a2e6bb57456305a\"\u003edf9bc8f\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/syrupy-project/syrupy/blob/main/CHANGELOG.md\"\u003esyrupy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.0.0...v5.1.0\"\u003e5.1.0\u003c/a\u003e (2026-01-25)\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd serializer plugin system; plugins for data models (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1062\"\u003e#1062\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/df9bc8f6b3a222dde82167e10a2e6bb57456305a\"\u003edf9bc8f\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/syrupy-project/syrupy/commit/7096efdee61a8e1bc47492bdd0bc860766df40e9\"\u003e\u003ccode\u003e7096efd\u003c/code\u003e\u003c/a\u003e chore(release): 5.1.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/07aa00dd48d65e74814cec863b5f236e09afb464\"\u003e\u003ccode\u003e07aa00d\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency attrs to v25 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1063\"\u003e#1063\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/1f29ae061e9557e205e50fb2f9971ee95c4bd08e\"\u003e\u003ccode\u003e1f29ae0\u003c/code\u003e\u003c/a\u003e docs: add bwrob as a contributor for code (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1064\"\u003e#1064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/df9bc8f6b3a222dde82167e10a2e6bb57456305a\"\u003e\u003ccode\u003edf9bc8f\u003c/code\u003e\u003c/a\u003e feat: add serializer plugin system; plugins for data models (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1062\"\u003e#1062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/841257deaf598df7c3d154b8e2d694f8bb7e5055\"\u003e\u003ccode\u003e841257d\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency coverage to v7.13.1 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1061\"\u003e#1061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/2d8dfa7f7bb2a5f7c0210107dbb65b62a615d434\"\u003e\u003ccode\u003e2d8dfa7\u003c/code\u003e\u003c/a\u003e chore(deps): update codecov/codecov-action action to v5.5.2 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1056\"\u003e#1056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/f5f9ef77027983d3b62d8cc5bfc3a9ef058fe509\"\u003e\u003ccode\u003ef5f9ef7\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency debugpy to v1.8.18 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1057\"\u003e#1057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/eaeb6ae11f57aa3e595d4c45e7be4a3ed2d66dfc\"\u003e\u003ccode\u003eeaeb6ae\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency pytest to v9.0.2 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/263b23b768ef761c3f7e1faa0671b0709c1887b1\"\u003e\u003ccode\u003e263b23b\u003c/code\u003e\u003c/a\u003e chore(deps): update python docker tag to v3.14.1 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1054\"\u003e#1054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/a0dd77b023fee34ff0968a822e0d0740c9c7fb93\"\u003e\u003ccode\u003ea0dd77b\u003c/code\u003e\u003c/a\u003e chore(deps): update actions/checkout action to v6.0.1 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1053\"\u003e#1053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v5.0.0...v5.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=syrupy\u0026package-manager=uv\u0026previous-version=5.0.0\u0026new-version=5.1.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/LabAutomationAndScreening/pyalab/pull/63","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/LabAutomationAndScreening%2Fpyalab/issues/63","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/63/packages"}},{"old_version":"4.9.1","new_version":"5.0.0","update_type":"major","path":null,"pr_created_at":"2026-01-12T05:10:02.000Z","version_change":"4.9.1 → 5.0.0","issue":{"uuid":"3802790091","node_id":"PR_kwDOQouzX868nt2g","number":7,"state":"open","title":"chore(deps): bump the python-dependencies group with 16 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-01-12T05:10:02.000Z","updated_at":"2026-02-23T06:09:49.019Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python-dependencies","update_count":16,"packages":[{"name":"pytest","old_version":"8.3.4","new_version":"9.0.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-benchmark","old_version":"5.1.0","new_version":"5.2.3","repository_url":"https://github.com/ionelmc/pytest-benchmark"},{"name":"hypothesis","old_version":"6.130.0","new_version":"6.150.0","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"syrupy","old_version":"4.9.1","new_version":"5.0.0","repository_url":"https://github.com/syrupy-project/syrupy"},{"name":"ruff","old_version":"0.14.10","new_version":"0.14.11","repository_url":"https://github.com/astral-sh/ruff"},{"name":"black","old_version":"24.12.0","new_version":"25.12.0","repository_url":"https://github.com/psf/black"},{"name":"isort","old_version":"5.13.2","new_version":"7.0.0","repository_url":"https://github.com/PyCQA/isort"},{"name":"yamllint","old_version":"1.35.1","new_version":"1.37.1","repository_url":"https://github.com/adrienverge/yamllint"},{"name":"zizmor","old_version":"1.4.0","new_version":"1.20.0","repository_url":"https://github.com/zizmorcore/zizmor"},{"name":"mypy","old_version":"1.14.1","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"types-pyyaml","old_version":"6.0.12.20241230","new_version":"6.0.12.20250915","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"bandit","old_version":"1.8.3","new_version":"1.9.2"},{"name":"pip-audit","old_version":"2.8.0","new_version":"2.10.0","repository_url":"https://github.com/pypa/pip-audit"},{"name":"pip-licenses","old_version":"5.0.0","new_version":"5.5.0","repository_url":"https://github.com/raimon49/pip-licenses"},{"name":"semgrep","old_version":"1.109.0","new_version":"1.147.0","repository_url":"https://github.com/returntocorp/semgrep"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-dependencies group with 16 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.4` | `9.0.2` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `6.0.0` | `7.0.0` |\n| [pytest-benchmark](https://github.com/ionelmc/pytest-benchmark) | `5.1.0` | `5.2.3` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.130.0` | `6.150.0` |\n| [syrupy](https://github.com/syrupy-project/syrupy) | `4.9.1` | `5.0.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.10` | `0.14.11` |\n| [black](https://github.com/psf/black) | `24.12.0` | `25.12.0` |\n| [isort](https://github.com/PyCQA/isort) | `5.13.2` | `7.0.0` |\n| [yamllint](https://github.com/adrienverge/yamllint) | `1.35.1` | `1.37.1` |\n| [zizmor](https://github.com/zizmorcore/zizmor) | `1.4.0` | `1.20.0` |\n| [mypy](https://github.com/python/mypy) | `1.14.1` | `1.19.1` |\n| [types-pyyaml](https://github.com/typeshed-internal/stub_uploader) | `6.0.12.20241230` | `6.0.12.20250915` |\n| [bandit[toml]](https://github.com/PyCQA/bandit) | `1.8.3` | `1.9.2` |\n| [pip-audit](https://github.com/pypa/pip-audit) | `2.8.0` | `2.10.0` |\n| [pip-licenses](https://github.com/raimon49/pip-licenses) | `5.0.0` | `5.5.0` |\n| [semgrep](https://github.com/returntocorp/semgrep) | `1.109.0` | `1.147.0` |\n\nUpdates `pytest` from 8.3.4 to 9.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13965\"\u003e#13965\u003c/a\u003e: Fixed quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/4492\"\u003e#4492\u003c/a\u003e: The API Reference now contains cross-reference-able documentation of \u003ccode\u003epytest's command-line flags \u0026lt;command-line-flags\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e9.0.1\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.1 (2025-11-12)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13895\"\u003e#13895\u003c/a\u003e: Restore support for skipping tests via \u003ccode\u003eraise unittest.SkipTest\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress plugin added in pytest 9.0 is now automatically disabled when iTerm2 is detected, it generated desktop notifications instead of the desired functionality.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the verbosity settings in the API reference from number to string.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13910\"\u003e#13910\u003c/a\u003e: Fixed \u003c!-- raw HTML omitted --\u003eUserWarning: Do not expect file_or_dir\u003c!-- raw HTML omitted --\u003e on some earlier Python 3.12 and 3.13 point versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePackaging updates and notes for downstreams\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13891\"\u003e#13891\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13942\"\u003e#13942\u003c/a\u003e: The CI/CD part of the release automation is now capable of\ncreating GitHub Releases without having a Git checkout on\ndisk -- by \u003ccode\u003ebluetech\u003c/code\u003e and \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/3d10b5148e03eb82b3ee29181dbdc73cf82699e2\"\u003e\u003ccode\u003e3d10b51\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/188750b725add8c3400eee6fbb6b80559c296d69\"\u003e\u003ccode\u003e188750b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14030\"\u003e#14030\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/1e4b01d1f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7d7bef90cb9a6db8ac1d3dd5b9ae0eb9abd6c58\"\u003e\u003ccode\u003eb7d7bef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14014\"\u003e#14014\u003c/a\u003e from bluetech/compat-note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bd08e85ac76614ff5ca9ae338aee8d8b06c8fae0\"\u003e\u003ccode\u003ebd08e85\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14013\"\u003e#14013\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/922b60377...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bc783862991241c442c9f9c068e51737ec15ea10\"\u003e\u003ccode\u003ebc78386\u003c/code\u003e\u003c/a\u003e Add CLI options reference documentation (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13930\"\u003e#13930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/5a4e398ce89bc23d2cf3fd98c042fdffb6fa8afa\"\u003e\u003ccode\u003e5a4e398\u003c/code\u003e\u003c/a\u003e Fix docs typo (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14005\"\u003e#14005\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14008\"\u003e#14008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/d7ae6df394398168bf9d926f803c26849c8f07ee\"\u003e\u003ccode\u003ed7ae6df\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14006\"\u003e#14006\u003c/a\u003e from pytest-dev/maintenance/update-plugin-list-tmpl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/556f6a22e12d13d1ffeceaf64424eb95d5e0fb87\"\u003e\u003ccode\u003e556f6a2\u003c/code\u003e\u003c/a\u003e pre-commit: fix rst-lint after new release (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13999\"\u003e#13999\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14001\"\u003e#14001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c60fbe63a26f64a42738e3f3527a8f79024fdf50\"\u003e\u003ccode\u003ec60fbe6\u003c/code\u003e\u003c/a\u003e Fix quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10 ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/73d9b011183d9a1c4a7007c1119d97a6e627788e\"\u003e\u003ccode\u003e73d9b01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13995\"\u003e#13995\u003c/a\u003e from nicoddemus/patchback/backports/9.0.x/1b5200c0f...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.3.4...9.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-cov` from 6.0.0 to 7.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst\"\u003epytest-cov's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.0.0 (2025-09-09)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped support for subprocesses measurement.\u003c/p\u003e\n\u003cp\u003eIt was a feature added long time ago when coverage lacked a nice way to measure subprocesses created in tests.\nIt relied on a \u003ccode\u003e.pth\u003c/code\u003e file, there was no way to opt-out and it created bad interations\nwith \u003ccode\u003ecoverage's new patch system \u0026lt;https://coverage.readthedocs.io/en/latest/config.html#run-patch\u0026gt;\u003c/code\u003e_ added\nin \u003ccode\u003e7.10 \u0026lt;https://coverage.readthedocs.io/en/7.10.6/changes.html#version-7-10-0-2025-07-24\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003eTo migrate to this release you might need to enable the suprocess patch, example for \u003ccode\u003e.coveragerc\u003c/code\u003e:\u003c/p\u003e\n\u003cp\u003e.. code-block:: ini\u003c/p\u003e\n\u003cp\u003e[run]\npatch = subprocess\u003c/p\u003e\n\u003cp\u003eThis release also requires at least coverage 7.10.6.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSwitched packaging to have metadata completely in \u003ccode\u003epyproject.toml\u003c/code\u003e and use \u003ccode\u003ehatchling \u0026lt;https://pypi.org/project/hatchling/\u0026gt;\u003c/code\u003e_ for\nbuilding.\nContributed by Ofek Lev in \u003ccode\u003e[#551](https://github.com/pytest-dev/pytest-cov/issues/551) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/551\u0026gt;\u003c/code\u003e_\nwith some extras in \u003ccode\u003e[#716](https://github.com/pytest-dev/pytest-cov/issues/716) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/716\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved some not really necessary testing deps like \u003ccode\u003esix\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.3.0 (2025-09-06)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for markdown reports.\nContributed by Marcos Boger in \u003ccode\u003e[#712](https://github.com/pytest-dev/pytest-cov/issues/712) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/712\u0026gt;\u003c/code\u003e_\nand \u003ccode\u003e[#714](https://github.com/pytest-dev/pytest-cov/issues/714) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/714\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eFixed some formatting issues in docs.\nAnonymous contribution in \u003ccode\u003e[#706](https://github.com/pytest-dev/pytest-cov/issues/706) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/706\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.2.1 (2025-06-12)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a version requirement for pytest's pluggy dependency (1.2.0, released 2023-06-21) that has the required new-style hookwrapper API.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved deprecated license classifier (packaging).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDisabled coverage warnings in two more situations where they have no value:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u0026quot;module-not-measured\u0026quot; in workers\u003c/li\u003e\n\u003cli\u003e\u0026quot;already-imported\u0026quot; in subprocesses\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.2.0 (2025-06-11)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe plugin now adds 3 rules in the filter warnings configuration to prevent common coverage warnings being raised as obscure errors::\u003c/p\u003e\n\u003cp\u003edefault:unclosed database in \u0026lt;sqlite3.Connection object at:ResourceWarning\nonce::PytestCovWarning\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/224d8964caad90074a8cf6dc8720b8f70f31629b\"\u003e\u003ccode\u003e224d896\u003c/code\u003e\u003c/a\u003e Bump version: 6.3.0 → 7.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/73424e3999f865eac72e27f09d5fe11b9703cfd6\"\u003e\u003ccode\u003e73424e3\u003c/code\u003e\u003c/a\u003e Cleanup the docs a bit.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/36f1cc2967831dbd4c8aa70086fc86dc495f8b9a\"\u003e\u003ccode\u003e36f1cc2\u003c/code\u003e\u003c/a\u003e Bump pins in template.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/f299c590a63a48e51e3ae949993dc7bb1f1d480d\"\u003e\u003ccode\u003ef299c59\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 2 updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/25f0b2e0cdbc345c0d3e49170f7a328c3e0d805f\"\u003e\u003ccode\u003e25f0b2e\u003c/code\u003e\u003c/a\u003e Update docs/config.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/bb23eacc5531fb8f499213d8420407e0d72f88e3\"\u003e\u003ccode\u003ebb23eac\u003c/code\u003e\u003c/a\u003e Improve configuration docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/a19531e91e1ab753ccf648a2d9bab08a6fddebb9\"\u003e\u003ccode\u003ea19531e\u003c/code\u003e\u003c/a\u003e Switch from build/pre-commit to uv/prek - this should make this faster.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/82f999391073f2fb8ae422af452602f310086a2a\"\u003e\u003ccode\u003e82f9993\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/211b5cd41c29916bc643b4a11b00578ba4fd6fe8\"\u003e\u003ccode\u003e211b5cd\u003c/code\u003e\u003c/a\u003e Fix links.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/97aadd74bcbc00a2078d240e8fe871dd62b83d80\"\u003e\u003ccode\u003e97aadd7\u003c/code\u003e\u003c/a\u003e Update some ci config, reformat and apply some lint fixes.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-cov/compare/v6.0.0...v7.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-benchmark` from 5.1.0 to 5.2.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ionelmc/pytest-benchmark/blob/master/CHANGELOG.rst\"\u003epytest-benchmark's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.2.3 (2025-11-09)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for pytest 9.0.\u003c/li\u003e\n\u003cli\u003eMoved the README.rst/CHANGELOG.rst concatenation from setup.py to pyproject.toml.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev5.2.2 (2025-11-07)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed auto-disable to work with newer xdist (pytest-benchmark auto disables benchmarks if xdist is enabled by design).\nContributed by Thomas B. Brunner in \u003ccode\u003e[#294](https://github.com/ionelmc/pytest-benchmark/issues/294) \u0026lt;https://github.com/ionelmc/pytest-benchmark/pull/294\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev5.2.1 (2025-11-04)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd markers so pytest doesn't try to assert-rewrite the plugin internals\n(fixes those \u003ccode\u003epytest.PytestAssertRewriteWarning: Module already imported so cannot be rewritten; pytest_benchmark\u003c/code\u003e warnings).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev5.2.0 (2025-10-30)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for a per-round \u003ccode\u003eteardown\u003c/code\u003e function to pedantic mode.\nContributed Patrick Winter by \u003ccode\u003e[#264](https://github.com/ionelmc/pytest-benchmark/issues/264) \u0026lt;https://github.com/ionelmc/pytest-benchmark/pull/264\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003e--benchmark-time-unit\u003c/code\u003e option.\nContributed by Tony Kuo in \u003ccode\u003e[#281](https://github.com/ionelmc/pytest-benchmark/issues/281) \u0026lt;https://github.com/ionelmc/pytest-benchmark/pull/281\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eFixed deprecated hook examples in docstrings.\nContributed by Ali-Akber Saifee in \u003ccode\u003e[#284](https://github.com/ionelmc/pytest-benchmark/issues/284) \u0026lt;https://github.com/ionelmc/pytest-benchmark/pull/284\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003e--benchmark-compare-fail\u003c/code\u003e to accept percentages higher than 100%.\nContributed by Ben Avrahami in \u003ccode\u003e[#280](https://github.com/ionelmc/pytest-benchmark/issues/280) \u0026lt;https://github.com/ionelmc/pytest-benchmark/pull/280\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eAdded minimal typing support.\nContributed by Sorin Sbarnea in \u003ccode\u003e[#290](https://github.com/ionelmc/pytest-benchmark/issues/290) \u0026lt;https://github.com/ionelmc/pytest-benchmark/pull/290\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eFixed support for Python 3.9.\nContributed by Enno Gotthold in \u003ccode\u003e[#291](https://github.com/ionelmc/pytest-benchmark/issues/291) \u0026lt;https://github.com/ionelmc/pytest-benchmark/pull/291\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eReplaced the complicated and broken code of \u003ccode\u003epytest_benchmark.utils.clonefunc\u003c/code\u003e with a simple return of the input.\nThat function was supposed to allow benchmarking with the cost of PyPy JIT included but it's a hassle to maintain.\u003c/li\u003e\n\u003cli\u003eMoved the instrumentation pause outside the round loops (in addition to tracing, profiling is paused too).\nPedantic mode will keep doing this per round (as the user manually controls the round count).\nThis is necessary because in some scenarios setting and unsetting the tracer too much will overflow an internal counter\n(found to cause \u0026quot;OverflowError: events set too many times\u0026quot; at least on Python 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/ionelmc/pytest-benchmark/commit/b857483dd8e8a875f3aa040bd0054847ad657291\"\u003e\u003ccode\u003eb857483\u003c/code\u003e\u003c/a\u003e Bump version: 5.2.2 → 5.2.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionelmc/pytest-benchmark/commit/7f5abf98bb3212339d964e9a2621998c032a98f7\"\u003e\u003ccode\u003e7f5abf9\u003c/code\u003e\u003c/a\u003e Add a note about the readme.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionelmc/pytest-benchmark/commit/b8e5f5380f04a9ae26aa571c1c41a3671e2ac3bb\"\u003e\u003ccode\u003eb8e5f53\u003c/code\u003e\u003c/a\u003e Fix bad wrap.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionelmc/pytest-benchmark/commit/931d50ff1bb16c392f817801ad246eb27f55d4c5\"\u003e\u003ccode\u003e931d50f\u003c/code\u003e\u003c/a\u003e Add back some escapes. Oops.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionelmc/pytest-benchmark/commit/d5c2f7ef9d0bbd67d8bafac1e2a454c8aa95af10\"\u003e\u003ccode\u003ed5c2f7e\u003c/code\u003e\u003c/a\u003e Add support for pytest 9.0. Fixes \u003ca href=\"https://redirect.github.com/ionelmc/pytest-benchmark/issues/295\"\u003e#295\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionelmc/pytest-benchmark/commit/9a3888ad0474c0bb0e56c86f87a27d24ecc6a55a\"\u003e\u003ccode\u003e9a3888a\u003c/code\u003e\u003c/a\u003e Move readme+changelog extraction to static pyproject config.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionelmc/pytest-benchmark/commit/d34bf73c6bab8c11c660291f62a20ff0c004e241\"\u003e\u003ccode\u003ed34bf73\u003c/code\u003e\u003c/a\u003e Bump version: 5.2.1 → 5.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionelmc/pytest-benchmark/commit/cf2ac340f49518c6f89eb1de8fa9c68275ef6de6\"\u003e\u003ccode\u003ecf2ac34\u003c/code\u003e\u003c/a\u003e Bump prek.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionelmc/pytest-benchmark/commit/8bfc327c69997564eff09dfaa4a2fcf269545d36\"\u003e\u003ccode\u003e8bfc327\u003c/code\u003e\u003c/a\u003e Improve formatting (docutils chokes on those arguments with colons and bracke...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ionelmc/pytest-benchmark/commit/190b487045c4994fd51b7b7e04b0e02b5b34a41c\"\u003e\u003ccode\u003e190b487\u003c/code\u003e\u003c/a\u003e Prefix all headings with letters to allow docutils or whatever generate stabl...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ionelmc/pytest-benchmark/compare/v5.1.0...v5.2.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hypothesis` from 6.130.0 to 6.150.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/HypothesisWorks/hypothesis/releases\"\u003ehypothesis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eHypothesis for Python - version 6.150.0\u003c/h2\u003e\n\u003cp\u003eThis release adds a \u0026quot;min_leaves\u0026quot; argument to \u0026quot;recursive()\u0026quot;, which\nensures that generated recursive structures have at least the\nspecified number of leaf nodes (issue \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4205\"\u003e#4205\u003c/a\u003e).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-150-0\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.149.1\u003c/h2\u003e\n\u003cp\u003eAdd type hints to an internal class.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-149-1\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.149.0\u003c/h2\u003e\n\u003cp\u003eThis release extends the explain-phase \u0026quot;# or any other generated\nvalue\u0026quot; comments to sub-arguments within \u0026quot;builds()\u0026quot;, \u0026quot;tuples()\u0026quot;, and\n\u0026quot;fixed_dictionaries()\u0026quot;.\u003c/p\u003e\n\u003cp\u003ePreviously, these comments only appeared on top-level test arguments.\nNow, when the explain phase determines that a sub-argument can vary\nfreely without affecting the test failure, you'll see comments like:\u003c/p\u003e\n\u003cp\u003eFalsifying example: test_foo(\nobj=MyClass(\nx=0,  # or any other generated value\ny=True,\n),\ndata=(\n'',  # or any other generated value\n42,\n),\n)\u003c/p\u003e\n\u003cp\u003eThis makes it easier to understand which parts of complex inputs\nactually matter for reproducing a failure.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-149-0\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.148.13\u003c/h2\u003e\n\u003cp\u003eClean up an internal helper.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-148-13\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.148.12\u003c/h2\u003e\n\u003cp\u003eThis patch fixes \u0026quot;from_type()\u0026quot; to properly handle parameterized type\naliases created with Python 3.12+'s \u003cstrong\u003ePEP 695\u003c/strong\u003e \u0026quot;type\u0026quot; statement. For\nexample, \u0026quot;st.from_type(A[int])\u0026quot; where \u0026quot;type A[T] = list[T]\u0026quot; now\ncorrectly resolves to \u0026quot;lists(integers())\u0026quot; instead of raising a\n\u0026quot;TypeError\u0026quot; (issue \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4628\"\u003e#4628\u003c/a\u003e).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-148-12\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\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/HypothesisWorks/hypothesis/commit/7799c3fea7bc9e8356cc6c316e9ad329a92917b3\"\u003e\u003ccode\u003e7799c3f\u003c/code\u003e\u003c/a\u003e Bump hypothesis-python version to 6.150.0 and update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/e5f991914d2ef2cf0af00fdd8f27ca6fc9eb9398\"\u003e\u003ccode\u003ee5f9919\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4616\"\u003e#4616\u003c/a\u003e from Zac-HD/claude/add-min-leaves-parameter-01XYPfen...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/1458abea0ffb330c9798f3511a8bdb84a1a8b9d1\"\u003e\u003ccode\u003e1458abe\u003c/code\u003e\u003c/a\u003e use a pbt test instead\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/39119d80b3c82facdba6a197bfade529e119f032\"\u003e\u003ccode\u003e39119d8\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into claude/add-min-leaves-parameter-01XYPfenzf6xuY64W4...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/b6445506c174e24025a1b28c4aa9ca5e5f727d22\"\u003e\u003ccode\u003eb644550\u003c/code\u003e\u003c/a\u003e Bump hypothesis-python version to 6.149.1 and update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/804733f8d0fa62306d29af690cba6b0845bf8914\"\u003e\u003ccode\u003e804733f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4634\"\u003e#4634\u003c/a\u003e from Liam-DeVoe/state-typing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/681ce5558bf65ab9ed2286e37d8f3fc11b9050d4\"\u003e\u003ccode\u003e681ce55\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into claude/add-min-leaves-parameter-01XYPfenzf6xuY64W4...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/aadbfbcf27e03bb66f910c1802d835532f7dadde\"\u003e\u003ccode\u003eaadbfbc\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into state-typing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/2e7d5e67e9c89b03efaf090c363d4296e7ff7256\"\u003e\u003ccode\u003e2e7d5e6\u003c/code\u003e\u003c/a\u003e type \u003ccode\u003etest\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/074893e3f6e0ee5181e5ff56e4100ac7ab40fc01\"\u003e\u003ccode\u003e074893e\u003c/code\u003e\u003c/a\u003e Bump hypothesis-python version to 6.149.0 and update changelog\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/HypothesisWorks/hypothesis/compare/hypothesis-python-6.130.0...hypothesis-python-6.150.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `syrupy` from 4.9.1 to 5.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/syrupy-project/syrupy/releases\"\u003esyrupy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.0.0\u003c/h2\u003e\n\u003ch2\u003eSyrupy 5.0.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e(2025-09-28)\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eThis release introduces new features, bug fixes, and a major license change. It also includes several \u003cstrong\u003ebreaking changes\u003c/strong\u003e, so please review those carefully before upgrading.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch3\u003eNew Features ✨\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eAdd \u003ccode\u003e--snapshot-dirname\u003c/code\u003e option:\u003c/strong\u003e A new option, \u003ccode\u003e--snapshot-dirname\u003c/code\u003e, is now available to change the default directory snapshots are stored in. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003e#810\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003esyrupy-project/syrupy#810\u003c/a\u003e))\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRemove private underscore prefix:\u003c/strong\u003e The unnecessary underscore prefixes have been removed from public methods for better code clarity. ([\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003e8cfc905\u003c/a\u003e](\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003ehttps://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\u003c/a\u003e))\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch3\u003eBug Fixes 🐛\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFix terminal summary for \u003ccode\u003exdist\u003c/code\u003e workers:\u003c/strong\u003e Resolves an issue where the terminal summary was not displayed correctly with \u003ccode\u003exdist\u003c/code\u003e workers. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/978\"\u003e#978\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/978\"\u003esyrupy-project/syrupy#978\u003c/a\u003e))\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eEnsure \u003ccode\u003epytest_assertrepr_compare\u003c/code\u003e hook is called first:\u003c/strong\u003e This change ensures that Syrupy's assertion hook takes precedence, improving compatibility with other plugins. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/984\"\u003e#984\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/984\"\u003esyrupy-project/syrupy#984\u003c/a\u003e))\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch3\u003eBreaking Changes ⚠️\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eLicense change:\u003c/strong\u003e The project has switched to the more permissive \u003cstrong\u003eMIT license\u003c/strong\u003e. This change applies to all versions from 5.0.0 and beyond. If you need to use the previous Apache 2.0 license, you must continue to use Syrupy versions 4.x or earlier. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/945\"\u003e#945\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/945\"\u003esyrupy-project/syrupy#945\u003c/a\u003e))\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003ePython and pytest version requirements:\u003c/strong\u003e Syrupy now requires \u003cstrong\u003ePython 3.10\u003c/strong\u003e or higher. Support for Python 3.8 has been dropped as it reached its end of life in October 2024. The minimum required version of \u003cstrong\u003epytest is v8\u003c/strong\u003e. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/904\"\u003e#904\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/904\"\u003esyrupy-project/syrupy#904\u003c/a\u003e), [\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003e#1024\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003esyrupy-project/syrupy#1024\u003c/a\u003e))\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eMethod and constant name changes:\u003c/strong\u003e Several methods and constants have been renamed for improved clarity and to align with public API standards.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ccode\u003eSnapshotCollectionStorage\u003c/code\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e_read_snapshot_collection\u003c/code\u003e -\u0026gt; \u003ccode\u003eread_snapshot_collection\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_read_snapshot_data_from_location\u003c/code\u003e -\u0026gt; \u003ccode\u003eread_snapshot_data_from_location\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_write_snapshot_collection\u003c/code\u003e -\u0026gt; \u003ccode\u003ewrite_snapshot_collection\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_get_file_basename\u003c/code\u003e -\u0026gt; \u003ccode\u003eget_file_basename\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_file_extension\u003c/code\u003e -\u0026gt; \u003ccode\u003efile_extension\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ccode\u003eAmberDataSerializer\u003c/code\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e_snapshot_sort_key\u003c/code\u003e -\u0026gt; \u003ccode\u003esnapshot_sort_key\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eConstants\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eSNAPSHOT_EMPTY_FOSSIL_KEY\u003c/code\u003e -\u0026gt; \u003ccode\u003eSNAPSHOT_EMPTY_COLLECTION_KEY\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSNAPSHOT_UNKNOWN_FOSSIL_KEY\u003c/code\u003e -\u0026gt; \u003ccode\u003eSNAPSHOT_UNKNOWN_COLLECTION_KEY\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSNAPSHOT_DIRNAME\u003c/code\u003e has been removed in favour of the property on the \u003ccode\u003eSnapshotCollectionStorage\u003c/code\u003e class and associated CLI option.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\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/paul-ollis\"\u003e\u003ccode\u003e@​paul-ollis\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/978\"\u003esyrupy-project/syrupy#978\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rahuliyer95\"\u003e\u003ccode\u003e@​rahuliyer95\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/984\"\u003esyrupy-project/syrupy#984\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\"\u003ehttps://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/syrupy-project/syrupy/blob/main/CHANGELOG.md\"\u003esyrupy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\"\u003e5.0.0\u003c/a\u003e (2025-09-28)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch to MIT license (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/945\"\u003e#945\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/d74d340f8884fdb04831fcf77f29d66e098aaa66\"\u003ed74d340\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlock terminal summary for xdist workers. (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/978\"\u003e#978\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/33a848df7c4a33577e4057eae5792f6592ad3172\"\u003e33a848d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eensure syrupy's pytest_assertrepr_compare hook is called first. (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/984\"\u003e#984\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/eb0024d339248b7e1f76fdb65ed30ba3e19c0857\"\u003eeb0024d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove incorrect private underscore prefix from public methods (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003e8cfc905\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd --snapshot-dirname option, close \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003e#810\u003c/a\u003e (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/27135c7c861441962c2cedde841f3e4fed2949fd\"\u003e27135c7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edrop support for py3.8, raise min. pytest to v8 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/904\"\u003e#904\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/a879ff15ad82e59a2f387db0822be072a5684f2f\"\u003ea879ff1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate min. python version to 3.10 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003e#1024\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/16b4113cd56da96e84a90ebda0919e9b8dd35954\"\u003e16b4113\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe following methods have been renamed:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSnapshotCollectionStorage\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e_read_snapshot_collection -\u0026gt; read_snapshot_collection\u003c/li\u003e\n\u003cli\u003e_read_snapshot_data_from_location -\u0026gt; read_snapshot_data_from_location\u003c/li\u003e\n\u003cli\u003e_write_snapshot_collection -\u0026gt; write_snapshot_collection\u003c/li\u003e\n\u003cli\u003e_get_file_basename -\u0026gt; get_file_basename\u003c/li\u003e\n\u003cli\u003e_file_extension -\u0026gt; file_extension\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eAmberDataSerializer\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e_snapshot_sort_key -\u0026gt; snapshot_sort_key\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRenamed constants to improve clarity:\u003c/p\u003e\n\u003cp\u003econstants\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSNAPSHOT_EMPTY_FOSSIL_KEY -\u0026gt; SNAPSHOT_EMPTY_COLLECTION_KEY\u003c/li\u003e\n\u003cli\u003eSNAPSHOT_UNKNOWN_FOSSIL_KEY -\u0026gt; SNAPSHOT_UNKNOWN_COLLECTION_KEY\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003eMin. python version is now 3.10.\u003c/li\u003e\n\u003cli\u003eThe Syrupy project is switching from Apache 2.0 to a more permissive MIT license. By using Syrupy \u0026gt;=5, you agree to abide by this new license. You can continue to use Syrupy v1 through v4 under Apache 2.0.\u003c/li\u003e\n\u003cli\u003eDrops support for Python 3.8 which is end of life as of October 2024. Raises the minimum version of pytest to v8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/9b4cc82e50e29f84dcb55054c8eab281c90a280b\"\u003e\u003ccode\u003e9b4cc82\u003c/code\u003e\u003c/a\u003e chore(release): 5.0.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/af15385acd5bf617815aa0d19e2df907bbbd2d83\"\u003e\u003ccode\u003eaf15385\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1027\"\u003e#1027\u003c/a\u003e from syrupy-project/test_py_3_14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/461ad224d192a18296934e2434b9302fb0984007\"\u003e\u003ccode\u003e461ad22\u003c/code\u003e\u003c/a\u003e chore: test against py3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/95ffbcb085eb920920a7241c814a55c1e948f148\"\u003e\u003ccode\u003e95ffbcb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1026\"\u003e#1026\u003c/a\u003e from syrupy-project/rename_methods\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/27135c7c861441962c2cedde841f3e4fed2949fd\"\u003e\u003ccode\u003e27135c7\u003c/code\u003e\u003c/a\u003e feat: add --snapshot-dirname option, close \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003e#810\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003e\u003ccode\u003e8cfc905\u003c/code\u003e\u003c/a\u003e refactor: remove incorrect private underscore prefix from public methods\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/e1dbf5dc2a1148480aa9601a5e1c21928954b8cc\"\u003e\u003ccode\u003ee1dbf5d\u003c/code\u003e\u003c/a\u003e chore(deps): update python docker tag to v3.13.7 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1025\"\u003e#1025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/16b4113cd56da96e84a90ebda0919e9b8dd35954\"\u003e\u003ccode\u003e16b4113\u003c/code\u003e\u003c/a\u003e feat: update min. python version to 3.10 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003e#1024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/434c63fdabbaaf2372ec94c8968fe025c4a306e6\"\u003e\u003ccode\u003e434c63f\u003c/code\u003e\u003c/a\u003e chore(deps): update codecov/codecov-action action to v5.5.1 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1021\"\u003e#1021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/b2e49bad7741f06c17a0be9f4608c0db5db13cf5\"\u003e\u003ccode\u003eb2e49ba\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency pytest to v8.4.2 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1022\"\u003e#1022\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.14.10 to 0.14.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.14.11\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-01-08.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eConsolidate diagnostics for matched disable/enable suppression comments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22099\"\u003e#22099\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReport diagnostics for invalid/unmatched range suppression comments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21908\"\u003e#21908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Passing positional argument into \u003ccode\u003eairflow.lineage.hook.HookLineageCollector.create_asset\u003c/code\u003e is not allowed (\u003ccode\u003eAIR303\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22046\"\u003e#22046\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Mark \u003ccode\u003eFURB192\u003c/code\u003e fix as always unsafe (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22210\"\u003e#22210\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003enon-empty-init-module\u003c/code\u003e (\u003ccode\u003eRUF067\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22143\"\u003e#22143\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix GitHub format for multi-line diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22108\"\u003e#22108\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-unused-arguments\u003c/code\u003e] Mark \u003ccode\u003e**kwargs\u003c/code\u003e in \u003ccode\u003eTypeVar\u003c/code\u003e as used (\u003ccode\u003eARG001\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22214\"\u003e#22214\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003ehelp:\u003c/code\u003e subdiagnostics for several Ruff rules that can sometimes appear to disagree with \u003ccode\u003ety\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22331\"\u003e#22331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Demote \u003ccode\u003ePLW1510\u003c/code\u003e fix to display-only (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22318\"\u003e#22318\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Ignore identical members (\u003ccode\u003ePLR1714\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22220\"\u003e#22220\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Improve diagnostic range for \u003ccode\u003ePLC0206\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22312\"\u003e#22312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Improve fix title for \u003ccode\u003eRUF102\u003c/code\u003e invalid rule code (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22100\"\u003e#22100\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e]: Avoid unnecessary builtins import for \u003ccode\u003eSIM105\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22358\"\u003e#22358\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow Python 3.15 as valid \u003ccode\u003etarget-version\u003c/code\u003e value in preview (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22419\"\u003e#22419\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCheck \u003ccode\u003erequired-version\u003c/code\u003e before parsing rules (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22410\"\u003e#22410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInclude configured \u003ccode\u003esrc\u003c/code\u003e directories when resolving graphs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22451\"\u003e#22451\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003eT201\u003c/code\u003e suggestion to not use root logger to satisfy \u003ccode\u003eLOG015\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22059\"\u003e#22059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eiter\u003c/code\u003e example in unsafe fixes doc (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22118\"\u003e#22118\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8_print\u003c/code\u003e] better suggestion for \u003ccode\u003ebasicConfig\u003c/code\u003e in \u003ccode\u003eT201\u003c/code\u003e docs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22101\"\u003e#22101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Restore the fix safety docs for \u003ccode\u003ePLW0133\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22211\"\u003e#22211\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix Jupyter notebook discovery info for editors (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22447\"\u003e#22447\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cenviity\"\u003e\u003ccode\u003e@​cenviity\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/njhearp\"\u003e\u003ccode\u003e@​njhearp\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cbachhuber\"\u003e\u003ccode\u003e@​cbachhuber\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelle-openai\"\u003e\u003ccode\u003e@​jelle-openai\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.14.11\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-01-08.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eConsolidate diagnostics for matched disable/enable suppression comments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22099\"\u003e#22099\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReport diagnostics for invalid/unmatched range suppression comments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21908\"\u003e#21908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Passing positional argument into \u003ccode\u003eairflow.lineage.hook.HookLineageCollector.create_asset\u003c/code\u003e is not allowed (\u003ccode\u003eAIR303\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22046\"\u003e#22046\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Mark \u003ccode\u003eFURB192\u003c/code\u003e fix as always unsafe (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22210\"\u003e#22210\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003enon-empty-init-module\u003c/code\u003e (\u003ccode\u003eRUF067\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22143\"\u003e#22143\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix GitHub format for multi-line diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22108\"\u003e#22108\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-unused-arguments\u003c/code\u003e] Mark \u003ccode\u003e**kwargs\u003c/code\u003e in \u003ccode\u003eTypeVar\u003c/code\u003e as used (\u003ccode\u003eARG001\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22214\"\u003e#22214\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003ehelp:\u003c/code\u003e subdiagnostics for several Ruff rules that can sometimes appear to disagree with \u003ccode\u003ety\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22331\"\u003e#22331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Demote \u003ccode\u003ePLW1510\u003c/code\u003e fix to display-only (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22318\"\u003e#22318\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Ignore identical members (\u003ccode\u003ePLR1714\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22220\"\u003e#22220\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Improve diagnostic range for \u003ccode\u003ePLC0206\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22312\"\u003e#22312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Improve fix title for \u003ccode\u003eRUF102\u003c/code\u003e invalid rule code (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22100\"\u003e#22100\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e]: Avoid unnecessary builtins import for \u003ccode\u003eSIM105\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22358\"\u003e#22358\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow Python 3.15 as valid \u003ccode\u003etarget-version\u003c/code\u003e value in preview (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22419\"\u003e#22419\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCheck \u003ccode\u003erequired-version\u003c/code\u003e before parsing rules (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22410\"\u003e#22410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInclude configured \u003ccode\u003esrc\u003c/code\u003e directories when resolving graphs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22451\"\u003e#22451\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003eT201\u003c/code\u003e suggestion to not use root logger to satisfy \u003ccode\u003eLOG015\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22059\"\u003e#22059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eiter\u003c/code\u003e example in unsafe fixes doc (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22118\"\u003e#22118\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8_print\u003c/code\u003e] better suggestion for \u003ccode\u003ebasicConfig\u003c/code\u003e in \u003ccode\u003eT201\u003c/code\u003e docs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22101\"\u003e#22101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Restore the fix safety docs for \u003ccode\u003ePLW0133\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22211\"\u003e#22211\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix Jupyter notebook discovery info for editors (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22447\"\u003e#22447\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cenviity\"\u003e\u003ccode\u003e@​cenviity\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/njhearp\"\u003e\u003ccode\u003e@​njhearp\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cbachhuber\"\u003e\u003ccode\u003e@​cbachhuber\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jelle-openai\"\u003e\u003ccode\u003e@​jelle-openai\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ValdonVitija\"\u003e\u003ccode\u003e@​ValdonVitija\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/c920cf8cdb247a9fd8e15a4c9d2efa838f7a78a3\"\u003e\u003ccode\u003ec920cf8\u003c/code\u003e\u003c/a\u003e Bump 0.14.11 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22462\"\u003e#22462\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/bb757b5a79888f28264f629b5667a0514071f7d6\"\u003e\u003ccode\u003ebb757b5\u003c/code\u003e\u003c/a\u003e [ty] Don't show diagnostics for excluded files (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22455\"\u003e#22455\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/1f49e8ef518b75207e155595aba57acd48205078\"\u003e\u003ccode\u003e1f49e8e\u003c/code\u003e\u003c/a\u003e Include configured \u003ccode\u003esrc\u003c/code\u003e directories when resolving graphs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22451\"\u003e#22451\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/701f5134ab7c1a860145dccc8abb3716a3f89fe7\"\u003e\u003ccode\u003e701f513\u003c/code\u003e\u003c/a\u003e [ty] Only consider fully static pivots when deriving transitive constraints (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/eea9ad83528a7f492662f6427cdbb6fc2f655bb5\"\u003e\u003ccode\u003eeea9ad8\u003c/code\u003e\u003c/a\u003e Pin maturin version (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22454\"\u003e#22454\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/eeac2bd3eed2f4b8f4a71e0c945721481b25efc0\"\u003e\u003ccode\u003eeeac2bd\u003c/code\u003e\u003c/a\u003e [ty] Optimize union building for unions with many enum-literal members (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22363\"\u003e#22363\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7319c37f4eb063e9590e1f09c8e92d7dabc63403\"\u003e\u003ccode\u003e7319c37\u003c/code\u003e\u003c/a\u003e docs: fix jupyter notebook discovery info for editors (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22447\"\u003e#22447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/805503c19a6b74c5803e10123077997e29a0da37\"\u003e\u003ccode\u003e805503c\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eruff\u003c/code\u003e] Improve fix title for \u003ccode\u003eRUF102\u003c/code\u003e invalid rule code (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22100\"\u003e#22100\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/68a2f6c57d70052d0805b46b0e3a2538598b856f\"\u003e\u003ccode\u003e68a2f6c\u003c/code\u003e\u003c/a\u003e [ty] Fix \u003ccode\u003esuper()\u003c/code\u003e with TypeVar-annotated \u003ccode\u003eself\u003c/code\u003e and \u003ccode\u003ecls\u003c/code\u003e parameter (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22208\"\u003e#22208\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/abaa735e1d027cf458a2ab83d8a422d74111580c\"\u003e\u003ccode\u003eabaa735\u003c/code\u003e\u003c/a\u003e [ty] Improve \u003ccode\u003eUnionBuilder\u003c/code\u003e performance by changing \u003ccode\u003eType::is_subtype_of\u003c/code\u003e cal...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.14.10...0.14.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `black` from 24.12.0 to 25.12.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/releases\"\u003eblack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.12.0\u003c/h2\u003e\n\u003cp\u003ePlease test out the draft 2026 style in version 26.1a1! This style will be finalized in\nthe January release (26.1.0). Most of the changes in \u003ccode\u003e--preview\u003c/code\u003e will be in the 2026\nstable style, but not all.\n\u003ca href=\"https://redirect.github.com/psf/black/issues/4042\"\u003ePlease share your feedback!\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis release (25.12.0) will still produce the 2025 style.\u003c/p\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlack no longer supports running with Python 3.9 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4842\"\u003e#4842\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments preceding \u003ccode\u003e# fmt: off\u003c/code\u003e/\u003ccode\u003e# fmt: on\u003c/code\u003e blocks were incorrectly\nremoved, particularly affecting Jupytext's \u003ccode\u003e# %% [markdown]\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4845\"\u003e#4845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in a multi-part if-clause, on\nstring literals, or on dictionary entries with long lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix possible crash when \u003ccode\u003efmt: \u003c/code\u003e directives aren't on the top level (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary parentheses from the left-hand side of assignments while preserving\nmagic trailing commas and intentional multiline formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on \u003ccode\u003ewith\u003c/code\u003e statements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4853\"\u003e#4853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on annotated parameters (\u003ca href=\"https://redirect.github.com/psf/black/issues/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Windows binaries and wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4814\"\u003e#4814\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eoutput-file\u003c/code\u003e input to GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to write formatter output to a\nfile for artifact capture and log cleanliness (\u003ca href=\"https://redirect.github.com/psf/black/issues/4824\"\u003e#4824\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e25.11.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable base 3.14 support (\u003ca href=\"https://redirect.github.com/psf/black/issues/4804\"\u003e#4804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for the new Python 3.14 t-string syntax introduced by PEP 750 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4805\"\u003e#4805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments between \u003ccode\u003e# fmt: off\u003c/code\u003e and \u003ccode\u003e# fmt: on\u003c/code\u003e were reformatted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComments containing fmt directives now preserve their exact formatting instead of\nbeing normalized (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/blob/main/CHANGES.md\"\u003eblack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.12.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlack no longer supports running with Python 3.9 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4842\"\u003e#4842\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments preceding \u003ccode\u003e# fmt: off\u003c/code\u003e/\u003ccode\u003e# fmt: on\u003c/code\u003e blocks were incorrectly\nremoved, particularly affecting Jupytext's \u003ccode\u003e# %% [markdown]\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4845\"\u003e#4845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in a multi-part if-clause, on\nstring literals, or on dictionary entries with long lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix possible crash when \u003ccode\u003efmt: \u003c/code\u003e directives aren't on the top level (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary parentheses from the left-hand side of assignments while preserving\nmagic trailing commas and intentional multiline formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on \u003ccode\u003ewith\u003c/code\u003e statements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4853\"\u003e#4853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on annotated parameters (\u003ca href=\"https://redirect.github.com/psf/black/issues/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Windows binaries and wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4814\"\u003e#4814\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eoutput-file\u003c/code\u003e input to GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to write formatter output to a\nfile for artifact capture and log cleanliness (\u003ca href=\"https://redirect.github.com/psf/black/issues/4824\"\u003e#4824\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e25.11.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable base 3.14 support (\u003ca href=\"https://redirect.github.com/psf/black/issues/4804\"\u003e#4804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for the new Python 3.14 t-string syntax introduced by PEP 750 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4805\"\u003e#4805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments between \u003ccode\u003e# fmt: off\u003c/code\u003e and \u003ccode\u003e# fmt: on\u003c/code\u003e were reformatted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComments containing fmt directives now preserve their exact formatting instead of\nbeing normalized (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMove \u003ccode\u003emultiline_string_handling\u003c/code\u003e from \u003ccode\u003e--unstable\u003c/code\u003e to \u003ccode\u003e--preview\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4760\"\u003e#4760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix bug where module docstrings would be treated as normal strings if preceded by\ncomments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4764\"\u003e#4764\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/psf/black/commits/25.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `isort` from 5.13.2 to 7.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/PyCQA/isort/releases\"\u003eisort's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.0.0\u003c/h2\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003ch2\u003e:boom: Breaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2430\"\u003e#2430\u003c/a\u003e) \u003ca href=\"https://github.com/DanielNoord\"\u003e\u003ccode\u003e@​DanielNoord\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:rocket: Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eShow absolute paths in skipped file messages (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2416\"\u003e#2416\u003c/a\u003e) \u003ca href=\"https://github.com/pranlawate\"\u003e\u003ccode\u003e@​pranlawate\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:beetle: Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSome fixes for Python 3.14 (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2433\"\u003e#2433\u003c/a\u003e) \u003ca href=\"https://github.com/DanielNoord\"\u003e\u003ccode\u003e@​DanielNoord\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest on \u003ccode\u003e3.14\u003c/code\u003e and fix any bugs (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2425\"\u003e#2425\u003c/a\u003e) \u003ca href=\"https://github.com/DanielNoord\"\u003e\u003ccode\u003e@​DanielNoord\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate CHANGELOG.md + Fix Formatting and Grammar (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2419\"\u003e#2419\u003c/a\u003e) \u003ca href=\"https://github.com/lukbrew25\"\u003e\u003ccode\u003e@​lukbrew25\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix output of hanging indent for long lines with noqa (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2407\"\u003e#2407\u003c/a\u003e) \u003ca href=\"https://github.com/matan1008\"\u003e\u003ccode\u003e@​matan1008\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:construction_worker: Continuous Integration\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFormat with \u003ccode\u003eruff\u003c/code\u003e instead of \u003ccode\u003eblack\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2432\"\u003e#2432\u003c/a\u003e) \u003ca href=\"https://github.com/DanielNoord\"\u003e\u003ccode\u003e@​DanielNoord\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTarget 3.10 for \u003ccode\u003eruff\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2431\"\u003e#2431\u003c/a\u003e) \u003ca href=\"https://github.com/DanielNoord\"\u003e\u003ccode\u003e@​DanielNoord\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate development dependencies to latest version (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2426\"\u003e#2426\u003c/a\u003e) \u003ca href=\"https://github.com/DanielNoord\"\u003e\u003ccode\u003e@​DanielNoord\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update pre-commit examples to version 6.1.0 (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2413\"\u003e#2413\u003c/a\u003e) \u003ca href=\"https://github.com/pranlawate\"\u003e\u003ccode\u003e@​pranlawate\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSmall cleanup for developer environment (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2418\"\u003e#2418\u003c/a\u003e) \u003ca href=\"https://github.com/DanielNoord\"\u003e\u003ccode\u003e@​DanielNoord\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:package: Dependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump actions/setup-python from 5 to 6 in the github-actions group (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2411\"\u003e#2411\u003c/a\u003e) @\u003ca href=\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.1.0\u003c/h2\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate docs discussions channel (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2410\"\u003e#2410\u003c/a\u003e) \u003ca href=\"https://github.com/staticdev\"\u003e\u003ccode\u003e@​staticdev\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd python 3.14 classifier and badge (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2409\"\u003e#2409\u003c/a\u003e) \u003ca href=\"https://github.com/staticdev\"\u003e\u003ccode\u003e@​staticdev\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop use of non-standard pkg_resources API (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2405\"\u003e#2405\u003c/a\u003e) \u003ca href=\"https://github.com/dvarrazzo\"\u003e\u003ccode\u003e@​dvarrazzo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse working isort version in pre-commit example (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2402\"\u003e#2402\u003c/a\u003e) \u003ca href=\"https://github.com/iainelder\"\u003e\u003ccode\u003e@​iainelder\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix typo in _get_files_from_dir_cached test (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2392\"\u003e#2392\u003c/a\u003e) \u003ca href=\"https://github.com/tiltingpenguin\"\u003e\u003ccode\u003e@​tiltingpenguin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eResolve bandit warnings (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2379\"\u003e#2379\u003c/a\u003e) \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd tox for cross-platform, parallel test suite execution (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2378\"\u003e#2378\u003c/a\u003e) \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Project URLs to PyPI Side Panel (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2387\"\u003e#2387\u003c/a\u003e) \u003ca href=\"https://github.com/guillermodotn\"\u003e\u003ccode\u003e@​guillermodotn\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typos (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2376\"\u003e#2376\u003c/a\u003e) \u003ca href=\"https://github.com/co63oc\"\u003e\u003ccode\u003e@​co63oc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:construction_worker: Continuous Integration\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd make bash scripts portable (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2377\"\u003e#2377\u003c/a\u003e) \u003ca href=\"https://github.com/staticdev\"\u003e\u003ccode\u003e@​staticdev\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:package: Dependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump actions/checkout from 4 to 5 in the github-actions group (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2406\"\u003e#2406\u003c/a\u003e) @\u003ca href=\"https://github.com/apps/dependabot\"\u003edependabot[bot]\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/PyCQA/isort/blob/main/CHANGELOG.md\"\u003eisort's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003cp\u003eNOTE: isort follows the \u003ca href=\"https://semver.org/\"\u003esemver\u003c/a\u003e versioning standard.\nFind out more about isort's release policy \u003ca href=\"https://pycqa.github.io/isort/docs/major_releases/release_policy\"\u003ehere\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eUnreleased\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved \u003ccode\u003e--old-finders\u003c/code\u003e and \u003ccode\u003e--magic-placement\u003c/code\u003e flags and \u003ccode\u003eold_finders\u003c/code\u003e configuration option. The legacy finder logic that relied on environment introspection has been removed (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2445\"\u003e#2445\u003c/a\u003e) \u003ca href=\"https://github.com/joao-faria-dev\"\u003e\u003ccode\u003e@​joao-faria-dev\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e6.1.0 October 1 2025\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd python 3.14 classifier and badge (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2409\"\u003e#2409\u003c/a\u003e) \u003ca href=\"https://github.com/staticdev\"\u003e\u003ccode\u003e@​staticdev\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop use of non-standard pkg_resources API (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2405\"\u003e#2405\u003c/a\u003e) \u003ca href=\"https://github.com/dvarrazzo\"\u003e\u003ccode\u003e@​dvarrazzo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e6.0.1 Febuary 26 2025\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd OSError handling in find_imports_in_file (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2331\"\u003e#2331\u003c/a\u003e) \u003ca href=\"https://github.com/kobarity\"\u003e\u003ccode\u003e@​kobarity\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e6.0.0 January 27 2025\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for Python 3.8 (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2327\"\u003e#2327\u003c/a\u003e) \u003ca href=\"https://github.com/DanielNoord\"\u003e\u003ccode\u003e@​DanielNoord\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePython 3.13 support (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2306\"\u003e#2306\u003c/a\u003e) \u003ca href=\"https://github.com/mayty\"\u003e\u003ccode\u003e@​mayty\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSpeed up exists_case_sensitive calls (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2264\"\u003e#2264\u003c/a\u003e) \u003ca href=\"https://github.com/correctmost\"\u003e\u003ccode\u003e@​correctmost\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnsure that split_on_trailing_comma works with as imports (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2340\"\u003e#2340\u003c/a\u003e) \u003ca href=\"https://github.com/DanielNoord\"\u003e\u003ccode\u003e@​DanielNoord\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBlack profile: enable magic comma (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2236\"\u003e#2236\u003c/a\u003e) \u003ca href=\"https://github.com/MrMino\"\u003e\u003ccode\u003e@​MrMino\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate line_length and single_line_exclusions in google profile (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2149\"\u003e#2149\u003c/a\u003e) \u003ca href=\"https://github.com/jagapiou\"\u003e\u003ccode\u003e@​jagapiou\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow --diff to be used with --jobs (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2302\"\u003e#2302\u003c/a\u003e) \u003ca href=\"https://github.com/mnakama\"\u003e\u003ccode\u003e@​mnakama\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix wemake profile to have correct character limit (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2241\"\u003e#2241\u003c/a\u003e) \u003ca href=\"https://github.com/sobolevn\"\u003e\u003ccode\u003e@​sobolevn\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix sort_reexports code mangling (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2283\"\u003e#2283\u003c/a\u003e) \u003ca href=\"https://github.com/Helveg\"\u003e\u003ccode\u003e@​Helveg\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix correct group by package tokenization (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2136\"\u003e#2136\u003c/a\u003e) \u003ca href=\"https://github.com/glasnt\"\u003e\u003ccode\u003e@​glasnt\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/isort/commit/0a09c783808cfe77bb3269250f663ff733d23302\"\u003e\u003ccode\u003e0a09c78\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2433\"\u003e#2433\u003c/a\u003e from DanielNoord/python-314\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/isort/commit/0fee794a05b5d0c471ac80bc8943f9843ca29644\"\u003e\u003ccode\u003e0fee794\u003c/code\u003e\u003c/a\u003e Add 3.14 to \u003ccode\u003estdlibds\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/isort/commit/332a1ad0b68bf3a3acac055b0ec3666408b3b425\"\u003e\u003ccode\u003e332a1ad\u003c/code\u003e\u003c/a\u003e Bump \u003ccode\u003ezstandard\u003c/code\u003e for 3.14 compat\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/isort/commit/f756e5653afcf6d79ec4d0240b1868cbebd8fafd\"\u003e\u003ccode\u003ef756e56\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2432\"\u003e#2432\u003c/a\u003e from DanielNoord/ruff-it-up\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/isort/commit/52f5134889d345ff35afdcb86501c8221b804c70\"\u003e\u003ccode\u003e52f5134\u003c/code\u003e\u003c/a\u003e Format with \u003ccode\u003eruff\u003c/code\u003e instead of \u003ccode\u003eblack\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/isort/commit/012aa69fcadb3c89ff92a3d96aa449be7ae6746f\"\u003e\u003ccode\u003e012aa69\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2431\"\u003e#2431\u003c/a\u003e from DanielNoord/ruff-it-up\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/isort/commit/89773dbb371192541092657972a74e9ce0bbbc74\"\u003e\u003ccode\u003e89773db\u003c/code\u003e\u003c/a\u003e Target 3.10 with \u003ccode\u003eruff\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/isort/commit/933e382f98a0c77b4c6e33c4e3ef12bd57192884\"\u003e\u003ccode\u003e933e382\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2430\"\u003e#2430\u003c/a\u003e from DanielNoord/drop-39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/isort/commit/8b6e00cbe643a216da57fed4baa282d0a4a1b829\"\u003e\u003ccode\u003e8b6e00c\u003c/code\u003e\u003c/a\u003e Remove support for Python 3.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/isort/commit/b5f9f296ad873734e8caa3a731f27360648d9b37\"\u003e\u003ccode\u003eb5f9f29\u003c/code\u003e\u003c/a\u003e Bump profile plugin to 3.10+ and re-lock\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/PyCQA/isort/compare/5.13.2...7.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `yamllint` from 1.35.1 to 1.37.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/adrienverge/yamllint/blob/master/CHANGELOG.rst\"\u003eyamllint's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.37.1 (2025-05-04)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRule \u003ccode\u003ecomments\u003c/code\u003e: tell how many spaces are expected\u003c/li\u003e\n\u003cli\u003eRule \u003ccode\u003equoted-strings\u003c/code\u003e: Fix \u003ccode\u003eonly-when-needed\u003c/code\u003e on multiline with backslash\u003c/li\u003e\n\u003cli\u003eConfig: Report if \u003ccode\u003erules\u003c/code\u003e is not a dict\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003etest_codec_built_in_equivalent()\u003c/code\u003e test when run with pytest\u003c/li\u003e\n\u003cli\u003eCI: Fix TestPyPI \u0026quot;dev0\u0026quot; versions for master commits on tags\u003c/li\u003e\n\u003cli\u003eDocs: Add links to GitHub repository and releases\u003c/li\u003e\n\u003cli\u003eDocs: Fix GitLab integration example\u003c/li\u003e\n\u003cli\u003eDocs: Fix GitLab integration link\u003c/li\u003e\n\u003cli\u003eFix the tests badge link on the README\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.37.0 (2025-03-23)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli...\n\n_Description has been truncated_","html_url":"https://github.com/jguida941/ci-cd-hub/pull/7","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/jguida941%2Fci-cd-hub/issues/7","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/7/packages"}},{"old_version":"4.9.1","new_version":"5.0.0","update_type":"major","path":null,"pr_created_at":"2026-01-11T16:39:23.000Z","version_change":"4.9.1 → 5.0.0","issue":{"uuid":"3801593197","node_id":"PR_kwDOJVkqEs68j0tv","number":1164,"state":"open","title":"chore(deps): bump the poetry group across 3 directories with 45 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-01-11T16:39:23.000Z","updated_at":"2026-01-18T16:46:56.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"poetry","update_count":45,"packages":[{"name":"sanic","old_version":"24.12.0","new_version":"25.12.0","repository_url":"https://github.com/sanic-org/sanic"},{"name":"pydantic","old_version":"2.11.3","new_version":"2.12.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"datamodel-code-generator","old_version":"0.28.5","new_version":"0.52.2","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"sqlalchemy","old_version":"2.0.40","new_version":"2.0.45","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"alembic","old_version":"1.15.2","new_version":"1.18.0","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"asyncpg","old_version":"0.30.0","new_version":"0.31.0","repository_url":"https://github.com/MagicStack/asyncpg"},{"name":"kubernetes","old_version":"31.0.0","new_version":"33.1.0","repository_url":"https://github.com/kubernetes-client/python"},{"name":"python-ulid","old_version":"3.0.0","new_version":"3.1.0","repository_url":"https://github.com/mdomke/python-ulid"},{"name":"python-gitlab","old_version":"5.6.0","new_version":"7.1.0","repository_url":"https://github.com/python-gitlab/python-gitlab"},{"name":"psycopg","old_version":"3.2.6","new_version":"3.3.2","repository_url":"https://github.com/psycopg/psycopg"},{"name":"urllib3","old_version":"2.6.0","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"},{"name":"authlib","old_version":"1.6.0","new_version":"1.6.6","repository_url":"https://github.com/authlib/authlib"},{"name":"marshmallow","old_version":"3.26.1","new_version":"4.2.0","repository_url":"https://github.com/marshmallow-code/marshmallow"},{"name":"escapism","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jupyterhub/escapism"},{"name":"sentry-sdk","old_version":"2.26.1","new_version":"2.49.0","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"authzed","old_version":"1.21.1","new_version":"1.24.0","repository_url":"https://github.com/authzed/authzed-py"},{"name":"cryptography","old_version":"44.0.2","new_version":"46.0.3","repository_url":"https://github.com/pyca/cryptography"},{"name":"setuptools","old_version":"75.9.1","new_version":"80.9.0","repository_url":"https://github.com/pypa/setuptools"},{"name":"kr8s","old_version":"0.20.7","new_version":"0.20.14","repository_url":"https://github.com/kr8s-org/kr8s"},{"name":"werkzeug","old_version":"3.1.3","new_version":"3.1.5","repository_url":"https://github.com/pallets/werkzeug"},{"name":"aiofiles","old_version":"24.1.0","new_version":"25.1.0","repository_url":"https://github.com/Tinche/aiofiles"},{"name":"protobuf","old_version":"5.29.4","new_version":"6.33.3","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"poetry","old_version":"2.1.2","new_version":"2.2.1","repository_url":"https://github.com/python-poetry/poetry"},{"name":"parsy","old_version":"2.1","new_version":"2.2","repository_url":"https://github.com/python-parsy/parsy"},{"name":"posthog","old_version":"3.25.0","new_version":"7.5.1","repository_url":"https://github.com/posthog/posthog-python"},{"name":"markdown-code-runner","old_version":"2.2.0","new_version":"2.4.0","repository_url":"https://github.com/basnijholt/markdown-code-runner"},{"name":"bandit","old_version":"1.8.3","new_version":"1.9.2","repository_url":"https://github.com/PyCQA/bandit"},{"name":"mypy","old_version":"1.15.0","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"pytest","old_version":"8.3.5","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-cov","old_version":"6.1.1","new_version":"7.0.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pre-commit","old_version":"4.2.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"aiosqlite","old_version":"0.20.0","new_version":"0.22.1","repository_url":"https://github.com/omnilib/aiosqlite"},{"name":"types-pyyaml","old_version":"6.0.12.20250402","new_version":"6.0.12.20250915","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"schemathesis","old_version":"3.39.7","new_version":"4.8.0","repository_url":"https://github.com/schemathesis/schemathesis"},{"name":"pytest-asyncio","old_version":"0.21.2","new_version":"1.3.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"pytest-postgresql","old_version":"6.1.1","new_version":"7.0.2","repository_url":"https://github.com/dbfixtures/pytest-postgresql"},{"name":"ruff","old_version":"0.8.6","new_version":"0.14.11","repository_url":"https://github.com/astral-sh/ruff"},{"name":"debugpy","old_version":"1.8.14","new_version":"1.8.19","repository_url":"https://github.com/microsoft/debugpy"},{"name":"pytest-xdist","old_version":"3.6.1","new_version":"3.8.0","repository_url":"https://github.com/pytest-dev/pytest-xdist"},{"name":"types-requests","old_version":"2.32.0.20250328","new_version":"2.32.4.20260107","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"types-aiofiles","old_version":"24.1.0.20250326","new_version":"25.1.0.20251011","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"uvloop","old_version":"0.21.0","new_version":"0.22.1","repository_url":"https://github.com/MagicStack/uvloop"},{"name":"syrupy","old_version":"4.9.1","new_version":"5.0.0","repository_url":"https://github.com/syrupy-project/syrupy"},{"name":"ruamel-yaml","old_version":"0.18.14","new_version":"0.19.1"}],"path":null,"ecosystem":"pip"},"body":"Bumps the poetry group with 45 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [sanic](https://github.com/sanic-org/sanic) | `24.12.0` | `25.12.0` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.11.3` | `2.12.5` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.28.5` | `0.52.2` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.40` | `2.0.45` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.15.2` | `1.18.0` |\n| [asyncpg](https://github.com/MagicStack/asyncpg) | `0.30.0` | `0.31.0` |\n| [kubernetes](https://github.com/kubernetes-client/python) | `31.0.0` | `33.1.0` |\n| [python-ulid](https://github.com/mdomke/python-ulid) | `3.0.0` | `3.1.0` |\n| [python-gitlab](https://github.com/python-gitlab/python-gitlab) | `5.6.0` | `7.1.0` |\n| [psycopg](https://github.com/psycopg/psycopg) | `3.2.6` | `3.3.2` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.6.0` | `2.6.3` |\n| [authlib](https://github.com/authlib/authlib) | `1.6.0` | `1.6.6` |\n| [marshmallow](https://github.com/marshmallow-code/marshmallow) | `3.26.1` | `4.2.0` |\n| [escapism](https://github.com/jupyterhub/escapism) | `1.0.1` | `1.1.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.26.1` | `2.49.0` |\n| [authzed](https://github.com/authzed/authzed-py) | `1.21.1` | `1.24.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `44.0.2` | `46.0.3` |\n| [setuptools](https://github.com/pypa/setuptools) | `75.9.1` | `80.9.0` |\n| [kr8s](https://github.com/kr8s-org/kr8s) | `0.20.7` | `0.20.14` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.3` | `3.1.5` |\n| [aiofiles](https://github.com/Tinche/aiofiles) | `24.1.0` | `25.1.0` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `5.29.4` | `6.33.3` |\n| [poetry](https://github.com/python-poetry/poetry) | `2.1.2` | `2.2.1` |\n| [parsy](https://github.com/python-parsy/parsy) | `2.1` | `2.2` |\n| [posthog](https://github.com/posthog/posthog-python) | `3.25.0` | `7.5.1` |\n| [markdown-code-runner](https://github.com/basnijholt/markdown-code-runner) | `2.2.0` | `2.4.0` |\n| [bandit](https://github.com/PyCQA/bandit) | `1.8.3` | `1.9.2` |\n| [mypy](https://github.com/python/mypy) | `1.15.0` | `1.19.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.5` | `8.4.2` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `6.1.1` | `7.0.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.2.0` | `4.5.1` |\n| [aiosqlite](https://github.com/omnilib/aiosqlite) | `0.20.0` | `0.22.1` |\n| [types-pyyaml](https://github.com/typeshed-internal/stub_uploader) | `6.0.12.20250402` | `6.0.12.20250915` |\n| [schemathesis](https://github.com/schemathesis/schemathesis) | `3.39.7` | `4.8.0` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `0.21.2` | `1.3.0` |\n| [pytest-postgresql](https://github.com/dbfixtures/pytest-postgresql) | `6.1.1` | `7.0.2` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.8.6` | `0.14.11` |\n| [debugpy](https://github.com/microsoft/debugpy) | `1.8.14` | `1.8.19` |\n| [pytest-xdist](https://github.com/pytest-dev/pytest-xdist) | `3.6.1` | `3.8.0` |\n| [types-requests](https://github.com/typeshed-internal/stub_uploader) | `2.32.0.20250328` | `2.32.4.20260107` |\n| [types-aiofiles](https://github.com/typeshed-internal/stub_uploader) | `24.1.0.20250326` | `25.1.0.20251011` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [uvloop](https://github.com/MagicStack/uvloop) | `0.21.0` | `0.22.1` |\n| [syrupy](https://github.com/syrupy-project/syrupy) | `4.9.1` | `5.0.0` |\n| ruamel-yaml | `0.18.14` | `0.19.1` |\n\nBumps the poetry group with 25 updates in the /projects/renku_data_service directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [sanic](https://github.com/sanic-org/sanic) | `24.12.0` | `25.12.0` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.11.3` | `2.12.5` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.24.2` | `0.52.2` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.40` | `2.0.45` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.15.2` | `1.18.0` |\n| [asyncpg](https://github.com/MagicStack/asyncpg) | `0.30.0` | `0.31.0` |\n| [kubernetes](https://github.com/kubernetes-client/python) | `31.0.0` | `33.1.0` |\n| [python-ulid](https://github.com/mdomke/python-ulid) | `3.0.0` | `3.1.0` |\n| [python-gitlab](https://github.com/python-gitlab/python-gitlab) | `5.6.0` | `7.1.0` |\n| [psycopg](https://github.com/psycopg/psycopg) | `3.2.6` | `3.3.2` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.6.2` | `2.6.3` |\n| [authlib](https://github.com/authlib/authlib) | `1.6.0` | `1.6.6` |\n| [marshmallow](https://github.com/marshmallow-code/marshmallow) | `3.26.1` | `4.2.0` |\n| [escapism](https://github.com/jupyterhub/escapism) | `1.0.1` | `1.1.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.26.1` | `2.49.0` |\n| [authzed](https://github.com/authzed/authzed-py) | `1.21.1` | `1.24.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `44.0.2` | `46.0.3` |\n| [setuptools](https://github.com/pypa/setuptools) | `75.9.1` | `80.9.0` |\n| [kr8s](https://github.com/kr8s-org/kr8s) | `0.20.7` | `0.20.14` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.3` | `3.1.5` |\n| [aiofiles](https://github.com/Tinche/aiofiles) | `24.1.0` | `25.1.0` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `5.29.4` | `6.33.3` |\n| [parsy](https://github.com/python-parsy/parsy) | `2.1` | `2.2` |\n| [posthog](https://github.com/posthog/posthog-python) | `3.25.0` | `7.5.1` |\n| [markdown-code-runner](https://github.com/basnijholt/markdown-code-runner) | `2.2.0` | `2.4.0` |\n\nBumps the poetry group with 25 updates in the /projects/secrets_storage directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [sanic](https://github.com/sanic-org/sanic) | `24.12.0` | `25.12.0` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.11.3` | `2.12.5` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.24.2` | `0.52.2` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.40` | `2.0.45` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.15.2` | `1.18.0` |\n| [asyncpg](https://github.com/MagicStack/asyncpg) | `0.30.0` | `0.31.0` |\n| [kubernetes](https://github.com/kubernetes-client/python) | `31.0.0` | `33.1.0` |\n| [python-ulid](https://github.com/mdomke/python-ulid) | `3.0.0` | `3.1.0` |\n| [python-gitlab](https://github.com/python-gitlab/python-gitlab) | `5.6.0` | `7.1.0` |\n| [psycopg](https://github.com/psycopg/psycopg) | `3.2.6` | `3.3.2` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.6.2` | `2.6.3` |\n| [authlib](https://github.com/authlib/authlib) | `1.6.0` | `1.6.6` |\n| [marshmallow](https://github.com/marshmallow-code/marshmallow) | `3.26.1` | `4.2.0` |\n| [escapism](https://github.com/jupyterhub/escapism) | `1.0.1` | `1.1.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.26.1` | `2.49.0` |\n| [authzed](https://github.com/authzed/authzed-py) | `1.21.1` | `1.24.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `44.0.2` | `46.0.3` |\n| [setuptools](https://github.com/pypa/setuptools) | `75.9.1` | `80.9.0` |\n| [kr8s](https://github.com/kr8s-org/kr8s) | `0.20.7` | `0.20.14` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.3` | `3.1.5` |\n| [aiofiles](https://github.com/Tinche/aiofiles) | `24.1.0` | `25.1.0` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `5.29.4` | `6.33.3` |\n| [parsy](https://github.com/python-parsy/parsy) | `2.1` | `2.2` |\n| [posthog](https://github.com/posthog/posthog-python) | `3.25.0` | `7.5.1` |\n| [markdown-code-runner](https://github.com/basnijholt/markdown-code-runner) | `2.2.0` | `2.4.0` |\n\n\nUpdates `sanic` from 24.12.0 to 25.12.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sanic-org/sanic/releases\"\u003esanic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 25.12.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCreate baseline for bandit to remove false positives by \u003ca href=\"https://github.com/ChihweiLHBird\"\u003e\u003ccode\u003e@​ChihweiLHBird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3084\"\u003esanic-org/sanic#3084\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse secrets for generating unique ping payloads by \u003ca href=\"https://github.com/Tronic\"\u003e\u003ccode\u003e@​Tronic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3091\"\u003esanic-org/sanic#3091\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd some typing and fix some tests by \u003ca href=\"https://github.com/ahopkins\"\u003e\u003ccode\u003e@​ahopkins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3094\"\u003esanic-org/sanic#3094\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix race condition in worker restart causing spawn failure by \u003ca href=\"https://github.com/jameslovespancakes\"\u003e\u003ccode\u003e@​jameslovespancakes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3086\"\u003esanic-org/sanic#3086\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix AttributeError in close_if_idle() when _http is not initialized by \u003ca href=\"https://github.com/jameslovespancakes\"\u003e\u003ccode\u003e@​jameslovespancakes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3085\"\u003esanic-org/sanic#3085\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd typing for parameters of constructor of \u003ccode\u003eWorkerManager\u003c/code\u003e by \u003ca href=\"https://github.com/ChihweiLHBird\"\u003e\u003ccode\u003e@​ChihweiLHBird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3083\"\u003esanic-org/sanic#3083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate str_to_bool function to include 'nope' as a valid false value by \u003ca href=\"https://github.com/tkosman\"\u003e\u003ccode\u003e@​tkosman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3080\"\u003esanic-org/sanic#3080\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd DetailedConverter for advanced environment variable conversion by \u003ca href=\"https://github.com/tkosman\"\u003e\u003ccode\u003e@​tkosman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3079\"\u003esanic-org/sanic#3079\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix WorkerManager.kill on Windows by \u003ca href=\"https://github.com/gazpachoking\"\u003e\u003ccode\u003e@​gazpachoking\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3077\"\u003esanic-org/sanic#3077\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003esilent on RuntimeError when write_eof by \u003ca href=\"https://github.com/tiejunhu\"\u003e\u003ccode\u003e@​tiejunhu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3068\"\u003esanic-org/sanic#3068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSingle letter typo fix for request.md documentation by \u003ca href=\"https://github.com/wojonet\"\u003e\u003ccode\u003e@​wojonet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3066\"\u003esanic-org/sanic#3066\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed incorrect links throughout the documentation by \u003ca href=\"https://github.com/Peopl3s\"\u003e\u003ccode\u003e@​Peopl3s\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3065\"\u003esanic-org/sanic#3065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChange the log type to debug by \u003ca href=\"https://github.com/Peopl3s\"\u003e\u003ccode\u003e@​Peopl3s\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3064\"\u003esanic-org/sanic#3064\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd correct path for Contribution guidelines by \u003ca href=\"https://github.com/dungarpan\"\u003e\u003ccode\u003e@​dungarpan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3057\"\u003esanic-org/sanic#3057\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix broken link in website by \u003ca href=\"https://github.com/helioascorreia\"\u003e\u003ccode\u003e@​helioascorreia\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3056\"\u003esanic-org/sanic#3056\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix 'how we built sanic' sidebar link by \u003ca href=\"https://github.com/dhensen\"\u003e\u003ccode\u003e@​dhensen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3054\"\u003esanic-org/sanic#3054\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes sanic_ext - openapi component documentation by \u003ca href=\"https://github.com/amarquard089\"\u003e\u003ccode\u003e@​amarquard089\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3035\"\u003esanic-org/sanic#3035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate required Python to \u0026gt;=3.9 by \u003ca href=\"https://github.com/ChihweiLHBird\"\u003e\u003ccode\u003e@​ChihweiLHBird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3095\"\u003esanic-org/sanic#3095\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Add automatic charset=UTF-8 to text content types by \u003ca href=\"https://github.com/Tronic\"\u003e\u003ccode\u003e@​Tronic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3071\"\u003esanic-org/sanic#3071\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade tracerite to latest by \u003ca href=\"https://github.com/ahopkins\"\u003e\u003ccode\u003e@​ahopkins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3101\"\u003esanic-org/sanic#3101\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter server error messaging by \u003ca href=\"https://github.com/ahopkins\"\u003e\u003ccode\u003e@​ahopkins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3102\"\u003esanic-org/sanic#3102\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTesting improvements by \u003ca href=\"https://github.com/ahopkins\"\u003e\u003ccode\u003e@​ahopkins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3107\"\u003esanic-org/sanic#3107\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove to 2-stage coverage check by \u003ca href=\"https://github.com/ahopkins\"\u003e\u003ccode\u003e@​ahopkins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3108\"\u003esanic-org/sanic#3108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixing bad term cleanup at exit by \u003ca href=\"https://github.com/tdaron\"\u003e\u003ccode\u003e@​tdaron\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3088\"\u003esanic-org/sanic#3088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump dawidd6/action-download-artifact from 3 to 6 in /.github/workflows by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3109\"\u003esanic-org/sanic#3109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd daemon mode to Sanic CLI  by \u003ca href=\"https://github.com/ahopkins\"\u003e\u003ccode\u003e@​ahopkins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3110\"\u003esanic-org/sanic#3110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove v3.9 and add v3.14 by \u003ca href=\"https://github.com/ahopkins\"\u003e\u003ccode\u003e@​ahopkins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3115\"\u003esanic-org/sanic#3115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReturn task when creating a task by \u003ca href=\"https://github.com/ahopkins\"\u003e\u003ccode\u003e@​ahopkins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3114\"\u003esanic-org/sanic#3114\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix static file serving for directories with CJK characters by \u003ca href=\"https://github.com/ahopkins\"\u003e\u003ccode\u003e@​ahopkins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3119\"\u003esanic-org/sanic#3119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExplicit symlink params for static files/dirs by \u003ca href=\"https://github.com/ahopkins\"\u003e\u003ccode\u003e@​ahopkins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3117\"\u003esanic-org/sanic#3117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRespect LOG_EXTRA in all cases by \u003ca href=\"https://github.com/ahopkins\"\u003e\u003ccode\u003e@​ahopkins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3120\"\u003esanic-org/sanic#3120\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRespect KEEP_ALIVE config by \u003ca href=\"https://github.com/ahopkins\"\u003e\u003ccode\u003e@​ahopkins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3121\"\u003esanic-org/sanic#3121\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCheck state in shutdown for handling uvloop double kill by \u003ca href=\"https://github.com/ahopkins\"\u003e\u003ccode\u003e@​ahopkins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3122\"\u003esanic-org/sanic#3122\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare for v25.12 release by \u003ca href=\"https://github.com/ahopkins\"\u003e\u003ccode\u003e@​ahopkins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3124\"\u003esanic-org/sanic#3124\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/jameslovespancakes\"\u003e\u003ccode\u003e@​jameslovespancakes\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3086\"\u003esanic-org/sanic#3086\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkosman\"\u003e\u003ccode\u003e@​tkosman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3080\"\u003esanic-org/sanic#3080\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gazpachoking\"\u003e\u003ccode\u003e@​gazpachoking\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3077\"\u003esanic-org/sanic#3077\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tiejunhu\"\u003e\u003ccode\u003e@​tiejunhu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3068\"\u003esanic-org/sanic#3068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wojonet\"\u003e\u003ccode\u003e@​wojonet\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3066\"\u003esanic-org/sanic#3066\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Peopl3s\"\u003e\u003ccode\u003e@​Peopl3s\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3065\"\u003esanic-org/sanic#3065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dungarpan\"\u003e\u003ccode\u003e@​dungarpan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3057\"\u003esanic-org/sanic#3057\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/helioascorreia\"\u003e\u003ccode\u003e@​helioascorreia\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3056\"\u003esanic-org/sanic#3056\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dhensen\"\u003e\u003ccode\u003e@​dhensen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3054\"\u003esanic-org/sanic#3054\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amarquard089\"\u003e\u003ccode\u003e@​amarquard089\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3035\"\u003esanic-org/sanic#3035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tdaron\"\u003e\u003ccode\u003e@​tdaron\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3088\"\u003esanic-org/sanic#3088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/sanic-org/sanic/pull/3109\"\u003esanic-org/sanic#3109\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sanic-org/sanic/commit/785d77f8fe208576a48d339bd81d866021154092\"\u003e\u003ccode\u003e785d77f\u003c/code\u003e\u003c/a\u003e Prepare for v25.12 release (\u003ca href=\"https://redirect.github.com/sanic-org/sanic/issues/3124\"\u003e#3124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sanic-org/sanic/commit/dc0939e682eeaace8b2832f634999f3390b1d5d1\"\u003e\u003ccode\u003edc0939e\u003c/code\u003e\u003c/a\u003e Check state in shutdown for handling uvloop double kill (\u003ca href=\"https://redirect.github.com/sanic-org/sanic/issues/3122\"\u003e#3122\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sanic-org/sanic/commit/a64dc641a8e4ad777a4602d2bdec53d736901472\"\u003e\u003ccode\u003ea64dc64\u003c/code\u003e\u003c/a\u003e Respect KEEP_ALIVE config (\u003ca href=\"https://redirect.github.com/sanic-org/sanic/issues/3121\"\u003e#3121\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sanic-org/sanic/commit/7c9b8461c0b4d300c15fe66b6f9b5d031aee59eb\"\u003e\u003ccode\u003e7c9b846\u003c/code\u003e\u003c/a\u003e Respect LOG_EXTRA in all cases (\u003ca href=\"https://redirect.github.com/sanic-org/sanic/issues/3120\"\u003e#3120\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sanic-org/sanic/commit/9aef932b843abff359f7a06ffc75dd45bab99e79\"\u003e\u003ccode\u003e9aef932\u003c/code\u003e\u003c/a\u003e Explicit symlink params for static files/dirs (\u003ca href=\"https://redirect.github.com/sanic-org/sanic/issues/3117\"\u003e#3117\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sanic-org/sanic/commit/41f2b38041e4bacc56aac1d3b99131ae183c27e8\"\u003e\u003ccode\u003e41f2b38\u003c/code\u003e\u003c/a\u003e Fix static file serving for directories with CJK characters (\u003ca href=\"https://redirect.github.com/sanic-org/sanic/issues/3119\"\u003e#3119\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sanic-org/sanic/commit/82d8cc4c98d5dd2cd807279b61615acaaf06d5bb\"\u003e\u003ccode\u003e82d8cc4\u003c/code\u003e\u003c/a\u003e Return task when creating a task (\u003ca href=\"https://redirect.github.com/sanic-org/sanic/issues/3114\"\u003e#3114\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sanic-org/sanic/commit/002c8c2d8a1c338a93b5b666514bdbef4ec6d1bc\"\u003e\u003ccode\u003e002c8c2\u003c/code\u003e\u003c/a\u003e Remove v3.9 and add v3.14 (\u003ca href=\"https://redirect.github.com/sanic-org/sanic/issues/3115\"\u003e#3115\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sanic-org/sanic/commit/3ae8f8ad7f4c12a75f67982b9456999d935bf5c0\"\u003e\u003ccode\u003e3ae8f8a\u003c/code\u003e\u003c/a\u003e Add daemon mode to Sanic CLI  (\u003ca href=\"https://redirect.github.com/sanic-org/sanic/issues/3110\"\u003e#3110\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sanic-org/sanic/commit/8ac64685c72395da1862a90e18883c94e71562d9\"\u003e\u003ccode\u003e8ac6468\u003c/code\u003e\u003c/a\u003e Bump dawidd6/action-download-artifact from 3 to 6 in /.github/workflows (\u003ca href=\"https://redirect.github.com/sanic-org/sanic/issues/3109\"\u003e#3109\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sanic-org/sanic/compare/v24.12.0...v25.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.11.3 to 2.12.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.5 2025-11-26\u003c/h2\u003e\n\u003ch2\u003ev2.12.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.4 2025-11-05\u003c/h2\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method of the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1864\"\u003epydantic-core#1864\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.3 2025-10-17\u003c/h2\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eThis is the third 2.13 patch release, fixing issues related to the \u003ccode\u003eFieldInfo\u003c/code\u003e class, and reverting a change to the supported \u003ca href=\"https://docs.pydantic.dev/latest/concepts/validators/#model-validators\"\u003e\u003cem\u003eafter\u003c/em\u003e model validator\u003c/a\u003e function signatures.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.5\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.4\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in\n\u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1864\"\u003epydantic-core#1864\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.3\"\u003eGitHub release\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/pydantic/pydantic/commit/bd2d0dd0137dfa1a8fdff2529b9dfb1547980150\"\u003e\u003ccode\u003ebd2d0dd\u003c/code\u003e\u003c/a\u003e Prepare release v2.12.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7d0302ec7ec2cf115de3450a615522875bdd8b56\"\u003e\u003ccode\u003e7d0302e\u003c/code\u003e\u003c/a\u003e Document security implications when using \u003ccode\u003ecreate_model()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/e9ef980def726b6f59b6c495ddc9dc259a0228db\"\u003e\u003ccode\u003ee9ef980\u003c/code\u003e\u003c/a\u003e Fix typo in Standard Library Types documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f2c20c00c265a31a13c48f9bae923a87c829952e\"\u003e\u003ccode\u003ef2c20c0\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003epydantic-docs\u003c/code\u003e dev dependency, make use of versioning blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a76c1aa26f2d64a3fd080ac515d80832689197e8\"\u003e\u003ccode\u003ea76c1aa\u003c/code\u003e\u003c/a\u003e Update documentation about JSON Schema\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/8cbc72ca489891e574fba45238ee8bd4f8e719a2\"\u003e\u003ccode\u003e8cbc72c\u003c/code\u003e\u003c/a\u003e Add documentation about custom \u003ccode\u003e__init__()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/99eba599069da137b3f708ffa74627f2b456ba73\"\u003e\u003ccode\u003e99eba59\u003c/code\u003e\u003c/a\u003e Add additional test for \u003ccode\u003eFieldInfo.get_default()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c71076988e507ea93844c77c3bf0bbb85a5716af\"\u003e\u003ccode\u003ec710769\u003c/code\u003e\u003c/a\u003e Special case \u003ccode\u003eMISSING\u003c/code\u003e sentinel in \u003ccode\u003esmart_deepcopy()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/20a9d771c210fd77d52366ac923258c4c199727f\"\u003e\u003ccode\u003e20a9d77\u003c/code\u003e\u003c/a\u003e Do not delete mock validator/serializer in \u003ccode\u003erebuild_dataclass()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c86515a3a8f2120148fab2eaedd3bc45925779d0\"\u003e\u003ccode\u003ec86515a\u003c/code\u003e\u003c/a\u003e Update parts of the model and \u003ccode\u003erevalidate_instances\u003c/code\u003e documentation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.11.3...v2.12.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `datamodel-code-generator` from 0.28.5 to 0.52.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases\"\u003edatamodel-code-generator's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.52.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for multiple base classes in base_class_map and customBasePath by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2916\"\u003ekoxudaxi/datamodel-code-generator#2916\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003cstrong\u003ehash\u003c/strong\u003e to Pydantic v2 models used in sets by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2918\"\u003ekoxudaxi/datamodel-code-generator#2918\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Handle class name prefix correctly in GraphQL parser by \u003ca href=\"https://github.com/siminn-arnorgj\"\u003e\u003ccode\u003e@​siminn-arnorgj\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2926\"\u003ekoxudaxi/datamodel-code-generator#2926\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd TypedDict closed and extra_items support (PEP 728) by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2922\"\u003ekoxudaxi/datamodel-code-generator#2922\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix release-draft workflow to use pull_request_target and increase max_turns to 50 by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2930\"\u003ekoxudaxi/datamodel-code-generator#2930\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate from pyright to ty type checker by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2928\"\u003ekoxudaxi/datamodel-code-generator#2928\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix URL port handling in get_url_path_parts by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2933\"\u003ekoxudaxi/datamodel-code-generator#2933\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.52.1...0.52.2\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.52.1...0.52.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.52.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd --validators option for Pydantic v2 field validators by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2906\"\u003ekoxudaxi/datamodel-code-generator#2906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd dynamic model generation support by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2901\"\u003ekoxudaxi/datamodel-code-generator#2901\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSync zensical.toml nav with docs directory by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2908\"\u003ekoxudaxi/datamodel-code-generator#2908\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd deprecation warning for default output-model-type by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2910\"\u003ekoxudaxi/datamodel-code-generator#2910\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd deprecation warning and explicit --output-model-type to docs by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2911\"\u003ekoxudaxi/datamodel-code-generator#2911\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd llms.txt generator for LLM-friendly documentation by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2912\"\u003ekoxudaxi/datamodel-code-generator#2912\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove coverage fail_under check to combined coverage environment by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2909\"\u003ekoxudaxi/datamodel-code-generator#2909\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix YAML scientific notation parsing as float by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2913\"\u003ekoxudaxi/datamodel-code-generator#2913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd deprecated field support for Pydantic v2 by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2915\"\u003ekoxudaxi/datamodel-code-generator#2915\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd deprecation warning for Pydantic v2 without --use-annotated by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2914\"\u003ekoxudaxi/datamodel-code-generator#2914\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.52.0...0.52.1\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.52.0...0.52.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.52.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUnion fields with titles now wrapped in named models when \u003ccode\u003e--use-title-as-name\u003c/code\u003e is enabled - Previously, union-typed fields with a \u003ccode\u003etitle\u003c/code\u003e were generated as inline union types (e.g., \u003ccode\u003eTypeA | TypeB | TypeC | None\u003c/code\u003e). Now they generate a separate wrapper model using the title name, and the field references this wrapper type (e.g., \u003ccode\u003eProcessingStatusUnionTitle | None\u003c/code\u003e). This affects code that directly accesses union field values, as they now need to access the \u003ccode\u003e.root\u003c/code\u003e attribute (Pydantic v2) or \u003ccode\u003e.__root__\u003c/code\u003e (Pydantic v1) of the wrapper model. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2889\"\u003e#2889\u003c/a\u003e)\n\u003cstrong\u003eBefore:\u003c/strong\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eclass ProcessingTaskTitle(BaseModel):\n    processing_status_union: (\n        ProcessingStatusDetail | ExtendedProcessingTask | ProcessingStatusTitle | None\n    ) = Field('COMPLETED', title='Processing Status Union Title')\n\u003c/code\u003e\u003c/pre\u003e\n\u003cstrong\u003eAfter:\u003c/strong\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eclass ProcessingStatusUnionTitle(BaseModel):\n    __root__: (\n        ProcessingStatusDetail | ExtendedProcessingTask | ProcessingStatusTitle\n    ) = Field(..., title='Processing Status Union Title')\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/blob/main/CHANGELOG.md\"\u003edatamodel-code-generator's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.52.2\"\u003e0.52.2\u003c/a\u003e - 2026-01-05\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for multiple base classes in base_class_map and customBasePath by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2916\"\u003ekoxudaxi/datamodel-code-generator#2916\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003cstrong\u003ehash\u003c/strong\u003e to Pydantic v2 models used in sets by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2918\"\u003ekoxudaxi/datamodel-code-generator#2918\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Handle class name prefix correctly in GraphQL parser by \u003ca href=\"https://github.com/siminn-arnorgj\"\u003e\u003ccode\u003e@​siminn-arnorgj\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2926\"\u003ekoxudaxi/datamodel-code-generator#2926\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd TypedDict closed and extra_items support (PEP 728) by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2922\"\u003ekoxudaxi/datamodel-code-generator#2922\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix release-draft workflow to use pull_request_target and increase max_turns to 50 by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2930\"\u003ekoxudaxi/datamodel-code-generator#2930\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate from pyright to ty type checker by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2928\"\u003ekoxudaxi/datamodel-code-generator#2928\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix URL port handling in get_url_path_parts by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2933\"\u003ekoxudaxi/datamodel-code-generator#2933\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.52.1...0.52.2\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.52.1...0.52.2\u003c/a\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.52.1\"\u003e0.52.1\u003c/a\u003e - 2026-01-03\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd --validators option for Pydantic v2 field validators by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2906\"\u003ekoxudaxi/datamodel-code-generator#2906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd dynamic model generation support by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2901\"\u003ekoxudaxi/datamodel-code-generator#2901\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSync zensical.toml nav with docs directory by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2908\"\u003ekoxudaxi/datamodel-code-generator#2908\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd deprecation warning for default output-model-type by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2910\"\u003ekoxudaxi/datamodel-code-generator#2910\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd deprecation warning and explicit --output-model-type to docs by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2911\"\u003ekoxudaxi/datamodel-code-generator#2911\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd llms.txt generator for LLM-friendly documentation by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2912\"\u003ekoxudaxi/datamodel-code-generator#2912\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove coverage fail_under check to combined coverage environment by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2909\"\u003ekoxudaxi/datamodel-code-generator#2909\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix YAML scientific notation parsing as float by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2913\"\u003ekoxudaxi/datamodel-code-generator#2913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd deprecated field support for Pydantic v2 by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2915\"\u003ekoxudaxi/datamodel-code-generator#2915\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd deprecation warning for Pydantic v2 without --use-annotated by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2914\"\u003ekoxudaxi/datamodel-code-generator#2914\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.52.0...0.52.1\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.52.0...0.52.1\u003c/a\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.52.0\"\u003e0.52.0\u003c/a\u003e - 2026-01-02\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUnion fields with titles now wrapped in named models when \u003ccode\u003e--use-title-as-name\u003c/code\u003e is enabled - Previously, union-typed fields with a \u003ccode\u003etitle\u003c/code\u003e were generated as inline union types (e.g., \u003ccode\u003eTypeA | TypeB | TypeC | None\u003c/code\u003e). Now they generate a separate wrapper model using the title name, and the field references this wrapper type (e.g., \u003ccode\u003eProcessingStatusUnionTitle | None\u003c/code\u003e). This affects code that directly accesses union field values, as they now need to access the \u003ccode\u003e.root\u003c/code\u003e attribute (Pydantic v2) or \u003ccode\u003e.__root__\u003c/code\u003e (Pydantic v1) of the wrapper model. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2889\"\u003e#2889\u003c/a\u003e)\n\u003cstrong\u003eBefore:\u003c/strong\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eclass ProcessingTaskTitle(BaseModel):\n    processing_status_union: (\n        ProcessingStatusDetail | ExtendedProcessingTask | ProcessingStatusTitle | None\n    ) = Field('COMPLETED', title='Processing Status Union Title')\n\u003c/code\u003e\u003c/pre\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/koxudaxi/datamodel-code-generator/commit/794e02bdd8ed89fc2030d4b323df8480edae0335\"\u003e\u003ccode\u003e794e02b\u003c/code\u003e\u003c/a\u003e Fix URL port handling in get_url_path_parts (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2933\"\u003e#2933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/61c08d6fa777f1560e0c55151ae1c42037c469cb\"\u003e\u003ccode\u003e61c08d6\u003c/code\u003e\u003c/a\u003e Migrate from pyright to ty type checker (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2928\"\u003e#2928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/ee08fff3867457b6a09c0ca4fbfbd23ee128617e\"\u003e\u003ccode\u003eee08fff\u003c/code\u003e\u003c/a\u003e Fix release-draft workflow to use pull_request_target and increase max_turns ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/5acb17838e7fb8047f36a1bebcdfb2f432dd3b16\"\u003e\u003ccode\u003e5acb178\u003c/code\u003e\u003c/a\u003e Add TypedDict closed and extra_items support (PEP 728) (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2922\"\u003e#2922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/54c3ed9fcc073f79b5ffd2366cdc7f97f99ae4d2\"\u003e\u003ccode\u003e54c3ed9\u003c/code\u003e\u003c/a\u003e fix: Handle class name prefix correctly in GraphQL parser (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2926\"\u003e#2926\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/58e73ed8740d589623647008bb1fe230bac1aeda\"\u003e\u003ccode\u003e58e73ed\u003c/code\u003e\u003c/a\u003e Add \u003cstrong\u003ehash\u003c/strong\u003e to Pydantic v2 models used in sets (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2918\"\u003e#2918\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/960f7f932b253e3f78771ff907409a1cb21d73d6\"\u003e\u003ccode\u003e960f7f9\u003c/code\u003e\u003c/a\u003e Add support for multiple base classes in base_class_map and customBasePath (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/1b931d5f81e81f3f93582d8aac70e75ab1708a5d\"\u003e\u003ccode\u003e1b931d5\u003c/code\u003e\u003c/a\u003e docs: update CHANGELOG.md for 0.52.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/361fb5aa6a63ae570132daee0c587e633f62da6b\"\u003e\u003ccode\u003e361fb5a\u003c/code\u003e\u003c/a\u003e Add deprecation warning for Pydantic v2 without --use-annotated (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2914\"\u003e#2914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/69c51fdbbb60dc4c16d2a38914ab31145d2b2b7e\"\u003e\u003ccode\u003e69c51fd\u003c/code\u003e\u003c/a\u003e Add deprecated field support for Pydantic v2 (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2915\"\u003e#2915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.28.5...0.52.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy` from 2.0.40 to 2.0.45\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/releases\"\u003esqlalchemy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.0.45\u003c/h1\u003e\n\u003cp\u003eReleased: December 9, 2025\u003c/p\u003e\n\u003ch2\u003eorm\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where calling \u003ccode\u003eMapper.add_property()\u003c/code\u003e within mapper event\nhooks such as \u003ccode\u003eMapperEvents.instrument_class()\u003c/code\u003e,\n\u003ccode\u003eMapperEvents.after_mapper_constructed()\u003c/code\u003e, or\n\u003ccode\u003eMapperEvents.before_mapper_configured()\u003c/code\u003e would raise an\n\u003ccode\u003eAttributeError\u003c/code\u003e because the mapper's internal property collections were\nnot yet initialized. The \u003ccode\u003eMapper.add_property()\u003c/code\u003e method now handles\nearly-stage property additions correctly, allowing properties including\ncolumn properties, deferred columns, and relationships to be added during\nmapper initialization events.  Pull request courtesy G Allajmi.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12858\"\u003e#12858\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue in Python 3.14 where dataclass transformation would fail when\na mapped class using \u003ccode\u003eMappedAsDataclass\u003c/code\u003e included a\n\u003ccode\u003erelationship()\u003c/code\u003e referencing a class that was not available at\nruntime (e.g., within a \u003ccode\u003eTYPE_CHECKING\u003c/code\u003e block). This occurred when using\nPython 3.14's \u003ca href=\"https://peps.python.org/pep-0649\"\u003ePEP 649\u003c/a\u003e deferred annotations feature, which is the\ndefault behavior without a \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e\ndirective.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12952\"\u003e#12952\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eexamples\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e[examples] [bug]\u003c/strong\u003e Fixed the \u0026quot;short_selects\u0026quot; performance example where the cache was being\nused in all the examples, making it impossible to compare performance with\nand without the cache.   Less important comparisons like \u0026quot;lambdas\u0026quot; and\n\u0026quot;baked queries\u0026quot; have been removed.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003esql\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[sql] [bug]\u003c/strong\u003e Some improvements to the \u003ccode\u003e_sql.ClauseElement.params()\u003c/code\u003e method to\nreplace bound parameters in a query were made, however the ultimate issue\nin \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12915\"\u003e#12915\u003c/a\u003e involving ORM \u003ccode\u003e_orm.aliased()\u003c/code\u003e cannot be fixed fully\nuntil 2.1, where the method is being rewritten to work without relying on\nCore cloned traversal.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12915\"\u003e#12915\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[sql] [bug]\u003c/strong\u003e Fixed issue where using the \u003ccode\u003eColumnOperators.in_()\u003c/code\u003e operator with a\nnested \u003ccode\u003eCompoundSelect\u003c/code\u003e statement (e.g. an \u003ccode\u003eINTERSECT\u003c/code\u003e of\n\u003ccode\u003eUNION\u003c/code\u003e queries) would raise a \u003ccode\u003eNotImplementedError\u003c/code\u003e when the\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\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `alembic` from 1.15.2 to 1.18.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/alembic/releases\"\u003ealembic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.18.0\u003c/h1\u003e\n\u003cp\u003eReleased: January 9, 2026\u003c/p\u003e\n\u003ch2\u003efeature\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[feature] [operations]\u003c/strong\u003e When alembic is run in \u0026quot;verbose\u0026quot; mode, alembic now logs a message to\nindicate from which file is used to load the configuration.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1737\"\u003e#1737\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[feature] [autogenerate]\u003c/strong\u003e Autogenerate reflection sweeps now use the \u0026quot;bulk\u0026quot; inspector methods\nintroduced in SQLAlchemy 2.0, which for selected dialects including\nPostgreSQL and Oracle use batched queries to reflect whole collections of\ntables using O(1) queries rather than O(N).\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1771\"\u003e#1771\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[feature] [autogenerate]\u003c/strong\u003e Release 1.18.0 introduces a plugin system that allows for automatic\nloading of third-party extensions as well as configurable autogenerate\ncompare functionality on a per-environment basis.\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003ePlugin\u003c/code\u003e class provides a common interface for extensions that\nregister handlers among Alembic's existing extension points such as\n\u003ccode\u003eOperations.register_operation()\u003c/code\u003e and\n\u003ccode\u003eOperations.implementation_for()\u003c/code\u003e. A new interface for registering\nautogenerate comparison handlers,\n\u003ccode\u003ePlugin.add_autogenerate_comparator()\u003c/code\u003e, provides for autogenerate\ncompare functionality that may be custom-configured on a per-environment\nbasis using the new\n\u003ccode\u003eEnvironmentContext.configure.autogenerate_plugins\u003c/code\u003e parameter.\u003c/p\u003e\n\u003cp\u003eThe change does not impact well known Alembic add-ons such as\n\u003ccode\u003ealembic-utils\u003c/code\u003e, which continue to work as before; however, such add-ons\nhave the option to provide plugin entrypoints going forward.\u003c/p\u003e\n\u003cp\u003eAs part of this change, Alembic's autogenerate compare functionality is\nreorganized into a series of internal plugins under the\n\u003ccode\u003ealembic.autogenerate\u003c/code\u003e namespace, which may be individually or\ncollectively identified for inclusion and/or exclusion within the\n\u003ccode\u003eEnvironmentContext.configure()\u003c/code\u003e call using a new parameter\n\u003ccode\u003eEnvironmentContext.configure.autogenerate_plugins\u003c/code\u003e. This\nparameter is also where third party comparison plugins may also be\nindicated.\u003c/p\u003e\n\u003cp\u003eSee \u003ccode\u003ealembic.plugins.toplevel\u003c/code\u003e for complete documentation on\nthe new \u003ccode\u003ePlugin\u003c/code\u003e class as well as autogenerate-specific usage\ninstructions.\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\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/alembic/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `asyncpg` from 0.30.0 to 0.31.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/MagicStack/asyncpg/releases\"\u003easyncpg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.31.0\u003c/h2\u003e\n\u003cp\u003eEnable Python 3.14 with experimental subinterpreter/freethreading\nsupport.\u003c/p\u003e\n\u003ch1\u003eImprovements\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd Python 3.14 support, experimental subinterpreter/freethreading support (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1279\"\u003e#1279\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 9e42642b)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid performing type introspection on known types (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1243\"\u003e#1243\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 5c9986c4)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eprepare()\u003c/code\u003e not use named statements by default when cache is disabled (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1245\"\u003e#1245\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 5b14653e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement connection service file functionality (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1223\"\u003e#1223\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/AndrewJackson2020\"\u003e\u003ccode\u003e@​AndrewJackson2020\u003c/code\u003e\u003c/a\u003e in 1d63bb15)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eFixes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix multi port connection string issue (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1222\"\u003e#1222\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/AndrewJackson2020\"\u003e\u003ccode\u003e@​AndrewJackson2020\u003c/code\u003e\u003c/a\u003e in 01c0db7b)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid leaking connections if _can_use_connection fails (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1269\"\u003e#1269\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/yuliy-openai\"\u003e\u003ccode\u003e@​yuliy-openai\u003c/code\u003e\u003c/a\u003e in e94302d2)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eOther\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for EOL Python 3.8 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1281\"\u003e#1281\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 6c2c4904)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/71775a67277fc0aa5bd2b9f15e848826d7078c4d\"\u003e\u003ccode\u003e71775a6\u003c/code\u003e\u003c/a\u003e asyncpg v0.31.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/508cae6441968ef7613a623fece7083cce66c2b3\"\u003e\u003ccode\u003e508cae6\u003c/code\u003e\u003c/a\u003e Test on PostgreSQL 18 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1290\"\u003e#1290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/e534e5f15c73525a6509143b3828335517360f1b\"\u003e\u003ccode\u003ee534e5f\u003c/code\u003e\u003c/a\u003e Bump cibuildwheel\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/07fe5122a680f5768e39fc28d68c94b185037a52\"\u003e\u003ccode\u003e07fe512\u003c/code\u003e\u003c/a\u003e Bump pgproto\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/648b35f18199ebf2a30009376a6e9060cf7ad789\"\u003e\u003ccode\u003e648b35f\u003c/code\u003e\u003c/a\u003e Bump Cython to 3.2.1 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1288\"\u003e#1288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/9e42642b9110d206706697921b6e697a0972649d\"\u003e\u003ccode\u003e9e42642\u003c/code\u003e\u003c/a\u003e Add Python 3.14 support, experimental subinterpreter/freethreading support (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/6fe1c494ef5c3069fa9149c48bf9f8f2cd69f95e\"\u003e\u003ccode\u003e6fe1c49\u003c/code\u003e\u003c/a\u003e Move development deps away from extras and into dependency groups (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1280\"\u003e#1280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/7a548166c2b23561915c481bd332013e3a415cfb\"\u003e\u003ccode\u003e7a54816\u003c/code\u003e\u003c/a\u003e Fix a couple of missed Python version guards\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/6c2c4904e61b2cd2f502540730a24e246cff2ebd\"\u003e\u003ccode\u003e6c2c490\u003c/code\u003e\u003c/a\u003e Drop support for EOL Python 3.8 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1281\"\u003e#1281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/4c60ae890d1f3800f889679657357f91a6923568\"\u003e\u003ccode\u003e4c60ae8\u003c/code\u003e\u003c/a\u003e Bump version to 0.31.0.dev0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/MagicStack/asyncpg/compare/v0.30.0...v0.31.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `kubernetes` from 31.0.0 to 33.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kubernetes-client/python/releases\"\u003ekubernetes's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKubernetes Python Client v33.1.0 Stable Release\u003c/h2\u003e\n\u003cp\u003eGetting started:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install --pre --upgrade kubernetes\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from source, download attached zip file, then\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eunzip client-python-v33.1.0.zip\ncd client-python-v33.1.0\npython setup.py install\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThen follow examples in \u003ca href=\"https://github.com/kubernetes-client/python/tree/release-33.0/examples\"\u003ehttps://github.com/kubernetes-client/python/tree/release-33.0/examples\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eChangelog: \u003ca href=\"https://github.com/kubernetes-client/python/blob/release-33.0/CHANGELOG.md\"\u003ehttps://github.com/kubernetes-client/python/blob/release-33.0/CHANGELOG.md\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eKubernetes Python Client v33.1.0 Beta 1 Release\u003c/h2\u003e\n\u003cp\u003eGetting started:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install --pre --upgrade kubernetes\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from source, download attached zip file, then\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eunzip client-python-v33.1.0b1.zip\ncd client-python-v33.1.0b1\npython setup.py install\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThen follow examples in \u003ca href=\"https://github.com/kubernetes-client/python/tree/release-33.0/examples\"\u003ehttps://github.com/kubernetes-client/python/tree/release-33.0/examples\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eChangelog: \u003ca href=\"https://github.com/kubernetes-client/python/blob/release-33.0/CHANGELOG.md\"\u003ehttps://github.com/kubernetes-client/python/blob/release-33.0/CHANGELOG.md\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eKubernetes Python Client v33.1.0 Alpha 1 Release\u003c/h2\u003e\n\u003cp\u003eGetting started:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install --pre --upgrade kubernetes\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from source, download attached zip file, then\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003eunzip client-python-v33.1.0a1.zip\ncd client-python-v33.1.0a1\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt; \n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kubernetes-client/python/blob/v33.1.0/CHANGELOG.md\"\u003ekubernetes's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev33.1.0\u003c/h1\u003e\n\u003cp\u003eKubernetes API Version: v1.33.1\u003c/p\u003e\n\u003ch1\u003ev33.1.0b1\u003c/h1\u003e\n\u003cp\u003eKubernetes API Version: v1.33.1\u003c/p\u003e\n\u003ch1\u003ev33.1.0a1\u003c/h1\u003e\n\u003cp\u003eKubernetes API Version: v1.33.1\u003c/p\u003e\n\u003ch3\u003eAPI Change\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eA new alpha feature gate, \u003ccode\u003eMutableCSINodeAllocatableCount\u003c/code\u003e, has been introduced.\u003c/p\u003e\n\u003cp\u003eWhen this feature gate is enabled, the \u003ccode\u003eCSINode.Spec.Drivers[*].Allocatable.Count\u003c/code\u003e field becomes mutable, and a new field, \u003ccode\u003eNodeAllocatableUpdatePeriodSeconds\u003c/code\u003e, is available in the \u003ccode\u003eCSIDriver\u003c/code\u003e object. This allows periodic updates to a node's reported allocatable volume capacity, preventing stateful pods from becoming stuck due to outdated information that kube-scheduler relies on. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130007\"\u003ekubernetes/kubernetes#130007\u003c/a\u003e, \u003ca href=\"https://github.com/torredil\"\u003e\u003ccode\u003e@​torredil\u003c/code\u003e\u003c/a\u003e) [SIG Apps, Node, Scheduling and Storage]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded feature gate \u003ccode\u003eDRAPartitionableDevices\u003c/code\u003e, when enabled, Dynamic Resource Allocation support partitionable devices allocation. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130764\"\u003ekubernetes/kubernetes#130764\u003c/a\u003e, \u003ca href=\"https://github.com/cici37\"\u003e\u003ccode\u003e@​cici37\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Scheduling, Storage and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded DRA support for a \u0026quot;one-of\u0026quot; prioritized list of selection criteria to satisfy a device request in a resource claim. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/128586\"\u003ekubernetes/kubernetes#128586\u003c/a\u003e, \u003ca href=\"https://github.com/mortent\"\u003e\u003ccode\u003e@​mortent\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Etcd, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a \u003ccode\u003e/flagz\u003c/code\u003e endpoint for kubelet endpoint (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/128857\"\u003ekubernetes/kubernetes#128857\u003c/a\u003e, \u003ca href=\"https://github.com/zhifei92\"\u003e\u003ccode\u003e@​zhifei92\u003c/code\u003e\u003c/a\u003e) [SIG Architecture, Instrumentation and Node]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a new \u003ccode\u003etolerance\u003c/code\u003e field to HorizontalPodAutoscaler, overriding the cluster-wide default. Enabled via the HPAConfigurableTolerance alpha feature gate. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130797\"\u003ekubernetes/kubernetes#130797\u003c/a\u003e, \u003ca href=\"https://github.com/jm-franc\"\u003e\u003ccode\u003e@​jm-franc\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Autoscaling, Etcd, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for configuring custom stop signals with a new StopSignal container lifecycle (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130556\"\u003ekubernetes/kubernetes#130556\u003c/a\u003e, \u003ca href=\"https://github.com/sreeram-venkitesh\"\u003e\u003ccode\u003e@​sreeram-venkitesh\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for in-place vertical scaling of Pods with sidecars (containers defined within \u003ccode\u003einitContainers\u003c/code\u003e where the \u003ccode\u003erestartPolicy\u003c/code\u003e is set to \u003ccode\u003eAlways\u003c/code\u003e). (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/128367\"\u003ekubernetes/kubernetes#128367\u003c/a\u003e, \u003ca href=\"https://github.com/vivzbansal\"\u003e\u003ccode\u003e@​vivzbansal\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Apps, CLI, Node, Scheduling and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCPUManager Policy Options support is GA (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130535\"\u003ekubernetes/kubernetes#130535\u003c/a\u003e, \u003ca href=\"https://github.com/ffromani\"\u003e\u003ccode\u003e@​ffromani\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChanged the Pod API to support \u003ccode\u003ehugepage resources\u003c/code\u003e at \u003ccode\u003espec\u003c/code\u003e level for pod-level resources. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/130577\"\u003ekubernetes/kubernetes#130577\u003c/a\u003e, \u003ca href=\"https://github.com/KevinTMtz\"\u003e\u003ccode\u003e@​KevinTMtz\u003c/code\u003e\u003c/a\u003e) [SIG Apps, CLI, Node, Scheduling, Storage and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA API: The maximum number of pods that can use the same ResourceClaim is now 256 instead of 32. Downgrading a cluster where this relaxed limit is in use to Kubernetes 1.32.0 is not supported, as version 1.32.0 would refuse to update ResourceClaims with more than 32 entries in the \u003ccode\u003estatus.reservedFor\u003c/code\u003e field. (\u003ca href=\"https://redirect.github.com/kubernetes/kubernetes/pull/129543\"\u003ekubernetes/kubernetes#129543\u003c/a\u003e, \u003ca href=\"https://github.com/pohly\"\u003e\u003ccode\u003e@​pohly\u003c/code\u003e\u003c/a\u003e) [SIG API Machinery, Node and Testing]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDRA: CEL expressions using attribute strings exceeded the cost limit because their cost estimation was incomple...\n\n_Description has been truncated_","html_url":"https://github.com/SwissDataScienceCenter/renku-data-services/pull/1164","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/SwissDataScienceCenter%2Frenku-data-services/issues/1164","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1164/packages"}},{"old_version":"4.7.2","new_version":"5.0.0","update_type":"major","path":null,"pr_created_at":"2025-12-01T14:17:33.000Z","version_change":"4.7.2 → 5.0.0","issue":{"uuid":"3681223713","node_id":"PR_kwDODoBT_M62W842","number":114,"state":"open","title":"build(deps): bump syrupy from 4.7.2 to 5.0.0","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":6,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-12-01T14:17:33.000Z","updated_at":"2025-12-01T14:19:19.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps)","packages":[{"name":"syrupy","old_version":"4.7.2","new_version":"5.0.0","repository_url":"https://github.com/syrupy-project/syrupy"}],"path":null,"ecosystem":"pip"},"body":"Bumps [syrupy](https://github.com/syrupy-project/syrupy) from 4.7.2 to 5.0.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/syrupy-project/syrupy/releases\"\u003esyrupy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.0.0\u003c/h2\u003e\n\u003ch2\u003eSyrupy 5.0.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e(2025-09-28)\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eThis release introduces new features, bug fixes, and a major license change. It also includes several \u003cstrong\u003ebreaking changes\u003c/strong\u003e, so please review those carefully before upgrading.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch3\u003eNew Features ✨\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eAdd \u003ccode\u003e--snapshot-dirname\u003c/code\u003e option:\u003c/strong\u003e A new option, \u003ccode\u003e--snapshot-dirname\u003c/code\u003e, is now available to change the default directory snapshots are stored in. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003e#810\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003esyrupy-project/syrupy#810\u003c/a\u003e))\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRemove private underscore prefix:\u003c/strong\u003e The unnecessary underscore prefixes have been removed from public methods for better code clarity. ([\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003e8cfc905\u003c/a\u003e](\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003ehttps://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\u003c/a\u003e))\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch3\u003eBug Fixes 🐛\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFix terminal summary for \u003ccode\u003exdist\u003c/code\u003e workers:\u003c/strong\u003e Resolves an issue where the terminal summary was not displayed correctly with \u003ccode\u003exdist\u003c/code\u003e workers. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/978\"\u003e#978\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/978\"\u003esyrupy-project/syrupy#978\u003c/a\u003e))\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eEnsure \u003ccode\u003epytest_assertrepr_compare\u003c/code\u003e hook is called first:\u003c/strong\u003e This change ensures that Syrupy's assertion hook takes precedence, improving compatibility with other plugins. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/984\"\u003e#984\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/984\"\u003esyrupy-project/syrupy#984\u003c/a\u003e))\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch3\u003eBreaking Changes ⚠️\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eLicense change:\u003c/strong\u003e The project has switched to the more permissive \u003cstrong\u003eMIT license\u003c/strong\u003e. This change applies to all versions from 5.0.0 and beyond. If you need to use the previous Apache 2.0 license, you must continue to use Syrupy versions 4.x or earlier. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/945\"\u003e#945\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/945\"\u003esyrupy-project/syrupy#945\u003c/a\u003e))\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003ePython and pytest version requirements:\u003c/strong\u003e Syrupy now requires \u003cstrong\u003ePython 3.10\u003c/strong\u003e or higher. Support for Python 3.8 has been dropped as it reached its end of life in October 2024. The minimum required version of \u003cstrong\u003epytest is v8\u003c/strong\u003e. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/904\"\u003e#904\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/904\"\u003esyrupy-project/syrupy#904\u003c/a\u003e), [\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003e#1024\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003esyrupy-project/syrupy#1024\u003c/a\u003e))\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eMethod and constant name changes:\u003c/strong\u003e Several methods and constants have been renamed for improved clarity and to align with public API standards.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ccode\u003eSnapshotCollectionStorage\u003c/code\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e_read_snapshot_collection\u003c/code\u003e -\u0026gt; \u003ccode\u003eread_snapshot_collection\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_read_snapshot_data_from_location\u003c/code\u003e -\u0026gt; \u003ccode\u003eread_snapshot_data_from_location\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_write_snapshot_collection\u003c/code\u003e -\u0026gt; \u003ccode\u003ewrite_snapshot_collection\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_get_file_basename\u003c/code\u003e -\u0026gt; \u003ccode\u003eget_file_basename\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_file_extension\u003c/code\u003e -\u0026gt; \u003ccode\u003efile_extension\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ccode\u003eAmberDataSerializer\u003c/code\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e_snapshot_sort_key\u003c/code\u003e -\u0026gt; \u003ccode\u003esnapshot_sort_key\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eConstants\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eSNAPSHOT_EMPTY_FOSSIL_KEY\u003c/code\u003e -\u0026gt; \u003ccode\u003eSNAPSHOT_EMPTY_COLLECTION_KEY\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSNAPSHOT_UNKNOWN_FOSSIL_KEY\u003c/code\u003e -\u0026gt; \u003ccode\u003eSNAPSHOT_UNKNOWN_COLLECTION_KEY\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSNAPSHOT_DIRNAME\u003c/code\u003e has been removed in favour of the property on the \u003ccode\u003eSnapshotCollectionStorage\u003c/code\u003e class and associated CLI option.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\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/paul-ollis\"\u003e\u003ccode\u003e@​paul-ollis\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/978\"\u003esyrupy-project/syrupy#978\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rahuliyer95\"\u003e\u003ccode\u003e@​rahuliyer95\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/984\"\u003esyrupy-project/syrupy#984\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\"\u003ehttps://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/syrupy-project/syrupy/blob/main/CHANGELOG.md\"\u003esyrupy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\"\u003e5.0.0\u003c/a\u003e (2025-09-28)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch to MIT license (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/945\"\u003e#945\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/d74d340f8884fdb04831fcf77f29d66e098aaa66\"\u003ed74d340\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlock terminal summary for xdist workers. (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/978\"\u003e#978\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/33a848df7c4a33577e4057eae5792f6592ad3172\"\u003e33a848d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eensure syrupy's pytest_assertrepr_compare hook is called first. (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/984\"\u003e#984\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/eb0024d339248b7e1f76fdb65ed30ba3e19c0857\"\u003eeb0024d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove incorrect private underscore prefix from public methods (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003e8cfc905\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd --snapshot-dirname option, close \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003e#810\u003c/a\u003e (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/27135c7c861441962c2cedde841f3e4fed2949fd\"\u003e27135c7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edrop support for py3.8, raise min. pytest to v8 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/904\"\u003e#904\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/a879ff15ad82e59a2f387db0822be072a5684f2f\"\u003ea879ff1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate min. python version to 3.10 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003e#1024\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/16b4113cd56da96e84a90ebda0919e9b8dd35954\"\u003e16b4113\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe following methods have been renamed:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSnapshotCollectionStorage\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e_read_snapshot_collection -\u0026gt; read_snapshot_collection\u003c/li\u003e\n\u003cli\u003e_read_snapshot_data_from_location -\u0026gt; read_snapshot_data_from_location\u003c/li\u003e\n\u003cli\u003e_write_snapshot_collection -\u0026gt; write_snapshot_collection\u003c/li\u003e\n\u003cli\u003e_get_file_basename -\u0026gt; get_file_basename\u003c/li\u003e\n\u003cli\u003e_file_extension -\u0026gt; file_extension\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eAmberDataSerializer\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e_snapshot_sort_key -\u0026gt; snapshot_sort_key\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRenamed constants to improve clarity:\u003c/p\u003e\n\u003cp\u003econstants\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSNAPSHOT_EMPTY_FOSSIL_KEY -\u0026gt; SNAPSHOT_EMPTY_COLLECTION_KEY\u003c/li\u003e\n\u003cli\u003eSNAPSHOT_UNKNOWN_FOSSIL_KEY -\u0026gt; SNAPSHOT_UNKNOWN_COLLECTION_KEY\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003eMin. python version is now 3.10.\u003c/li\u003e\n\u003cli\u003eThe Syrupy project is switching from Apache 2.0 to a more permissive MIT license. By using Syrupy \u0026gt;=5, you agree to abide by this new license. You can continue to use Syrupy v1 through v4 under Apache 2.0.\u003c/li\u003e\n\u003cli\u003eDrops support for Python 3.8 which is end of life as of October 2024. Raises the minimum version of pytest to v8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.9.0...v4.9.1\"\u003e4.9.1\u003c/a\u003e (2025-03-24)\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/syrupy-project/syrupy/commit/9b4cc82e50e29f84dcb55054c8eab281c90a280b\"\u003e\u003ccode\u003e9b4cc82\u003c/code\u003e\u003c/a\u003e chore(release): 5.0.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/af15385acd5bf617815aa0d19e2df907bbbd2d83\"\u003e\u003ccode\u003eaf15385\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1027\"\u003e#1027\u003c/a\u003e from syrupy-project/test_py_3_14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/461ad224d192a18296934e2434b9302fb0984007\"\u003e\u003ccode\u003e461ad22\u003c/code\u003e\u003c/a\u003e chore: test against py3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/95ffbcb085eb920920a7241c814a55c1e948f148\"\u003e\u003ccode\u003e95ffbcb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1026\"\u003e#1026\u003c/a\u003e from syrupy-project/rename_methods\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/27135c7c861441962c2cedde841f3e4fed2949fd\"\u003e\u003ccode\u003e27135c7\u003c/code\u003e\u003c/a\u003e feat: add --snapshot-dirname option, close \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003e#810\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003e\u003ccode\u003e8cfc905\u003c/code\u003e\u003c/a\u003e refactor: remove incorrect private underscore prefix from public methods\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/e1dbf5dc2a1148480aa9601a5e1c21928954b8cc\"\u003e\u003ccode\u003ee1dbf5d\u003c/code\u003e\u003c/a\u003e chore(deps): update python docker tag to v3.13.7 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1025\"\u003e#1025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/16b4113cd56da96e84a90ebda0919e9b8dd35954\"\u003e\u003ccode\u003e16b4113\u003c/code\u003e\u003c/a\u003e feat: update min. python version to 3.10 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003e#1024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/434c63fdabbaaf2372ec94c8968fe025c4a306e6\"\u003e\u003ccode\u003e434c63f\u003c/code\u003e\u003c/a\u003e chore(deps): update codecov/codecov-action action to v5.5.1 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1021\"\u003e#1021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/b2e49bad7741f06c17a0be9f4608c0db5db13cf5\"\u003e\u003ccode\u003eb2e49ba\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency pytest to v8.4.2 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1022\"\u003e#1022\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.7.2...v5.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=syrupy\u0026package-manager=uv\u0026previous-version=4.7.2\u0026new-version=5.0.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/spraakbanken/json-arrays-py/pull/114","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/spraakbanken%2Fjson-arrays-py/issues/114","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/114/packages"}},{"old_version":"4.7.2","new_version":"5.0.0","update_type":"major","path":null,"pr_created_at":"2025-11-07T13:00:26.000Z","version_change":"4.7.2 → 5.0.0","issue":{"uuid":"3600243545","node_id":"PR_kwDOLGfNoc6yIYKd","number":61,"state":"closed","title":"build(deps): bump syrupy from 4.7.2 to 5.0.0","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-11-21T10:14:41.000Z","author_association":null,"state_reason":null,"created_at":"2025-11-07T13:00:26.000Z","updated_at":"2025-11-21T10:14:43.000Z","time_to_close":1199655,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps)","packages":[{"name":"syrupy","old_version":"4.7.2","new_version":"5.0.0","repository_url":"https://github.com/syrupy-project/syrupy"}],"path":null,"ecosystem":"pip"},"body":"Bumps [syrupy](https://github.com/syrupy-project/syrupy) from 4.7.2 to 5.0.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/syrupy-project/syrupy/releases\"\u003esyrupy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.0.0\u003c/h2\u003e\n\u003ch2\u003eSyrupy 5.0.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e(2025-09-28)\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eThis release introduces new features, bug fixes, and a major license change. It also includes several \u003cstrong\u003ebreaking changes\u003c/strong\u003e, so please review those carefully before upgrading.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch3\u003eNew Features ✨\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eAdd \u003ccode\u003e--snapshot-dirname\u003c/code\u003e option:\u003c/strong\u003e A new option, \u003ccode\u003e--snapshot-dirname\u003c/code\u003e, is now available to change the default directory snapshots are stored in. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003e#810\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003esyrupy-project/syrupy#810\u003c/a\u003e))\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRemove private underscore prefix:\u003c/strong\u003e The unnecessary underscore prefixes have been removed from public methods for better code clarity. ([\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003e8cfc905\u003c/a\u003e](\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003ehttps://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\u003c/a\u003e))\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch3\u003eBug Fixes 🐛\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFix terminal summary for \u003ccode\u003exdist\u003c/code\u003e workers:\u003c/strong\u003e Resolves an issue where the terminal summary was not displayed correctly with \u003ccode\u003exdist\u003c/code\u003e workers. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/978\"\u003e#978\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/978\"\u003esyrupy-project/syrupy#978\u003c/a\u003e))\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eEnsure \u003ccode\u003epytest_assertrepr_compare\u003c/code\u003e hook is called first:\u003c/strong\u003e This change ensures that Syrupy's assertion hook takes precedence, improving compatibility with other plugins. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/984\"\u003e#984\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/984\"\u003esyrupy-project/syrupy#984\u003c/a\u003e))\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch3\u003eBreaking Changes ⚠️\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eLicense change:\u003c/strong\u003e The project has switched to the more permissive \u003cstrong\u003eMIT license\u003c/strong\u003e. This change applies to all versions from 5.0.0 and beyond. If you need to use the previous Apache 2.0 license, you must continue to use Syrupy versions 4.x or earlier. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/945\"\u003e#945\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/945\"\u003esyrupy-project/syrupy#945\u003c/a\u003e))\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003ePython and pytest version requirements:\u003c/strong\u003e Syrupy now requires \u003cstrong\u003ePython 3.10\u003c/strong\u003e or higher. Support for Python 3.8 has been dropped as it reached its end of life in October 2024. The minimum required version of \u003cstrong\u003epytest is v8\u003c/strong\u003e. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/904\"\u003e#904\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/904\"\u003esyrupy-project/syrupy#904\u003c/a\u003e), [\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003e#1024\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003esyrupy-project/syrupy#1024\u003c/a\u003e))\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eMethod and constant name changes:\u003c/strong\u003e Several methods and constants have been renamed for improved clarity and to align with public API standards.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ccode\u003eSnapshotCollectionStorage\u003c/code\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e_read_snapshot_collection\u003c/code\u003e -\u0026gt; \u003ccode\u003eread_snapshot_collection\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_read_snapshot_data_from_location\u003c/code\u003e -\u0026gt; \u003ccode\u003eread_snapshot_data_from_location\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_write_snapshot_collection\u003c/code\u003e -\u0026gt; \u003ccode\u003ewrite_snapshot_collection\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_get_file_basename\u003c/code\u003e -\u0026gt; \u003ccode\u003eget_file_basename\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_file_extension\u003c/code\u003e -\u0026gt; \u003ccode\u003efile_extension\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ccode\u003eAmberDataSerializer\u003c/code\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e_snapshot_sort_key\u003c/code\u003e -\u0026gt; \u003ccode\u003esnapshot_sort_key\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eConstants\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eSNAPSHOT_EMPTY_FOSSIL_KEY\u003c/code\u003e -\u0026gt; \u003ccode\u003eSNAPSHOT_EMPTY_COLLECTION_KEY\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSNAPSHOT_UNKNOWN_FOSSIL_KEY\u003c/code\u003e -\u0026gt; \u003ccode\u003eSNAPSHOT_UNKNOWN_COLLECTION_KEY\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSNAPSHOT_DIRNAME\u003c/code\u003e has been removed in favour of the property on the \u003ccode\u003eSnapshotCollectionStorage\u003c/code\u003e class and associated CLI option.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\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/paul-ollis\"\u003e\u003ccode\u003e@​paul-ollis\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/978\"\u003esyrupy-project/syrupy#978\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rahuliyer95\"\u003e\u003ccode\u003e@​rahuliyer95\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/984\"\u003esyrupy-project/syrupy#984\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\"\u003ehttps://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/syrupy-project/syrupy/blob/main/CHANGELOG.md\"\u003esyrupy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\"\u003e5.0.0\u003c/a\u003e (2025-09-28)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch to MIT license (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/945\"\u003e#945\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/d74d340f8884fdb04831fcf77f29d66e098aaa66\"\u003ed74d340\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlock terminal summary for xdist workers. (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/978\"\u003e#978\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/33a848df7c4a33577e4057eae5792f6592ad3172\"\u003e33a848d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eensure syrupy's pytest_assertrepr_compare hook is called first. (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/984\"\u003e#984\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/eb0024d339248b7e1f76fdb65ed30ba3e19c0857\"\u003eeb0024d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove incorrect private underscore prefix from public methods (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003e8cfc905\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd --snapshot-dirname option, close \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003e#810\u003c/a\u003e (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/27135c7c861441962c2cedde841f3e4fed2949fd\"\u003e27135c7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edrop support for py3.8, raise min. pytest to v8 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/904\"\u003e#904\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/a879ff15ad82e59a2f387db0822be072a5684f2f\"\u003ea879ff1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate min. python version to 3.10 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003e#1024\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/16b4113cd56da96e84a90ebda0919e9b8dd35954\"\u003e16b4113\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe following methods have been renamed:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSnapshotCollectionStorage\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e_read_snapshot_collection -\u0026gt; read_snapshot_collection\u003c/li\u003e\n\u003cli\u003e_read_snapshot_data_from_location -\u0026gt; read_snapshot_data_from_location\u003c/li\u003e\n\u003cli\u003e_write_snapshot_collection -\u0026gt; write_snapshot_collection\u003c/li\u003e\n\u003cli\u003e_get_file_basename -\u0026gt; get_file_basename\u003c/li\u003e\n\u003cli\u003e_file_extension -\u0026gt; file_extension\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eAmberDataSerializer\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e_snapshot_sort_key -\u0026gt; snapshot_sort_key\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRenamed constants to improve clarity:\u003c/p\u003e\n\u003cp\u003econstants\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSNAPSHOT_EMPTY_FOSSIL_KEY -\u0026gt; SNAPSHOT_EMPTY_COLLECTION_KEY\u003c/li\u003e\n\u003cli\u003eSNAPSHOT_UNKNOWN_FOSSIL_KEY -\u0026gt; SNAPSHOT_UNKNOWN_COLLECTION_KEY\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003eMin. python version is now 3.10.\u003c/li\u003e\n\u003cli\u003eThe Syrupy project is switching from Apache 2.0 to a more permissive MIT license. By using Syrupy \u0026gt;=5, you agree to abide by this new license. You can continue to use Syrupy v1 through v4 under Apache 2.0.\u003c/li\u003e\n\u003cli\u003eDrops support for Python 3.8 which is end of life as of October 2024. Raises the minimum version of pytest to v8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.9.0...v4.9.1\"\u003e4.9.1\u003c/a\u003e (2025-03-24)\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/syrupy-project/syrupy/commit/9b4cc82e50e29f84dcb55054c8eab281c90a280b\"\u003e\u003ccode\u003e9b4cc82\u003c/code\u003e\u003c/a\u003e chore(release): 5.0.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/af15385acd5bf617815aa0d19e2df907bbbd2d83\"\u003e\u003ccode\u003eaf15385\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1027\"\u003e#1027\u003c/a\u003e from syrupy-project/test_py_3_14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/461ad224d192a18296934e2434b9302fb0984007\"\u003e\u003ccode\u003e461ad22\u003c/code\u003e\u003c/a\u003e chore: test against py3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/95ffbcb085eb920920a7241c814a55c1e948f148\"\u003e\u003ccode\u003e95ffbcb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1026\"\u003e#1026\u003c/a\u003e from syrupy-project/rename_methods\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/27135c7c861441962c2cedde841f3e4fed2949fd\"\u003e\u003ccode\u003e27135c7\u003c/code\u003e\u003c/a\u003e feat: add --snapshot-dirname option, close \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003e#810\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003e\u003ccode\u003e8cfc905\u003c/code\u003e\u003c/a\u003e refactor: remove incorrect private underscore prefix from public methods\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/e1dbf5dc2a1148480aa9601a5e1c21928954b8cc\"\u003e\u003ccode\u003ee1dbf5d\u003c/code\u003e\u003c/a\u003e chore(deps): update python docker tag to v3.13.7 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1025\"\u003e#1025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/16b4113cd56da96e84a90ebda0919e9b8dd35954\"\u003e\u003ccode\u003e16b4113\u003c/code\u003e\u003c/a\u003e feat: update min. python version to 3.10 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003e#1024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/434c63fdabbaaf2372ec94c8968fe025c4a306e6\"\u003e\u003ccode\u003e434c63f\u003c/code\u003e\u003c/a\u003e chore(deps): update codecov/codecov-action action to v5.5.1 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1021\"\u003e#1021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/b2e49bad7741f06c17a0be9f4608c0db5db13cf5\"\u003e\u003ccode\u003eb2e49ba\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency pytest to v8.4.2 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1022\"\u003e#1022\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.7.2...v5.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=syrupy\u0026package-manager=uv\u0026previous-version=4.7.2\u0026new-version=5.0.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/spraakbanken/sparv-sbx-ocr-correction-viklofg-sweocr/pull/61","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/spraakbanken%2Fsparv-sbx-ocr-correction-viklofg-sweocr/issues/61","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/61/packages"}},{"old_version":"4.9.1","new_version":"5.0.0","update_type":"major","path":"/requirements","pr_created_at":"2025-11-01T21:01:44.000Z","version_change":"4.9.1 → 5.0.0","issue":{"uuid":"3578449189","node_id":"PR_kwDOAU-ALs6xAkBS","number":1308,"state":"closed","title":"Bump the all-deps group in /requirements with 7 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-12-02T01:12:03.000Z","author_association":null,"state_reason":null,"created_at":"2025-11-01T21:01:44.000Z","updated_at":"2025-12-02T01:12:04.000Z","time_to_close":2607019,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"all-deps","update_count":7,"packages":[{"name":"django-filter","old_version":"25.1","new_version":"25.2","repository_url":"https://github.com/carltongibson/django-filter"},{"name":"sphinx","old_version":"8.1.3","new_version":"8.2.3","repository_url":"https://github.com/sphinx-doc/sphinx"},{"name":"flake8-bugbear","old_version":"24.12.12","new_version":"25.10.21","repository_url":"https://github.com/PyCQA/flake8-bugbear"},{"name":"flake8-isort","old_version":"6.1.2","new_version":"7.0.0","repository_url":"https://github.com/gforcada/flake8-isort"},{"name":"isort","old_version":"6.1.0","new_version":"7.0.0","repository_url":"https://github.com/PyCQA/isort"},{"name":"faker","old_version":"37.8.0","new_version":"37.12.0","repository_url":"https://github.com/joke2k/faker"},{"name":"syrupy","old_version":"4.9.1","new_version":"5.0.0","repository_url":"https://github.com/syrupy-project/syrupy"}],"path":"/requirements","ecosystem":"pip"},"body":"Bumps the all-deps group in /requirements with 7 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [django-filter](https://github.com/carltongibson/django-filter) | `25.1` | `25.2` |\n| [sphinx](https://github.com/sphinx-doc/sphinx) | `8.1.3` | `8.2.3` |\n| [flake8-bugbear](https://github.com/PyCQA/flake8-bugbear) | `24.12.12` | `25.10.21` |\n| [flake8-isort](https://github.com/gforcada/flake8-isort) | `6.1.2` | `7.0.0` |\n| [isort](https://github.com/PyCQA/isort) | `6.1.0` | `7.0.0` |\n| [faker](https://github.com/joke2k/faker) | `37.8.0` | `37.12.0` |\n| [syrupy](https://github.com/syrupy-project/syrupy) | `4.9.1` | `5.0.0` |\n\nUpdates `django-filter` from 25.1 to 25.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/carltongibson/django-filter/blob/main/CHANGES.rst\"\u003edjango-filter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 25.2 (2025-10-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded testing for Django 6.0.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped support for Django \u0026lt;5.2 LTS\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped support for Python 3.9.\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/carltongibson/django-filter/commit/17ec565554bea4119ad74d2ffccdfb9740d9845b\"\u003e\u003ccode\u003e17ec565\u003c/code\u003e\u003c/a\u003e Bumped version for 25.2 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/9b4b8fdbfe84d471b2e69b7b28faacdd0dca2661\"\u003e\u003ccode\u003e9b4b8fd\u003c/code\u003e\u003c/a\u003e Updated testing for Django 6.0. (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1730\"\u003e#1730\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/1b07b3e4c22354af31f3dcbaf4337566d7803fd4\"\u003e\u003ccode\u003e1b07b3e\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 in the github-actions group (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1726\"\u003e#1726\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/27a116864880a503b869c87a61e3e3ee597dae42\"\u003e\u003ccode\u003e27a1168\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1722\"\u003e#1722\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/7f59b6f092dadee749540a93c760f84fe5e08b9f\"\u003e\u003ccode\u003e7f59b6f\u003c/code\u003e\u003c/a\u003e Add drf as optional dependencies (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1724\"\u003e#1724\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/635343ec55c9928bfa297314711df77fa83ff6c7\"\u003e\u003ccode\u003e635343e\u003c/code\u003e\u003c/a\u003e Add reference anchors to filter types to facilitate intersphinx refs (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1706\"\u003e#1706\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/7b3176e2ea05a42f2684296733004579f6dcece5\"\u003e\u003ccode\u003e7b3176e\u003c/code\u003e\u003c/a\u003e Document steps for postgres full text search (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1704\"\u003e#1704\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/carltongibson/django-filter/compare/25.1...25.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx` from 8.1.3 to 8.2.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sphinx-doc/sphinx/releases\"\u003esphinx's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eSphinx 8.2.3\u003c/h2\u003e\n\u003cp\u003eChangelog: \u003ca href=\"https://www.sphinx-doc.org/en/master/changes/8.2.html\"\u003ehttps://www.sphinx-doc.org/en/master/changes/8.2.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eSphinx 8.2.2\u003c/h2\u003e\n\u003cp\u003eChangelog: \u003ca href=\"https://www.sphinx-doc.org/en/master/changes/8.2.html\"\u003ehttps://www.sphinx-doc.org/en/master/changes/8.2.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eSphinx 8.2.1\u003c/h2\u003e\n\u003cp\u003eChangelog: \u003ca href=\"https://www.sphinx-doc.org/en/master/changes/8.2.html\"\u003ehttps://www.sphinx-doc.org/en/master/changes/8.2.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eSphinx 8.2.0\u003c/h2\u003e\n\u003cp\u003eChangelog: \u003ca href=\"https://www.sphinx-doc.org/en/master/changes/8.2.html\"\u003ehttps://www.sphinx-doc.org/en/master/changes/8.2.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/13000\"\u003e#13000\u003c/a\u003e: Drop Python 3.10 support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eIncompatible changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/13044\"\u003e#13044\u003c/a\u003e: Remove the internal and undocumented \u003ccode\u003ehas_equations\u003c/code\u003e data\nfrom the \u003ccode\u003eMathDomain\u003c/code\u003e domain.\nThe undocumented \u003ccode\u003eMathDomain.has_equations\u003c/code\u003e method\nnow unconditionally returns \u003ccode\u003eTrue\u003c/code\u003e.\nThese are replaced by the \u003ccode\u003ehas_maths_elements\u003c/code\u003e key of the page context dict.\nPatch by Adam Turner.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/13227\"\u003e#13227\u003c/a\u003e: HTML output for sequences of keys in the \u003ccode\u003ekbd\u003c/code\u003e role\nno longer uses a \u003ccode\u003e\u0026lt;kbd class=\u0026quot;kbd compound\u0026quot;\u0026gt;\u003c/code\u003e element to wrap\nthe keys and separators, but places them directly in the relevant parent node.\nThis means that CSS rulesets targeting \u003ccode\u003ekbd.compound\u003c/code\u003e or \u003ccode\u003e.kbd.compound\u003c/code\u003e\nwill no longer have any effect.\nPatch by Adam Turner.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecated\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/13037\"\u003e#13037\u003c/a\u003e: Deprecate the \u003ccode\u003eSingleHTMLBuilder.fix_refuris\u003c/code\u003e method.\nPatch by James Addison.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/13083\"\u003e#13083\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/13330\"\u003e#13330\u003c/a\u003e: Un-deprecate \u003ccode\u003esphinx.util.import_object\u003c/code\u003e.\nPatch by Matthias Geier.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFeatures added\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/13173\"\u003e#13173\u003c/a\u003e: Add a new \u003ccode\u003eduplicate_declaration\u003c/code\u003e warning type,\nwith \u003ccode\u003eduplicate_declaration.c\u003c/code\u003e and \u003ccode\u003eduplicate_declaration.cpp\u003c/code\u003e subtypes.\nPatch by Julien Lecomte and Adam Turner.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/11824\"\u003e#11824\u003c/a\u003e: linkcode: Allow extensions to add support for a domain by defining\nthe keys that should be present.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/847ad0c991e21db9daa02fec09acbd456f353300\"\u003e\u003ccode\u003e847ad0c\u003c/code\u003e\u003c/a\u003e Bump to 8.2.3 final\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/4091fe335444236181f765adaf9e9bf0a2bcc735\"\u003e\u003ccode\u003e4091fe3\u003c/code\u003e\u003c/a\u003e Add CHANGES for Sphinx 8.2.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/c84c21ff935e840f67413e9397fc6a75cb87e529\"\u003e\u003ccode\u003ec84c21f\u003c/code\u003e\u003c/a\u003e Correct the date for Sphinx 8.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/b3881bb23471584d3999ecbb03cb20184da22738\"\u003e\u003ccode\u003eb3881bb\u003c/code\u003e\u003c/a\u003e Fix _CurrentDocument membership testing with '{c,cpp}:parent_symbol'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/92b5303219101dee99ca50c245c5eb65257d4580\"\u003e\u003ccode\u003e92b5303\u003c/code\u003e\u003c/a\u003e Define \u003ccode\u003e_StrPath.__radd__()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/5739a9d58d2e5005259718d615d4c8ec3971173a\"\u003e\u003ccode\u003e5739a9d\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/ee96ef304265d9969488f7bcd09b37826ac7c43c\"\u003e\u003ccode\u003eee96ef3\u003c/code\u003e\u003c/a\u003e Bump to 8.2.2 final\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/3e0021c7aa4e1f1b91d035d10b5f0b3a66b4f206\"\u003e\u003ccode\u003e3e0021c\u003c/code\u003e\u003c/a\u003e Move Sphinx 8.2.2 CHANGES to doc/changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/1a62f3170ad7f2fe3f1f1bfc1d22e0e402e8e274\"\u003e\u003ccode\u003e1a62f31\u003c/code\u003e\u003c/a\u003e Fix apidoc extension not setting default header/package name (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/13391\"\u003e#13391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx/commit/13d2899666c9e492809adb690b9a66f7f7064ce6\"\u003e\u003ccode\u003e13d2899\u003c/code\u003e\u003c/a\u003e Replace \u003ccode\u003eNone\u003c/code\u003e filename with \u003ccode\u003e''\u003c/code\u003e in \u003ccode\u003eSphinx.add_js_file()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx/issues/13402\"\u003e#13402\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sphinx-doc/sphinx/compare/v8.1.3...v8.2.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flake8-bugbear` from 24.12.12 to 25.10.21\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/PyCQA/flake8-bugbear/releases\"\u003eflake8-bugbear's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.10.21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB042: New check for reminding to call super().\u003cstrong\u003einit\u003c/strong\u003e in custom exceptions\u003c/li\u003e\n\u003cli\u003eB028: Skip if skip_file_prefixes is used (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/503\"\u003e#503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB912: New check for \u003ccode\u003emap()\u003c/code\u003e without an explicit \u003ccode\u003estrict=\u003c/code\u003e parameter. (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/516\"\u003e#516\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd python3.14 Support / CI\u003c/li\u003e\n\u003cli\u003eRemove python3.9 support / CI\u003c/li\u003e\n\u003cli\u003eflake8-bugbear now requires at least Python 3.10, like the next release of flake8\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/cdd75f1942294a152f864c978376f59b2ec08558\"\u003e\u003ccode\u003ecdd75f1\u003c/code\u003e\u003c/a\u003e Update CHANGES + move to version 25.10.21 to release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/4601fe6e1993d7a8309dd26105a55d8c77aeae0d\"\u003e\u003ccode\u003e4601fe6\u003c/code\u003e\u003c/a\u003e Drop 3.9 support + add 3.14 CI (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/524\"\u003e#524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/39699611b4b399a6e81d726e76c58cbcdffa25ab\"\u003e\u003ccode\u003e3969961\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/523\"\u003e#523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/6276149b6807114307569d67be8516dae306beab\"\u003e\u003ccode\u003e6276149\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/522\"\u003e#522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/d264420dec52a034efe05f160c4ac157f053c6e8\"\u003e\u003ccode\u003ed264420\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/520\"\u003e#520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/6ce427def45cffbf8b12a83649526a52a7a32c58\"\u003e\u003ccode\u003e6ce427d\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/519\"\u003e#519\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/5bae5d98084913eccc100f980101084564eb1a54\"\u003e\u003ccode\u003e5bae5d9\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/518\"\u003e#518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/67f82f1d221690ad2a1d6692a5f06b5d37c55423\"\u003e\u003ccode\u003e67f82f1\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/515\"\u003e#515\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/ca05a35ebf84f44a137e4aae3000cb3d14d83e96\"\u003e\u003ccode\u003eca05a35\u003c/code\u003e\u003c/a\u003e B912: check if map calls have strict flag (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/517\"\u003e#517\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/5962bbd925aebae15c1ea5cf58d347a33c74265c\"\u003e\u003ccode\u003e5962bbd\u003c/code\u003e\u003c/a\u003e Add B042 into README\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/PyCQA/flake8-bugbear/compare/24.12.12...25.10.21\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flake8-isort` from 6.1.2 to 7.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/gforcada/flake8-isort/blob/main/CHANGES.rst\"\u003eflake8-isort's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.0.0 (2025-10-25)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd support for isort 7.0.0.\n[gforcada]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrop python 3.9 support and add Python 3.14 support.\n[gforcada]\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBump pypy minimum version to 3.10.\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/gforcada/flake8-isort/commit/a34569a71e9fe8560357a8c2d62607819aed6982\"\u003e\u003ccode\u003ea34569a\u003c/code\u003e\u003c/a\u003e Preparing release 7.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gforcada/flake8-isort/commit/c5c3e7e51e6f099978b9e491888e2a76ac5368b4\"\u003e\u003ccode\u003ec5c3e7e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gforcada/flake8-isort/issues/158\"\u003e#158\u003c/a\u003e from gforcada/py314\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gforcada/flake8-isort/commit/7d2b96c5ddd36f3b8cb9b00ff8ecefd720dcd9af\"\u003e\u003ccode\u003e7d2b96c\u003c/code\u003e\u003c/a\u003e Update CHANGES\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gforcada/flake8-isort/commit/4aa848c2047858008a17f49f17cab6c11d371d1b\"\u003e\u003ccode\u003e4aa848c\u003c/code\u003e\u003c/a\u003e chore(ci): bump python version for linting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gforcada/flake8-isort/commit/b80c95ab0e3d8cde99a277e291138224e501262b\"\u003e\u003ccode\u003eb80c95a\u003c/code\u003e\u003c/a\u003e fix(ci): bump pypy version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gforcada/flake8-isort/commit/4e5c91e43f69fc8ae292738fc39b65ebfd2bc8ac\"\u003e\u003ccode\u003e4e5c91e\u003c/code\u003e\u003c/a\u003e chore: add Python 3.14, drop 3.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gforcada/flake8-isort/commit/074d53a632a02f024c71c173ebb8e01d9e292c01\"\u003e\u003ccode\u003e074d53a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gforcada/flake8-isort/issues/157\"\u003e#157\u003c/a\u003e from gforcada/gforcada-patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gforcada/flake8-isort/commit/34059b4eb5a7ad5c00199a74969fd3fa214de611\"\u003e\u003ccode\u003e34059b4\u003c/code\u003e\u003c/a\u003e Update CHANGES\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gforcada/flake8-isort/commit/915547f4eba1e8413414c23b2385761ef3090f08\"\u003e\u003ccode\u003e915547f\u003c/code\u003e\u003c/a\u003e Update pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gforcada/flake8-isort/commit/353f45a7dc5679710a271d59afbe264edf4a6cac\"\u003e\u003ccode\u003e353f45a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gforcada/flake8-isort/issues/155\"\u003e#155\u003c/a\u003e from gforcada/maintenance\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/gforcada/flake8-isort/compare/6.1.2...7.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `isort` from 6.1.0 to 7.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/PyCQA/isort/releases\"\u003eisort's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.0.0\u003c/h2\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003ch2\u003e:boom: Breaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2430\"\u003e#2430\u003c/a\u003e) \u003ca href=\"https://github.com/DanielNoord\"\u003e\u003ccode\u003e@​DanielNoord\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:rocket: Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eShow absolute paths in skipped file messages (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2416\"\u003e#2416\u003c/a\u003e) \u003ca href=\"https://github.com/pranlawate\"\u003e\u003ccode\u003e@​pranlawate\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:beetle: Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSome fixes for Python 3.14 (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2433\"\u003e#2433\u003c/a\u003e) \u003ca href=\"https://github.com/DanielNoord\"\u003e\u003ccode\u003e@​DanielNoord\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest on \u003ccode\u003e3.14\u003c/code\u003e and fix any bugs (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2425\"\u003e#2425\u003c/a\u003e) \u003ca href=\"https://github.com/DanielNoord\"\u003e\u003ccode\u003e@​DanielNoord\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate CHANGELOG.md + Fix Formatting and Grammar (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2419\"\u003e#2419\u003c/a\u003e) \u003ca href=\"https://github.com/lukbrew25\"\u003e\u003ccode\u003e@​lukbrew25\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix output of hanging indent for long lines with noqa (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2407\"\u003e#2407\u003c/a\u003e) \u003ca href=\"https://github.com/matan1008\"\u003e\u003ccode\u003e@​matan1008\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:construction_worker: Continuous Integration\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFormat with \u003ccode\u003eruff\u003c/code\u003e instead of \u003ccode\u003eblack\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2432\"\u003e#2432\u003c/a\u003e) \u003ca href=\"https://github.com/DanielNoord\"\u003e\u003ccode\u003e@​DanielNoord\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTarget 3.10 for \u003ccode\u003eruff\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2431\"\u003e#2431\u003c/a\u003e) \u003ca href=\"https://github.com/DanielNoord\"\u003e\u003ccode\u003e@​DanielNoord\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate development dependencies to latest version (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2426\"\u003e#2426\u003c/a\u003e) \u003ca href=\"https://github.com/DanielNoord\"\u003e\u003ccode\u003e@​DanielNoord\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update pre-commit examples to version 6.1.0 (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2413\"\u003e#2413\u003c/a\u003e) \u003ca href=\"https://github.com/pranlawate\"\u003e\u003ccode\u003e@​pranlawate\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSmall cleanup for developer environment (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2418\"\u003e#2418\u003c/a\u003e) \u003ca href=\"https://github.com/DanielNoord\"\u003e\u003ccode\u003e@​DanielNoord\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:package: Dependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump actions/setup-python from 5 to 6 in the github-actions group (\u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2411\"\u003e#2411\u003c/a\u003e) @\u003ca href=\"https://github.com/apps/dependabot\"\u003edependabot[bot]\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/PyCQA/isort/blob/main/CHANGELOG.md\"\u003eisort's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003cp\u003eNOTE: isort follows the \u003ca href=\"https://semver.org/\"\u003esemver\u003c/a\u003e versioning standard.\nFind out more about isort's release policy \u003ca href=\"https://pycqa.github.io/isort/docs/major_releases/release_policy\"\u003ehere\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/PyCQA/isort/commit/0a09c783808cfe77bb3269250f663ff733d23302\"\u003e\u003ccode\u003e0a09c78\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2433\"\u003e#2433\u003c/a\u003e from DanielNoord/python-314\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/isort/commit/0fee794a05b5d0c471ac80bc8943f9843ca29644\"\u003e\u003ccode\u003e0fee794\u003c/code\u003e\u003c/a\u003e Add 3.14 to \u003ccode\u003estdlibds\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/isort/commit/332a1ad0b68bf3a3acac055b0ec3666408b3b425\"\u003e\u003ccode\u003e332a1ad\u003c/code\u003e\u003c/a\u003e Bump \u003ccode\u003ezstandard\u003c/code\u003e for 3.14 compat\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/isort/commit/f756e5653afcf6d79ec4d0240b1868cbebd8fafd\"\u003e\u003ccode\u003ef756e56\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2432\"\u003e#2432\u003c/a\u003e from DanielNoord/ruff-it-up\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/isort/commit/52f5134889d345ff35afdcb86501c8221b804c70\"\u003e\u003ccode\u003e52f5134\u003c/code\u003e\u003c/a\u003e Format with \u003ccode\u003eruff\u003c/code\u003e instead of \u003ccode\u003eblack\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/isort/commit/012aa69fcadb3c89ff92a3d96aa449be7ae6746f\"\u003e\u003ccode\u003e012aa69\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2431\"\u003e#2431\u003c/a\u003e from DanielNoord/ruff-it-up\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/isort/commit/89773dbb371192541092657972a74e9ce0bbbc74\"\u003e\u003ccode\u003e89773db\u003c/code\u003e\u003c/a\u003e Target 3.10 with \u003ccode\u003eruff\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/isort/commit/933e382f98a0c77b4c6e33c4e3ef12bd57192884\"\u003e\u003ccode\u003e933e382\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/PyCQA/isort/issues/2430\"\u003e#2430\u003c/a\u003e from DanielNoord/drop-39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/isort/commit/8b6e00cbe643a216da57fed4baa282d0a4a1b829\"\u003e\u003ccode\u003e8b6e00c\u003c/code\u003e\u003c/a\u003e Remove support for Python 3.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/isort/commit/b5f9f296ad873734e8caa3a731f27360648d9b37\"\u003e\u003ccode\u003eb5f9f29\u003c/code\u003e\u003c/a\u003e Bump profile plugin to 3.10+ and re-lock\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/PyCQA/isort/compare/6.1.0...7.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `faker` from 37.8.0 to 37.12.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/joke2k/faker/releases\"\u003efaker's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v37.12.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/joke2k/faker/blob/refs/tags/v37.12.0/CHANGELOG.md\"\u003eCHANGELOG.md\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eRelease v37.11.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/joke2k/faker/blob/refs/tags/v37.11.0/CHANGELOG.md\"\u003eCHANGELOG.md\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eRelease v37.10.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/joke2k/faker/blob/refs/tags/v37.10.0/CHANGELOG.md\"\u003eCHANGELOG.md\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eRelease v37.9.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/joke2k/faker/blob/refs/tags/v37.9.0/CHANGELOG.md\"\u003eCHANGELOG.md\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/joke2k/faker/blob/master/CHANGELOG.md\"\u003efaker's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e\u003ca href=\"https://github.com/joke2k/faker/compare/v37.11.0...v37.12.0\"\u003ev37.12.0 - 2025-10-07\u003c/a\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd french VAT number. Thanks \u003ca href=\"https://github.com/fabien-michel\"\u003e\u003ccode\u003e@​fabien-michel\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003ca href=\"https://github.com/joke2k/faker/compare/v37.9.0...v37.11.0\"\u003ev37.11.0 - 2025-10-07\u003c/a\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd French company APE code. Thanks \u003ca href=\"https://github.com/fabien-michel\"\u003e\u003ccode\u003e@​fabien-michel\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003ca href=\"https://github.com/joke2k/faker/compare/v37.8.0...v37.9.0\"\u003ev37.9.0 - 2025-10-07\u003c/a\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd names generation to \u003ccode\u003een_KE\u003c/code\u003e locale. Thanks \u003ca href=\"https://github.com/titustum\"\u003e\u003ccode\u003e@​titustum\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/949a8d6ff538b86a6a40b2082beaeade480e891a\"\u003e\u003ccode\u003e949a8d6\u003c/code\u003e\u003c/a\u003e Bump version: 37.11.0 → 37.12.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/dcb996c2f4f0c09393f1dafdf5d66100ec8b0be5\"\u003e\u003ccode\u003edcb996c\u003c/code\u003e\u003c/a\u003e :pencil: Update CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/a257bd5a0807e8d23a3b2aac3d79169e7bc7df4b\"\u003e\u003ccode\u003ea257bd5\u003c/code\u003e\u003c/a\u003e :lipstick: Lint code\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/42e1e9c569213e6d3b6c1e8d3915d93637d5d7ad\"\u003e\u003ccode\u003e42e1e9c\u003c/code\u003e\u003c/a\u003e feat: add french VAT number (\u003ca href=\"https://redirect.github.com/joke2k/faker/issues/2265\"\u003e#2265\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/178b17d233294608a29391b859aefa4239b71980\"\u003e\u003ccode\u003e178b17d\u003c/code\u003e\u003c/a\u003e fix table\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/f581c15777ab1898b7534f1af6ccc8ddd7507eb7\"\u003e\u003ccode\u003ef581c15\u003c/code\u003e\u003c/a\u003e :lipstick: lint code\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/e90f028c3a809e76841af8a0dfa5dd4d92d5fdc2\"\u003e\u003ccode\u003ee90f028\u003c/code\u003e\u003c/a\u003e Add info about new provider to communityproviders.rst (\u003ca href=\"https://redirect.github.com/joke2k/faker/issues/2268\"\u003e#2268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/fa0915aaa944ab0c59dfd85858d4649e4e2db35b\"\u003e\u003ccode\u003efa0915a\u003c/code\u003e\u003c/a\u003e Fix bank dry violation (\u003ca href=\"https://redirect.github.com/joke2k/faker/issues/2267\"\u003e#2267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/5bbe46a8d28e45cffa2233376656cf806e5771b2\"\u003e\u003ccode\u003e5bbe46a\u003c/code\u003e\u003c/a\u003e :pencil: Fix CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joke2k/faker/commit/2a366a6163dfd767a1ccdb1684109e6156a745ee\"\u003e\u003ccode\u003e2a366a6\u003c/code\u003e\u003c/a\u003e Bump version: 37.10.0 → 37.11.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/joke2k/faker/compare/v37.8.0...v37.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `syrupy` from 4.9.1 to 5.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/syrupy-project/syrupy/releases\"\u003esyrupy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.0.0\u003c/h2\u003e\n\u003ch2\u003eSyrupy 5.0.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e(2025-09-28)\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eThis release introduces new features, bug fixes, and a major license change. It also includes several \u003cstrong\u003ebreaking changes\u003c/strong\u003e, so please review those carefully before upgrading.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch3\u003eNew Features ✨\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eAdd \u003ccode\u003e--snapshot-dirname\u003c/code\u003e option:\u003c/strong\u003e A new option, \u003ccode\u003e--snapshot-dirname\u003c/code\u003e, is now available to change the default directory snapshots are stored in. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003e#810\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003esyrupy-project/syrupy#810\u003c/a\u003e))\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRemove private underscore prefix:\u003c/strong\u003e The unnecessary underscore prefixes have been removed from public methods for better code clarity. ([\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003e8cfc905\u003c/a\u003e](\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003ehttps://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\u003c/a\u003e))\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch3\u003eBug Fixes 🐛\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFix terminal summary for \u003ccode\u003exdist\u003c/code\u003e workers:\u003c/strong\u003e Resolves an issue where the terminal summary was not displayed correctly with \u003ccode\u003exdist\u003c/code\u003e workers. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/978\"\u003e#978\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/978\"\u003esyrupy-project/syrupy#978\u003c/a\u003e))\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eEnsure \u003ccode\u003epytest_assertrepr_compare\u003c/code\u003e hook is called first:\u003c/strong\u003e This change ensures that Syrupy's assertion hook takes precedence, improving compatibility with other plugins. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/984\"\u003e#984\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/984\"\u003esyrupy-project/syrupy#984\u003c/a\u003e))\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch3\u003eBreaking Changes ⚠️\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eLicense change:\u003c/strong\u003e The project has switched to the more permissive \u003cstrong\u003eMIT license\u003c/strong\u003e. This change applies to all versions from 5.0.0 and beyond. If you need to use the previous Apache 2.0 license, you must continue to use Syrupy versions 4.x or earlier. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/945\"\u003e#945\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/945\"\u003esyrupy-project/syrupy#945\u003c/a\u003e))\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003ePython and pytest version requirements:\u003c/strong\u003e Syrupy now requires \u003cstrong\u003ePython 3.10\u003c/strong\u003e or higher. Support for Python 3.8 has been dropped as it reached its end of life in October 2024. The minimum required version of \u003cstrong\u003epytest is v8\u003c/strong\u003e. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/904\"\u003e#904\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/904\"\u003esyrupy-project/syrupy#904\u003c/a\u003e), [\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003e#1024\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003esyrupy-project/syrupy#1024\u003c/a\u003e))\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eMethod and constant name changes:\u003c/strong\u003e Several methods and constants have been renamed for improved clarity and to align with public API standards.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ccode\u003eSnapshotCollectionStorage\u003c/code\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e_read_snapshot_collection\u003c/code\u003e -\u0026gt; \u003ccode\u003eread_snapshot_collection\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_read_snapshot_data_from_location\u003c/code\u003e -\u0026gt; \u003ccode\u003eread_snapshot_data_from_location\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_write_snapshot_collection\u003c/code\u003e -\u0026gt; \u003ccode\u003ewrite_snapshot_collection\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_get_file_basename\u003c/code\u003e -\u0026gt; \u003ccode\u003eget_file_basename\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_file_extension\u003c/code\u003e -\u0026gt; \u003ccode\u003efile_extension\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ccode\u003eAmberDataSerializer\u003c/code\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e_snapshot_sort_key\u003c/code\u003e -\u0026gt; \u003ccode\u003esnapshot_sort_key\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eConstants\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eSNAPSHOT_EMPTY_FOSSIL_KEY\u003c/code\u003e -\u0026gt; \u003ccode\u003eSNAPSHOT_EMPTY_COLLECTION_KEY\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSNAPSHOT_UNKNOWN_FOSSIL_KEY\u003c/code\u003e -\u0026gt; \u003ccode\u003eSNAPSHOT_UNKNOWN_COLLECTION_KEY\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSNAPSHOT_DIRNAME\u003c/code\u003e has been removed in favour of the property on the \u003ccode\u003eSnapshotCollectionStorage\u003c/code\u003e class and associated CLI option.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\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/paul-ollis\"\u003e\u003ccode\u003e@​paul-ollis\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/978\"\u003esyrupy-project/syrupy#978\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rahuliyer95\"\u003e\u003ccode\u003e@​rahuliyer95\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/984\"\u003esyrupy-project/syrupy#984\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\"\u003ehttps://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/syrupy-project/syrupy/blob/main/CHANGELOG.md\"\u003esyrupy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\"\u003e5.0.0\u003c/a\u003e (2025-09-28)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch to MIT license (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/945\"\u003e#945\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/d74d340f8884fdb04831fcf77f29d66e098aaa66\"\u003ed74d340\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlock terminal summary for xdist workers. (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/978\"\u003e#978\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/33a848df7c4a33577e4057eae5792f6592ad3172\"\u003e33a848d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eensure syrupy's pytest_assertrepr_compare hook is called first. (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/984\"\u003e#984\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/eb0024d339248b7e1f76fdb65ed30ba3e19c0857\"\u003eeb0024d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove incorrect private underscore prefix from public methods (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003e8cfc905\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd --snapshot-dirname option, close \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003e#810\u003c/a\u003e (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/27135c7c861441962c2cedde841f3e4fed2949fd\"\u003e27135c7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edrop support for py3.8, raise min. pytest to v8 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/904\"\u003e#904\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/a879ff15ad82e59a2f387db0822be072a5684f2f\"\u003ea879ff1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate min. python version to 3.10 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003e#1024\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/16b4113cd56da96e84a90ebda0919e9b8dd35954\"\u003e16b4113\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe following methods have been renamed:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSnapshotCollectionStorage\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e_read_snapshot_collection -\u0026gt; read_snapshot_collection\u003c/li\u003e\n\u003cli\u003e_read_snapshot_data_from_location -\u0026gt; read_snapshot_data_from_location\u003c/li\u003e\n\u003cli\u003e_write_snapshot_collection -\u0026gt; write_snapshot_collection\u003c/li\u003e\n\u003cli\u003e_get_file_basename -\u0026gt; get_file_basename\u003c/li\u003e\n\u003cli\u003e_file_extension -\u0026gt; file_extension\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eAmberDataSerializer\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e_snapshot_sort_key -\u0026gt; snapshot_sort_key\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRenamed constants to improve clarity:\u003c/p\u003e\n\u003cp\u003econstants\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSNAPSHOT_EMPTY_FOSSIL_KEY -\u0026gt; SNAPSHOT_EMPTY_COLLECTION_KEY\u003c/li\u003e\n\u003cli\u003eSNAPSHOT_UNKNOWN_FOSSIL_KEY -\u0026gt; SNAPSHOT_UNKNOWN_COLLECTION_KEY\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003eMin. python version is now 3.10.\u003c/li\u003e\n\u003cli\u003eThe Syrupy project is switching from Apache 2.0 to a more permissive MIT license. By using Syrupy \u0026gt;=5, you agree to abide by this new license. You can continue to use Syrupy v1 through v4 under Apache 2.0.\u003c/li\u003e\n\u003cli\u003eDrops support for Python 3.8 which is end of life as of October 2024. Raises the minimum version of pytest to v8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/9b4cc82e50e29f84dcb55054c8eab281c90a280b\"\u003e\u003ccode\u003e9b4cc82\u003c/code\u003e\u003c/a\u003e chore(release): 5.0.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/af15385acd5bf617815aa0d19e2df907bbbd2d83\"\u003e\u003ccode\u003eaf15385\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1027\"\u003e#1027\u003c/a\u003e from syrupy-project/test_py_3_14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/461ad224d192a18296934e2434b9302fb0984007\"\u003e\u003ccode\u003e461ad22\u003c/code\u003e\u003c/a\u003e chore: test against py3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/95ffbcb085eb920920a7241c814a55c1e948f148\"\u003e\u003ccode\u003e95ffbcb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1026\"\u003e#1026\u003c/a\u003e from syrupy-project/rename_methods\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/27135c7c861441962c2cedde841f3e4fed2949fd\"\u003e\u003ccode\u003e27135c7\u003c/code\u003e\u003c/a\u003e feat: add --snapshot-dirname option, close \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003e#810\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003e\u003ccode\u003e8cfc905\u003c/code\u003e\u003c/a\u003e refactor: remove incorrect private underscore prefix from public methods\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/e1dbf5dc2a1148480aa9601a5e1c21928954b8cc\"\u003e\u003ccode\u003ee1dbf5d\u003c/code\u003e\u003c/a\u003e chore(deps): update python docker tag to v3.13.7 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1025\"\u003e#1025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/16b4113cd56da96e84a90ebda0919e9b8dd35954\"\u003e\u003ccode\u003e16b4113\u003c/code\u003e\u003c/a\u003e feat: update min. python version to 3.10 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003e#1024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/434c63fdabbaaf2372ec94c8968fe025c4a306e6\"\u003e\u003ccode\u003e434c63f\u003c/code\u003e\u003c/a\u003e chore(deps): update codecov/codecov-action action to v5.5.1 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1021\"\u003e#1021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/b2e49bad7741f06c17a0be9f4608c0db5db13cf5\"\u003e\u003ccode\u003eb2e49ba\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency pytest to v8.4.2 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1022\"\u003e#1022\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/django-json-api/django-rest-framework-json-api/pull/1308","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/django-json-api%2Fdjango-rest-framework-json-api/issues/1308","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1308/packages"}},{"old_version":"4.9.1","new_version":"5.0.0","update_type":"major","path":null,"pr_created_at":"2025-10-03T10:02:02.000Z","version_change":"4.9.1 → 5.0.0","issue":{"uuid":"2884457487","node_id":"PR_kwDOCJmDMM6r7VQP","number":2495,"state":"open","title":"chore(deps-dev): bump syrupy from 4.9.1 to 5.0.0","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-10-03T10:02:02.000Z","updated_at":"2025-10-03T10:02:03.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps-dev)","packages":[{"name":"syrupy","old_version":"4.9.1","new_version":"5.0.0","repository_url":"https://github.com/syrupy-project/syrupy"}],"path":null,"ecosystem":"pip"},"body":"Bumps [syrupy](https://github.com/syrupy-project/syrupy) from 4.9.1 to 5.0.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/syrupy-project/syrupy/releases\"\u003esyrupy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.0.0\u003c/h2\u003e\n\u003ch2\u003eSyrupy 5.0.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e(2025-09-28)\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eThis release introduces new features, bug fixes, and a major license change. It also includes several \u003cstrong\u003ebreaking changes\u003c/strong\u003e, so please review those carefully before upgrading.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch3\u003eNew Features ✨\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eAdd \u003ccode\u003e--snapshot-dirname\u003c/code\u003e option:\u003c/strong\u003e A new option, \u003ccode\u003e--snapshot-dirname\u003c/code\u003e, is now available to change the default directory snapshots are stored in. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003e#810\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003esyrupy-project/syrupy#810\u003c/a\u003e))\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRemove private underscore prefix:\u003c/strong\u003e The unnecessary underscore prefixes have been removed from public methods for better code clarity. ([\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003e8cfc905\u003c/a\u003e](\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003ehttps://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\u003c/a\u003e))\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch3\u003eBug Fixes 🐛\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFix terminal summary for \u003ccode\u003exdist\u003c/code\u003e workers:\u003c/strong\u003e Resolves an issue where the terminal summary was not displayed correctly with \u003ccode\u003exdist\u003c/code\u003e workers. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/978\"\u003e#978\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/978\"\u003esyrupy-project/syrupy#978\u003c/a\u003e))\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eEnsure \u003ccode\u003epytest_assertrepr_compare\u003c/code\u003e hook is called first:\u003c/strong\u003e This change ensures that Syrupy's assertion hook takes precedence, improving compatibility with other plugins. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/984\"\u003e#984\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/984\"\u003esyrupy-project/syrupy#984\u003c/a\u003e))\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch3\u003eBreaking Changes ⚠️\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eLicense change:\u003c/strong\u003e The project has switched to the more permissive \u003cstrong\u003eMIT license\u003c/strong\u003e. This change applies to all versions from 5.0.0 and beyond. If you need to use the previous Apache 2.0 license, you must continue to use Syrupy versions 4.x or earlier. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/945\"\u003e#945\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/945\"\u003esyrupy-project/syrupy#945\u003c/a\u003e))\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003ePython and pytest version requirements:\u003c/strong\u003e Syrupy now requires \u003cstrong\u003ePython 3.10\u003c/strong\u003e or higher. Support for Python 3.8 has been dropped as it reached its end of life in October 2024. The minimum required version of \u003cstrong\u003epytest is v8\u003c/strong\u003e. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/904\"\u003e#904\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/904\"\u003esyrupy-project/syrupy#904\u003c/a\u003e), [\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003e#1024\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003esyrupy-project/syrupy#1024\u003c/a\u003e))\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eMethod and constant name changes:\u003c/strong\u003e Several methods and constants have been renamed for improved clarity and to align with public API standards.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ccode\u003eSnapshotCollectionStorage\u003c/code\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e_read_snapshot_collection\u003c/code\u003e -\u0026gt; \u003ccode\u003eread_snapshot_collection\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_read_snapshot_data_from_location\u003c/code\u003e -\u0026gt; \u003ccode\u003eread_snapshot_data_from_location\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_write_snapshot_collection\u003c/code\u003e -\u0026gt; \u003ccode\u003ewrite_snapshot_collection\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_get_file_basename\u003c/code\u003e -\u0026gt; \u003ccode\u003eget_file_basename\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_file_extension\u003c/code\u003e -\u0026gt; \u003ccode\u003efile_extension\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ccode\u003eAmberDataSerializer\u003c/code\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e_snapshot_sort_key\u003c/code\u003e -\u0026gt; \u003ccode\u003esnapshot_sort_key\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eConstants\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eSNAPSHOT_EMPTY_FOSSIL_KEY\u003c/code\u003e -\u0026gt; \u003ccode\u003eSNAPSHOT_EMPTY_COLLECTION_KEY\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSNAPSHOT_UNKNOWN_FOSSIL_KEY\u003c/code\u003e -\u0026gt; \u003ccode\u003eSNAPSHOT_UNKNOWN_COLLECTION_KEY\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSNAPSHOT_DIRNAME\u003c/code\u003e has been removed in favour of the property on the \u003ccode\u003eSnapshotCollectionStorage\u003c/code\u003e class and associated CLI option.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\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/paul-ollis\"\u003e\u003ccode\u003e@​paul-ollis\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/978\"\u003esyrupy-project/syrupy#978\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rahuliyer95\"\u003e\u003ccode\u003e@​rahuliyer95\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/984\"\u003esyrupy-project/syrupy#984\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\"\u003ehttps://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/syrupy-project/syrupy/blob/main/CHANGELOG.md\"\u003esyrupy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\"\u003e5.0.0\u003c/a\u003e (2025-09-28)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch to MIT license (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/945\"\u003e#945\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/d74d340f8884fdb04831fcf77f29d66e098aaa66\"\u003ed74d340\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlock terminal summary for xdist workers. (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/978\"\u003e#978\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/33a848df7c4a33577e4057eae5792f6592ad3172\"\u003e33a848d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eensure syrupy's pytest_assertrepr_compare hook is called first. (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/984\"\u003e#984\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/eb0024d339248b7e1f76fdb65ed30ba3e19c0857\"\u003eeb0024d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove incorrect private underscore prefix from public methods (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003e8cfc905\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd --snapshot-dirname option, close \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003e#810\u003c/a\u003e (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/27135c7c861441962c2cedde841f3e4fed2949fd\"\u003e27135c7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edrop support for py3.8, raise min. pytest to v8 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/904\"\u003e#904\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/a879ff15ad82e59a2f387db0822be072a5684f2f\"\u003ea879ff1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate min. python version to 3.10 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003e#1024\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/16b4113cd56da96e84a90ebda0919e9b8dd35954\"\u003e16b4113\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe following methods have been renamed:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSnapshotCollectionStorage\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e_read_snapshot_collection -\u0026gt; read_snapshot_collection\u003c/li\u003e\n\u003cli\u003e_read_snapshot_data_from_location -\u0026gt; read_snapshot_data_from_location\u003c/li\u003e\n\u003cli\u003e_write_snapshot_collection -\u0026gt; write_snapshot_collection\u003c/li\u003e\n\u003cli\u003e_get_file_basename -\u0026gt; get_file_basename\u003c/li\u003e\n\u003cli\u003e_file_extension -\u0026gt; file_extension\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eAmberDataSerializer\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e_snapshot_sort_key -\u0026gt; snapshot_sort_key\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRenamed constants to improve clarity:\u003c/p\u003e\n\u003cp\u003econstants\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSNAPSHOT_EMPTY_FOSSIL_KEY -\u0026gt; SNAPSHOT_EMPTY_COLLECTION_KEY\u003c/li\u003e\n\u003cli\u003eSNAPSHOT_UNKNOWN_FOSSIL_KEY -\u0026gt; SNAPSHOT_UNKNOWN_COLLECTION_KEY\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003eMin. python version is now 3.10.\u003c/li\u003e\n\u003cli\u003eThe Syrupy project is switching from Apache 2.0 to a more permissive MIT license. By using Syrupy \u0026gt;=5, you agree to abide by this new license. You can continue to use Syrupy v1 through v4 under Apache 2.0.\u003c/li\u003e\n\u003cli\u003eDrops support for Python 3.8 which is end of life as of October 2024. Raises the minimum version of pytest to v8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/9b4cc82e50e29f84dcb55054c8eab281c90a280b\"\u003e\u003ccode\u003e9b4cc82\u003c/code\u003e\u003c/a\u003e chore(release): 5.0.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/af15385acd5bf617815aa0d19e2df907bbbd2d83\"\u003e\u003ccode\u003eaf15385\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1027\"\u003e#1027\u003c/a\u003e from syrupy-project/test_py_3_14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/461ad224d192a18296934e2434b9302fb0984007\"\u003e\u003ccode\u003e461ad22\u003c/code\u003e\u003c/a\u003e chore: test against py3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/95ffbcb085eb920920a7241c814a55c1e948f148\"\u003e\u003ccode\u003e95ffbcb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1026\"\u003e#1026\u003c/a\u003e from syrupy-project/rename_methods\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/27135c7c861441962c2cedde841f3e4fed2949fd\"\u003e\u003ccode\u003e27135c7\u003c/code\u003e\u003c/a\u003e feat: add --snapshot-dirname option, close \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003e#810\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003e\u003ccode\u003e8cfc905\u003c/code\u003e\u003c/a\u003e refactor: remove incorrect private underscore prefix from public methods\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/e1dbf5dc2a1148480aa9601a5e1c21928954b8cc\"\u003e\u003ccode\u003ee1dbf5d\u003c/code\u003e\u003c/a\u003e chore(deps): update python docker tag to v3.13.7 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1025\"\u003e#1025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/16b4113cd56da96e84a90ebda0919e9b8dd35954\"\u003e\u003ccode\u003e16b4113\u003c/code\u003e\u003c/a\u003e feat: update min. python version to 3.10 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003e#1024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/434c63fdabbaaf2372ec94c8968fe025c4a306e6\"\u003e\u003ccode\u003e434c63f\u003c/code\u003e\u003c/a\u003e chore(deps): update codecov/codecov-action action to v5.5.1 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1021\"\u003e#1021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/b2e49bad7741f06c17a0be9f4608c0db5db13cf5\"\u003e\u003ccode\u003eb2e49ba\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency pytest to v8.4.2 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1022\"\u003e#1022\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=syrupy\u0026package-manager=pip\u0026previous-version=4.9.1\u0026new-version=5.0.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/projectcaluma/caluma/pull/2495","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/projectcaluma%2Fcaluma/issues/2495","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/2495/packages"}},{"old_version":"~=4.9","new_version":"~=5.0","update_type":null,"path":null,"pr_created_at":"2025-10-01T21:08:29.000Z","version_change":"~=4.9 → ~=5.0","issue":{"uuid":"2879652199","node_id":"PR_kwDOI_U7IM6rpAFn","number":260,"state":"open","title":"Update syrupy requirement from ~=4.9 to ~=5.0","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-10-01T21:08:29.000Z","updated_at":"2025-10-01T21:08:30.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Update","packages":[{"name":"syrupy","old_version":"~=4.9","new_version":"~=5.0","repository_url":"https://github.com/syrupy-project/syrupy"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [syrupy](https://github.com/syrupy-project/syrupy) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/syrupy-project/syrupy/releases\"\u003esyrupy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.0.0\u003c/h2\u003e\n\u003ch2\u003eSyrupy 5.0.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e(2025-09-28)\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eThis release introduces new features, bug fixes, and a major license change. It also includes several \u003cstrong\u003ebreaking changes\u003c/strong\u003e, so please review those carefully before upgrading.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch3\u003eNew Features ✨\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eAdd \u003ccode\u003e--snapshot-dirname\u003c/code\u003e option:\u003c/strong\u003e A new option, \u003ccode\u003e--snapshot-dirname\u003c/code\u003e, is now available to change the default directory snapshots are stored in. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003e#810\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003esyrupy-project/syrupy#810\u003c/a\u003e))\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRemove private underscore prefix:\u003c/strong\u003e The unnecessary underscore prefixes have been removed from public methods for better code clarity. ([\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003e8cfc905\u003c/a\u003e](\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003ehttps://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\u003c/a\u003e))\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch3\u003eBug Fixes 🐛\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFix terminal summary for \u003ccode\u003exdist\u003c/code\u003e workers:\u003c/strong\u003e Resolves an issue where the terminal summary was not displayed correctly with \u003ccode\u003exdist\u003c/code\u003e workers. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/978\"\u003e#978\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/978\"\u003esyrupy-project/syrupy#978\u003c/a\u003e))\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eEnsure \u003ccode\u003epytest_assertrepr_compare\u003c/code\u003e hook is called first:\u003c/strong\u003e This change ensures that Syrupy's assertion hook takes precedence, improving compatibility with other plugins. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/984\"\u003e#984\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/984\"\u003esyrupy-project/syrupy#984\u003c/a\u003e))\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch3\u003eBreaking Changes ⚠️\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eLicense change:\u003c/strong\u003e The project has switched to the more permissive \u003cstrong\u003eMIT license\u003c/strong\u003e. This change applies to all versions from 5.0.0 and beyond. If you need to use the previous Apache 2.0 license, you must continue to use Syrupy versions 4.x or earlier. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/945\"\u003e#945\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/945\"\u003esyrupy-project/syrupy#945\u003c/a\u003e))\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003ePython and pytest version requirements:\u003c/strong\u003e Syrupy now requires \u003cstrong\u003ePython 3.10\u003c/strong\u003e or higher. Support for Python 3.8 has been dropped as it reached its end of life in October 2024. The minimum required version of \u003cstrong\u003epytest is v8\u003c/strong\u003e. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/904\"\u003e#904\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/904\"\u003esyrupy-project/syrupy#904\u003c/a\u003e), [\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003e#1024\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003esyrupy-project/syrupy#1024\u003c/a\u003e))\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eMethod and constant name changes:\u003c/strong\u003e Several methods and constants have been renamed for improved clarity and to align with public API standards.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ccode\u003eSnapshotCollectionStorage\u003c/code\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e_read_snapshot_collection\u003c/code\u003e -\u0026gt; \u003ccode\u003eread_snapshot_collection\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_read_snapshot_data_from_location\u003c/code\u003e -\u0026gt; \u003ccode\u003eread_snapshot_data_from_location\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_write_snapshot_collection\u003c/code\u003e -\u0026gt; \u003ccode\u003ewrite_snapshot_collection\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_get_file_basename\u003c/code\u003e -\u0026gt; \u003ccode\u003eget_file_basename\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_file_extension\u003c/code\u003e -\u0026gt; \u003ccode\u003efile_extension\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ccode\u003eAmberDataSerializer\u003c/code\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e_snapshot_sort_key\u003c/code\u003e -\u0026gt; \u003ccode\u003esnapshot_sort_key\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eConstants\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eSNAPSHOT_EMPTY_FOSSIL_KEY\u003c/code\u003e -\u0026gt; \u003ccode\u003eSNAPSHOT_EMPTY_COLLECTION_KEY\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSNAPSHOT_UNKNOWN_FOSSIL_KEY\u003c/code\u003e -\u0026gt; \u003ccode\u003eSNAPSHOT_UNKNOWN_COLLECTION_KEY\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSNAPSHOT_DIRNAME\u003c/code\u003e has been removed in favour of the property on the \u003ccode\u003eSnapshotCollectionStorage\u003c/code\u003e class and associated CLI option.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\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/paul-ollis\"\u003e\u003ccode\u003e@​paul-ollis\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/978\"\u003esyrupy-project/syrupy#978\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rahuliyer95\"\u003e\u003ccode\u003e@​rahuliyer95\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/984\"\u003esyrupy-project/syrupy#984\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\"\u003ehttps://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/syrupy-project/syrupy/blob/main/CHANGELOG.md\"\u003esyrupy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\"\u003e5.0.0\u003c/a\u003e (2025-09-28)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch to MIT license (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/945\"\u003e#945\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/d74d340f8884fdb04831fcf77f29d66e098aaa66\"\u003ed74d340\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlock terminal summary for xdist workers. (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/978\"\u003e#978\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/33a848df7c4a33577e4057eae5792f6592ad3172\"\u003e33a848d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eensure syrupy's pytest_assertrepr_compare hook is called first. (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/984\"\u003e#984\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/eb0024d339248b7e1f76fdb65ed30ba3e19c0857\"\u003eeb0024d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove incorrect private underscore prefix from public methods (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003e8cfc905\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd --snapshot-dirname option, close \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003e#810\u003c/a\u003e (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/27135c7c861441962c2cedde841f3e4fed2949fd\"\u003e27135c7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edrop support for py3.8, raise min. pytest to v8 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/904\"\u003e#904\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/a879ff15ad82e59a2f387db0822be072a5684f2f\"\u003ea879ff1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate min. python version to 3.10 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003e#1024\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/16b4113cd56da96e84a90ebda0919e9b8dd35954\"\u003e16b4113\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe following methods have been renamed:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSnapshotCollectionStorage\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e_read_snapshot_collection -\u0026gt; read_snapshot_collection\u003c/li\u003e\n\u003cli\u003e_read_snapshot_data_from_location -\u0026gt; read_snapshot_data_from_location\u003c/li\u003e\n\u003cli\u003e_write_snapshot_collection -\u0026gt; write_snapshot_collection\u003c/li\u003e\n\u003cli\u003e_get_file_basename -\u0026gt; get_file_basename\u003c/li\u003e\n\u003cli\u003e_file_extension -\u0026gt; file_extension\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eAmberDataSerializer\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e_snapshot_sort_key -\u0026gt; snapshot_sort_key\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRenamed constants to improve clarity:\u003c/p\u003e\n\u003cp\u003econstants\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSNAPSHOT_EMPTY_FOSSIL_KEY -\u0026gt; SNAPSHOT_EMPTY_COLLECTION_KEY\u003c/li\u003e\n\u003cli\u003eSNAPSHOT_UNKNOWN_FOSSIL_KEY -\u0026gt; SNAPSHOT_UNKNOWN_COLLECTION_KEY\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003eMin. python version is now 3.10.\u003c/li\u003e\n\u003cli\u003eThe Syrupy project is switching from Apache 2.0 to a more permissive MIT license. By using Syrupy \u0026gt;=5, you agree to abide by this new license. You can continue to use Syrupy v1 through v4 under Apache 2.0.\u003c/li\u003e\n\u003cli\u003eDrops support for Python 3.8 which is end of life as of October 2024. Raises the minimum version of pytest to v8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.9.0...v4.9.1\"\u003e4.9.1\u003c/a\u003e (2025-03-24)\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/syrupy-project/syrupy/commit/9b4cc82e50e29f84dcb55054c8eab281c90a280b\"\u003e\u003ccode\u003e9b4cc82\u003c/code\u003e\u003c/a\u003e chore(release): 5.0.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/af15385acd5bf617815aa0d19e2df907bbbd2d83\"\u003e\u003ccode\u003eaf15385\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1027\"\u003e#1027\u003c/a\u003e from syrupy-project/test_py_3_14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/461ad224d192a18296934e2434b9302fb0984007\"\u003e\u003ccode\u003e461ad22\u003c/code\u003e\u003c/a\u003e chore: test against py3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/95ffbcb085eb920920a7241c814a55c1e948f148\"\u003e\u003ccode\u003e95ffbcb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1026\"\u003e#1026\u003c/a\u003e from syrupy-project/rename_methods\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/27135c7c861441962c2cedde841f3e4fed2949fd\"\u003e\u003ccode\u003e27135c7\u003c/code\u003e\u003c/a\u003e feat: add --snapshot-dirname option, close \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003e#810\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003e\u003ccode\u003e8cfc905\u003c/code\u003e\u003c/a\u003e refactor: remove incorrect private underscore prefix from public methods\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/e1dbf5dc2a1148480aa9601a5e1c21928954b8cc\"\u003e\u003ccode\u003ee1dbf5d\u003c/code\u003e\u003c/a\u003e chore(deps): update python docker tag to v3.13.7 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1025\"\u003e#1025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/16b4113cd56da96e84a90ebda0919e9b8dd35954\"\u003e\u003ccode\u003e16b4113\u003c/code\u003e\u003c/a\u003e feat: update min. python version to 3.10 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003e#1024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/434c63fdabbaaf2372ec94c8968fe025c4a306e6\"\u003e\u003ccode\u003e434c63f\u003c/code\u003e\u003c/a\u003e chore(deps): update codecov/codecov-action action to v5.5.1 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1021\"\u003e#1021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/b2e49bad7741f06c17a0be9f4608c0db5db13cf5\"\u003e\u003ccode\u003eb2e49ba\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency pytest to v8.4.2 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1022\"\u003e#1022\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.9.0...v5.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/AllSpiceIO/py-allspice/pull/260","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/AllSpiceIO%2Fpy-allspice/issues/260","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/260/packages"}},{"old_version":"4.9.1","new_version":"5.0.0","update_type":"major","path":null,"pr_created_at":"2025-10-01T14:06:28.000Z","version_change":"4.9.1 → 5.0.0","issue":{"uuid":"3473736817","node_id":"PR_kwDODStzz86rkOqq","number":813,"state":"closed","title":"Bump the development-dependencies group with 13 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2025-10-30T10:33:53.000Z","author_association":null,"state_reason":null,"created_at":"2025-10-01T14:06:28.000Z","updated_at":"2025-10-30T10:33:54.000Z","time_to_close":2492845,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"development-dependencies","update_count":13,"packages":[{"name":"coverage","old_version":"7.10.2","new_version":"7.10.7","repository_url":"https://github.com/nedbat/coveragepy"},{"name":"mypy","old_version":"1.17.1","new_version":"1.18.2","repository_url":"https://github.com/python/mypy"},{"name":"pyinstaller","old_version":"6.15.0","new_version":"6.16.0","repository_url":"https://github.com/pyinstaller/pyinstaller"},{"name":"pyinstaller-hooks-contrib","old_version":"2025.8","new_version":"2025.9","repository_url":"https://github.com/pyinstaller/pyinstaller-hooks-contrib"},{"name":"pytest","old_version":"8.4.1","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-cov","old_version":"6.2.1","new_version":"7.0.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"ruff","old_version":"0.12.7","new_version":"0.13.2","repository_url":"https://github.com/astral-sh/ruff"},{"name":"syrupy","old_version":"4.9.1","new_version":"5.0.0","repository_url":"https://github.com/syrupy-project/syrupy"},{"name":"types-cachetools","old_version":"6.1.0.20250717","new_version":"6.2.0.20250827","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"types-setuptools","old_version":"80.9.0.20250801","new_version":"80.9.0.20250822","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"furo","old_version":"2025.7.19","new_version":"2025.9.25","repository_url":"https://github.com/pradyunsg/furo"},{"name":"sphinx-autobuild","old_version":"2024.10.3","new_version":"2025.8.25","repository_url":"https://github.com/sphinx-doc/sphinx-autobuild"},{"name":"sphinx-click","old_version":"6.0.0","new_version":"6.1.0","repository_url":"https://github.com/click-contrib/sphinx-click"}],"path":null,"ecosystem":"pip"},"body":"Bumps the development-dependencies group with 13 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [coverage](https://github.com/nedbat/coveragepy) | `7.10.2` | `7.10.7` |\n| [mypy](https://github.com/python/mypy) | `1.17.1` | `1.18.2` |\n| [pyinstaller](https://github.com/pyinstaller/pyinstaller) | `6.15.0` | `6.16.0` |\n| [pyinstaller-hooks-contrib](https://github.com/pyinstaller/pyinstaller-hooks-contrib) | `2025.8` | `2025.9` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.1` | `8.4.2` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `6.2.1` | `7.0.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.12.7` | `0.13.2` |\n| [syrupy](https://github.com/syrupy-project/syrupy) | `4.9.1` | `5.0.0` |\n| [types-cachetools](https://github.com/typeshed-internal/stub_uploader) | `6.1.0.20250717` | `6.2.0.20250827` |\n| [types-setuptools](https://github.com/typeshed-internal/stub_uploader) | `80.9.0.20250801` | `80.9.0.20250822` |\n| [furo](https://github.com/pradyunsg/furo) | `2025.7.19` | `2025.9.25` |\n| [sphinx-autobuild](https://github.com/sphinx-doc/sphinx-autobuild) | `2024.10.3` | `2025.8.25` |\n| [sphinx-click](https://github.com/click-contrib/sphinx-click) | `6.0.0` | `6.1.0` |\n\nUpdates `coverage` from 7.10.2 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.10.2...7.10.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.17.1 to 1.18.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.18.2\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix crash on recursive alias (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19845\"\u003e19845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd additional guidance for stubtest errors when runtime is \u003ccode\u003eobject.__init__\u003c/code\u003e (Stephen Morton, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19733\"\u003e19733\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix handling of None values in f-string expressions in mypyc (BobTheBuidler, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19846\"\u003e19846\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAli Hamdan\u003c/li\u003e\n\u003cli\u003eAnthony Sottile\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003eBrian Schubert\u003c/li\u003e\n\u003cli\u003eChainfire\u003c/li\u003e\n\u003cli\u003eCharlie Denton\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eCoolCat467\u003c/li\u003e\n\u003cli\u003eDaniel Hnyk\u003c/li\u003e\n\u003cli\u003eEmily\u003c/li\u003e\n\u003cli\u003eEmma Smith\u003c/li\u003e\n\u003cli\u003eEthan Sarp\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJahongir Qurbonov\u003c/li\u003e\n\u003cli\u003eJelle Zijlstra\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eJukka Lehtosalo\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eOmer Hadari\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003cli\u003ePrinceNaroliya\u003c/li\u003e\n\u003cli\u003eRandolf Scholz\u003c/li\u003e\n\u003cli\u003eRobsdedude\u003c/li\u003e\n\u003cli\u003eSaul Shanabrook\u003c/li\u003e\n\u003cli\u003eShantanu\u003c/li\u003e\n\u003cli\u003eStanislav Terliakov\u003c/li\u003e\n\u003cli\u003eStephen Morton\u003c/li\u003e\n\u003cli\u003ewyattscarpenter\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI’d also like to thank my employer, Dropbox, for supporting mypy development.\u003c/p\u003e\n\u003ch2\u003eMypy 1.17\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.17 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features and bug fixes.\nYou can install it as follows:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython3 -m pip install -U mypy\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eYou can read the full documentation for this release on \u003ca href=\"http://mypy.readthedocs.io\"\u003eRead the Docs\u003c/a\u003e.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/df05f05555ee62dbdb9960c64cad186172e92be1\"\u003e\u003ccode\u003edf05f05\u003c/code\u003e\u003c/a\u003e remove +dev from version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/01a7a1285d03cb7a330359b22cb462aacb5f9720\"\u003e\u003ccode\u003e01a7a12\u003c/code\u003e\u003c/a\u003e Update changelog for 1.18.2 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19873\"\u003e#19873\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/ca5abf09f3bfc543ac9c18a364696bc5da20bc03\"\u003e\u003ccode\u003eca5abf0\u003c/code\u003e\u003c/a\u003e Typeshed cherry-pick: Make type of \u003ccode\u003eunitest.mock.Any\u003c/code\u003e a subclass of \u003ccode\u003eAny\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python/mypy/issues/1\"\u003e#1\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/9d794b57d9c5b03d61caa3286756c05e0ae3021b\"\u003e\u003ccode\u003e9d794b5\u003c/code\u003e\u003c/a\u003e [mypyc] fix: inappropriate \u003ccode\u003eNone\u003c/code\u003es in f-strings (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19846\"\u003e#19846\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2c0510c84868b6bb42ef0f305b701e530a85c25f\"\u003e\u003ccode\u003e2c0510c\u003c/code\u003e\u003c/a\u003e stubtest: additional guidance on errors when runtime is object.\u003cstrong\u003einit\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19733\"\u003e#19733\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2f3f03c3e39e68dbfa3544c01a34f99803b3e1c2\"\u003e\u003ccode\u003e2f3f03c\u003c/code\u003e\u003c/a\u003e Bump version to 1.18.2+dev for point release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/76698412bc1f3ca99000d52649acd5a0e06aa71d\"\u003e\u003ccode\u003e7669841\u003c/code\u003e\u003c/a\u003e Fix crash on recursive alias in indirection.py (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19845\"\u003e#19845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/03fbaa941bccc3a9f8aea796d586603b67119bf2\"\u003e\u003ccode\u003e03fbaa9\u003c/code\u003e\u003c/a\u003e bump version to 1.18.1 due to wheels failure\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/b44a1fbf0cf9fd90fd29d6bcd9f64c55dd2fd4c8\"\u003e\u003ccode\u003eb44a1fb\u003c/code\u003e\u003c/a\u003e removed +dev from version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/7197a99d1aebb1b7a584f82a53c44efb7dddf136\"\u003e\u003ccode\u003e7197a99\u003c/code\u003e\u003c/a\u003e Removed Unreleased in the Changelog for Release 1.18 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19827\"\u003e#19827\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.17.1...v1.18.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyinstaller` from 6.15.0 to 6.16.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyinstaller/pyinstaller/releases\"\u003epyinstaller's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev6.16.0\u003c/h2\u003e\n\u003cp\u003ePlease see the \u003ca href=\"https://pyinstaller.org/en/v6.16.0/CHANGES.html#id1\"\u003ev6.16.0 section of the changelog\u003c/a\u003e for a list of the changes since v6.15.0.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyinstaller/pyinstaller/blob/develop/doc/CHANGES.rst\"\u003epyinstaller's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.16.0 (2025-09-13)\u003c/h2\u003e\n\u003cp\u003eFeatures\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* (POSIX) Adjust the destination directory for collected python's standard\n  extensions, from ``lib-dynload`` to ``python3.x/lib-dynload`` directory,\n  in order to preserve the relative relationship between the extension\n  location and the (grand-parent) shared library directory that is commonly\n  found in POSIX python environments. This is required for compatibility\n  with upcoming Linux builds of ``astral-sh/python-build-standalone#`` that\n  will set relative library paths in extensions via both ``DT_NEEDED`` and\n  ``DT_RPATH``. (:issue:`9212`)\n* Rework the anonymization of the ``co_filename`` attribute in collected\n  code objects - instead of trying to obtain anonymized relative name by\n  removing known path prefixes from the original absolute-path ``co_filename``,\n  we now construct the anonymized relative name directly from the collected\n  module's (or script's) destination name w.r.t. its destination container\n  (i.e., the ``PKG`` archive, the ``PYZ`` archive, or the ``base_library.zip``\n  archive). (:issue:`9226`)\n* Rework the search for python shared library in order to reduce amount of\n  guess-work and better accommodate variations in naming across platforms\n  and due to different build options (e.g., debug build with \u0026quot;d\u0026quot; suffix,\n  free-thread build with \u0026quot;t\u0026quot; suffix, combination of both).\n\u003cp\u003eOn Windows, the loaded python DLL is now resolved by calling\n\u003ccode\u003eGetModuleFileName\u003c/code\u003e\non the handle exposed by :data:\u003ccode\u003esys.dllhandle\u003c/code\u003e; this applies to python.org\nWindows\nbuilds, Anaconda python on Windows, and MSYS2 python.\u003c/p\u003e\n\u003cp\u003eOn other platforms, first explicitly verify that shared library is enabled,\nby checking the value of \u003ccode\u003ePy_ENABLE_SHARED\u003c/code\u003e variable exposed by the\n\u003ccode\u003esysconfig\u003c/code\u003e module. On macOS, also check if .framework bundle is\nenabled instead, which is implied by a non-empty \u003ccode\u003ePYTHONFRAMEWORK\u003c/code\u003e\nvariable in \u003ccode\u003esysconfig\u003c/code\u003e. If shared library is enabled, use \u003ccode\u003eINSTSONAME\u003c/code\u003e\nvariable exposed by \u003ccode\u003esysconfig\u003c/code\u003e module as the only source of truth\nw.r.t. its name. This works even with Debian-packaged python and\n\u003ccode\u003eastral-sh/python-build-standalone\u003c/code\u003e POSIX builds; while they have\ntheir \u003ccode\u003epython\u003c/code\u003e executable statically linked against python shared\nlibrary, they seem to properly set these variables.\u003c/p\u003e\n\u003cp\u003eIn contrast, both Linux and macOS builds of Anaconda python seem to\nbuild their interpreter executable and python shared library separately,\nso the interpreter reports \u003ccode\u003ePy_ENABLE_SHARED\u003c/code\u003e variable to be set to \u003ccode\u003e0\u003c/code\u003e\n(and \u003ccode\u003eINSTSONAME\u003c/code\u003e gives name of the static library). Therefore, for\nAnaconda python on non-Windows, use the old approach of guessing the\nlibrary name from the major and minor version and whether free-threading\nis enabled or not (i.e., the presence of the \u0026quot;t\u0026quot; suffix).\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyinstaller/pyinstaller/commit/7f2ae63f703ae27955722eac4891678b546d513a\"\u003e\u003ccode\u003e7f2ae63\u003c/code\u003e\u003c/a\u003e Release v6.16.0. [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyinstaller/pyinstaller/commit/26838344a27c93c4461a0d76f24a77a1a0da4c78\"\u003e\u003ccode\u003e2683834\u003c/code\u003e\u003c/a\u003e ci: move work-around for potentially broken setuptools upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyinstaller/pyinstaller/commit/383196a847af1a9faefcdcd2295c17a46dfbc850\"\u003e\u003ccode\u003e383196a\u003c/code\u003e\u003c/a\u003e ci: fix check for broken setuptools upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyinstaller/pyinstaller/commit/5447da7971c6e156f98f6fe96a2952ac058b00bd\"\u003e\u003ccode\u003e5447da7\u003c/code\u003e\u003c/a\u003e ci/test requirements: Track setuptools in tests/requirements-libraries.txt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyinstaller/pyinstaller/commit/95226dac821f89cd45c3f9cc4a66a542b883ee47\"\u003e\u003ccode\u003e95226da\u003c/code\u003e\u003c/a\u003e Remove empty pytest.ini allegedly needed by test entrypoints\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyinstaller/pyinstaller/commit/255305debec6a7f56ca4fd29ad0905cd60251359\"\u003e\u003ccode\u003e255305d\u003c/code\u003e\u003c/a\u003e setup: Drop questionable/pointless project keywords\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyinstaller/pyinstaller/commit/5df0f47c88465fdc25e3279813ebdcd2ba2c74cb\"\u003e\u003ccode\u003e5df0f47\u003c/code\u003e\u003c/a\u003e setup: Drop setuptools, move to hatchling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyinstaller/pyinstaller/commit/100c9ce0e9c0525e6a83bbebb541f7034cea69cd\"\u003e\u003ccode\u003e100c9ce\u003c/code\u003e\u003c/a\u003e bootloader build: Address noisy deprecation warning from waf\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyinstaller/pyinstaller/commit/52782f8e1f8fb76084d6812c2d5f2c46b2ae071d\"\u003e\u003ccode\u003e52782f8\u003c/code\u003e\u003c/a\u003e release: Add retry for compiling with qemu\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyinstaller/pyinstaller/commit/9e84501bdc70c500cba7344b6698f4a2134a09b6\"\u003e\u003ccode\u003e9e84501\u003c/code\u003e\u003c/a\u003e Move non packaging configuration out of setup.cfg/pyproject.toml\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyinstaller/pyinstaller/compare/v6.15.0...v6.16.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyinstaller-hooks-contrib` from 2025.8 to 2025.9\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyinstaller/pyinstaller-hooks-contrib/releases\"\u003epyinstaller-hooks-contrib's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2025.9\u003c/h2\u003e\n\u003cp\u003ePlease see the \u003ca href=\"https://www.github.com/pyinstaller/pyinstaller-hooks-contrib/tree/v2025.9/CHANGELOG.rst\"\u003echangelog\u003c/a\u003e for more details\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/pyinstaller/pyinstaller-hooks-contrib/blob/master/CHANGELOG.rst\"\u003epyinstaller-hooks-contrib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025.9 (2025-09-24)\u003c/h2\u003e\n\u003cp\u003eNew hooks\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Add hook for ``cumm`` to ensure that header files from ``cumm/include``\n  directory are collected. (`[#941](https://github.com/pyinstaller/pyinstaller-hooks-contrib/issues/941)\n  \u0026lt;https://github.com/pyinstaller/pyinstaller-hooks-contrib/issues/941\u0026gt;`_)\n* Add hook for ``globus_sdk`` package. (`[#940](https://github.com/pyinstaller/pyinstaller-hooks-contrib/issues/940)\n  \u0026lt;https://github.com/pyinstaller/pyinstaller-hooks-contrib/issues/940\u0026gt;`_)\n* Add hook for ``pointcept`` to collect its source .py files for\n  TorchScript/JIT. (`[#941](https://github.com/pyinstaller/pyinstaller-hooks-contrib/issues/941)\n  \u0026lt;https://github.com/pyinstaller/pyinstaller-hooks-contrib/issues/941\u0026gt;`_)\n\u003cp\u003eUpdated hooks\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eHarden \u003ccode\u003eblib2to3\u003c/code\u003e and \u003ccode\u003etorch\u003c/code\u003e hooks against missing \u003ccode\u003eRECORD\u003c/code\u003e in\nthe corresponding distributions' metadata, which would lead to a\n\u003ccode\u003e'NoneType' object is not iterable\u003c/code\u003e error when the hook tries to iterate\nover distribution's file list. (\u003ccode\u003e[#942](https://github.com/pyinstaller/pyinstaller-hooks-contrib/issues/942) \u0026lt;https://github.com/pyinstaller/pyinstaller-hooks-contrib/issues/942\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003enumba\u003c/code\u003e hook for changes made in \u003ccode\u003enumba\u003c/code\u003e v0.62.0 (i.e., removal\nof the new type system that was previously introduced in v0.61 series).\n(\u003ccode\u003e[#949](https://github.com/pyinstaller/pyinstaller-hooks-contrib/issues/949) \u0026lt;https://github.com/pyinstaller/pyinstaller-hooks-contrib/issues/949\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003etorch\u003c/code\u003e hook to check whether \u003ccode\u003etorch\u003c/code\u003e is installed via\nAnaconda \u003ccode\u003epytorch\u003c/code\u003e package, and collect DLLs from Anaconda \u003ccode\u003emkl\u003c/code\u003e\npackage and its dependencies, if necessary. (\u003ccode\u003e[#941](https://github.com/pyinstaller/pyinstaller-hooks-contrib/issues/941) \u0026lt;https://github.com/pyinstaller/pyinstaller-hooks-contrib/issues/941\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/pyinstaller/pyinstaller-hooks-contrib/commit/7bbc31095478c8845208537bf19c59e2d5fb2930\"\u003e\u003ccode\u003e7bbc310\u003c/code\u003e\u003c/a\u003e Release v2025.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyinstaller/pyinstaller-hooks-contrib/commit/800eb2c86c77e6f8284109d26437fe4d6178b47e\"\u003e\u003ccode\u003e800eb2c\u003c/code\u003e\u003c/a\u003e Scheduled weekly dependency update for week 38 (\u003ca href=\"https://redirect.github.com/pyinstaller/pyinstaller-hooks-contrib/issues/948\"\u003e#948\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyinstaller/pyinstaller-hooks-contrib/commit/1befd936569471e5357d765bc56995d883c3ffd3\"\u003e\u003ccode\u003e1befd93\u003c/code\u003e\u003c/a\u003e hooks: update \u003ccode\u003enumba\u003c/code\u003e hook for changes made in \u003ccode\u003enumba\u003c/code\u003e v0.62.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyinstaller/pyinstaller-hooks-contrib/commit/53ddb3821b744b893240d7285d64e78073e1e265\"\u003e\u003ccode\u003e53ddb38\u003c/code\u003e\u003c/a\u003e Scheduled weekly dependency update for week 37 (\u003ca href=\"https://redirect.github.com/pyinstaller/pyinstaller-hooks-contrib/issues/947\"\u003e#947\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyinstaller/pyinstaller-hooks-contrib/commit/34e96037025869c2f57f8fbdfa546a8b2fa03401\"\u003e\u003ccode\u003e34e9603\u003c/code\u003e\u003c/a\u003e Scheduled weekly dependency update for week 36 (\u003ca href=\"https://redirect.github.com/pyinstaller/pyinstaller-hooks-contrib/issues/944\"\u003e#944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyinstaller/pyinstaller-hooks-contrib/commit/99284ecea116c90795729df1a970c61c63d62701\"\u003e\u003ccode\u003e99284ec\u003c/code\u003e\u003c/a\u003e hooks: update clr hook to use importlib_metadata from compat module\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyinstaller/pyinstaller-hooks-contrib/commit/31294a5930f146c3794e653a51d57f007f7cc6c9\"\u003e\u003ccode\u003e31294a5\u003c/code\u003e\u003c/a\u003e hooks: harden blib2to3 and torch hooks against missing RECORD in metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyinstaller/pyinstaller-hooks-contrib/commit/780e05e1f1d8f408bdf01a874fa39e0a8371f1fc\"\u003e\u003ccode\u003e780e05e\u003c/code\u003e\u003c/a\u003e ci: macOS: remove the pre-installed cmake\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyinstaller/pyinstaller-hooks-contrib/commit/dd7b3f49643def70ee11be6d00f2280c1996745e\"\u003e\u003ccode\u003edd7b3f4\u003c/code\u003e\u003c/a\u003e Tests: Requirements: Scheduled weekly dependency update for week 35\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyinstaller/pyinstaller-hooks-contrib/commit/9c7bdc9311aedc0c83a5dbbdf1348b7fee8dc855\"\u003e\u003ccode\u003e9c7bdc9\u003c/code\u003e\u003c/a\u003e hooks: add a hook for pointcept\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyinstaller/pyinstaller-hooks-contrib/compare/v2025.8...v2025.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.4.1 to 8.4.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.4.2\u003c/h2\u003e\n\u003ch1\u003epytest 8.4.2 (2025-09-03)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13478\"\u003e#13478\u003c/a\u003e: Fixed a crash when using \u003ccode\u003econsole_output_style\u003c/code\u003e{.interpreted-text role=\u0026quot;confval\u0026quot;} with \u003ccode\u003etimes\u003c/code\u003e and a module is skipped.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13530\"\u003e#13530\u003c/a\u003e: Fixed a crash when using \u003ccode\u003epytest.approx\u003c/code\u003e{.interpreted-text role=\u0026quot;func\u0026quot;} and \u003ccode\u003edecimal.Decimal\u003c/code\u003e{.interpreted-text role=\u0026quot;class\u0026quot;} instances with the \u003ccode\u003edecimal.FloatOperation\u003c/code\u003e{.interpreted-text role=\u0026quot;class\u0026quot;} trap set.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13549\"\u003e#13549\u003c/a\u003e: No longer evaluate type annotations in Python \u003ccode\u003e3.14\u003c/code\u003e when inspecting function signatures.\u003c/p\u003e\n\u003cp\u003eThis prevents crashes during module collection when modules do not explicitly use \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e and import types for annotations within a \u003ccode\u003eif TYPE_CHECKING:\u003c/code\u003e block.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13559\"\u003e#13559\u003c/a\u003e: Added missing [int]{.title-ref} and [float]{.title-ref} variants to the [Literal]{.title-ref} type annotation of the [type]{.title-ref} parameter in \u003ccode\u003epytest.Parser.addini\u003c/code\u003e{.interpreted-text role=\u0026quot;meth\u0026quot;}.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13563\"\u003e#13563\u003c/a\u003e: \u003ccode\u003epytest.approx\u003c/code\u003e{.interpreted-text role=\u0026quot;func\u0026quot;} now only imports \u003ccode\u003enumpy\u003c/code\u003e if NumPy is already in \u003ccode\u003esys.modules\u003c/code\u003e. This fixes unconditional import behavior introduced in [8.4.0]{.title-ref}.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13577\"\u003e#13577\u003c/a\u003e: Clarify that \u003ccode\u003epytest_generate_tests\u003c/code\u003e is discovered in test modules/classes; other hooks must be in \u003ccode\u003econftest.py\u003c/code\u003e or plugins.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13480\"\u003e#13480\u003c/a\u003e: Self-testing: fixed a few test failures when run with \u003ccode\u003e-Wdefault\u003c/code\u003e or a similar override.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13547\"\u003e#13547\u003c/a\u003e: Self-testing: corrected expected message for \u003ccode\u003etest_doctest_unexpected_exception\u003c/code\u003e in Python \u003ccode\u003e3.14\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13684\"\u003e#13684\u003c/a\u003e: Make pytest's own testsuite insensitive to the presence of the \u003ccode\u003eCI\u003c/code\u003e environment variable -- by \u003ccode\u003eogrisel\u003c/code\u003e{.interpreted-text role=\u0026quot;user\u0026quot;}.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bfae4224fd554d3d7f2c277a4cc092b6ec6af3ae\"\u003e\u003ccode\u003ebfae422\u003c/code\u003e\u003c/a\u003e Prepare release version 8.4.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/89905381a163be30ae87d62e5f750e902d750c5f\"\u003e\u003ccode\u003e8990538\u003c/code\u003e\u003c/a\u003e Fix passenv CI in tox ini and make tests insensitive to the presence of the C...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ca676bfe005aebcb12f4146d1b0f1d2772e2cd5d\"\u003e\u003ccode\u003eca676bf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13687\"\u003e#13687\u003c/a\u003e from pytest-dev/patchback/backports/8.4.x/e63f6e51c...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/975a60a63ce385a44655596e254c1899feaa53e4\"\u003e\u003ccode\u003e975a60a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13686\"\u003e#13686\u003c/a\u003e from pytest-dev/patchback/backports/8.4.x/12bde8af6...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7723ce84b87ab08f86ddafcb342acc28ba5ec99d\"\u003e\u003ccode\u003e7723ce8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13683\"\u003e#13683\u003c/a\u003e from even-even/fix_Exeption_to_Exception_in_errorMe...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7f05680d1301e0969b30bcb3c4b27433c9ee2b7\"\u003e\u003ccode\u003eb7f0568\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13685\"\u003e#13685\u003c/a\u003e from CoretexShadow/fix/docs-pytest-generate-tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/2c94c4a6948ba53440818389298157fa5d5f94cd\"\u003e\u003ccode\u003e2c94c4a\u003c/code\u003e\u003c/a\u003e add missing colon (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13640\"\u003e#13640\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13641\"\u003e#13641\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c3d7684bc01c8c48d05145a30c5211ca8656c68c\"\u003e\u003ccode\u003ec3d7684\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13606\"\u003e#13606\u003c/a\u003e from pytest-dev/patchback/backports/8.4.x/5f9938563...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/dc6e3be2ddc75a149b6d102d9b7c82ee47a00cfa\"\u003e\u003ccode\u003edc6e3be\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13605\"\u003e#13605\u003c/a\u003e from The-Compiler/training-update-2025-07\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f87289c36c8dbe7740e3020f5546b6f8b0861ff0\"\u003e\u003ccode\u003ef87289c\u003c/code\u003e\u003c/a\u003e Fix crash with \u003ccode\u003etimes\u003c/code\u003e output style and skipped module (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13573\"\u003e#13573\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13579\"\u003e#13579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.4.1...8.4.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-cov` from 6.2.1 to 7.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst\"\u003epytest-cov's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.0.0 (2025-09-09)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped support for subprocesses measurement.\u003c/p\u003e\n\u003cp\u003eIt was a feature added long time ago when coverage lacked a nice way to measure subprocesses created in tests.\nIt relied on a \u003ccode\u003e.pth\u003c/code\u003e file, there was no way to opt-out and it created bad interations\nwith \u003ccode\u003ecoverage's new patch system \u0026lt;https://coverage.readthedocs.io/en/latest/config.html#run-patch\u0026gt;\u003c/code\u003e_ added\nin \u003ccode\u003e7.10 \u0026lt;https://coverage.readthedocs.io/en/7.10.6/changes.html#version-7-10-0-2025-07-24\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003eTo migrate to this release you might need to enable the suprocess patch, example for \u003ccode\u003e.coveragerc\u003c/code\u003e:\u003c/p\u003e\n\u003cp\u003e.. code-block:: ini\u003c/p\u003e\n\u003cp\u003e[run]\npatch = subprocess\u003c/p\u003e\n\u003cp\u003eThis release also requires at least coverage 7.10.6.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSwitched packaging to have metadata completely in \u003ccode\u003epyproject.toml\u003c/code\u003e and use \u003ccode\u003ehatchling \u0026lt;https://pypi.org/project/hatchling/\u0026gt;\u003c/code\u003e_ for\nbuilding.\nContributed by Ofek Lev in \u003ccode\u003e[#551](https://github.com/pytest-dev/pytest-cov/issues/551) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/551\u0026gt;\u003c/code\u003e_\nwith some extras in \u003ccode\u003e[#716](https://github.com/pytest-dev/pytest-cov/issues/716) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/716\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved some not really necessary testing deps like \u003ccode\u003esix\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.3.0 (2025-09-06)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for markdown reports.\nContributed by Marcos Boger in \u003ccode\u003e[#712](https://github.com/pytest-dev/pytest-cov/issues/712) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/712\u0026gt;\u003c/code\u003e_\nand \u003ccode\u003e[#714](https://github.com/pytest-dev/pytest-cov/issues/714) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/714\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eFixed some formatting issues in docs.\nAnonymous contribution in \u003ccode\u003e[#706](https://github.com/pytest-dev/pytest-cov/issues/706) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/706\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/224d8964caad90074a8cf6dc8720b8f70f31629b\"\u003e\u003ccode\u003e224d896\u003c/code\u003e\u003c/a\u003e Bump version: 6.3.0 → 7.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/73424e3999f865eac72e27f09d5fe11b9703cfd6\"\u003e\u003ccode\u003e73424e3\u003c/code\u003e\u003c/a\u003e Cleanup the docs a bit.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/36f1cc2967831dbd4c8aa70086fc86dc495f8b9a\"\u003e\u003ccode\u003e36f1cc2\u003c/code\u003e\u003c/a\u003e Bump pins in template.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/f299c590a63a48e51e3ae949993dc7bb1f1d480d\"\u003e\u003ccode\u003ef299c59\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 2 updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/25f0b2e0cdbc345c0d3e49170f7a328c3e0d805f\"\u003e\u003ccode\u003e25f0b2e\u003c/code\u003e\u003c/a\u003e Update docs/config.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/bb23eacc5531fb8f499213d8420407e0d72f88e3\"\u003e\u003ccode\u003ebb23eac\u003c/code\u003e\u003c/a\u003e Improve configuration docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/a19531e91e1ab753ccf648a2d9bab08a6fddebb9\"\u003e\u003ccode\u003ea19531e\u003c/code\u003e\u003c/a\u003e Switch from build/pre-commit to uv/prek - this should make this faster.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/82f999391073f2fb8ae422af452602f310086a2a\"\u003e\u003ccode\u003e82f9993\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/211b5cd41c29916bc643b4a11b00578ba4fd6fe8\"\u003e\u003ccode\u003e211b5cd\u003c/code\u003e\u003c/a\u003e Fix links.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/97aadd74bcbc00a2078d240e8fe871dd62b83d80\"\u003e\u003ccode\u003e97aadd7\u003c/code\u003e\u003c/a\u003e Update some ci config, reformat and apply some lint fixes.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-cov/compare/v6.2.1...v7.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.12.7 to 0.13.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.13.2\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-09-25.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Implement \u003ccode\u003eblocking-path-method\u003c/code\u003e (\u003ccode\u003eASYNC240\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20264\"\u003e#20264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Implement \u003ccode\u003emap-without-explicit-strict\u003c/code\u003e (\u003ccode\u003eB912\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20429\"\u003e#20429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bultins\u003c/code\u003e] Detect class-scope builtin shadowing in decorators, default args, and attribute initializers (\u003ccode\u003eA003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20178\"\u003e#20178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Implement \u003ccode\u003elogging-eager-conversion\u003c/code\u003e (\u003ccode\u003eRUF065\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19942\"\u003e#19942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInclude \u003ccode\u003e.pyw\u003c/code\u003e files by default when linting and formatting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20458\"\u003e#20458\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeduplicate input paths (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20105\"\u003e#20105\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Preserve trailing commas for single-element lists (\u003ccode\u003eC409\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19571\"\u003e#19571\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Avoid syntax error from conflict with \u003ccode\u003ePIE790\u003c/code\u003e (\u003ccode\u003ePYI021\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20010\"\u003e#20010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Correct fix for positive \u003ccode\u003emaxsplit\u003c/code\u003e without separator (\u003ccode\u003eSIM905\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20056\"\u003e#20056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix \u003ccode\u003eUP008\u003c/code\u003e not to apply when \u003ccode\u003e__class__\u003c/code\u003e is a local variable (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20497\"\u003e#20497\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Fix \u003ccode\u003eB004\u003c/code\u003e to skip invalid \u003ccode\u003ehasattr\u003c/code\u003e/\u003ccode\u003egetattr\u003c/code\u003e calls (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20486\"\u003e#20486\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Replace \u003ccode\u003e-nan\u003c/code\u003e with \u003ccode\u003enan\u003c/code\u003e when using the value to construct a \u003ccode\u003eDecimal\u003c/code\u003e (\u003ccode\u003eFURB164\u003c/code\u003e ) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20391\"\u003e#20391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd 'Finding ways to help' to CONTRIBUTING.md (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20567\"\u003e#20567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate import path to \u003ccode\u003eruff-wasm-web\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20539\"\u003e#20539\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Clarify the supported hashing functions (\u003ccode\u003eS324\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20534\"\u003e#20534\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eplayground\u003c/code\u003e] Allow hover quick fixes to appear for overlapping diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20527\"\u003e#20527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eplayground\u003c/code\u003e] Fix non‑BMP code point handling in quick fixes and markers (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20526\"\u003e#20526\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BurntSushi\"\u003e\u003ccode\u003e@​BurntSushi\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtshiba\"\u003e\u003ccode\u003e@​mtshiba\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/second-ed\"\u003e\u003ccode\u003e@​second-ed\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/danparizher\"\u003e\u003ccode\u003e@​danparizher\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ShikChen\"\u003e\u003ccode\u003e@​ShikChen\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PieterCK\"\u003e\u003ccode\u003e@​PieterCK\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GDYendell\"\u003e\u003ccode\u003e@​GDYendell\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RazerM\"\u003e\u003ccode\u003e@​RazerM\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TaKO8Ki\"\u003e\u003ccode\u003e@​TaKO8Ki\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntbre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.13.2\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.13.2\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-09-25.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Implement \u003ccode\u003eblocking-path-method\u003c/code\u003e (\u003ccode\u003eASYNC240\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20264\"\u003e#20264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Implement \u003ccode\u003emap-without-explicit-strict\u003c/code\u003e (\u003ccode\u003eB912\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20429\"\u003e#20429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bultins\u003c/code\u003e] Detect class-scope builtin shadowing in decorators, default args, and attribute initializers (\u003ccode\u003eA003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20178\"\u003e#20178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Implement \u003ccode\u003elogging-eager-conversion\u003c/code\u003e (\u003ccode\u003eRUF065\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19942\"\u003e#19942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInclude \u003ccode\u003e.pyw\u003c/code\u003e files by default when linting and formatting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20458\"\u003e#20458\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeduplicate input paths (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20105\"\u003e#20105\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Preserve trailing commas for single-element lists (\u003ccode\u003eC409\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19571\"\u003e#19571\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Avoid syntax error from conflict with \u003ccode\u003ePIE790\u003c/code\u003e (\u003ccode\u003ePYI021\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20010\"\u003e#20010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Correct fix for positive \u003ccode\u003emaxsplit\u003c/code\u003e without separator (\u003ccode\u003eSIM905\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20056\"\u003e#20056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix \u003ccode\u003eUP008\u003c/code\u003e not to apply when \u003ccode\u003e__class__\u003c/code\u003e is a local variable (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20497\"\u003e#20497\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Fix \u003ccode\u003eB004\u003c/code\u003e to skip invalid \u003ccode\u003ehasattr\u003c/code\u003e/\u003ccode\u003egetattr\u003c/code\u003e calls (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20486\"\u003e#20486\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Replace \u003ccode\u003e-nan\u003c/code\u003e with \u003ccode\u003enan\u003c/code\u003e when using the value to construct a \u003ccode\u003eDecimal\u003c/code\u003e (\u003ccode\u003eFURB164\u003c/code\u003e ) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20391\"\u003e#20391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd 'Finding ways to help' to CONTRIBUTING.md (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20567\"\u003e#20567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate import path to \u003ccode\u003eruff-wasm-web\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20539\"\u003e#20539\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Clarify the supported hashing functions (\u003ccode\u003eS324\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20534\"\u003e#20534\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eplayground\u003c/code\u003e] Allow hover quick fixes to appear for overlapping diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20527\"\u003e#20527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eplayground\u003c/code\u003e] Fix non‑BMP code point handling in quick fixes and markers (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20526\"\u003e#20526\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BurntSushi\"\u003e\u003ccode\u003e@​BurntSushi\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtshiba\"\u003e\u003ccode\u003e@​mtshiba\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/second-ed\"\u003e\u003ccode\u003e@​second-ed\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/danparizher\"\u003e\u003ccode\u003e@​danparizher\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ShikChen\"\u003e\u003ccode\u003e@​ShikChen\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PieterCK\"\u003e\u003ccode\u003e@​PieterCK\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GDYendell\"\u003e\u003ccode\u003e@​GDYendell\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RazerM\"\u003e\u003ccode\u003e@​RazerM\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TaKO8Ki\"\u003e\u003ccode\u003e@​TaKO8Ki\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntbre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.13.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b0bdf0334e38417f8617057cd0392a4b53954120\"\u003e\u003ccode\u003eb0bdf03\u003c/code\u003e\u003c/a\u003e Bump 0.13.2 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20576\"\u003e#20576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7331d393c555ece88aa69f685562163790ddf611\"\u003e\u003ccode\u003e7331d39\u003c/code\u003e\u003c/a\u003e Update rooster to 0.1.0 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20575\"\u003e#20575\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/529e5fa6c24ea68501adb18245eab27c701598d2\"\u003e\u003ccode\u003e529e5fa\u003c/code\u003e\u003c/a\u003e [ty] Ecosystem analyzer: timing report (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20571\"\u003e#20571\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/efbb80f7475c63b62981444d5c429109ff12ad32\"\u003e\u003ccode\u003eefbb80f\u003c/code\u003e\u003c/a\u003e [ty] Remove hack in protocol satisfiability check (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20568\"\u003e#20568\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9f3cffc65cb834661e17263245761a66f9474af0\"\u003e\u003ccode\u003e9f3cffc\u003c/code\u003e\u003c/a\u003e Add 'Finding ways to help' to CONTRIBUTING.md (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20567\"\u003e#20567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/21be94ac33f445d8a681babec6c56ca3d1b67156\"\u003e\u003ccode\u003e21be94a\u003c/code\u003e\u003c/a\u003e [ty] Explicitly test assignability/subtyping between unions of nominal types ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b7d5dc98c193cc5cab00d557b6a392d35137d990\"\u003e\u003ccode\u003eb7d5dc9\u003c/code\u003e\u003c/a\u003e [ty] Add tests for interactions of \u003ccode\u003e@classmethod\u003c/code\u003e, \u003ccode\u003e@staticmethod\u003c/code\u003e, and proto...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e1bb74b25a0f730a5baff263d753ffe03cf857b1\"\u003e\u003ccode\u003ee1bb74b\u003c/code\u003e\u003c/a\u003e [ty] Match variadic argument to variadic parameter (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20511\"\u003e#20511\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/edeb45804ef9dbe348d393f3ab77288062a3c77e\"\u003e\u003ccode\u003eedeb458\u003c/code\u003e\u003c/a\u003e [ty] fallback to resolve_real_module in file_to_module (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20461\"\u003e#20461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/bea92c822980b1575d58542dffa2c960393d7603\"\u003e\u003ccode\u003ebea92c8\u003c/code\u003e\u003c/a\u003e [ty] More precise type inference for dictionary literals (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20523\"\u003e#20523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.12.7...0.13.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `syrupy` from 4.9.1 to 5.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/syrupy-project/syrupy/releases\"\u003esyrupy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.0.0\u003c/h2\u003e\n\u003ch2\u003eSyrupy 5.0.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e(2025-09-28)\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eThis release introduces new features, bug fixes, and a major license change. It also includes several \u003cstrong\u003ebreaking changes\u003c/strong\u003e, so please review those carefully before upgrading.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch3\u003eNew Features ✨\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eAdd \u003ccode\u003e--snapshot-dirname\u003c/code\u003e option:\u003c/strong\u003e A new option, \u003ccode\u003e--snapshot-dirname\u003c/code\u003e, is now available to change the default directory snapshots are stored in. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003e#810\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003esyrupy-project/syrupy#810\u003c/a\u003e))\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRemove private underscore prefix:\u003c/strong\u003e The unnecessary underscore prefixes have been removed from public methods for better code clarity. ([\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003e8cfc905\u003c/a\u003e](\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003ehttps://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\u003c/a\u003e))\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch3\u003eBug Fixes 🐛\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFix terminal summary for \u003ccode\u003exdist\u003c/code\u003e workers:\u003c/strong\u003e Resolves an issue where the terminal summary was not displayed correctly with \u003ccode\u003exdist\u003c/code\u003e workers. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/978\"\u003e#978\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/978\"\u003esyrupy-project/syrupy#978\u003c/a\u003e))\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eEnsure \u003ccode\u003epytest_assertrepr_compare\u003c/code\u003e hook is called first:\u003c/strong\u003e This change ensures that Syrupy's assertion hook takes precedence, improving compatibility with other plugins. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/984\"\u003e#984\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/984\"\u003esyrupy-project/syrupy#984\u003c/a\u003e))\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch3\u003eBreaking Changes ⚠️\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eLicense change:\u003c/strong\u003e The project has switched to the more permissive \u003cstrong\u003eMIT license\u003c/strong\u003e. This change applies to all versions from 5.0.0 and beyond. If you need to use the previous Apache 2.0 license, you must continue to use Syrupy versions 4.x or earlier. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/945\"\u003e#945\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/945\"\u003esyrupy-project/syrupy#945\u003c/a\u003e))\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003ePython and pytest version requirements:\u003c/strong\u003e Syrupy now requires \u003cstrong\u003ePython 3.10\u003c/strong\u003e or higher. Support for Python 3.8 has been dropped as it reached its end of life in October 2024. The minimum required version of \u003cstrong\u003epytest is v8\u003c/strong\u003e. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/904\"\u003e#904\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/904\"\u003esyrupy-project/syrupy#904\u003c/a\u003e), [\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003e#1024\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003esyrupy-project/syrupy#1024\u003c/a\u003e))\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eMethod and constant name changes:\u003c/strong\u003e Several methods and constants have been renamed for improved clarity and to align with public API standards.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ccode\u003eSnapshotCollectionStorage\u003c/code\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e_read_snapshot_collection\u003c/code\u003e -\u0026gt; \u003ccode\u003eread_snapshot_collection\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_read_snapshot_data_from_location\u003c/code\u003e -\u0026gt; \u003ccode\u003eread_snapshot_data_from_location\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_write_snapshot_collection\u003c/code\u003e -\u0026gt; \u003ccode\u003ewrite_snapshot_collection\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_get_file_basename\u003c/code\u003e -\u0026gt; \u003ccode\u003eget_file_basename\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_file_extension\u003c/code\u003e -\u0026gt; \u003ccode\u003efile_extension\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ccode\u003eAmberDataSerializer\u003c/code\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e_snapshot_sort_key\u003c/code\u003e -\u0026gt; \u003ccode\u003esnapshot_sort_key\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eConstants\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eSNAPSHOT_EMPTY_FOSSIL_KEY\u003c/code\u003e -\u0026gt; \u003ccode\u003eSNAPSHOT_EMPTY_COLLECTION_KEY\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSNAPSHOT_UNKNOWN_FOSSIL_KEY\u003c/code\u003e -\u0026gt; \u003ccode\u003eSNAPSHOT_UNKNOWN_COLLECTION_KEY\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSNAPSHOT_DIRNAME\u003c/code\u003e has been removed in favour of the property on the \u003ccode\u003eSnapshotCollectionStorage\u003c/code\u003e class and associated CLI option.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\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/paul-ollis\"\u003e\u003ccode\u003e@​paul-ollis\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/978\"\u003esyrupy-project/syrupy#978\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rahuliyer95\"\u003e\u003ccode\u003e@​rahuliyer95\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/984\"\u003esyrupy-project/syrupy#984\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\"\u003ehttps://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/syrupy-project/syrupy/blob/main/CHANGELOG.md\"\u003esyrupy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\"\u003e5.0.0\u003c/a\u003e (2025-09-28)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch to MIT license (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/945\"\u003e#945\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/d74d340f8884fdb04831fcf77f29d66e098aaa66\"\u003ed74d340\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlock terminal summary for xdist workers. (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/978\"\u003e#978\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/33a848df7c4a33577e4057eae5792f6592ad3172\"\u003e33a848d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eensure syrupy's pytest_assertrepr_compare hook is called first. (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/984\"\u003e#984\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/eb0024d339248b7e1f76fdb65ed30ba3e19c0857\"\u003eeb0024d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove incorrect private underscore prefix from public methods (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003e8cfc905\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd --snapshot-dirname option, close \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003e#810\u003c/a\u003e (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/27135c7c861441962c2cedde841f3e4fed2949fd\"\u003e27135c7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edrop support for py3.8, raise min. pytest to v8 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/904\"\u003e#904\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/a879ff15ad82e59a2f387db0822be072a5684f2f\"\u003ea879ff1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate min. python version to 3.10 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003e#1024\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/16b4113cd56da96e84a90ebda0919e9b8dd35954\"\u003e16b4113\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe following methods have been renamed:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSnapshotCollectionStorage\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e_read_snapshot_collection -\u0026gt; read_snapshot_collection\u003c/li\u003e\n\u003cli\u003e_read_snapshot_data_from_location -\u0026gt; read_snapshot_data_from_location\u003c/li\u003e\n\u003cli\u003e_write_snapshot_collection -\u0026gt; write_snapshot_collection\u003c/li\u003e\n\u003cli\u003e_get_file_basename -\u0026gt; get_file_basename\u003c/li\u003e\n\u003cli\u003e_file_extension -\u0026gt; file_extension\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eAmberDataSerializer\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e_snapshot_sort_key -\u0026gt; snapshot_sort_key\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRenamed constants to improve clarity:\u003c/p\u003e\n\u003cp\u003econstants\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSNAPSHOT_EMPTY_FOSSIL_KEY -\u0026gt; SNAPSHOT_EMPTY_COLLECTION_KEY\u003c/li\u003e\n\u003cli\u003eSNAPSHOT_UNKNOWN_FOSSIL_KEY -\u0026gt; SNAPSHOT_UNKNOWN_COLLECTION_KEY\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003eMin. python version is now 3.10.\u003c/li\u003e\n\u003cli\u003eThe Syrupy project is switching from Apache 2.0 to a more permissive MIT license. By using Syrupy \u0026gt;=5, you agree to abide by this new license. You can continue to use Syrupy v1 through v4 under Apache 2.0.\u003c/li\u003e\n\u003cli\u003eDrops support for Python 3.8 which is end of life as of October 2024. Raises the minimum version of pytest to v8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/9b4cc82e50e29f84dcb55054c8eab281c90a280b\"\u003e\u003ccode\u003e9b4cc82\u003c/code\u003e\u003c/a\u003e chore(release): 5.0.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/af15385acd5bf617815aa0d19e2df907bbbd2d83\"\u003e\u003ccode\u003eaf15385\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1027\"\u003e#1027\u003c/a\u003e from syrupy-project/test_py_3_14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/461ad224d192a18296934e2434b9302fb0984007\"\u003e\u003ccode\u003e461ad22\u003c/code\u003e\u003c/a\u003e chore: test against py3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/95ffbcb085eb920920a7241c814a55c1e948f148\"\u003e\u003ccode\u003e95ffbcb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1026\"\u003e#1026\u003c/a\u003e from syrupy-project/rename_methods\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/27135c7c861441962c2cedde841f3e4fed2949fd\"\u003e\u003ccode\u003e27135c7\u003c/code\u003e\u003c/a\u003e feat: add --snapshot-dirname option, close \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003e#810\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003e\u003ccode\u003e8cfc905\u003c/code\u003e\u003c/a\u003e refactor: remove incorrect private underscore prefix from public methods\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/e1dbf5dc2a1148480aa9601a5e1c21928954b8cc\"\u003e\u003ccode\u003ee1dbf5d\u003c/code\u003e\u003c/a\u003e chore(deps): update python docker tag to v3.13.7 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1025\"\u003e#1025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/16b4113cd56da96e84a90ebda0919e9b8dd35954\"\u003e\u003ccode\u003e16b4113\u003c/code\u003e\u003c/a\u003e feat: update min. python version to 3.10 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003e#1024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/434c63fdabbaaf2372ec94c8968fe025c4a306e6\"\u003e\u003ccode\u003e434c63f\u003c/code\u003e\u003c/a\u003e chore(deps): update codecov/codecov-action action to v5.5.1 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1021\"\u003e#1021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/b2e49bad7741f06c17a0be9f4608c0db5db13cf5\"\u003e\u003ccode\u003eb2e49ba\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency pytest to v8.4.2 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1022\"\u003e#1022\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `types-cachetools` from 6.1.0.20250717 to 6.2.0.20250827\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/typeshed-internal/stub_uploader/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `types-setuptools` from 80.9.0.20250801 to 80.9.0.20250822\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/typeshed-internal/stub_uploader/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `furo` from 2025.7.19 to 2025.9.25\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pradyunsg/furo/blob/main/docs/changelog.md\"\u003efuro's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003e2025.09.25 -- Gleaming Green\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChange the dark mode code back to \u003ccode\u003enative\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2025.07.19 -- Frozen Flame\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Switch to accessible-pygments themes\u003c/li\u003e\n\u003cli\u003e✨ Prefetch the sidebar logos\u003c/li\u003e\n\u003cli\u003e✨ Fix flickering header drop shadow on Safari\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003erel=edit\u003c/code\u003e attribute to \u0026quot;Edit this page\u0026quot; link/icon\u003c/li\u003e\n\u003cli\u003eBump NodeJS and npm dependency versions\u003c/li\u003e\n\u003cli\u003eBump Saas \u0026amp; Webpack major versions\u003c/li\u003e\n\u003cli\u003eImprove current page detection to be resilient to sticky elements above header\u003c/li\u003e\n\u003cli\u003eModernise Sass and use \u003ccode\u003e@use\u003c/code\u003e + \u003ccode\u003e@forward\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove top of code \u003ccode\u003eborder-radius\u003c/code\u003e with captions\u003c/li\u003e\n\u003cli\u003eRemove \u0026quot;debug printf\u0026quot; for headerTop value\u003c/li\u003e\n\u003cli\u003eUse distinct images for light and dark mode in the documentation\u003c/li\u003e\n\u003cli\u003eUse the modern Saas Modules\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.08.06 -- Energetic Eminence\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add support for Sphinx 8\u003c/li\u003e\n\u003cli\u003e✨ Add smoother transitions between breakpoints\u003c/li\u003e\n\u003cli\u003eIncrease specificity of table-wrapper selector\u003c/li\u003e\n\u003cli\u003eAvoid page breaks inside paragraphs\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.07.18 -- Dull Denim\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove how icons are handled and aligned.\u003c/li\u003e\n\u003cli\u003eImprove scroll event handler.\u003c/li\u003e\n\u003cli\u003eHide the copybutton by default.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003esource_view_link\u003c/code\u003e configuration handling.\u003c/li\u003e\n\u003cli\u003eFix close tag on pencil icon.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.05.06 -- Cheerful Cerulean\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add new custom icons for auto mode, reflecting the currently active theme.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/7c5f8fac52926f4854141cb5bf374c1681aedbec\"\u003e\u003ccode\u003e7c5f8fa\u003c/code\u003e\u003c/a\u003e Prepare release: 2025.09.25\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/8bfdc54b2e8803450a2cb5dcab643a40b6934be2\"\u003e\u003ccode\u003e8bfdc54\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/d92b62fee4cedd5b2ac1d267353d96541c9e0fb0\"\u003e\u003ccode\u003ed92b62f\u003c/code\u003e\u003c/a\u003e Switch the dark mode theme back to \u003ccode\u003enative\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/83c3446288014357bb8a7875bb81b664b7f15896\"\u003e\u003ccode\u003e83c3446\u003c/code\u003e\u003c/a\u003e Add Blender to \u0026quot;used by\u0026quot; section (\u003ca href=\"https://redirect.github.com/pradyunsg/furo/issues/898\"\u003e#898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/426ea05d879ee7dfdf74ba7c8b089f73081abbfd\"\u003e\u003ccode\u003e426ea05\u003c/code\u003e\u003c/a\u003e Remove old scrollbar selectors (\u003ca href=\"https://redirect.github.com/pradyunsg/furo/issues/892\"\u003e#892\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/d22d31c4b196a29092ac606737b6e9a7ae99273a\"\u003e\u003ccode\u003ed22d31c\u003c/code\u003e\u003c/a\u003e Remove trailing slash on void elements (\u003ca href=\"https://redirect.github.com/pradyunsg/furo/issues/895\"\u003e#895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/f91944a688410f0aecd936b02f658279814ec017\"\u003e\u003ccode\u003ef91944a\u003c/code\u003e\u003c/a\u003e Fix invalid HTML5 (\u003ca href=\"https://redirect.github.com/pradyunsg/furo/issues/894\"\u003e#894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pradyunsg/furo/commit/a1f74d89a18ca59d231fe365bcc1616f6934ad28\"\u003e\u003ccode\u003ea1f74d8\u003c/code\u003e\u003c/a\u003e Back to development\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pradyunsg/furo/compare/2025.07.19...2025.09.25\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-autobuild` from 2024.10.3 to 2025.8.25\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/releases\"\u003esphinx-autobuild's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 2025.08.25\u003c/h2\u003e\n\u003cp\u003e2025.08.25\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/blob/main/NEWS.rst\"\u003esphinx-autobuild's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003eunreleased\u003c/h2\u003e\n\u003ch2\u003e2025.08.25 - 2025-08-25\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9-3.10 to match Sphinx.\u003c/li\u003e\n\u003cli\u003eDeclare support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdd an optional \u003ccode\u003e--post-build\u003c/code\u003e flag to run additional commands\nafter building the documentation.\u003c/li\u003e\n\u003cli\u003eAdd support for the \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e environment variable\nto help with debugging.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.03 - 2024-10-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove error handling for failures in pre-build commands.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.10.02 - 2024-10-02\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eShow the changed paths that triggered the rebuild.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.19 - 2024-09-19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix path filtering on Windows by normalising path separators.\u003c/li\u003e\n\u003cli\u003eFilter various directories by default (\u003ccode\u003e.git\u003c/code\u003e, \u003ccode\u003evenv\u003c/code\u003e, etc).\u003c/li\u003e\n\u003cli\u003eServe the correct directory when using make mode (\u003ccode\u003e-M\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.18 - 2024-09-18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRun Sphinx through the Python entry point rather than the binary on PATH.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.17 - 2024-09-17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRelax checks for paths that aren't required to exist.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2024.09.03 - 2024-09-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix support for Python 3.9.\u003c/li\u003e\n\u003cli\u003eFix running \u003ccode\u003esphinx-autobuild\u003c/code\u003e via entry point scripts.\u003c/li\u003e\n\u003cli\u003eRun \u003ccode\u003esphinx-build\u003c/code\u003e in a subprocess to mitigate autdoc issues.\u003c/li\u003e\n\u003cli\u003eSupport the \u003ccode\u003e-M\u003c/code\u003e 'make mode' option for \u003ccode\u003esphinx-build\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/sphinx-doc/sphinx-autobuild/commit/fd726c54b3610e5f3393e7098af972a6cf163e69\"\u003e\u003ccode\u003efd726c5\u003c/code\u003e\u003c/a\u003e Release 2025.08.25\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/f810750ea7884bada86611ec1419fa64533123cf\"\u003e\u003ccode\u003ef810750\u003c/code\u003e\u003c/a\u003e Update pre-commit versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/12e0553059bd5a3df83e9775d9fb99fbb9ec8473\"\u003e\u003ccode\u003e12e0553\u003c/code\u003e\u003c/a\u003e Format \u003ccode\u003epyproject.toml\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/6d039d483eb28e8185971a9e5c7ee38d1f674d6f\"\u003e\u003ccode\u003e6d039d4\u003c/code\u003e\u003c/a\u003e Declare support for Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/c4a47b070179b85aa0cd2f721023d23965c883cd\"\u003e\u003ccode\u003ec4a47b0\u003c/code\u003e\u003c/a\u003e Fix name of 'test' nox session in docs (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/193\"\u003e#193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/48fcf5cd36cab2719c3135894c1bd31097171e92\"\u003e\u003ccode\u003e48fcf5c\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e--help\u003c/code\u003e with Python 3.14 and Sphinx 8.2.3 (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/199\"\u003e#199\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/0c52892160d078f66ab2b31e5f83988db473deee\"\u003e\u003ccode\u003e0c52892\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eSPHINX_AUTOBUILD_DEBUG\u003c/code\u003e to aid debugging (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/192\"\u003e#192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/cc58cc115f5b9a0db8f4a2313c07440b120c3c0d\"\u003e\u003ccode\u003ecc58cc1\u003c/code\u003e\u003c/a\u003e Add a \u003ccode\u003e--post-build\u003c/code\u003e argument (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/190\"\u003e#190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/commit/92bcf108565c9e7345ad1e11553e35609324ff0d\"\u003e\u003ccode\u003e92bcf10\u003c/code\u003e\u003c/a\u003e Require Python 3.11 or newer, to match Sphinx (\u003ca href=\"https://redirect.github.com/sphinx-doc/sphinx-autobuild/issues/189\"\u003e#189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sphinx-doc/sphinx-autobuild/compare/2024.10.03...2025.08.25\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-click` from 6.0.0 to 6.1.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/58473a8dac250898e1dc7dfac5622dc938264bb4\"\u003e\u003ccode\u003e58473a8\u003c/code\u003e\u003c/a\u003e Migrate to trusted publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/0d4f938d799a669658fc2b0ef3ede100d9abf5ab\"\u003e\u003ccode\u003e0d4f938\u003c/code\u003e\u003c/a\u003e Drop support for Python \u0026lt; 3.10, add Python 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/073353abfc0f6a72ca3fc33b7272072ec422cccb\"\u003e\u003ccode\u003e073353a\u003c/code\u003e\u003c/a\u003e Migrate setuptools, mypy configuration to pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/83a5a17736958a9e4119ecb9ad271e3f1bf223fc\"\u003e\u003ccode\u003e83a5a17\u003c/code\u003e\u003c/a\u003e Prefer Group over MultiCommand\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/d9705e8a369211d60db0279fafb58f7f7fa079a7\"\u003e\u003ccode\u003ed9705e8\u003c/code\u003e\u003c/a\u003e Bump actions versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/a94049aed188e1d8ea58c5bb747218634b685625\"\u003e\u003ccode\u003ea94049a\u003c/code\u003e\u003c/a\u003e pre-commit: Bump versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/dc11fe14f6fa859773276f7492e326e49e47e0ba\"\u003e\u003ccode\u003edc11fe1\u003c/code\u003e\u003c/a\u003e pre-commit: Migrate to ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/click-contrib/sphinx-click/commit/c999be2eb4d2e7dd1bbee314be6d03c499a62cbf\"\u003e\u003ccode\u003ec999be2\u003c/code\u003e\u003c/a\u003e pre-commit: Bump versions\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/click-contrib/sphinx-click/compare/6.0.0...6.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n...\n\n_Description has been truncated_","html_url":"https://github.com/abey79/vpype/pull/813","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/abey79%2Fvpype/issues/813","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/813/packages"}},{"old_version":"4.9.1","new_version":"5.0.0","update_type":"major","path":null,"pr_created_at":"2025-10-01T14:04:41.000Z","version_change":"4.9.1 → 5.0.0","issue":{"uuid":"2878391383","node_id":"PR_kwDOKiWn2s6rkMRX","number":246,"state":"closed","title":"Bump syrupy from 4.9.1 to 5.0.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":"2025-10-01T14:05:55.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-10-01T14:04:41.000Z","updated_at":"2025-10-01T14:05:56.000Z","time_to_close":74,"merged_at":"2025-10-01T14:05:55.000Z","merged_by":"github-actions[bot]","closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"syrupy","old_version":"4.9.1","new_version":"5.0.0","repository_url":"https://github.com/syrupy-project/syrupy"}],"path":null,"ecosystem":"pip"},"body":"Bumps [syrupy](https://github.com/syrupy-project/syrupy) from 4.9.1 to 5.0.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/syrupy-project/syrupy/releases\"\u003esyrupy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.0.0\u003c/h2\u003e\n\u003ch2\u003eSyrupy 5.0.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e(2025-09-28)\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eThis release introduces new features, bug fixes, and a major license change. It also includes several \u003cstrong\u003ebreaking changes\u003c/strong\u003e, so please review those carefully before upgrading.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch3\u003eNew Features ✨\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eAdd \u003ccode\u003e--snapshot-dirname\u003c/code\u003e option:\u003c/strong\u003e A new option, \u003ccode\u003e--snapshot-dirname\u003c/code\u003e, is now available to change the default directory snapshots are stored in. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003e#810\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003esyrupy-project/syrupy#810\u003c/a\u003e))\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRemove private underscore prefix:\u003c/strong\u003e The unnecessary underscore prefixes have been removed from public methods for better code clarity. ([\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003e8cfc905\u003c/a\u003e](\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003ehttps://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\u003c/a\u003e))\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch3\u003eBug Fixes 🐛\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFix terminal summary for \u003ccode\u003exdist\u003c/code\u003e workers:\u003c/strong\u003e Resolves an issue where the terminal summary was not displayed correctly with \u003ccode\u003exdist\u003c/code\u003e workers. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/978\"\u003e#978\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/978\"\u003esyrupy-project/syrupy#978\u003c/a\u003e))\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eEnsure \u003ccode\u003epytest_assertrepr_compare\u003c/code\u003e hook is called first:\u003c/strong\u003e This change ensures that Syrupy's assertion hook takes precedence, improving compatibility with other plugins. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/984\"\u003e#984\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/984\"\u003esyrupy-project/syrupy#984\u003c/a\u003e))\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch3\u003eBreaking Changes ⚠️\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eLicense change:\u003c/strong\u003e The project has switched to the more permissive \u003cstrong\u003eMIT license\u003c/strong\u003e. This change applies to all versions from 5.0.0 and beyond. If you need to use the previous Apache 2.0 license, you must continue to use Syrupy versions 4.x or earlier. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/945\"\u003e#945\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/945\"\u003esyrupy-project/syrupy#945\u003c/a\u003e))\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003ePython and pytest version requirements:\u003c/strong\u003e Syrupy now requires \u003cstrong\u003ePython 3.10\u003c/strong\u003e or higher. Support for Python 3.8 has been dropped as it reached its end of life in October 2024. The minimum required version of \u003cstrong\u003epytest is v8\u003c/strong\u003e. ([\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/904\"\u003e#904\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/904\"\u003esyrupy-project/syrupy#904\u003c/a\u003e), [\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003e#1024\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003esyrupy-project/syrupy#1024\u003c/a\u003e))\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eMethod and constant name changes:\u003c/strong\u003e Several methods and constants have been renamed for improved clarity and to align with public API standards.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ccode\u003eSnapshotCollectionStorage\u003c/code\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e_read_snapshot_collection\u003c/code\u003e -\u0026gt; \u003ccode\u003eread_snapshot_collection\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_read_snapshot_data_from_location\u003c/code\u003e -\u0026gt; \u003ccode\u003eread_snapshot_data_from_location\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_write_snapshot_collection\u003c/code\u003e -\u0026gt; \u003ccode\u003ewrite_snapshot_collection\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_get_file_basename\u003c/code\u003e -\u0026gt; \u003ccode\u003eget_file_basename\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e_file_extension\u003c/code\u003e -\u0026gt; \u003ccode\u003efile_extension\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ccode\u003eAmberDataSerializer\u003c/code\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e_snapshot_sort_key\u003c/code\u003e -\u0026gt; \u003ccode\u003esnapshot_sort_key\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eConstants\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eSNAPSHOT_EMPTY_FOSSIL_KEY\u003c/code\u003e -\u0026gt; \u003ccode\u003eSNAPSHOT_EMPTY_COLLECTION_KEY\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSNAPSHOT_UNKNOWN_FOSSIL_KEY\u003c/code\u003e -\u0026gt; \u003ccode\u003eSNAPSHOT_UNKNOWN_COLLECTION_KEY\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSNAPSHOT_DIRNAME\u003c/code\u003e has been removed in favour of the property on the \u003ccode\u003eSnapshotCollectionStorage\u003c/code\u003e class and associated CLI option.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\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/paul-ollis\"\u003e\u003ccode\u003e@​paul-ollis\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/978\"\u003esyrupy-project/syrupy#978\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rahuliyer95\"\u003e\u003ccode\u003e@​rahuliyer95\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/pull/984\"\u003esyrupy-project/syrupy#984\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\"\u003ehttps://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/syrupy-project/syrupy/blob/main/CHANGELOG.md\"\u003esyrupy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\"\u003e5.0.0\u003c/a\u003e (2025-09-28)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch to MIT license (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/945\"\u003e#945\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/d74d340f8884fdb04831fcf77f29d66e098aaa66\"\u003ed74d340\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlock terminal summary for xdist workers. (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/978\"\u003e#978\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/33a848df7c4a33577e4057eae5792f6592ad3172\"\u003e33a848d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eensure syrupy's pytest_assertrepr_compare hook is called first. (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/984\"\u003e#984\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/eb0024d339248b7e1f76fdb65ed30ba3e19c0857\"\u003eeb0024d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove incorrect private underscore prefix from public methods (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003e8cfc905\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd --snapshot-dirname option, close \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003e#810\u003c/a\u003e (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/27135c7c861441962c2cedde841f3e4fed2949fd\"\u003e27135c7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edrop support for py3.8, raise min. pytest to v8 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/904\"\u003e#904\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/a879ff15ad82e59a2f387db0822be072a5684f2f\"\u003ea879ff1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate min. python version to 3.10 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003e#1024\u003c/a\u003e) (\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/16b4113cd56da96e84a90ebda0919e9b8dd35954\"\u003e16b4113\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe following methods have been renamed:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSnapshotCollectionStorage\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e_read_snapshot_collection -\u0026gt; read_snapshot_collection\u003c/li\u003e\n\u003cli\u003e_read_snapshot_data_from_location -\u0026gt; read_snapshot_data_from_location\u003c/li\u003e\n\u003cli\u003e_write_snapshot_collection -\u0026gt; write_snapshot_collection\u003c/li\u003e\n\u003cli\u003e_get_file_basename -\u0026gt; get_file_basename\u003c/li\u003e\n\u003cli\u003e_file_extension -\u0026gt; file_extension\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eAmberDataSerializer\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e_snapshot_sort_key -\u0026gt; snapshot_sort_key\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRenamed constants to improve clarity:\u003c/p\u003e\n\u003cp\u003econstants\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSNAPSHOT_EMPTY_FOSSIL_KEY -\u0026gt; SNAPSHOT_EMPTY_COLLECTION_KEY\u003c/li\u003e\n\u003cli\u003eSNAPSHOT_UNKNOWN_FOSSIL_KEY -\u0026gt; SNAPSHOT_UNKNOWN_COLLECTION_KEY\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003eMin. python version is now 3.10.\u003c/li\u003e\n\u003cli\u003eThe Syrupy project is switching from Apache 2.0 to a more permissive MIT license. By using Syrupy \u0026gt;=5, you agree to abide by this new license. You can continue to use Syrupy v1 through v4 under Apache 2.0.\u003c/li\u003e\n\u003cli\u003eDrops support for Python 3.8 which is end of life as of October 2024. Raises the minimum version of pytest to v8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/9b4cc82e50e29f84dcb55054c8eab281c90a280b\"\u003e\u003ccode\u003e9b4cc82\u003c/code\u003e\u003c/a\u003e chore(release): 5.0.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/af15385acd5bf617815aa0d19e2df907bbbd2d83\"\u003e\u003ccode\u003eaf15385\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1027\"\u003e#1027\u003c/a\u003e from syrupy-project/test_py_3_14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/461ad224d192a18296934e2434b9302fb0984007\"\u003e\u003ccode\u003e461ad22\u003c/code\u003e\u003c/a\u003e chore: test against py3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/95ffbcb085eb920920a7241c814a55c1e948f148\"\u003e\u003ccode\u003e95ffbcb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1026\"\u003e#1026\u003c/a\u003e from syrupy-project/rename_methods\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/27135c7c861441962c2cedde841f3e4fed2949fd\"\u003e\u003ccode\u003e27135c7\u003c/code\u003e\u003c/a\u003e feat: add --snapshot-dirname option, close \u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/810\"\u003e#810\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/8cfc9059d37066187ac419e2233059bad58b667f\"\u003e\u003ccode\u003e8cfc905\u003c/code\u003e\u003c/a\u003e refactor: remove incorrect private underscore prefix from public methods\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/e1dbf5dc2a1148480aa9601a5e1c21928954b8cc\"\u003e\u003ccode\u003ee1dbf5d\u003c/code\u003e\u003c/a\u003e chore(deps): update python docker tag to v3.13.7 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1025\"\u003e#1025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/16b4113cd56da96e84a90ebda0919e9b8dd35954\"\u003e\u003ccode\u003e16b4113\u003c/code\u003e\u003c/a\u003e feat: update min. python version to 3.10 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1024\"\u003e#1024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/434c63fdabbaaf2372ec94c8968fe025c4a306e6\"\u003e\u003ccode\u003e434c63f\u003c/code\u003e\u003c/a\u003e chore(deps): update codecov/codecov-action action to v5.5.1 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1021\"\u003e#1021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/syrupy-project/syrupy/commit/b2e49bad7741f06c17a0be9f4608c0db5db13cf5\"\u003e\u003ccode\u003eb2e49ba\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency pytest to v8.4.2 (\u003ca href=\"https://redirect.github.com/syrupy-project/syrupy/issues/1022\"\u003e#1022\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=syrupy\u0026package-manager=pip\u0026previous-version=4.9.1\u0026new-version=5.0.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/livingbio/fuzzy-json/pull/246","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/livingbio%2Ffuzzy-json/issues/246","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/246/packages"}}]}