{"id":26820,"name":"libcst","ecosystem":"pip","repository_url":"https://github.com/Instagram/LibCST","issues_count":56,"created_at":"2025-06-07T04:52:22.775Z","updated_at":"2025-06-07T04:52:22.775Z","purl":"pkg:pypi/libcst","metadata":{"id":2786355,"name":"libcst","ecosystem":"pypi","description":"A concrete syntax tree with AST-like properties for Python 3.0 through 3.13 programs.","homepage":null,"licenses":"All contributions towards LibCST are MIT licensed.\n        \n        Some Python files have been derived from the standard library and are therefore\n        PSF licensed. Modifications on these files are dual licensed (both MIT and\n        PSF). These files are:\n        \n        - libcst/_parser/base_parser.py\n        - libcst/_parser/parso/utils.py\n        - libcst/_parser/parso/pgen2/generator.py\n        - libcst/_parser/parso/pgen2/grammar_parser.py\n        - libcst/_parser/parso/python/py_token.py\n        - libcst/_parser/parso/python/tokenize.py\n        - libcst/_parser/parso/tests/test_fstring.py\n        - libcst/_parser/parso/tests/test_tokenize.py\n        - libcst/_parser/parso/tests/test_utils.py\n        - native/libcst/src/tokenizer/core/mod.rs\n        - native/libcst/src/tokenizer/core/string_types.rs\n        \n        Some Python files have been taken from dataclasses and are therefore Apache\n        licensed. Modifications on these files are licensed under Apache 2.0 license.\n        These files are:\n        \n        - libcst/_add_slots.py\n        \n        -------------------------------------------------------------------------------\n        \n        MIT License\n        \n        Copyright (c) Meta Platforms, Inc. and affiliates.\n        \n        Permission is hereby granted, free of charge, to any person obtaining a copy\n        of this software and associated documentation files (the \"Software\"), to deal\n        in the Software without restriction, including without limitation the rights\n        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n        copies of the Software, and to permit persons to whom the Software is\n        furnished to do so, subject to the following conditions:\n        \n        The above copyright notice and this permission notice shall be included in all\n        copies or substantial portions of the Software.\n        \n        THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n        SOFTWARE.\n        \n        -------------------------------------------------------------------------------\n        \n        PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2\n        \n        1. This LICENSE AGREEMENT is between the Python Software Foundation\n        (\"PSF\"), and the Individual or Organization (\"Licensee\") accessing and\n        otherwise using this software (\"Python\") in source or binary form and\n        its associated documentation.\n        \n        2. Subject to the terms and conditions of this License Agreement, PSF hereby\n        grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce,\n        analyze, test, perform and/or display publicly, prepare derivative works,\n        distribute, and otherwise use Python alone or in any derivative version,\n        provided, however, that PSF's License Agreement and PSF's notice of copyright,\n        i.e., \"Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,\n        2011, 2012, 2013, 2014, 2015 Python Software Foundation; All Rights Reserved\"\n        are retained in Python alone or in any derivative version prepared by Licensee.\n        \n        3. In the event Licensee prepares a derivative work that is based on\n        or incorporates Python or any part thereof, and wants to make\n        the derivative work available to others as provided herein, then\n        Licensee hereby agrees to include in any such work a brief summary of\n        the changes made to Python.\n        \n        4. PSF is making Python available to Licensee on an \"AS IS\"\n        basis.  PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR\n        IMPLIED.  BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND\n        DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS\n        FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT\n        INFRINGE ANY THIRD PARTY RIGHTS.\n        \n        5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON\n        FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS\n        A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON,\n        OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.\n        \n        6. This License Agreement will automatically terminate upon a material\n        breach of its terms and conditions.\n        \n        7. Nothing in this License Agreement shall be deemed to create any\n        relationship of agency, partnership, or joint venture between PSF and\n        Licensee.  This License Agreement does not grant permission to use PSF\n        trademarks or trade name in a trademark sense to endorse or promote\n        products or services of Licensee, or any third party.\n        \n        8. By copying, installing or otherwise using Python, Licensee\n        agrees to be bound by the terms and conditions of this License\n        Agreement.\n        \n        -------------------------------------------------------------------------------\n        \n        APACHE LICENSE, VERSION 2.0\n        \n        http://www.apache.org/licenses/LICENSE-2.0\n        ","normalized_licenses":["Other"],"repository_url":"https://github.com/Instagram/LibCST","keywords_array":[],"namespace":null,"versions_count":60,"first_release_published_at":"2019-08-07T21:18:12.000Z","latest_release_published_at":"2025-05-27T14:21:50.000Z","latest_release_number":"1.8.0","last_synced_at":"2025-06-07T00:32:21.777Z","created_at":"2022-04-10T11:28:26.287Z","updated_at":"2025-06-07T00:32:21.777Z","registry_url":"https://pypi.org/project/libcst/","install_command":"pip install libcst --index-url https://pypi.org/simple","documentation_url":"https://libcst.readthedocs.io/en/latest/","metadata":{"funding":null,"documentation":"https://libcst.readthedocs.io/en/latest/","classifiers":["License :: OSI Approved :: MIT License","Programming Language :: Python :: 3.10","Programming Language :: Python :: 3.11","Programming Language :: Python :: 3.12","Programming Language :: Python :: 3.13","Programming Language :: Python :: 3.9","Topic :: Software Development :: Libraries","Typing :: Typed"],"normalized_name":"libcst"},"repo_metadata":{"id":37811872,"uuid":"200896124","full_name":"Instagram/LibCST","owner":"Instagram","description":"A concrete syntax tree parser and serializer library for Python that preserves many aspects of Python's abstract syntax tree","archived":false,"fork":false,"pushed_at":"2024-03-22T16:05:20.000Z","size":3235,"stargazers_count":1394,"open_issues_count":128,"forks_count":163,"subscribers_count":41,"default_branch":"main","last_synced_at":"2024-03-25T20:14:39.527Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://libcst.readthedocs.io/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Instagram.png","metadata":{"files":{"readme":"README.rst","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":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2019-08-06T17:30:33.000Z","updated_at":"2024-05-22T15:20:08.403Z","dependencies_parsed_at":"2024-01-08T15:31:46.677Z","dependency_job_id":"484d7946-97aa-499a-a0ab-5daa695d64f9","html_url":"https://github.com/Instagram/LibCST","commit_stats":{"total_commits":987,"total_committers":83,"mean_commits":"11.891566265060241","dds":0.7882472137791287,"last_synced_commit":"f8a9b80d9e05f0e14f3a68b0a6a5767a95184fa4"},"previous_names":[],"tags_count":43,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Instagram","download_url":"https://codeload.github.com/Instagram/LibCST/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":222004176,"owners_count":16914873,"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":"Instagram","name":"Instagram","uuid":"549085","kind":"organization","description":"","email":null,"website":"http://instagram.com","location":"San Francisco, CA","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/549085?v=4","repositories_count":27,"last_synced_at":"2024-03-25T20:14:31.057Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/Instagram","funding_links":[],"total_stars":21316,"followers":593,"following":0,"created_at":"2022-11-02T16:28:13.353Z","updated_at":"2024-03-25T20:14:37.965Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Instagram","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Instagram/repositories"},"tags":[{"name":"v1.4.0","sha":"96f53416e3f4bb595d78dc645f8601f280a9d386","kind":"commit","published_at":"2024-05-22T14:20:33.000Z","download_url":"https://codeload.github.com/Instagram/LibCST/tar.gz/v1.4.0","html_url":"https://github.com/Instagram/LibCST/releases/tag/v1.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v1.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v1.4.0/manifests"},{"name":"v1.3.1","sha":"9f54920d9d32a519aa1702485ed56c55d8189a0c","kind":"commit","published_at":"2024-04-03T20:13:08.000Z","download_url":"https://codeload.github.com/Instagram/LibCST/tar.gz/v1.3.1","html_url":"https://github.com/Instagram/LibCST/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v1.3.1/manifests"},{"name":"v1.3.0","sha":"8b334740015d248e0ee90072b5d64a4cd7cd6e7b","kind":"commit","published_at":"2024-04-03T18:54:30.000Z","download_url":"https://codeload.github.com/Instagram/LibCST/tar.gz/v1.3.0","html_url":"https://github.com/Instagram/LibCST/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v1.3.0/manifests"},{"name":"v1.2.0","sha":"627bb0c4ab4ec875d5b683db4825a321b9c9072d","kind":"commit","published_at":"2024-02-19T12:04:43.000Z","download_url":"https://codeload.github.com/Instagram/LibCST/tar.gz/v1.2.0","html_url":"https://github.com/Instagram/LibCST/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v1.2.0/manifests"},{"name":"v1.1.0","sha":"8d4229d959aabd888a4fa1e981bd204f14e16543","kind":"commit","published_at":"2023-10-06T02:16:12.000Z","download_url":"https://codeload.github.com/Instagram/LibCST/tar.gz/v1.1.0","html_url":"https://github.com/Instagram/LibCST/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v1.1.0/manifests"},{"name":"v1.0.1","sha":"3cacca1a1029f05707e50703b49fe3dd860aa839","kind":"commit","published_at":"2023-06-07T12:26:02.000Z","download_url":"https://codeload.github.com/Instagram/LibCST/tar.gz/v1.0.1","html_url":"https://github.com/Instagram/LibCST/releases/tag/v1.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v1.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v1.0.1/manifests"},{"name":"v1.0.0","sha":"193fab43571e9f1464baf72e1ec74fca570f6810","kind":"commit","published_at":"2023-05-25T17:24:59.000Z","download_url":"https://codeload.github.com/Instagram/LibCST/tar.gz/v1.0.0","html_url":"https://github.com/Instagram/LibCST/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v1.0.0/manifests"},{"name":"v0.4.10","sha":"f6d87cd96861ed4299edf6b995c1580bf538fc40","kind":"commit","published_at":"2023-05-23T14:19:45.000Z","download_url":"https://codeload.github.com/Instagram/LibCST/tar.gz/v0.4.10","html_url":"https://github.com/Instagram/LibCST/releases/tag/v0.4.10","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.4.10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.4.10/manifests"},{"name":"v0.4.9","sha":"fc6e0c6a64a08c1c7c760317e62665f54b3b490f","kind":"commit","published_at":"2022-11-10T10:27:36.000Z","download_url":"https://codeload.github.com/Instagram/LibCST/tar.gz/v0.4.9","html_url":"https://github.com/Instagram/LibCST/releases/tag/v0.4.9","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.4.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.4.9/manifests"},{"name":"v0.4.8","sha":"c44b182e88fb5135935c01a6fbec260597780b16","kind":"commit","published_at":"2022-11-10T09:38:32.000Z","download_url":"https://codeload.github.com/Instagram/LibCST/tar.gz/v0.4.8","html_url":"https://github.com/Instagram/LibCST/releases/tag/v0.4.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.4.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.4.8/manifests"},{"name":"v0.4.7","sha":"c85f9bf19de2aeb848953e326e1130e40847ca66","kind":"commit","published_at":"2022-07-12T14:52:10.000Z","download_url":"https://codeload.github.com/Instagram/LibCST/tar.gz/v0.4.7","html_url":"https://github.com/Instagram/LibCST/releases/tag/v0.4.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.4.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.4.7/manifests"},{"name":"v0.4.6","sha":"7042623acee4d7e0d36ede5d4580af967af27241","kind":"commit","published_at":"2022-07-04T13:49:43.000Z","download_url":"https://codeload.github.com/Instagram/LibCST/tar.gz/v0.4.6","html_url":"https://github.com/Instagram/LibCST/releases/tag/v0.4.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.4.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.4.6/manifests"},{"name":"v0.4.5","sha":"ea8d3d55a552a2d4bb66f29797fea9a0674760fc","kind":"commit","published_at":"2022-06-17T12:14:18.000Z","download_url":"https://codeload.github.com/Instagram/LibCST/tar.gz/v0.4.5","html_url":"https://github.com/Instagram/LibCST/releases/tag/v0.4.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.4.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.4.5/manifests"},{"name":"v0.4.4","sha":"7a6fa534fc7a61f509ff8085a00aa13eabc72108","kind":"commit","published_at":"2022-06-13T18:06:28.000Z","download_url":"https://codeload.github.com/Instagram/LibCST/tar.gz/v0.4.4","html_url":"https://github.com/Instagram/LibCST/releases/tag/v0.4.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.4.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.4.4/manifests"},{"name":"v0.4.3","sha":"69a4f4e3a319665494886dedab48a39cb7b75858","kind":"commit","published_at":"2022-05-11T12:01:31.000Z","download_url":"https://codeload.github.com/Instagram/LibCST/tar.gz/v0.4.3","html_url":"https://github.com/Instagram/LibCST/releases/tag/v0.4.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.4.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.4.3/manifests"},{"name":"v0.4.2","sha":"460698a205cd7ba543fc01c5442b15bb71ab36b3","kind":"commit","published_at":"2022-05-04T16:20:59.000Z","download_url":"https://codeload.github.com/Instagram/LibCST/tar.gz/v0.4.2","html_url":"https://github.com/Instagram/LibCST/releases/tag/v0.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.4.2/manifests"},{"name":"stable","sha":"bffd53063e53c798a7a4540a718aa91f80ebb140","kind":"commit","published_at":"2022-02-01T11:53:47.000Z","download_url":"https://codeload.github.com/Instagram/LibCST/tar.gz/stable","html_url":"https://github.com/Instagram/LibCST/releases/tag/stable","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/stable","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/stable/manifests"},{"name":"v0.4.1","sha":"e0744c7d143ac32be34439de23dae26b7c7e381c","kind":"commit","published_at":"2022-01-28T10:44:12.000Z","download_url":"https://codeload.github.com/Instagram/LibCST/tar.gz/v0.4.1","html_url":"https://github.com/Instagram/LibCST/releases/tag/v0.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.4.1/manifests"},{"name":"v0.4.0","sha":"5f22b6c4383ebbbcee6af4bfc4d6c3aab2c38e6b","kind":"commit","published_at":"2022-01-12T19:51:51.000Z","download_url":"https://codeload.github.com/Instagram/LibCST/tar.gz/v0.4.0","html_url":"https://github.com/Instagram/LibCST/releases/tag/v0.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.4.0/manifests"},{"name":"v0.4.0a2","sha":"73ecdf45c3ae2a9c5af567f64370d8913917f378","kind":"commit","published_at":"2022-01-05T17:09:30.000Z","download_url":"https://codeload.github.com/Instagram/LibCST/tar.gz/v0.4.0a2","html_url":"https://github.com/Instagram/LibCST/releases/tag/v0.4.0a2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.4.0a2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.4.0a2/manifests"},{"name":"v0.4.0a1","sha":"f35c745eafd5fb2dbcb6dbe923c351d892fa6def","kind":"commit","published_at":"2021-12-31T16:48:04.000Z","download_url":"https://codeload.github.com/Instagram/LibCST/tar.gz/v0.4.0a1","html_url":"https://github.com/Instagram/LibCST/releases/tag/v0.4.0a1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.4.0a1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.4.0a1/manifests"},{"name":"v0.3.23","sha":"9d611f9733194d9185272dfcb4414eabdf4f2931","kind":"commit","published_at":"2021-11-23T12:53:42.000Z","download_url":"https://codeload.github.com/Instagram/LibCST/tar.gz/v0.3.23","html_url":"https://github.com/Instagram/LibCST/releases/tag/v0.3.23","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.3.23","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.3.23/manifests"},{"name":"v0.3.22","sha":"3895925f15c35571f4bd362d69884c865e57fec9","kind":"commit","published_at":"2021-11-22T14:06:19.000Z","download_url":"https://codeload.github.com/Instagram/LibCST/tar.gz/v0.3.22","html_url":"https://github.com/Instagram/LibCST/releases/tag/v0.3.22","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.3.22","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.3.22/manifests"},{"name":"v0.3.21","sha":"39607edb2d6bf99f3cc7ffe6ff2e63f64b363bca","kind":"commit","published_at":"2021-09-21T18:39:34.000Z","download_url":"https://codeload.github.com/Instagram/LibCST/tar.gz/v0.3.21","html_url":"https://github.com/Instagram/LibCST/releases/tag/v0.3.21","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.3.21","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.3.21/manifests"},{"name":"0.3.21","sha":"39607edb2d6bf99f3cc7ffe6ff2e63f64b363bca","kind":"commit","published_at":"2021-09-21T18:39:34.000Z","download_url":"https://codeload.github.com/Instagram/LibCST/tar.gz/0.3.21","html_url":"https://github.com/Instagram/LibCST/releases/tag/0.3.21","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/0.3.21","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/0.3.21/manifests"},{"name":"v0.3.20","sha":"a1282f27f6b9cd0625b013a009bf6e3b5de68561","kind":"commit","published_at":"2021-08-10T09:37:18.000Z","download_url":"https://codeload.github.com/Instagram/LibCST/tar.gz/v0.3.20","html_url":"https://github.com/Instagram/LibCST/releases/tag/v0.3.20","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.3.20","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.3.20/manifests"},{"name":"v0.3.19","sha":"e0dd6016a54dc2bda8d6df49e10396637b943f06","kind":"commit","published_at":"2021-05-13T14:38:04.000Z","download_url":"https://codeload.github.com/Instagram/LibCST/tar.gz/v0.3.19","html_url":"https://github.com/Instagram/LibCST/releases/tag/v0.3.19","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.3.19","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.3.19/manifests"},{"name":"v0.3.18","sha":"27ef2bf10ee71d61e658a94f97dcae1d7d94bf39","kind":"commit","published_at":"2021-03-29T16:49:29.000Z","download_url":"https://codeload.github.com/Instagram/LibCST/tar.gz/v0.3.18","html_url":"https://github.com/Instagram/LibCST/releases/tag/v0.3.18","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.3.18","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.3.18/manifests"},{"name":"v0.3.17","sha":"39ff458270c3790f9c283f83522ee5b0f607163d","kind":"commit","published_at":"2021-02-08T21:57:30.000Z","download_url":"https://codeload.github.com/Instagram/LibCST/tar.gz/v0.3.17","html_url":"https://github.com/Instagram/LibCST/releases/tag/v0.3.17","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.3.17","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.3.17/manifests"},{"name":"v0.3.16","sha":"df231f3fa5ac3dfa7b14a30103249e5da79509e3","kind":"commit","published_at":"2020-12-16T20:07:26.000Z","download_url":"https://codeload.github.com/Instagram/LibCST/tar.gz/v0.3.16","html_url":"https://github.com/Instagram/LibCST/releases/tag/v0.3.16","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.3.16","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.3.16/manifests"},{"name":"v0.3.15","sha":"8eee3cc9222405bd4cbf233ff71392218f18d2da","kind":"commit","published_at":"2020-12-01T19:21:15.000Z","download_url":"https://codeload.github.com/Instagram/LibCST/tar.gz/v0.3.15","html_url":"https://github.com/Instagram/LibCST/releases/tag/v0.3.15","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.3.15","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.3.15/manifests"},{"name":"v0.3.14","sha":"77d8a903ee3f1e11ee35c728c8328832a453a9dc","kind":"commit","published_at":"2020-11-18T09:55:35.000Z","download_url":"https://codeload.github.com/Instagram/LibCST/tar.gz/v0.3.14","html_url":"https://github.com/Instagram/LibCST/releases/tag/v0.3.14","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.3.14","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.3.14/manifests"},{"name":"v0.3.13","sha":"01c8098965144feddaa34c1c9f58c92ce8265541","kind":"commit","published_at":"2020-10-12T21:04:44.000Z","download_url":"https://codeload.github.com/Instagram/LibCST/tar.gz/v0.3.13","html_url":"https://github.com/Instagram/LibCST/releases/tag/v0.3.13","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.3.13","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.3.13/manifests"},{"name":"v0.3.12","sha":"10d64510673997ef66bb123e6839852eb09111cb","kind":"commit","published_at":"2020-10-01T14:49:02.000Z","download_url":"https://codeload.github.com/Instagram/LibCST/tar.gz/v0.3.12","html_url":"https://github.com/Instagram/LibCST/releases/tag/v0.3.12","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.3.12","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.3.12/manifests"},{"name":"v0.3.11","sha":"efe0fdbf31b8f6514b047abcaa2b4e5b279b6350","kind":"commit","published_at":"2020-09-28T16:28:07.000Z","download_url":"https://codeload.github.com/Instagram/LibCST/tar.gz/v0.3.11","html_url":"https://github.com/Instagram/LibCST/releases/tag/v0.3.11","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.3.11","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.3.11/manifests"},{"name":"v0.3.10","sha":"6f9a12c538bd2db9f3d6ff0618711542f1adfef5","kind":"commit","published_at":"2020-08-17T17:58:14.000Z","download_url":"https://codeload.github.com/Instagram/LibCST/tar.gz/v0.3.10","html_url":"https://github.com/Instagram/LibCST/releases/tag/v0.3.10","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.3.10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.3.10/manifests"},{"name":"v0.3.9","sha":"867f85e16432b1167490b494b6c1606974b9052c","kind":"commit","published_at":"2020-08-07T18:37:18.000Z","download_url":"https://codeload.github.com/Instagram/LibCST/tar.gz/v0.3.9","html_url":"https://github.com/Instagram/LibCST/releases/tag/v0.3.9","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.3.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.3.9/manifests"},{"name":"v0.3.8","sha":"857fcc7bd8d33c72964aa2ce1904f512a3a87a3c","kind":"commit","published_at":"2020-07-23T00:04:19.000Z","download_url":"https://codeload.github.com/Instagram/LibCST/tar.gz/v0.3.8","html_url":"https://github.com/Instagram/LibCST/releases/tag/v0.3.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.3.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.3.8/manifests"},{"name":"v0.3.7","sha":"4a928b0e9448e053ae3b2138d80bf25476e2fd03","kind":"commit","published_at":"2020-06-25T15:47:45.000Z","download_url":"https://codeload.github.com/Instagram/LibCST/tar.gz/v0.3.7","html_url":"https://github.com/Instagram/LibCST/releases/tag/v0.3.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.3.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.3.7/manifests"},{"name":"v0.3.6","sha":"666247a192e767fa638b943d39643c0f9d6d2f09","kind":"commit","published_at":"2020-05-28T20:53:26.000Z","download_url":"https://codeload.github.com/Instagram/LibCST/tar.gz/v0.3.6","html_url":"https://github.com/Instagram/LibCST/releases/tag/v0.3.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.3.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.3.6/manifests"},{"name":"v0.3.5","sha":"3c5aa268393952829bb7623b4bf4e865f20b1d2a","kind":"commit","published_at":"2020-05-12T18:35:55.000Z","download_url":"https://codeload.github.com/Instagram/LibCST/tar.gz/v0.3.5","html_url":"https://github.com/Instagram/LibCST/releases/tag/v0.3.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.3.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.3.5/manifests"},{"name":"v0.3.4","sha":"4f060e7cd1a520b54f97e62a4ee030682cb6d7c6","kind":"commit","published_at":"2020-03-27T18:08:29.000Z","download_url":"https://codeload.github.com/Instagram/LibCST/tar.gz/v0.3.4","html_url":"https://github.com/Instagram/LibCST/releases/tag/v0.3.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.3.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.3.4/manifests"},{"name":"v0.3.3","sha":"01f619755bfd60f1ad7f32361f39b69ede543150","kind":"tag","published_at":"2020-03-12T15:33:36.000Z","download_url":"https://codeload.github.com/Instagram/LibCST/tar.gz/v0.3.3","html_url":"https://github.com/Instagram/LibCST/releases/tag/v0.3.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.3.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Instagram%2FLibCST/tags/v0.3.3/manifests"}]},"repo_metadata_updated_at":"2024-10-29T13:44:56.528Z","dependent_packages_count":191,"downloads":27698084,"downloads_period":"last-month","dependent_repos_count":1521,"rankings":{"downloads":0.09379171025576277,"dependent_repos_count":0.2902986335649014,"dependent_packages_count":0.11467650403741037,"stargazers_count":null,"forks_count":null,"docker_downloads_count":0.5580037174932931,"average":0.2641926413378419},"purl":"pkg:pypi/libcst","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/libcst","docker_dependents_count":143,"docker_downloads_count":10091103,"usage_url":"https://repos.ecosyste.ms/usage/pypi/libcst","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/libcst/dependencies","status":null,"funding_links":[],"critical":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/libcst/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/libcst/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/libcst/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/libcst/related_packages","maintainers":[{"uuid":"amyreese","login":"amyreese","name":null,"email":null,"url":null,"packages_count":51,"html_url":"https://pypi.org/user/amyreese/","role":null,"created_at":"2022-12-13T13:07:38.019Z","updated_at":"2022-12-13T13:07:38.019Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/amyreese/packages"},{"uuid":"bgw-ig","login":"bgw-ig","name":null,"email":null,"url":null,"packages_count":1,"html_url":"https://pypi.org/user/bgw-ig/","role":null,"created_at":"2022-12-13T13:07:37.953Z","updated_at":"2022-12-13T13:07:37.953Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/bgw-ig/packages"},{"uuid":"zsolzsol","login":"zsolzsol","name":null,"email":null,"url":null,"packages_count":8,"html_url":"https://pypi.org/user/zsolzsol/","role":null,"created_at":"2022-12-13T13:07:37.979Z","updated_at":"2022-12-13T13:07:37.979Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/zsolzsol/packages"},{"uuid":"7imbrook","login":"7imbrook","name":null,"email":null,"url":null,"packages_count":3,"html_url":"https://pypi.org/user/7imbrook/","role":null,"created_at":"2022-12-13T13:07:38.007Z","updated_at":"2022-12-13T13:07:38.007Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/7imbrook/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":20,"unique_repositories_count_past_30_days":2,"recent_issues":[{"uuid":"3923033552","node_id":"PR_kwDOAG4Ac87C0rcw","number":23091,"state":"closed","title":"Bump the python-version-updates group across 1 directory with 17 updates","user":"dependabot[bot]","labels":["dependencies","category:internal","release-notes:not-required"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-02-22T02:14:02.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-10T18:49:44.000Z","updated_at":"2026-02-22T02:14:04.000Z","time_to_close":977058,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-version-updates","update_count":17,"packages":[{"name":"libcst","old_version":"1.8.5","new_version":"1.8.6","repository_url":"https://github.com/Instagram/LibCST"},{"name":"packaging","old_version":"25.0","new_version":"26.0","repository_url":"https://github.com/pypa/packaging"},{"name":"psutil","old_version":"5.9.8","new_version":"7.2.2","repository_url":"https://github.com/giampaolo/psutil"},{"name":"pytest","old_version":"8.4.1","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"types-requests","old_version":"2.32.4.20250913","new_version":"2.32.4.20260107","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"types-setuptools","old_version":"80.9.0.20250822","new_version":"82.0.0.20260210","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"debugpy","old_version":"1.8.16","new_version":"1.8.20","repository_url":"https://github.com/microsoft/debugpy"},{"name":"pydevd-pycharm","old_version":"251.23536.40","new_version":"261.20362.36","repository_url":"https://github.com/JetBrains/intellij-community"},{"name":"fastapi","old_version":"0.120.1","new_version":"0.128.7","repository_url":"https://github.com/fastapi/fastapi"},{"name":"starlette","old_version":"0.49.1","new_version":"0.52.1","repository_url":"https://github.com/Kludex/starlette"},{"name":"strawberry-graphql","old_version":"0.284.1","new_version":"0.291.3"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [libcst](https://github.com/Instagram/LibCST), [packaging](https://github.com/pypa/packaging), [psutil](https://github.com/giampaolo/psutil), [pytest](https://github.com/pytest-dev/pytest), [setuptools](https://github.com/pypa/setuptools), [types-requests](https://github.com/typeshed-internal/stub_uploader), [types-setuptools](https://github.com/typeshed-internal/stub_uploader), [debugpy](https://github.com/microsoft/debugpy), [pydevd-pycharm](https://github.com/JetBrains/intellij-community), [fastapi](https://github.com/fastapi/fastapi), [starlette](https://github.com/Kludex/starlette), [strawberry-graphql[fastapi]](https://github.com/strawberry-graphql/strawberry), [uvicorn[standard]](https://github.com/Kludex/uvicorn), [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/), [python-gnupg](https://github.com/vsajip/python-gnupg), [pytest-cov](https://github.com/pytest-dev/pytest-cov) and [flake8](https://github.com/pycqa/flake8) to permit the latest version.\nUpdates `libcst` from 1.8.5 to 1.8.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/releases\"\u003elibcst's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.8.6\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate pyproject.toml for 3.14t by \u003ca href=\"https://github.com/itamaro\"\u003e\u003ccode\u003e@​itamaro\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1417\"\u003eInstagram/LibCST#1417\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate PyO3 to 0.26 by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1413\"\u003eInstagram/LibCST#1413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake CodemodCommand's supported_transforms order deterministic by \u003ca href=\"https://github.com/frvnkliu\"\u003e\u003ccode\u003e@​frvnkliu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1424\"\u003eInstagram/LibCST#1424\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/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1413\"\u003eInstagram/LibCST#1413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frvnkliu\"\u003e\u003ccode\u003e@​frvnkliu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1424\"\u003eInstagram/LibCST#1424\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.5...v1.8.6\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.5...v1.8.6\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/blob/main/CHANGELOG.md\"\u003elibcst's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.8.6 - 2025-11-03\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate pyproject.toml for 3.14t by \u003ca href=\"https://github.com/itamaro\"\u003e\u003ccode\u003e@​itamaro\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1417\"\u003eInstagram/LibCST#1417\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate PyO3 to 0.26 by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1413\"\u003eInstagram/LibCST#1413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake CodemodCommand's supported_transforms order deterministic by \u003ca href=\"https://github.com/frvnkliu\"\u003e\u003ccode\u003e@​frvnkliu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1424\"\u003eInstagram/LibCST#1424\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/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1413\"\u003eInstagram/LibCST#1413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frvnkliu\"\u003e\u003ccode\u003e@​frvnkliu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1424\"\u003eInstagram/LibCST#1424\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.5...v1.8.6\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.5...v1.8.6\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/Instagram/LibCST/commit/9275a8bf7875d08659ce7b266860138bba633410\"\u003e\u003ccode\u003e9275a8b\u003c/code\u003e\u003c/a\u003e bump version to 1.8.6 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1425\"\u003e#1425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/b66c0e28229fd91ac145f1a56d7d884e6f8587b4\"\u003e\u003ccode\u003eb66c0e2\u003c/code\u003e\u003c/a\u003e [CodemodCommand] Make \u003ccode\u003etransform_module\u003c/code\u003e \u003ccode\u003esupported_transforms\u003c/code\u003e order determi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/c2169d240b5011ea820dc18d7a2452f182c2c5d3\"\u003e\u003ccode\u003ec2169d2\u003c/code\u003e\u003c/a\u003e Update PyO3 to 0.26 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1413\"\u003e#1413\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/73b17d8449034b520e7128c8a4bd100674d1e78c\"\u003e\u003ccode\u003e73b17d8\u003c/code\u003e\u003c/a\u003e Update pyproject.toml for 3.14t (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1417\"\u003e#1417\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/421f7d34004de18391014319ec6a818322637a8d\"\u003e\u003ccode\u003e421f7d3\u003c/code\u003e\u003c/a\u003e build(deps): bump pypa/cibuildwheel from 3.1.4 to 3.2.1 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1414\"\u003e#1414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/129b20f4769a2b26b41b262fb88f9aaf8754930b\"\u003e\u003ccode\u003e129b20f\u003c/code\u003e\u003c/a\u003e build(deps): bump github/codeql-action from 3 to 4 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1415\"\u003e#1415\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/6f5da5f99873e4c17e32ca221a3ddde3fb1ea354\"\u003e\u003ccode\u003e6f5da5f\u003c/code\u003e\u003c/a\u003e build(deps): bump astral-sh/setup-uv from 6 to 7 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1416\"\u003e#1416\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.5...v1.8.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `packaging` from 25.0 to 26.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/releases\"\u003epackaging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.0\u003c/h2\u003e\n\u003cp\u003eRead about the performance improvements here: \u003ca href=\"https://iscinumpy.dev/post/packaging-faster\"\u003ehttps://iscinumpy.dev/post/packaging-faster\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePEP 751: support pylock by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/900\"\u003epypa/packaging#900\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePEP 794: import name metadata by \u003ca href=\"https://github.com/brettcannon\"\u003e\u003ccode\u003e@​brettcannon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/948\"\u003epypa/packaging#948\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport writing metadata by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/846\"\u003epypa/packaging#846\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e__replace__\u003c/code\u003e for \u003ccode\u003eVersion\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1003\"\u003epypa/packaging#1003\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport positional pattern matching for \u003ccode\u003eVersion\u003c/code\u003e and \u003ccode\u003eSpecifier\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1004\"\u003epypa/packaging#1004\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePEP 440 handling of prereleases for \u003ccode\u003eSpecifier.contains\u003c/code\u003e, \u003ccode\u003eSpecifierSet.contains\u003c/code\u003e, and \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/897\"\u003epypa/packaging#897\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle PEP 440 edge case in \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/942\"\u003epypa/packaging#942\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdjust arbitrary equality intersection preservation in \u003ccode\u003eSpecifierSet\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/951\"\u003epypa/packaging#951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReturn \u003ccode\u003eFalse\u003c/code\u003e instead of raising for \u003ccode\u003e.contains\u003c/code\u003e with invalid version by \u003ca href=\"https://github.com/Liam-DeVoe\"\u003e\u003ccode\u003e@​Liam-DeVoe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/932\"\u003epypa/packaging#932\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport arbitrary equality on arbitrary strings for \u003ccode\u003eSpecifier\u003c/code\u003e and \u003ccode\u003eSpecifierSet\u003c/code\u003e's \u003ccode\u003efilter\u003c/code\u003e and \u003ccode\u003econtains\u003c/code\u003e method. by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/954\"\u003epypa/packaging#954\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly try to parse as \u003ccode\u003eVersion\u003c/code\u003e on certain marker keys, return \u003ccode\u003eFalse\u003c/code\u003e on unequal ordered comparsions by \u003ca href=\"https://github.com/JP-Ellis\"\u003e\u003ccode\u003e@​JP-Ellis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/939\"\u003epypa/packaging#939\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003e_hash\u003c/code\u003e when unpickling \u003ccode\u003eTag()\u003c/code\u003e by \u003ca href=\"https://github.com/dholth\"\u003e\u003ccode\u003e@​dholth\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/860\"\u003epypa/packaging#860\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrect comment and simplify implicit prerelease handling in \u003ccode\u003eSpecifier.prereleases\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/896\"\u003epypa/packaging#896\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse explicit \u003ccode\u003e_GLibCVersion\u003c/code\u003e \u003ccode\u003eNamedTuple\u003c/code\u003e in \u003ccode\u003e_manylinux\u003c/code\u003e by \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/868\"\u003epypa/packaging#868\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDetect invalid license expressions containing \u003ccode\u003e()\u003c/code\u003e by \u003ca href=\"https://github.com/bwoodsend\"\u003e\u003ccode\u003e@​bwoodsend\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/879\"\u003epypa/packaging#879\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrect regex for metadata \u003ccode\u003e'name'\u003c/code\u003e format by \u003ca href=\"https://github.com/di\"\u003e\u003ccode\u003e@​di\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/925\"\u003epypa/packaging#925\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove the message around expecting a semicolon by \u003ca href=\"https://github.com/pradyunsg\"\u003e\u003ccode\u003e@​pradyunsg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/833\"\u003epypa/packaging#833\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport nested parens in license expressions by \u003ca href=\"https://github.com/Liam-DeVoe\"\u003e\u003ccode\u003e@​Liam-DeVoe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/931\"\u003epypa/packaging#931\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd space before at symbol in \u003ccode\u003eRequirements\u003c/code\u003e string by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/953\"\u003epypa/packaging#953\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eA root logger use found by ruff LOG, use \u003ccode\u003epackaging\u003c/code\u003e logger instead by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/965\"\u003epypa/packaging#965\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter support for subclassing \u003ccode\u003eMarker\u003c/code\u003e and \u003ccode\u003eRequirement\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1022\"\u003epypa/packaging#1022\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize all extras, not just if it comes first by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1024\"\u003epypa/packaging#1024\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't produce a broken repr if \u003ccode\u003eMarker\u003c/code\u003e fails to construct by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1033\"\u003epypa/packaging#1033\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePerformance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid recompiling regexes in the tokenizer for a 3x speedup by \u003ca href=\"https://github.com/hauntsaninja\"\u003e\u003ccode\u003e@​hauntsaninja\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1019\"\u003epypa/packaging#1019\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove performance in \u003ccode\u003e_manylinux.py\u003c/code\u003e by \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/869\"\u003epypa/packaging#869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMinor cleanups to \u003ccode\u003eVersion\u003c/code\u003e by \u003ca href=\"https://github.com/bearomorphism\"\u003e\u003ccode\u003e@​bearomorphism\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/913\"\u003epypa/packaging#913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip redundant creation of \u003ccode\u003eVersion\u003c/code\u003es in specifier comparison by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/986\"\u003epypa/packaging#986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCache \u003ccode\u003eSpecifier\u003c/code\u003e's Version by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/985\"\u003epypa/packaging#985\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eVersion\u003c/code\u003e a little faster by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/987\"\u003epypa/packaging#987\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMinor \u003ccode\u003eVersion\u003c/code\u003e regex cleanup by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/990\"\u003epypa/packaging#990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFaster regex on Python 3.11.5+ by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/988\"\u003epypa/packaging#988\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1055\"\u003epypa/packaging#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLazily calculate \u003ccode\u003e_key\u003c/code\u003e in \u003ccode\u003eVersion\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/989\"\u003epypa/packaging#989\u003c/a\u003e and regression for \u003ccode\u003epackaging_legacy\u003c/code\u003e fixed by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1048\"\u003epypa/packaging#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFaster \u003ccode\u003ecanonicalize_version\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/993\"\u003epypa/packaging#993\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003efullmatch\u003c/code\u003e in a couple more places by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/992\"\u003epypa/packaging#992\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/blob/main/CHANGELOG.rst\"\u003epackaging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e26.0 - 2026-01-20\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nFeatures:\n\u003cul\u003e\n\u003cli\u003ePEP 751: support pylock (:pull:\u003ccode\u003e900\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePEP 794: import name metadata (:pull:\u003ccode\u003e948\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport for writing metadata to a file (:pull:\u003ccode\u003e846\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e__replace__\u003c/code\u003e on Version (:pull:\u003ccode\u003e1003\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport positional pattern matching for \u003ccode\u003eVersion\u003c/code\u003e and \u003ccode\u003eSpecifierSet\u003c/code\u003e (:pull:\u003ccode\u003e1004\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePEP 440 handling of prereleases for \u003ccode\u003eSpecifier.contains\u003c/code\u003e, \u003ccode\u003eSpecifierSet.contains\u003c/code\u003e, and \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e (:pull:\u003ccode\u003e897\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eHandle PEP 440 edge case in \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e (:pull:\u003ccode\u003e942\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdjust arbitrary equality intersection preservation in \u003ccode\u003eSpecifierSet\u003c/code\u003e (:pull:\u003ccode\u003e951\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eReturn \u003ccode\u003eFalse\u003c/code\u003e instead of raising for \u003ccode\u003e.contains\u003c/code\u003e with invalid version (:pull:\u003ccode\u003e932\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport arbitrary equality on arbitrary strings for \u003ccode\u003eSpecifier\u003c/code\u003e and \u003ccode\u003eSpecifierSet\u003c/code\u003e's \u003ccode\u003efilter\u003c/code\u003e and \u003ccode\u003econtains\u003c/code\u003e method. (:pull:\u003ccode\u003e954\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eOnly try to parse as \u003ccode\u003eVersion\u003c/code\u003e on certain marker keys, return \u003ccode\u003eFalse\u003c/code\u003e on unequal ordered comparisons (:pull:\u003ccode\u003e939\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003e_hash\u003c/code\u003e when unpickling \u003ccode\u003eTag()\u003c/code\u003e (:pull:\u003ccode\u003e860\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect comment and simplify implicit prerelease handling in \u003ccode\u003eSpecifier.prereleases\u003c/code\u003e (:pull:\u003ccode\u003e896\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse explicit \u003ccode\u003e_GLibCVersion\u003c/code\u003e \u003ccode\u003eNamedTuple\u003c/code\u003e in \u003ccode\u003e_manylinux\u003c/code\u003e (:pull:\u003ccode\u003e868\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDetect invalid license expressions containing \u003ccode\u003e()\u003c/code\u003e (:pull:\u003ccode\u003e879\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect regex for metadata \u003ccode\u003e'name'\u003c/code\u003e format (:pull:\u003ccode\u003e925\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eImprove the message around expecting a semicolon (:pull:\u003ccode\u003e833\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport nested parens in license expressions (:pull:\u003ccode\u003e931\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd space before at symbol in \u003ccode\u003eRequirements\u003c/code\u003e string (:pull:\u003ccode\u003e953\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eA root logger use found, use a \u003ccode\u003epackaging\u003c/code\u003e logger instead (:pull:\u003ccode\u003e965\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eBetter support for subclassing \u003ccode\u003eMarker\u003c/code\u003e and \u003ccode\u003eRequirement\u003c/code\u003e (:pull:\u003ccode\u003e1022\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eNormalize all extras, not just if it comes first (:pull:\u003ccode\u003e1024\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDon't produce a broken repr if \u003ccode\u003eMarker\u003c/code\u003e fails to construct (:pull:\u003ccode\u003e1033\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePerformance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid recompiling regexes in the tokenizer for a 3x speedup (:pull:\u003ccode\u003e1019\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eImprove performance in \u003ccode\u003e_manylinux.py\u003c/code\u003e (:pull:\u003ccode\u003e869\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMinor cleanups to \u003ccode\u003eVersion\u003c/code\u003e (:pull:\u003ccode\u003e913\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSkip redundant creation of \u003ccode\u003eVersion\u003c/code\u003e's in specifier comparison (:pull:\u003ccode\u003e986\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCache the \u003ccode\u003eSpecifier\u003c/code\u003e's \u003ccode\u003eVersion\u003c/code\u003e (:pull:\u003ccode\u003e985\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eVersion\u003c/code\u003e a little faster (:pull:\u003ccode\u003e987\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMinor \u003ccode\u003eVersion\u003c/code\u003e regex cleanup (:pull:\u003ccode\u003e990\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFaster regex on Python 3.11.5+ for \u003ccode\u003eVersion\u003c/code\u003e (:pull:\u003ccode\u003e988\u003c/code\u003e, :pull:\u003ccode\u003e1055\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eLazily calculate \u003ccode\u003e_key\u003c/code\u003e in \u003ccode\u003eVersion\u003c/code\u003e (:pull:\u003ccode\u003e989\u003c/code\u003e, :pull:\u003ccode\u003e1048\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFaster \u003ccode\u003ecanonicalize_version\u003c/code\u003e (:pull:\u003ccode\u003e993\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003ere.fullmatch\u003c/code\u003e in a couple more places (:pull:\u003ccode\u003e992\u003c/code\u003e, :pull:\u003ccode\u003e1029\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003emap\u003c/code\u003e instead of generator (:pull:\u003ccode\u003e996\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDeprecate \u003ccode\u003e._version\u003c/code\u003e (\u003ccode\u003e_Version\u003c/code\u003e, a \u003ccode\u003eNamedTuple\u003c/code\u003e) (:pull:\u003ccode\u003e995\u003c/code\u003e, :pull:\u003ccode\u003e1062\u003c/code\u003e)\u003cbr /\u003e\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/3b77a26f5a27473ad3b08194d773f325d018a2d0\"\u003e\u003ccode\u003e3b77a26\u003c/code\u003e\u003c/a\u003e Bump for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/31371cce593d2bde0dd8c436ecfb7d53cb91cfb6\"\u003e\u003ccode\u003e31371cc\u003c/code\u003e\u003c/a\u003e docs: prepare for 26.0 final (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1063\"\u003e#1063\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/9627a8821f09e4c55cd6e9daadb617b67c4741c2\"\u003e\u003ccode\u003e9627a88\u003c/code\u003e\u003c/a\u003e perf: dual replace (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1064\"\u003e#1064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/d5398b8bc19f3fad7b035ceb83023caf06d6e2da\"\u003e\u003ccode\u003ed5398b8\u003c/code\u003e\u003c/a\u003e fix: restore ._version as a compat shim (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1062\"\u003e#1062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/3a7b600a126d237b2ad3cd7e25d2cb5c176276af\"\u003e\u003ccode\u003e3a7b600\u003c/code\u003e\u003c/a\u003e Bump for development\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/d4eefdccf992e963c48011875301d93df6a7f2cc\"\u003e\u003ccode\u003ed4eefdc\u003c/code\u003e\u003c/a\u003e Bump for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/46189124fb43d8989d370902c80ab156eb83a45d\"\u003e\u003ccode\u003e4618912\u003c/code\u003e\u003c/a\u003e docs: prepare for 26.0rc3 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1060\"\u003e#1060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/0cf1b41b4b321ae08cad7d3e49cfaff5578fe813\"\u003e\u003ccode\u003e0cf1b41\u003c/code\u003e\u003c/a\u003e ci: test on first public release of CPythons (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1056\"\u003e#1056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/716beb1c0a5d7a398bf57fbd80bc2501811e616b\"\u003e\u003ccode\u003e716beb1\u003c/code\u003e\u003c/a\u003e perf:  10% faster stripping zeros (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1058\"\u003e#1058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/350a2306700b738f487f251efa278f532b263dee\"\u003e\u003ccode\u003e350a230\u003c/code\u003e\u003c/a\u003e fix: support CPython 3.11.0-3.11.4 and older PyPy3.11 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/packaging/compare/25.0...26.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psutil` from 5.9.8 to 7.2.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/giampaolo/psutil/blob/master/HISTORY.rst\"\u003epsutil's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e7.2.2\u003c/h1\u003e\n\u003cp\u003e2026-01-28\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2705_: [Linux]: \u003ccode\u003eProcess.wait()\u003c/code\u003e_ now uses \u003ccode\u003epidfd_open()\u003c/code\u003e + \u003ccode\u003epoll()\u003c/code\u003e for\nwaiting, resulting in no busy loop and faster response times. Requires\nLinux \u0026gt;= 5.3 and Python \u0026gt;= 3.9. Falls back to traditional polling if\nunavailable.\u003c/li\u003e\n\u003cli\u003e2705_: [macOS], [BSD]: \u003ccode\u003eProcess.wait()\u003c/code\u003e_ now uses \u003ccode\u003ekqueue()\u003c/code\u003e for waiting,\nresulting in no busy loop and faster response times.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2701_, [macOS]: fix compilation error on macOS \u0026lt; 10.7.  (patch by Sergey\nFedorov)\u003c/li\u003e\n\u003cli\u003e2707_, [macOS]: fix potential memory leaks in error paths of\n\u003ccode\u003eProcess.memory_full_info()\u003c/code\u003e and \u003ccode\u003eProcess.threads()\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e2708_, [macOS]: Process.cmdline()\u003ccode\u003e_ and \u003c/code\u003eProcess.environ()\u003ccode\u003e_ may fail with ``OSError: [Errno 0] Undefined error`` (from ``sysctl(KERN_PROCARGS2)``). They now raise \u003c/code\u003eAccessDenied`_ instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e7.2.1\u003c/h1\u003e\n\u003cp\u003e2025-12-29\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2699_, [FreeBSD], [NetBSD]: \u003ccode\u003eheap_info()\u003c/code\u003e_ does not detect small allocations\n(\u0026lt;= 1K). In order to fix that, we now flush internal jemalloc cache before\nfetching the metrics.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e7.2.0\u003c/h1\u003e\n\u003cp\u003e2025-12-23\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e1275_: new \u003ccode\u003eheap_info()\u003c/code\u003e_ and \u003ccode\u003eheap_trim()\u003c/code\u003e_ functions, providing direct\naccess to the platform's native C heap allocator (glibc, mimalloc,\nlibmalloc). Useful to create tools to detect memory leaks.\u003c/li\u003e\n\u003cli\u003e2403_, [Linux]: publish wheels for Linux musl.\u003c/li\u003e\n\u003cli\u003e2680_: unit tests are no longer installed / part of the distribution. They\nnow live under \u003ccode\u003etests/\u003c/code\u003e instead of \u003ccode\u003epsutil/tests\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/9eea97dd6f1d16ea33f5144c8925f1ce7a0688e1\"\u003e\u003ccode\u003e9eea97d\u003c/code\u003e\u003c/a\u003e Pre-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/938ac647418f09e4e610b2c755741316713c5592\"\u003e\u003ccode\u003e938ac64\u003c/code\u003e\u003c/a\u003e Rm sphinxcontrib.googleanalytics; override layout.html\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/9dcbb7e60e650f0ab0cb52154b0a12c70f6a1e4c\"\u003e\u003ccode\u003e9dcbb7e\u003c/code\u003e\u003c/a\u003e Add sphinxcontrib-googleanalytics to requirements.txt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/76eaf9ae0f2868569c14b46f4165310885a40a15\"\u003e\u003ccode\u003e76eaf9a\u003c/code\u003e\u003c/a\u003e Try to add google analytics to doc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/de1cafa56f54e97ca557993155e76dd98877e136\"\u003e\u003ccode\u003ede1cafa\u003c/code\u003e\u003c/a\u003e Update doc mentioning Process.wait() internal details\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/bb30943b0336a16f28437ec549c15a8ad2830cca\"\u003e\u003ccode\u003ebb30943\u003c/code\u003e\u003c/a\u003e Refact can_use_pidfd_open() and can_use_kqueue()\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/a571717d6520d436273c8cb34ca871db4bfa508a\"\u003e\u003ccode\u003ea571717\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2708\"\u003e#2708\u003c/a\u003e, macos / cmdline / environ; raise AD instead of OSError(0) (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/8b98c3effc20dcc4ed08c8f3d33e11ec0f5445b1\"\u003e\u003ccode\u003e8b98c3e\u003c/code\u003e\u003c/a\u003e Pre-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/700b7e6a4171ae7c775679217205f1d97568ae00\"\u003e\u003ccode\u003e700b7e6\u003c/code\u003e\u003c/a\u003e [macOS] fix potential leaks in error paths (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/7cc7923a1479fb1d32bb25d3e78b465e2695fbf7\"\u003e\u003ccode\u003e7cc7923\u003c/code\u003e\u003c/a\u003e Windows / cmdline(): be more defensive in free()ing in case of error\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/giampaolo/psutil/compare/release-5.9.8...release-7.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.4.1 to 9.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13965\"\u003e#13965\u003c/a\u003e: Fixed quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/4492\"\u003e#4492\u003c/a\u003e: The API Reference now contains cross-reference-able documentation of \u003ccode\u003epytest's command-line flags \u0026lt;command-line-flags\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e9.0.1\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.1 (2025-11-12)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13895\"\u003e#13895\u003c/a\u003e: Restore support for skipping tests via \u003ccode\u003eraise unittest.SkipTest\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress plugin added in pytest 9.0 is now automatically disabled when iTerm2 is detected, it generated desktop notifications instead of the desired functionality.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the verbosity settings in the API reference from number to string.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13910\"\u003e#13910\u003c/a\u003e: Fixed \u003c!-- raw HTML omitted --\u003eUserWarning: Do not expect file_or_dir\u003c!-- raw HTML omitted --\u003e on some earlier Python 3.12 and 3.13 point versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePackaging updates and notes for downstreams\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13891\"\u003e#13891\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13942\"\u003e#13942\u003c/a\u003e: The CI/CD part of the release automation is now capable of\ncreating GitHub Releases without having a Git checkout on\ndisk -- by \u003ccode\u003ebluetech\u003c/code\u003e and \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/3d10b5148e03eb82b3ee29181dbdc73cf82699e2\"\u003e\u003ccode\u003e3d10b51\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/188750b725add8c3400eee6fbb6b80559c296d69\"\u003e\u003ccode\u003e188750b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14030\"\u003e#14030\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/1e4b01d1f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7d7bef90cb9a6db8ac1d3dd5b9ae0eb9abd6c58\"\u003e\u003ccode\u003eb7d7bef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14014\"\u003e#14014\u003c/a\u003e from bluetech/compat-note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bd08e85ac76614ff5ca9ae338aee8d8b06c8fae0\"\u003e\u003ccode\u003ebd08e85\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14013\"\u003e#14013\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/922b60377...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bc783862991241c442c9f9c068e51737ec15ea10\"\u003e\u003ccode\u003ebc78386\u003c/code\u003e\u003c/a\u003e Add CLI options reference documentation (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13930\"\u003e#13930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/5a4e398ce89bc23d2cf3fd98c042fdffb6fa8afa\"\u003e\u003ccode\u003e5a4e398\u003c/code\u003e\u003c/a\u003e Fix docs typo (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14005\"\u003e#14005\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14008\"\u003e#14008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/d7ae6df394398168bf9d926f803c26849c8f07ee\"\u003e\u003ccode\u003ed7ae6df\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14006\"\u003e#14006\u003c/a\u003e from pytest-dev/maintenance/update-plugin-list-tmpl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/556f6a22e12d13d1ffeceaf64424eb95d5e0fb87\"\u003e\u003ccode\u003e556f6a2\u003c/code\u003e\u003c/a\u003e pre-commit: fix rst-lint after new release (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13999\"\u003e#13999\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14001\"\u003e#14001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c60fbe63a26f64a42738e3f3527a8f79024fdf50\"\u003e\u003ccode\u003ec60fbe6\u003c/code\u003e\u003c/a\u003e Fix quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10 ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/73d9b011183d9a1c4a7007c1119d97a6e627788e\"\u003e\u003ccode\u003e73d9b01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13995\"\u003e#13995\u003c/a\u003e from nicoddemus/patchback/backports/9.0.x/1b5200c0f...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.4.1...9.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `setuptools` to 82.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/setuptools/blob/main/NEWS.rst\"\u003esetuptools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev82.0.0\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epkg_resources\u003c/code\u003e has been removed from Setuptools. Most common uses of \u003ccode\u003epkg_resources\u003c/code\u003e have been superseded by the \u003ccode\u003eimportlib.resources \u0026lt;https://docs.python.org/3/library/importlib.resources.html\u0026gt;\u003c/code\u003e_ and \u003ccode\u003eimportlib.metadata \u0026lt;https://docs.python.org/3/library/importlib.metadata.html\u0026gt;\u003c/code\u003e_ projects. Projects and environments relying on \u003ccode\u003epkg_resources\u003c/code\u003e for namespace packages or other behavior should depend on older versions of \u003ccode\u003esetuptools\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/3085\"\u003e#3085\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev81.0.0\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved support for the --dry-run parameter to setup.py. This one feature by its nature threads through lots of core and ancillary functionality, adding complexity and friction. Removal of this parameter will help decouple the compiler functionality from distutils and thus the eventual full integration of distutils. These changes do affect some class and function signatures, so any derivative functionality may require some compatibility shims to support their expected interface. Please report any issues to the Setuptools project for investigation. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev80.10.2\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate vendored dependencies. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5159\"\u003e#5159\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5115\"\u003e#5115\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5128\"\u003e#5128\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev80.10.1\u003c/h1\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5152\"\u003e#5152\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev80.10.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove post-release tags on setuptools' own build. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4530\"\u003e#4530\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefreshed vendored dependencies. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5139\"\u003e#5139\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/03f3615362c4eb19c770b71be5bd58e38f235528\"\u003e\u003ccode\u003e03f3615\u003c/code\u003e\u003c/a\u003e Bump version: 81.0.0 → 82.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/530d11498af526c4210d8eeaa1ed6c63f44a390f\"\u003e\u003ccode\u003e530d114\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5007\"\u003e#5007\u003c/a\u003e from pypa/feature/remove-more-pkg_resources\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/11efe9f552290bf536515d458aa85752a0606aa8\"\u003e\u003ccode\u003e11efe9f\u003c/code\u003e\u003c/a\u003e Merge branch 'maint/75.3'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/118f129dd0fb319058bd05f382c50188fd60a60e\"\u003e\u003ccode\u003e118f129\u003c/code\u003e\u003c/a\u003e Bump version: 75.3.3 → 75.3.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/90561ffde1220a590b7644745f48b5837b1a130d\"\u003e\u003ccode\u003e90561ff\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5150\"\u003e#5150\u003c/a\u003e from UladzimirTrehubenka/backport_cve_47273\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/4595034db8aab4ea33035a47a068b04fd8aa00cc\"\u003e\u003ccode\u003e4595034\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/fc008006fc072af02eb7e0b601172c67eba395e3\"\u003e\u003ccode\u003efc00800\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5171\"\u003e#5171\u003c/a\u003e from cclauss/ruff-v0.15.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/127e561362a2b4e560faabe9e979ed848106b62d\"\u003e\u003ccode\u003e127e561\u003c/code\u003e\u003c/a\u003e Remove tests reliant on pkg_resources, rather than xfailing them.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/64bc21e10b5d749b1b75fa334caedb67cc7414c4\"\u003e\u003ccode\u003e64bc21e\u003c/code\u003e\u003c/a\u003e Reference the superseding libraries.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/cf1ff459ea997b615a75d99304f6c9aa1fc94c06\"\u003e\u003ccode\u003ecf1ff45\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into debt/pbr-without-pkg_resources\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/setuptools/compare/v63.1.0...v82.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `types-requests` from 2.32.4.20250913 to 2.32.4.20260107\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.20250822 to 82.0.0.20260210\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/typeshed-internal/stub_uploader/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `debugpy` from 1.8.16 to 1.8.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/microsoft/debugpy/releases\"\u003edebugpy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003edebugpy v1.8.20\u003c/h2\u003e\n\u003cp\u003eFixes for:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eannotate in 3.14 causing exceptions: \u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1971\"\u003emicrosoft/debugpy#1971\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eEnhancements:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse remote_exec if available: \u003ca href=\"https://github.com/microsoft/debugpy/commit/c7e86a1954381ceadb2ea398fc60079deef91358\"\u003ehttps://github.com/microsoft/debugpy/commit/c7e86a1954381ceadb2ea398fc60079deef91358\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport more architectures: \u003ca href=\"https://github.com/microsoft/debugpy/commit/1bbecdf366016c58e62a076b46d4f3c00aea097f\"\u003ehttps://github.com/microsoft/debugpy/commit/1bbecdf366016c58e62a076b46d4f3c00aea097f\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInfrastructure work:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport devcontainers for development: \u003ca href=\"https://github.com/microsoft/debugpy/commit/7dbc2292b1a23e5ae80db67a1b25f002bd104776\"\u003ehttps://github.com/microsoft/debugpy/commit/7dbc2292b1a23e5ae80db67a1b25f002bd104776\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/rameshvarun\"\u003e\u003ccode\u003e@​rameshvarun\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/Xeonacid\"\u003e\u003ccode\u003e@​Xeonacid\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/pdepetro\"\u003e\u003ccode\u003e@​pdepetro\u003c/code\u003e\u003c/a\u003e for the commits\u003c/p\u003e\n\u003ch2\u003edebugpy v1.8.19\u003c/h2\u003e\n\u003cp\u003eMore fixes for \u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1980\"\u003emicrosoft/debugpy#1980\u003c/a\u003e. Spaces in python files are handled now too.\u003c/p\u003e\n\u003ch2\u003edebugpy v1.8.18\u003c/h2\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1980\"\u003eSpaces in python interpreter cause debug launch failure\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003edebugpy v1.8.17\u003c/h2\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/6cbdf8767e4c88dfaedf3db7b09ce2781496fc51\"\u003eDebug attach for 3.14\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/microsoft/debugpy/commit/7ac3d1f2c65ccf6b2e62a762863093f0242179f0\"\u003e\u003ccode\u003e7ac3d1f\u003c/code\u003e\u003c/a\u003e Try 6 on this file (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1995\"\u003e#1995\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/e1646137a8346292a528b2899c7c8a8fe8d60224\"\u003e\u003ccode\u003ee164613\u003c/code\u003e\u003c/a\u003e O365 new advice (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1994\"\u003e#1994\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/4cbf8b1ce99a856b032470c19c3261195e137ca2\"\u003e\u003ccode\u003e4cbf8b1\u003c/code\u003e\u003c/a\u003e Try another suppression (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1993\"\u003e#1993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/ea9fcaeb59482ad97c51cbe584247f30a0c7ae2d\"\u003e\u003ccode\u003eea9fcae\u003c/code\u003e\u003c/a\u003e Try a different way to suppress binskim problems (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1992\"\u003e#1992\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/ea2746aafcd830a96a2144c3f636ba587f90a15d\"\u003e\u003ccode\u003eea2746a\u003c/code\u003e\u003c/a\u003e Add LTCG flags to compile_windows.bat for BinSkim BA6006 compliance (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1991\"\u003e#1991\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/7dbc2292b1a23e5ae80db67a1b25f002bd104776\"\u003e\u003ccode\u003e7dbc229\u003c/code\u003e\u003c/a\u003e Added devcontainer specification (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1989\"\u003e#1989\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/bb450fc27202cdf0676343dc0150be962b627233\"\u003e\u003ccode\u003ebb450fc\u003c/code\u003e\u003c/a\u003e Fix: Treat \u003cstrong\u003eannotate\u003c/strong\u003e functions as library code in Python 3.14+ (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1988\"\u003e#1988\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/1bbecdf366016c58e62a076b46d4f3c00aea097f\"\u003e\u003ccode\u003e1bbecdf\u003c/code\u003e\u003c/a\u003e Better experience for unsupported arch (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1984\"\u003e#1984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/c7e86a1954381ceadb2ea398fc60079deef91358\"\u003e\u003ccode\u003ec7e86a1\u003c/code\u003e\u003c/a\u003e Use sys.remote_exec() to attach to pid, if available (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1986\"\u003e#1986\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/698499e9ec6cd6edcf0311bb3a0b0d57ad1198ad\"\u003e\u003ccode\u003e698499e\u003c/code\u003e\u003c/a\u003e Add support for space in the python file (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1982\"\u003e#1982\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/microsoft/debugpy/compare/v1.8.16...v1.8.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydevd-pycharm` from 251.23536.40 to 261.20362.36\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/ca93da78e8096770a352bc3ab305bab6dab28660\"\u003e\u003ccode\u003eca93da7\u003c/code\u003e\u003c/a\u003e PY-87340 AIOOBE: PyExpectedTypeJudgement.getElementTypeAtTupleIndex()\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/15bde2c45d07e0e0ecc89e92e281d91b3c5463de\"\u003e\u003ccode\u003e15bde2c\u003c/code\u003e\u003c/a\u003e IJPL-223873 Extract \u003ccode\u003eTestVisibilityServiceImpl\u003c/code\u003e to separate file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/17f3a25caf6298fb5b26a1819690ed7169bde218\"\u003e\u003ccode\u003e17f3a25\u003c/code\u003e\u003c/a\u003e [java] IDEA-385505 Tests in third-party plugins fail after debugger.impl migr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/1503eb9bd8ed1af9f069c91235bfd3abfdc18c66\"\u003e\u003ccode\u003e1503eb9\u003c/code\u003e\u003c/a\u003e platform: base build number set to 261.20362.SNAPSHOT\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/a8751b29d8954cabfaa7014e79040412d83cd7e4\"\u003e\u003ccode\u003ea8751b2\u003c/code\u003e\u003c/a\u003e [build] Switch to JUnit5TestSessionListener.FirstAndLastInSuiteTestExecutionL...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/96728011dc80e728ab94abf24e02f0db870554b1\"\u003e\u003ccode\u003e9672801\u003c/code\u003e\u003c/a\u003e refactor [lsp]: add tests for the read line func\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/b212bdd7acde0a61033575d8f956f47c7229956d\"\u003e\u003ccode\u003eb212bdd\u003c/code\u003e\u003c/a\u003e [air] lsp: add file system watcher impl\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/4a2ee0758fbf129658849c9ec21b61c856cd70cc\"\u003e\u003ccode\u003e4a2ee07\u003c/code\u003e\u003c/a\u003e cleanup [python]:  remove unused methods from \u003ccode\u003ePythonSdkType\u003c/code\u003e, mark legacy me...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/2d70c0bb5a1d0423e0711ef6f5af7d644f6bc9f0\"\u003e\u003ccode\u003e2d70c0b\u003c/code\u003e\u003c/a\u003e [terminal] IJPL-219717 rename EP to \u003ccode\u003eshellCustomizer\u003c/code\u003e to align with `ShellCus...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/0b691da8501cca1826c7604162d49289c011d56e\"\u003e\u003ccode\u003e0b691da\u003c/code\u003e\u003c/a\u003e IJPL-233120 MCP Server: avoid double-quoting Codex TOML keys\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/intellij-community/compare/pycharm/251.23536.40...pycharm/261.20362.36\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi` from 0.120.1 to 0.128.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.128.7\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Show a clear error on attempt to include router into itself. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14258\"\u003e#14258\u003c/a\u003e by \u003ca href=\"https://github.com/JavierSanchezCastro\"\u003e\u003ccode\u003e@​JavierSanchezCastro\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✨ Replace \u003ccode\u003edict\u003c/code\u003e by \u003ccode\u003eMapping\u003c/code\u003e on \u003ccode\u003eHTTPException.headers\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/12997\"\u003e#12997\u003c/a\u003e by \u003ca href=\"https://github.com/rijenkii\"\u003e\u003ccode\u003e@​rijenkii\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Simplify reading files in memory, do it sequentially instead of (fake) parallel. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14884\"\u003e#14884\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Use \u003ccode\u003edfn\u003c/code\u003e tag for definitions instead of \u003ccode\u003eabbr\u003c/code\u003e in docs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14744\"\u003e#14744\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✅ Tweak comment in test to reference PR. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14885\"\u003e#14885\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Update LLM-prompt for \u003ccode\u003eabbr\u003c/code\u003e and \u003ccode\u003edfn\u003c/code\u003e tags. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14747\"\u003e#14747\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✅ Test order for the submitted byte Files. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14828\"\u003e#14828\u003c/a\u003e by \u003ca href=\"https://github.com/valentinDruzhinin\"\u003e\u003ccode\u003e@​valentinDruzhinin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Configure \u003ccode\u003etest\u003c/code\u003e workflow to run tests with \u003ccode\u003einline-snapshot=review\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14876\"\u003e#14876\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.128.6\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix \u003ccode\u003eon_startup\u003c/code\u003e and \u003ccode\u003eon_shutdown\u003c/code\u003e parameters of \u003ccode\u003eAPIRouter\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14873\"\u003e#14873\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🌐 Update translations for zh (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14843\"\u003e#14843\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✅ Fix parameterized tests with snapshots. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14875\"\u003e#14875\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.128.5\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Refactor and simplify Pydantic v2 (and v1) compatibility internal utils. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14862\"\u003e#14862\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✅ Add inline snapshot tests for OpenAPI before changes from Pydantic v2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14864\"\u003e#14864\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.128.4\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Refactor internals, simplify Pydantic v2/v1 utils, \u003ccode\u003ecreate_model_field\u003c/code\u003e, better types for \u003ccode\u003elenient_issubclass\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14860\"\u003e#14860\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e♻️ Simplify internals, remove Pydantic v1 only logic, no longer needed. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14857\"\u003e#14857\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e♻️ Refactor internals, cleanup unneeded Pydantic v1 specific logic. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14856\"\u003e#14856\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\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/fastapi/fastapi/commit/8f82c94de0ff641a239db59e58dfdc6010a4b26a\"\u003e\u003ccode\u003e8f82c94\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.128.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/5bb3423205daf98f88f14d696d104fea2221028a\"\u003e\u003ccode\u003e5bb3423\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/6ce5e3e961876c39d8a60a3a2cb4147a6748d116\"\u003e\u003ccode\u003e6ce5e3e\u003c/code\u003e\u003c/a\u003e ✅ Tweak comment in test to reference PR (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14885\"\u003e#14885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/65da3dde120c7efee7868890ff3e6e788a860ed6\"\u003e\u003ccode\u003e65da3dd\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/81f82fd9558b077017e80adc448fe5f7807d3732\"\u003e\u003ccode\u003e81f82fd\u003c/code\u003e\u003c/a\u003e 🔧 Update LLM-prompt for \u003ccode\u003eabbr\u003c/code\u003e and \u003ccode\u003edfn\u003c/code\u003e tags (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14747\"\u003e#14747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ff721017df331de1357270f03f1f03382a50477f\"\u003e\u003ccode\u003eff72101\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ca76a4eba9bb9ddd082b6d16f14d8b0d7977235b\"\u003e\u003ccode\u003eca76a4e\u003c/code\u003e\u003c/a\u003e 📝 Use \u003ccode\u003edfn\u003c/code\u003e tag for definitions instead of \u003ccode\u003eabbr\u003c/code\u003e in docs (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14744\"\u003e#14744\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/1133a4594d96cd4c26d734f74444110ec9260405\"\u003e\u003ccode\u003e1133a45\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/38f965985e3111162070136acf92b0843c1d48b8\"\u003e\u003ccode\u003e38f9659\u003c/code\u003e\u003c/a\u003e ✅ Test order for the submitted byte Files (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14828\"\u003e#14828\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/3f1cc8f8f5fabaf85a0c3d9428004001af2486a4\"\u003e\u003ccode\u003e3f1cc8f\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.120.1...0.128.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `starlette` from 0.49.1 to 0.52.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/releases\"\u003estarlette's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.52.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOnly use \u003ccode\u003etyping_extensions\u003c/code\u003e in older Python versions by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3109\"\u003eKludex/starlette#3109\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.52.0...0.52.1\"\u003ehttps://github.com/Kludex/starlette/compare/0.52.0...0.52.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.52.0\u003c/h2\u003e\n\u003cp\u003eIn this release, \u003ccode\u003eState\u003c/code\u003e can be accessed using dictionary-style syntax for improved type safety (\u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3036\"\u003e#3036\u003c/a\u003e).\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003efrom collections.abc import AsyncIterator\nfrom contextlib import asynccontextmanager\nfrom typing import TypedDict\n\u003cp\u003eimport httpx\u003c/p\u003e\n\u003cp\u003efrom starlette.applications import Starlette\nfrom starlette.requests import Request\u003c/p\u003e\n\u003cp\u003eclass State(TypedDict):\nhttp_client: httpx.AsyncClient\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/asynccontextmanager\"\u003e\u003ccode\u003e@​asynccontextmanager\u003c/code\u003e\u003c/a\u003e\nasync def lifespan(app: Starlette) -\u0026gt; AsyncIterator[State]:\nasync with httpx.AsyncClient() as client:\nyield {\u0026quot;http_client\u0026quot;: client}\u003c/p\u003e\n\u003cp\u003easync def homepage(request: Request[State]):\nclient = request.state[\u0026quot;http_client\u0026quot;]\n# If you run the below line with mypy or pyright, it will reveal the correct type.\nreveal_type(client)  # Revealed type is 'httpx.AsyncClient'\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/Kludex/starlette/blob/HEAD/lifespan.md#accessing-state\"\u003eAccessing State\u003c/a\u003e for more details.\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.51.0...0.52.0\"\u003ehttps://github.com/Kludex/starlette/compare/0.51.0...0.52.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.51.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eallow_private_network\u003c/code\u003e in \u003ccode\u003eCORSMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3065\"\u003e#3065\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/blob/main/docs/release-notes.md\"\u003estarlette's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.52.1 (January 18, 2026)\u003c/h2\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eOnly use \u003ccode\u003etyping_extensions\u003c/code\u003e in older Python versions \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3109\"\u003e#3109\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.52.0 (January 18, 2026)\u003c/h2\u003e\n\u003cp\u003eIn this release, \u003ccode\u003eState\u003c/code\u003e can be accessed using dictionary-style syntax for improved type\nsafety (\u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3036\"\u003e#3036\u003c/a\u003e).\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003efrom collections.abc import AsyncIterator\nfrom contextlib import asynccontextmanager\nfrom typing import TypedDict\n\u003cp\u003eimport httpx\u003c/p\u003e\n\u003cp\u003efrom starlette.applications import Starlette\nfrom starlette.requests import Request\u003c/p\u003e\n\u003cp\u003eclass State(TypedDict):\nhttp_client: httpx.AsyncClient\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/asynccontextmanager\"\u003e\u003ccode\u003e@​asynccontextmanager\u003c/code\u003e\u003c/a\u003e\nasync def lifespan(app: Starlette) -\u0026gt; AsyncIterator[State]:\nasync with httpx.AsyncClient() as client:\nyield {\u0026quot;http_client\u0026quot;: client}\u003c/p\u003e\n\u003cp\u003easync def homepage(request: Request[State]):\nclient = request.state[\u0026quot;http_client\u0026quot;]\n# If you run the below line with mypy or pyright, it will reveal the correct type.\nreveal_type(client)  # Revealed type is 'httpx.AsyncClient'\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/Kludex/starlette/blob/main/docs/lifespan.md#accessing-state\"\u003eAccessing State\u003c/a\u003e for more details.\u003c/p\u003e\n\u003ch2\u003e0.51.0 (January 10, 2026)\u003c/h2\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eallow_private_network\u003c/code\u003e in \u003ccode\u003eCORSMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3065\"\u003e#3065\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanged\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eIncrease warning stacklevel on \u003ccode\u003eDeprecationWarning\u003c/code\u003e for wsgi module \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3082\"\u003e#3082\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/Kludex/starlette/commit/e5b8a5d200504a2608bed11fe6f66b1d20b9ae2c\"\u003e\u003ccode\u003ee5b8a5d\u003c/code\u003e\u003c/a\u003e Version 0.52.1 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3110\"\u003e#3110\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/d02eadecb5409e9553922081ac123757849335e7\"\u003e\u003ccode\u003ed02eade\u003c/code\u003e\u003c/a\u003e Only use \u003ccode\u003etyping_extensions\u003c/code\u003e in older Python versions (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3109\"\u003e#3109\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/f490b42f5fa0808ead53115a45d907c6d8e16a47\"\u003e\u003ccode\u003ef490b42\u003c/code\u003e\u003c/a\u003e Version 0.52.0 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3107\"\u003e#3107\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/d8c7cf9aca95b31c7a70473d03c26bc8ce33cd74\"\u003e\u003ccode\u003ed8c7cf9\u003c/code\u003e\u003c/a\u003e Turn \u003ccode\u003eState\u003c/code\u003e into a \u003ccode\u003eMapping\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3036\"\u003e#3036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/cfce146611f7cc2b14c524b26d7e1d6cf0ddcd9f\"\u003e\u003ccode\u003ecfce146\u003c/code\u003e\u003c/a\u003e chore: bump coverage (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3103\"\u003e#3103\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/9138e5597285c6120821a6ad862880d479f329f3\"\u003e\u003ccode\u003e9138e55\u003c/code\u003e\u003c/a\u003e fix: setup github pages for deployment (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3102\"\u003e#3102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/aff6df756b231c42ca088788db4bf4b193f7cc5b\"\u003e\u003ccode\u003eaff6df7\u003c/code\u003e\u003c/a\u003e docs: add environment for github docs (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3101\"\u003e#3101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/434bab94749b8522b08bbef3eff5fb742629d4fd\"\u003e\u003ccode\u003e434bab9\u003c/code\u003e\u003c/a\u003e docS: fix gh pages deploy (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3100\"\u003e#3100\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/03426be1d41fc3963cd2dab5f10992e137eaf5f4\"\u003e\u003ccode\u003e03426be\u003c/code\u003e\u003c/a\u003e docs: replace mkdocs by zensical (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3098\"\u003e#3098\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/df2ee22bc072dc19962120a7559f8fc0de7a094e\"\u003e\u003ccode\u003edf2ee22\u003c/code\u003e\u003c/a\u003e Version 0.51.0 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3097\"\u003e#3097\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/starlette/compare/0.49.1...0.52.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `strawberry-graphql[fastapi]` from 0.284.1 to 0.291.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/strawberry-graphql/strawberry/releases\"\u003estrawberry-graphql[fastapi]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e🍓 0.291.3\u003c/h2\u003e\n\u003cp\u003eThis release fixes a bug where the async \u003ccode\u003eexecute\u003c/code\u003e method was creating\nnew extension instances on every request (via \u003ccode\u003eget_extensions()\u003c/code\u003e),\ninstead of reusing cached instances like the sync \u003ccode\u003eexecute_sync\u003c/code\u003e method\nalready did. This caused extensions that accumulate state across the\nexecution lifecycle (such as \u003ccode\u003eApolloTracingExtension\u003c/code\u003e) to lose their\nstate between requests when using async execution.\u003c/p\u003e\n\u003cp\u003eReleases contributed by \u003ca href=\"https://github.com/bellini666\"\u003e\u003ccode\u003e@​bellini666\u003c/code\u003e\u003c/a\u003e via \u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4181\"\u003e#4181\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e🍓 0.291.2\u003c/h2\u003e\n\u003cp\u003eUpdate type annotations for \u003ccode\u003eResponse.data\u003c/code\u003e and \u003ccode\u003eResponse.extensions\u003c/code\u003e in the test client to \u003ccode\u003eAny\u003c/code\u003e, instead of \u003ccode\u003eJsonValue\u003c/code\u003e, to allow nested subscript access in test assertions without type errors.\u003c/p\u003e\n\u003cp\u003eReleases contributed by \u003ca href=\"https://github.com/millar\"\u003e\u003ccode\u003e@​millar\u003c/code\u003e\u003c/a\u003e via \u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4195\"\u003e#4195\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e🍓 0.291.1\u003c/h2\u003e\n\u003cp\u003eThis update relaxes type annotations for \u003ccode\u003eResponse.data\u003c/code\u003e and \u003ccode\u003eResponse.extensions\u003c/code\u003e from \u003ccode\u003edict[str, JsonValue]\u003c/code\u003e to \u003ccode\u003edict[str, JsonValue]\u003c/code\u003e in the test client, making assertions in tests easier to write.\u003c/p\u003e\n\u003cp\u003eReleases contributed by \u003ca href=\"https://github.com/millar\"\u003e\u003ccode\u003e@​millar\u003c/code\u003e\u003c/a\u003e via \u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4186\"\u003e#4186\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e🍓 0.291.0\u003c/h2\u003e\n\u003cp\u003eAdds a \u003ccode\u003egraphql_type\u003c/code\u003e parameter to \u003ccode\u003estrawberry.argument\u003c/code\u003e that allows you\nto explicitly override the GraphQL type of an argument, useful for static typing\nwhen the Python type differs from the desired GraphQL type.\u003c/p\u003e\n\u003cp\u003eFor example:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eBigInt = strawberry.scalar(\n    int, name=\u0026quot;BigInt\u0026quot;, serialize=lambda v: str(v), parse_value=lambda v: int(v)\n)\n\u003cp\u003e\u003ca href=\"https://github.com/strawberry\"\u003e\u003ccode\u003e@​strawberry\u003c/code\u003e\u003c/a\u003e.type\nclass Query:\n\u003ca href=\"https://github.com/strawberry\"\u003e\u003ccode\u003e@​strawberry\u003c/code\u003e\u003c/a\u003e.field()\ndef username(\nself, user_id: Annotated[int, strawberry.argument(graphql_type=BigInt)]\n) -\u0026gt; str:\nreturn \u0026quot;foobar\u0026quot;\u003c/p\u003e\n\u003cp\u003eschema = strawberry.Schema(Query)\u003c/p\u003e\n\u003cp\u003estr(\nschema\n) == \u0026quot;\u0026quot;\u0026quot;\nscalar BigInt\u003c/p\u003e\n\u003cp\u003etype Query {\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/strawberry-graphql/strawberry/blob/main/CHANGELOG.md\"\u003estrawberry-graphql[fastapi]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.291.3 - 2026-02-07\u003c/h2\u003e\n\u003cp\u003eThis release fixes a bug where the async \u003ccode\u003eexecute\u003c/code\u003e method was creating\nnew extension instances on every request (via \u003ccode\u003eget_extensions()\u003c/code\u003e),\ninstead of reusing cached instances like the sync \u003ccode\u003eexecute_sync\u003c/code\u003e method\nalready did. This caused extensions that accumulate state across the\nexecution lifecycle (such as \u003ccode\u003eApolloTracingExtension\u003c/code\u003e) to lose their\nstate between requests when using async execution.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/bellini666\"\u003eThiago Bellini Ribeiro\u003c/a\u003e via [PR \u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4181\"\u003e#4181\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/pull/4181/\"\u003estrawberry-graphql/strawberry#4181\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003e0.291.2 - 2026-02-06\u003c/h2\u003e\n\u003cp\u003eUpdate type annotations for \u003ccode\u003eResponse.data\u003c/code\u003e and \u003ccode\u003eResponse.extensions\u003c/code\u003e in the test client to \u003ccode\u003eAny\u003c/code\u003e, instead of \u003ccode\u003eJsonValue\u003c/code\u003e, to allow nested subscript access in test assertions without type errors.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/millar\"\u003eSam Millar\u003c/a\u003e via [PR \u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4195\"\u003e#4195\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/pull/4195/\"\u003estrawberry-graphql/strawberry#4195\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003e0.291.1 - 2026-02-06\u003c/h2\u003e\n\u003cp\u003eThis update relaxes type annotations for \u003ccode\u003eResponse.data\u003c/code\u003e and \u003ccode\u003eResponse.extensions\u003c/code\u003e from \u003ccode\u003edict[str, JsonValue]\u003c/code\u003e to \u003ccode\u003edict[str, JsonValue]\u003c/code\u003e in the test client, making assertions in tests easier to write.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/millar\"\u003eSam Millar\u003c/a\u003e via [PR \u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4186\"\u003e#4186\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/pull/4186/\"\u003estrawberry-graphql/strawberry#4186\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003e0.291.0 - 2026-02-01\u003c/h2\u003e\n\u003cp\u003eAdds a \u003ccode\u003egraphql_type\u003c/code\u003e parameter to \u003ccode\u003estrawberry.argument\u003c/code\u003e that allows you\nto explicitly override the GraphQL type of an argument, useful for static typing\nwhen the Python type differs from the desired GraphQL type.\u003c/p\u003e\n\u003cp\u003eFor example:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eBigInt = strawberry.scalar(\n    int, name=\u0026quot;BigInt\u0026quot;, serialize=lambda v: str(v), parse_value=lambda v: int(v)\n)\n\u003cp\u003e\u003ca href=\"https://github.com/strawberry\"\u003e\u003ccode\u003e@​strawberry\u003c/code\u003e\u003c/a\u003e.type\nclass Query:\n\u003ca href=\"https://github.com/strawberry\"\u003e\u003ccode\u003e@​strawberry\u003c/code\u003e\u003c/a\u003e.field()\ndef username(\nself, user_id: Annotated[int, strawberry.argument(graphql_type=BigInt)]\n) -\u0026gt; str:\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/strawberry-graphql/strawberry/commit/756f2141920f0a3412113e53afa534744c2132f3\"\u003e\u003ccode\u003e756f214\u003c/code\u003e\u003c/a\u003e Release 🍓 0.291.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/4c29e399f237269125eb8b71f33dd90a706bae19\"\u003e\u003ccode\u003e4c29e39\u003c/code\u003e\u003c/a\u003e fix: ApolloTracingExtension resolvers field not populated on subsequent reque...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/d68f4aa198269b87738468afd974762b47395f04\"\u003e\u003ccode\u003ed68f4aa\u003c/code\u003e\u003c/a\u003e Release 🍓 0.291.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/1f6e519e9b868545b2f728d83faca734e9651661\"\u003e\u003ccode\u003e1f6e519\u003c/code\u003e\u003c/a\u003e fix(test): use Any as client response data/extension return type (\u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4195\"\u003e#4195\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/5c236d810518d5b573db9b843f0f242da206acbf\"\u003e\u003ccode\u003e5c236d8\u003c/code\u003e\u003c/a\u003e fix: fix broken typing tests on main and make e2e less flaky (\u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4194\"\u003e#4194\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/ed455a96ff6a9faad6a2fb5b2ef8f2c689eaae6e\"\u003e\u003ccode\u003eed455a9\u003c/code\u003e\u003c/a\u003e Release 🍓 0.291.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/cc1e5a691162270127f3c90c831f4d09caa2ae92\"\u003e\u003ccode\u003ecc1e5a6\u003c/code\u003e\u003c/a\u003e chore(test): looser types for test client responses (\u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4186\"\u003e#4186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/c2cfe0f4c697820612274931758b56813590d6f0\"\u003e\u003ccode\u003ec2cfe0f\u003c/co...\n\n_Description has been truncated_","html_url":"https://github.com/pantsbuild/pants/pull/23091","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/pantsbuild%2Fpants/issues/23091","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/23091/packages"},{"uuid":"3893465953","node_id":"PR_kwDOGj6ySc7BTrhp","number":123,"state":"open","title":"Bump the python-version-updates group in /3rdparty/python with 17 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-02-03T22:07:41.000Z","updated_at":"2026-02-03T22:07:42.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-version-updates","update_count":17,"packages":[{"name":"libcst","old_version":"1.8.5","new_version":"1.8.6","repository_url":"https://github.com/Instagram/LibCST"},{"name":"packaging","old_version":"25.0","new_version":"26.0","repository_url":"https://github.com/pypa/packaging"},{"name":"psutil","old_version":"5.9.8","new_version":"7.2.2","repository_url":"https://github.com/giampaolo/psutil"},{"name":"pytest","old_version":"8.4.1","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"types-requests","old_version":"2.32.4.20250913","new_version":"2.32.4.20260107","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"types-setuptools","old_version":"80.9.0.20250822","new_version":"80.10.0.20260124","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"debugpy","old_version":"1.8.16","new_version":"1.8.20","repository_url":"https://github.com/microsoft/debugpy"},{"name":"pydevd-pycharm","old_version":"251.23536.40","new_version":"261.19799.40","repository_url":"https://github.com/JetBrains/intellij-community"},{"name":"fastapi","old_version":"0.120.1","new_version":"0.128.0","repository_url":"https://github.com/fastapi/fastapi"},{"name":"starlette","old_version":"0.49.1","new_version":"0.52.1","repository_url":"https://github.com/Kludex/starlette"},{"name":"strawberry-graphql","old_version":"0.284.1","new_version":"0.291.0"},{"name":"uvicorn","old_version":"0.38.0","new_version":"0.40.0"},{"name":"beautifulsoup4","old_version":"4.11.1","new_version":"4.14.3"},{"name":"python-gnupg","old_version":"0.5.5","new_version":"0.5.6","repository_url":"https://github.com/vsajip/python-gnupg"}],"path":"/3rdparty/python","ecosystem":"pip"},"body":"Updates the requirements on [libcst](https://github.com/Instagram/LibCST), [packaging](https://github.com/pypa/packaging), [psutil](https://github.com/giampaolo/psutil), [pytest](https://github.com/pytest-dev/pytest), [types-requests](https://github.com/typeshed-internal/stub_uploader), [types-setuptools](https://github.com/typeshed-internal/stub_uploader), [debugpy](https://github.com/microsoft/debugpy), [pydevd-pycharm](https://github.com/JetBrains/intellij-community), [fastapi](https://github.com/fastapi/fastapi), [starlette](https://github.com/Kludex/starlette), [strawberry-graphql[fastapi]](https://github.com/strawberry-graphql/strawberry), [uvicorn[standard]](https://github.com/Kludex/uvicorn), [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/), [python-gnupg](https://github.com/vsajip/python-gnupg), [mypy](https://github.com/python/mypy), [pytest-cov](https://github.com/pytest-dev/pytest-cov) and [flake8](https://github.com/pycqa/flake8) to permit the latest version.\nUpdates `libcst` from 1.8.5 to 1.8.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/releases\"\u003elibcst's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.8.6\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate pyproject.toml for 3.14t by \u003ca href=\"https://github.com/itamaro\"\u003e\u003ccode\u003e@​itamaro\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1417\"\u003eInstagram/LibCST#1417\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate PyO3 to 0.26 by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1413\"\u003eInstagram/LibCST#1413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake CodemodCommand's supported_transforms order deterministic by \u003ca href=\"https://github.com/frvnkliu\"\u003e\u003ccode\u003e@​frvnkliu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1424\"\u003eInstagram/LibCST#1424\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/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1413\"\u003eInstagram/LibCST#1413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frvnkliu\"\u003e\u003ccode\u003e@​frvnkliu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1424\"\u003eInstagram/LibCST#1424\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.5...v1.8.6\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.5...v1.8.6\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/blob/main/CHANGELOG.md\"\u003elibcst's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.8.6 - 2025-11-03\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate pyproject.toml for 3.14t by \u003ca href=\"https://github.com/itamaro\"\u003e\u003ccode\u003e@​itamaro\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1417\"\u003eInstagram/LibCST#1417\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate PyO3 to 0.26 by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1413\"\u003eInstagram/LibCST#1413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake CodemodCommand's supported_transforms order deterministic by \u003ca href=\"https://github.com/frvnkliu\"\u003e\u003ccode\u003e@​frvnkliu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1424\"\u003eInstagram/LibCST#1424\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/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1413\"\u003eInstagram/LibCST#1413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frvnkliu\"\u003e\u003ccode\u003e@​frvnkliu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1424\"\u003eInstagram/LibCST#1424\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.5...v1.8.6\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.5...v1.8.6\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/Instagram/LibCST/commit/9275a8bf7875d08659ce7b266860138bba633410\"\u003e\u003ccode\u003e9275a8b\u003c/code\u003e\u003c/a\u003e bump version to 1.8.6 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1425\"\u003e#1425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/b66c0e28229fd91ac145f1a56d7d884e6f8587b4\"\u003e\u003ccode\u003eb66c0e2\u003c/code\u003e\u003c/a\u003e [CodemodCommand] Make \u003ccode\u003etransform_module\u003c/code\u003e \u003ccode\u003esupported_transforms\u003c/code\u003e order determi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/c2169d240b5011ea820dc18d7a2452f182c2c5d3\"\u003e\u003ccode\u003ec2169d2\u003c/code\u003e\u003c/a\u003e Update PyO3 to 0.26 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1413\"\u003e#1413\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/73b17d8449034b520e7128c8a4bd100674d1e78c\"\u003e\u003ccode\u003e73b17d8\u003c/code\u003e\u003c/a\u003e Update pyproject.toml for 3.14t (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1417\"\u003e#1417\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/421f7d34004de18391014319ec6a818322637a8d\"\u003e\u003ccode\u003e421f7d3\u003c/code\u003e\u003c/a\u003e build(deps): bump pypa/cibuildwheel from 3.1.4 to 3.2.1 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1414\"\u003e#1414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/129b20f4769a2b26b41b262fb88f9aaf8754930b\"\u003e\u003ccode\u003e129b20f\u003c/code\u003e\u003c/a\u003e build(deps): bump github/codeql-action from 3 to 4 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1415\"\u003e#1415\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/6f5da5f99873e4c17e32ca221a3ddde3fb1ea354\"\u003e\u003ccode\u003e6f5da5f\u003c/code\u003e\u003c/a\u003e build(deps): bump astral-sh/setup-uv from 6 to 7 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1416\"\u003e#1416\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.5...v1.8.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `packaging` from 25.0 to 26.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/releases\"\u003epackaging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.0\u003c/h2\u003e\n\u003cp\u003eRead about the performance improvements here: \u003ca href=\"https://iscinumpy.dev/post/packaging-faster\"\u003ehttps://iscinumpy.dev/post/packaging-faster\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePEP 751: support pylock by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/900\"\u003epypa/packaging#900\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePEP 794: import name metadata by \u003ca href=\"https://github.com/brettcannon\"\u003e\u003ccode\u003e@​brettcannon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/948\"\u003epypa/packaging#948\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport writing metadata by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/846\"\u003epypa/packaging#846\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e__replace__\u003c/code\u003e for \u003ccode\u003eVersion\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1003\"\u003epypa/packaging#1003\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport positional pattern matching for \u003ccode\u003eVersion\u003c/code\u003e and \u003ccode\u003eSpecifier\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1004\"\u003epypa/packaging#1004\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePEP 440 handling of prereleases for \u003ccode\u003eSpecifier.contains\u003c/code\u003e, \u003ccode\u003eSpecifierSet.contains\u003c/code\u003e, and \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/897\"\u003epypa/packaging#897\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle PEP 440 edge case in \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/942\"\u003epypa/packaging#942\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdjust arbitrary equality intersection preservation in \u003ccode\u003eSpecifierSet\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/951\"\u003epypa/packaging#951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReturn \u003ccode\u003eFalse\u003c/code\u003e instead of raising for \u003ccode\u003e.contains\u003c/code\u003e with invalid version by \u003ca href=\"https://github.com/Liam-DeVoe\"\u003e\u003ccode\u003e@​Liam-DeVoe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/932\"\u003epypa/packaging#932\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport arbitrary equality on arbitrary strings for \u003ccode\u003eSpecifier\u003c/code\u003e and \u003ccode\u003eSpecifierSet\u003c/code\u003e's \u003ccode\u003efilter\u003c/code\u003e and \u003ccode\u003econtains\u003c/code\u003e method. by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/954\"\u003epypa/packaging#954\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly try to parse as \u003ccode\u003eVersion\u003c/code\u003e on certain marker keys, return \u003ccode\u003eFalse\u003c/code\u003e on unequal ordered comparsions by \u003ca href=\"https://github.com/JP-Ellis\"\u003e\u003ccode\u003e@​JP-Ellis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/939\"\u003epypa/packaging#939\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003e_hash\u003c/code\u003e when unpickling \u003ccode\u003eTag()\u003c/code\u003e by \u003ca href=\"https://github.com/dholth\"\u003e\u003ccode\u003e@​dholth\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/860\"\u003epypa/packaging#860\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrect comment and simplify implicit prerelease handling in \u003ccode\u003eSpecifier.prereleases\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/896\"\u003epypa/packaging#896\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse explicit \u003ccode\u003e_GLibCVersion\u003c/code\u003e \u003ccode\u003eNamedTuple\u003c/code\u003e in \u003ccode\u003e_manylinux\u003c/code\u003e by \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/868\"\u003epypa/packaging#868\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDetect invalid license expressions containing \u003ccode\u003e()\u003c/code\u003e by \u003ca href=\"https://github.com/bwoodsend\"\u003e\u003ccode\u003e@​bwoodsend\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/879\"\u003epypa/packaging#879\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrect regex for metadata \u003ccode\u003e'name'\u003c/code\u003e format by \u003ca href=\"https://github.com/di\"\u003e\u003ccode\u003e@​di\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/925\"\u003epypa/packaging#925\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove the message around expecting a semicolon by \u003ca href=\"https://github.com/pradyunsg\"\u003e\u003ccode\u003e@​pradyunsg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/833\"\u003epypa/packaging#833\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport nested parens in license expressions by \u003ca href=\"https://github.com/Liam-DeVoe\"\u003e\u003ccode\u003e@​Liam-DeVoe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/931\"\u003epypa/packaging#931\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd space before at symbol in \u003ccode\u003eRequirements\u003c/code\u003e string by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/953\"\u003epypa/packaging#953\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eA root logger use found by ruff LOG, use \u003ccode\u003epackaging\u003c/code\u003e logger instead by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/965\"\u003epypa/packaging#965\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter support for subclassing \u003ccode\u003eMarker\u003c/code\u003e and \u003ccode\u003eRequirement\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1022\"\u003epypa/packaging#1022\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize all extras, not just if it comes first by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1024\"\u003epypa/packaging#1024\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't produce a broken repr if \u003ccode\u003eMarker\u003c/code\u003e fails to construct by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1033\"\u003epypa/packaging#1033\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePerformance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid recompiling regexes in the tokenizer for a 3x speedup by \u003ca href=\"https://github.com/hauntsaninja\"\u003e\u003ccode\u003e@​hauntsaninja\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1019\"\u003epypa/packaging#1019\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove performance in \u003ccode\u003e_manylinux.py\u003c/code\u003e by \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/869\"\u003epypa/packaging#869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMinor cleanups to \u003ccode\u003eVersion\u003c/code\u003e by \u003ca href=\"https://github.com/bearomorphism\"\u003e\u003ccode\u003e@​bearomorphism\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/913\"\u003epypa/packaging#913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip redundant creation of \u003ccode\u003eVersion\u003c/code\u003es in specifier comparison by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/986\"\u003epypa/packaging#986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCache \u003ccode\u003eSpecifier\u003c/code\u003e's Version by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/985\"\u003epypa/packaging#985\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eVersion\u003c/code\u003e a little faster by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/987\"\u003epypa/packaging#987\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMinor \u003ccode\u003eVersion\u003c/code\u003e regex cleanup by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/990\"\u003epypa/packaging#990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFaster regex on Python 3.11.5+ by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/988\"\u003epypa/packaging#988\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1055\"\u003epypa/packaging#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLazily calculate \u003ccode\u003e_key\u003c/code\u003e in \u003ccode\u003eVersion\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/989\"\u003epypa/packaging#989\u003c/a\u003e and regression for \u003ccode\u003epackaging_legacy\u003c/code\u003e fixed by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1048\"\u003epypa/packaging#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFaster \u003ccode\u003ecanonicalize_version\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/993\"\u003epypa/packaging#993\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003efullmatch\u003c/code\u003e in a couple more places by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/992\"\u003epypa/packaging#992\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/blob/main/CHANGELOG.rst\"\u003epackaging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e26.0 - 2026-01-20\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nFeatures:\n\u003cul\u003e\n\u003cli\u003ePEP 751: support pylock (:pull:\u003ccode\u003e900\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePEP 794: import name metadata (:pull:\u003ccode\u003e948\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport for writing metadata to a file (:pull:\u003ccode\u003e846\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e__replace__\u003c/code\u003e on Version (:pull:\u003ccode\u003e1003\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport positional pattern matching for \u003ccode\u003eVersion\u003c/code\u003e and \u003ccode\u003eSpecifierSet\u003c/code\u003e (:pull:\u003ccode\u003e1004\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePEP 440 handling of prereleases for \u003ccode\u003eSpecifier.contains\u003c/code\u003e, \u003ccode\u003eSpecifierSet.contains\u003c/code\u003e, and \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e (:pull:\u003ccode\u003e897\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eHandle PEP 440 edge case in \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e (:pull:\u003ccode\u003e942\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdjust arbitrary equality intersection preservation in \u003ccode\u003eSpecifierSet\u003c/code\u003e (:pull:\u003ccode\u003e951\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eReturn \u003ccode\u003eFalse\u003c/code\u003e instead of raising for \u003ccode\u003e.contains\u003c/code\u003e with invalid version (:pull:\u003ccode\u003e932\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport arbitrary equality on arbitrary strings for \u003ccode\u003eSpecifier\u003c/code\u003e and \u003ccode\u003eSpecifierSet\u003c/code\u003e's \u003ccode\u003efilter\u003c/code\u003e and \u003ccode\u003econtains\u003c/code\u003e method. (:pull:\u003ccode\u003e954\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eOnly try to parse as \u003ccode\u003eVersion\u003c/code\u003e on certain marker keys, return \u003ccode\u003eFalse\u003c/code\u003e on unequal ordered comparisons (:pull:\u003ccode\u003e939\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003e_hash\u003c/code\u003e when unpickling \u003ccode\u003eTag()\u003c/code\u003e (:pull:\u003ccode\u003e860\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect comment and simplify implicit prerelease handling in \u003ccode\u003eSpecifier.prereleases\u003c/code\u003e (:pull:\u003ccode\u003e896\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse explicit \u003ccode\u003e_GLibCVersion\u003c/code\u003e \u003ccode\u003eNamedTuple\u003c/code\u003e in \u003ccode\u003e_manylinux\u003c/code\u003e (:pull:\u003ccode\u003e868\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDetect invalid license expressions containing \u003ccode\u003e()\u003c/code\u003e (:pull:\u003ccode\u003e879\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect regex for metadata \u003ccode\u003e'name'\u003c/code\u003e format (:pull:\u003ccode\u003e925\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eImprove the message around expecting a semicolon (:pull:\u003ccode\u003e833\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport nested parens in license expressions (:pull:\u003ccode\u003e931\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd space before at symbol in \u003ccode\u003eRequirements\u003c/code\u003e string (:pull:\u003ccode\u003e953\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eA root logger use found, use a \u003ccode\u003epackaging\u003c/code\u003e logger instead (:pull:\u003ccode\u003e965\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eBetter support for subclassing \u003ccode\u003eMarker\u003c/code\u003e and \u003ccode\u003eRequirement\u003c/code\u003e (:pull:\u003ccode\u003e1022\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eNormalize all extras, not just if it comes first (:pull:\u003ccode\u003e1024\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDon't produce a broken repr if \u003ccode\u003eMarker\u003c/code\u003e fails to construct (:pull:\u003ccode\u003e1033\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePerformance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid recompiling regexes in the tokenizer for a 3x speedup (:pull:\u003ccode\u003e1019\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eImprove performance in \u003ccode\u003e_manylinux.py\u003c/code\u003e (:pull:\u003ccode\u003e869\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMinor cleanups to \u003ccode\u003eVersion\u003c/code\u003e (:pull:\u003ccode\u003e913\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSkip redundant creation of \u003ccode\u003eVersion\u003c/code\u003e's in specifier comparison (:pull:\u003ccode\u003e986\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCache the \u003ccode\u003eSpecifier\u003c/code\u003e's \u003ccode\u003eVersion\u003c/code\u003e (:pull:\u003ccode\u003e985\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eVersion\u003c/code\u003e a little faster (:pull:\u003ccode\u003e987\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMinor \u003ccode\u003eVersion\u003c/code\u003e regex cleanup (:pull:\u003ccode\u003e990\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFaster regex on Python 3.11.5+ for \u003ccode\u003eVersion\u003c/code\u003e (:pull:\u003ccode\u003e988\u003c/code\u003e, :pull:\u003ccode\u003e1055\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eLazily calculate \u003ccode\u003e_key\u003c/code\u003e in \u003ccode\u003eVersion\u003c/code\u003e (:pull:\u003ccode\u003e989\u003c/code\u003e, :pull:\u003ccode\u003e1048\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFaster \u003ccode\u003ecanonicalize_version\u003c/code\u003e (:pull:\u003ccode\u003e993\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003ere.fullmatch\u003c/code\u003e in a couple more places (:pull:\u003ccode\u003e992\u003c/code\u003e, :pull:\u003ccode\u003e1029\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003emap\u003c/code\u003e instead of generator (:pull:\u003ccode\u003e996\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDeprecate \u003ccode\u003e._version\u003c/code\u003e (\u003ccode\u003e_Version\u003c/code\u003e, a \u003ccode\u003eNamedTuple\u003c/code\u003e) (:pull:\u003ccode\u003e995\u003c/code\u003e, :pull:\u003ccode\u003e1062\u003c/code\u003e)\u003cbr /\u003e\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/3b77a26f5a27473ad3b08194d773f325d018a2d0\"\u003e\u003ccode\u003e3b77a26\u003c/code\u003e\u003c/a\u003e Bump for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/31371cce593d2bde0dd8c436ecfb7d53cb91cfb6\"\u003e\u003ccode\u003e31371cc\u003c/code\u003e\u003c/a\u003e docs: prepare for 26.0 final (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1063\"\u003e#1063\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/9627a8821f09e4c55cd6e9daadb617b67c4741c2\"\u003e\u003ccode\u003e9627a88\u003c/code\u003e\u003c/a\u003e perf: dual replace (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1064\"\u003e#1064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/d5398b8bc19f3fad7b035ceb83023caf06d6e2da\"\u003e\u003ccode\u003ed5398b8\u003c/code\u003e\u003c/a\u003e fix: restore ._version as a compat shim (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1062\"\u003e#1062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/3a7b600a126d237b2ad3cd7e25d2cb5c176276af\"\u003e\u003ccode\u003e3a7b600\u003c/code\u003e\u003c/a\u003e Bump for development\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/d4eefdccf992e963c48011875301d93df6a7f2cc\"\u003e\u003ccode\u003ed4eefdc\u003c/code\u003e\u003c/a\u003e Bump for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/46189124fb43d8989d370902c80ab156eb83a45d\"\u003e\u003ccode\u003e4618912\u003c/code\u003e\u003c/a\u003e docs: prepare for 26.0rc3 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1060\"\u003e#1060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/0cf1b41b4b321ae08cad7d3e49cfaff5578fe813\"\u003e\u003ccode\u003e0cf1b41\u003c/code\u003e\u003c/a\u003e ci: test on first public release of CPythons (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1056\"\u003e#1056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/716beb1c0a5d7a398bf57fbd80bc2501811e616b\"\u003e\u003ccode\u003e716beb1\u003c/code\u003e\u003c/a\u003e perf:  10% faster stripping zeros (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1058\"\u003e#1058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/350a2306700b738f487f251efa278f532b263dee\"\u003e\u003ccode\u003e350a230\u003c/code\u003e\u003c/a\u003e fix: support CPython 3.11.0-3.11.4 and older PyPy3.11 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/packaging/compare/25.0...26.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psutil` from 5.9.8 to 7.2.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/giampaolo/psutil/blob/master/HISTORY.rst\"\u003epsutil's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e7.2.2\u003c/h1\u003e\n\u003cp\u003e2026-01-28\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2705_: [Linux]: \u003ccode\u003eProcess.wait()\u003c/code\u003e_ now uses \u003ccode\u003epidfd_open()\u003c/code\u003e + \u003ccode\u003epoll()\u003c/code\u003e for\nwaiting, resulting in no busy loop and faster response times. Requires\nLinux \u0026gt;= 5.3 and Python \u0026gt;= 3.9. Falls back to traditional polling if\nunavailable.\u003c/li\u003e\n\u003cli\u003e2705_: [macOS], [BSD]: \u003ccode\u003eProcess.wait()\u003c/code\u003e_ now uses \u003ccode\u003ekqueue()\u003c/code\u003e for waiting,\nresulting in no busy loop and faster response times.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2701_, [macOS]: fix compilation error on macOS \u0026lt; 10.7.  (patch by Sergey\nFedorov)\u003c/li\u003e\n\u003cli\u003e2707_, [macOS]: fix potential memory leaks in error paths of\n\u003ccode\u003eProcess.memory_full_info()\u003c/code\u003e and \u003ccode\u003eProcess.threads()\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e2708_, [macOS]: Process.cmdline()\u003ccode\u003e_ and \u003c/code\u003eProcess.environ()\u003ccode\u003e_ may fail with ``OSError: [Errno 0] Undefined error`` (from ``sysctl(KERN_PROCARGS2)``). They now raise \u003c/code\u003eAccessDenied`_ instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e7.2.1\u003c/h1\u003e\n\u003cp\u003e2025-12-29\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2699_, [FreeBSD], [NetBSD]: \u003ccode\u003eheap_info()\u003c/code\u003e_ does not detect small allocations\n(\u0026lt;= 1K). In order to fix that, we now flush internal jemalloc cache before\nfetching the metrics.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e7.2.0\u003c/h1\u003e\n\u003cp\u003e2025-12-23\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e1275_: new \u003ccode\u003eheap_info()\u003c/code\u003e_ and \u003ccode\u003eheap_trim()\u003c/code\u003e_ functions, providing direct\naccess to the platform's native C heap allocator (glibc, mimalloc,\nlibmalloc). Useful to create tools to detect memory leaks.\u003c/li\u003e\n\u003cli\u003e2403_, [Linux]: publish wheels for Linux musl.\u003c/li\u003e\n\u003cli\u003e2680_: unit tests are no longer installed / part of the distribution. They\nnow live under \u003ccode\u003etests/\u003c/code\u003e instead of \u003ccode\u003epsutil/tests\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/9eea97dd6f1d16ea33f5144c8925f1ce7a0688e1\"\u003e\u003ccode\u003e9eea97d\u003c/code\u003e\u003c/a\u003e Pre-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/938ac647418f09e4e610b2c755741316713c5592\"\u003e\u003ccode\u003e938ac64\u003c/code\u003e\u003c/a\u003e Rm sphinxcontrib.googleanalytics; override layout.html\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/9dcbb7e60e650f0ab0cb52154b0a12c70f6a1e4c\"\u003e\u003ccode\u003e9dcbb7e\u003c/code\u003e\u003c/a\u003e Add sphinxcontrib-googleanalytics to requirements.txt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/76eaf9ae0f2868569c14b46f4165310885a40a15\"\u003e\u003ccode\u003e76eaf9a\u003c/code\u003e\u003c/a\u003e Try to add google analytics to doc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/de1cafa56f54e97ca557993155e76dd98877e136\"\u003e\u003ccode\u003ede1cafa\u003c/code\u003e\u003c/a\u003e Update doc mentioning Process.wait() internal details\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/bb30943b0336a16f28437ec549c15a8ad2830cca\"\u003e\u003ccode\u003ebb30943\u003c/code\u003e\u003c/a\u003e Refact can_use_pidfd_open() and can_use_kqueue()\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/a571717d6520d436273c8cb34ca871db4bfa508a\"\u003e\u003ccode\u003ea571717\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2708\"\u003e#2708\u003c/a\u003e, macos / cmdline / environ; raise AD instead of OSError(0) (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/8b98c3effc20dcc4ed08c8f3d33e11ec0f5445b1\"\u003e\u003ccode\u003e8b98c3e\u003c/code\u003e\u003c/a\u003e Pre-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/700b7e6a4171ae7c775679217205f1d97568ae00\"\u003e\u003ccode\u003e700b7e6\u003c/code\u003e\u003c/a\u003e [macOS] fix potential leaks in error paths (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/7cc7923a1479fb1d32bb25d3e78b465e2695fbf7\"\u003e\u003ccode\u003e7cc7923\u003c/code\u003e\u003c/a\u003e Windows / cmdline(): be more defensive in free()ing in case of error\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/giampaolo/psutil/compare/release-5.9.8...release-7.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.4.1 to 9.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13965\"\u003e#13965\u003c/a\u003e: Fixed quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/4492\"\u003e#4492\u003c/a\u003e: The API Reference now contains cross-reference-able documentation of \u003ccode\u003epytest's command-line flags \u0026lt;command-line-flags\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e9.0.1\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.1 (2025-11-12)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13895\"\u003e#13895\u003c/a\u003e: Restore support for skipping tests via \u003ccode\u003eraise unittest.SkipTest\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress plugin added in pytest 9.0 is now automatically disabled when iTerm2 is detected, it generated desktop notifications instead of the desired functionality.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the verbosity settings in the API reference from number to string.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13910\"\u003e#13910\u003c/a\u003e: Fixed \u003c!-- raw HTML omitted --\u003eUserWarning: Do not expect file_or_dir\u003c!-- raw HTML omitted --\u003e on some earlier Python 3.12 and 3.13 point versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePackaging updates and notes for downstreams\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13891\"\u003e#13891\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13942\"\u003e#13942\u003c/a\u003e: The CI/CD part of the release automation is now capable of\ncreating GitHub Releases without having a Git checkout on\ndisk -- by \u003ccode\u003ebluetech\u003c/code\u003e and \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/3d10b5148e03eb82b3ee29181dbdc73cf82699e2\"\u003e\u003ccode\u003e3d10b51\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/188750b725add8c3400eee6fbb6b80559c296d69\"\u003e\u003ccode\u003e188750b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14030\"\u003e#14030\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/1e4b01d1f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7d7bef90cb9a6db8ac1d3dd5b9ae0eb9abd6c58\"\u003e\u003ccode\u003eb7d7bef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14014\"\u003e#14014\u003c/a\u003e from bluetech/compat-note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bd08e85ac76614ff5ca9ae338aee8d8b06c8fae0\"\u003e\u003ccode\u003ebd08e85\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14013\"\u003e#14013\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/922b60377...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bc783862991241c442c9f9c068e51737ec15ea10\"\u003e\u003ccode\u003ebc78386\u003c/code\u003e\u003c/a\u003e Add CLI options reference documentation (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13930\"\u003e#13930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/5a4e398ce89bc23d2cf3fd98c042fdffb6fa8afa\"\u003e\u003ccode\u003e5a4e398\u003c/code\u003e\u003c/a\u003e Fix docs typo (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14005\"\u003e#14005\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14008\"\u003e#14008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/d7ae6df394398168bf9d926f803c26849c8f07ee\"\u003e\u003ccode\u003ed7ae6df\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14006\"\u003e#14006\u003c/a\u003e from pytest-dev/maintenance/update-plugin-list-tmpl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/556f6a22e12d13d1ffeceaf64424eb95d5e0fb87\"\u003e\u003ccode\u003e556f6a2\u003c/code\u003e\u003c/a\u003e pre-commit: fix rst-lint after new release (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13999\"\u003e#13999\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14001\"\u003e#14001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c60fbe63a26f64a42738e3f3527a8f79024fdf50\"\u003e\u003ccode\u003ec60fbe6\u003c/code\u003e\u003c/a\u003e Fix quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10 ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/73d9b011183d9a1c4a7007c1119d97a6e627788e\"\u003e\u003ccode\u003e73d9b01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13995\"\u003e#13995\u003c/a\u003e from nicoddemus/patchback/backports/9.0.x/1b5200c0f...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.4.1...9.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `types-requests` from 2.32.4.20250913 to 2.32.4.20260107\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.20250822 to 80.10.0.20260124\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 `debugpy` from 1.8.16 to 1.8.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/microsoft/debugpy/releases\"\u003edebugpy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003edebugpy v1.8.20\u003c/h2\u003e\n\u003cp\u003eFixes for:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eannotate in 3.14 causing exceptions: \u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1971\"\u003emicrosoft/debugpy#1971\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eEnhancements:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse remote_exec if available: \u003ca href=\"https://github.com/microsoft/debugpy/commit/c7e86a1954381ceadb2ea398fc60079deef91358\"\u003ehttps://github.com/microsoft/debugpy/commit/c7e86a1954381ceadb2ea398fc60079deef91358\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport more architectures: \u003ca href=\"https://github.com/microsoft/debugpy/commit/1bbecdf366016c58e62a076b46d4f3c00aea097f\"\u003ehttps://github.com/microsoft/debugpy/commit/1bbecdf366016c58e62a076b46d4f3c00aea097f\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInfrastructure work:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport devcontainers for development: \u003ca href=\"https://github.com/microsoft/debugpy/commit/7dbc2292b1a23e5ae80db67a1b25f002bd104776\"\u003ehttps://github.com/microsoft/debugpy/commit/7dbc2292b1a23e5ae80db67a1b25f002bd104776\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/rameshvarun\"\u003e\u003ccode\u003e@​rameshvarun\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/Xeonacid\"\u003e\u003ccode\u003e@​Xeonacid\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/pdepetro\"\u003e\u003ccode\u003e@​pdepetro\u003c/code\u003e\u003c/a\u003e for the commits\u003c/p\u003e\n\u003ch2\u003edebugpy v1.8.19\u003c/h2\u003e\n\u003cp\u003eMore fixes for \u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1980\"\u003emicrosoft/debugpy#1980\u003c/a\u003e. Spaces in python files are handled now too.\u003c/p\u003e\n\u003ch2\u003edebugpy v1.8.18\u003c/h2\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1980\"\u003eSpaces in python interpreter cause debug launch failure\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003edebugpy v1.8.17\u003c/h2\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/6cbdf8767e4c88dfaedf3db7b09ce2781496fc51\"\u003eDebug attach for 3.14\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/microsoft/debugpy/commit/7ac3d1f2c65ccf6b2e62a762863093f0242179f0\"\u003e\u003ccode\u003e7ac3d1f\u003c/code\u003e\u003c/a\u003e Try 6 on this file (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1995\"\u003e#1995\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/e1646137a8346292a528b2899c7c8a8fe8d60224\"\u003e\u003ccode\u003ee164613\u003c/code\u003e\u003c/a\u003e O365 new advice (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1994\"\u003e#1994\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/4cbf8b1ce99a856b032470c19c3261195e137ca2\"\u003e\u003ccode\u003e4cbf8b1\u003c/code\u003e\u003c/a\u003e Try another suppression (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1993\"\u003e#1993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/ea9fcaeb59482ad97c51cbe584247f30a0c7ae2d\"\u003e\u003ccode\u003eea9fcae\u003c/code\u003e\u003c/a\u003e Try a different way to suppress binskim problems (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1992\"\u003e#1992\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/ea2746aafcd830a96a2144c3f636ba587f90a15d\"\u003e\u003ccode\u003eea2746a\u003c/code\u003e\u003c/a\u003e Add LTCG flags to compile_windows.bat for BinSkim BA6006 compliance (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1991\"\u003e#1991\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/7dbc2292b1a23e5ae80db67a1b25f002bd104776\"\u003e\u003ccode\u003e7dbc229\u003c/code\u003e\u003c/a\u003e Added devcontainer specification (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1989\"\u003e#1989\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/bb450fc27202cdf0676343dc0150be962b627233\"\u003e\u003ccode\u003ebb450fc\u003c/code\u003e\u003c/a\u003e Fix: Treat \u003cstrong\u003eannotate\u003c/strong\u003e functions as library code in Python 3.14+ (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1988\"\u003e#1988\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/1bbecdf366016c58e62a076b46d4f3c00aea097f\"\u003e\u003ccode\u003e1bbecdf\u003c/code\u003e\u003c/a\u003e Better experience for unsupported arch (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1984\"\u003e#1984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/c7e86a1954381ceadb2ea398fc60079deef91358\"\u003e\u003ccode\u003ec7e86a1\u003c/code\u003e\u003c/a\u003e Use sys.remote_exec() to attach to pid, if available (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1986\"\u003e#1986\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/698499e9ec6cd6edcf0311bb3a0b0d57ad1198ad\"\u003e\u003ccode\u003e698499e\u003c/code\u003e\u003c/a\u003e Add support for space in the python file (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1982\"\u003e#1982\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/microsoft/debugpy/compare/v1.8.16...v1.8.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydevd-pycharm` from 251.23536.40 to 261.19799.40\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/bac7999789b191b75b12ab124e075cef8fcbebf6\"\u003e\u003ccode\u003ebac7999\u003c/code\u003e\u003c/a\u003e RELEASE-715: PyCharm 2026.1 artworks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/5458fd3abf9c9eb0101181d7172eb260919ab0a9\"\u003e\u003ccode\u003e5458fd3\u003c/code\u003e\u003c/a\u003e [UI, Wayland] IJPL-232339 Disable Wayland notification\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/fd8f8efdf71423ae5802fec751367ac3ff29ea2f\"\u003e\u003ccode\u003efd8f8ef\u003c/code\u003e\u003c/a\u003e platform: base build number set to 261.19799.SNAPSHOT\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/174dcdf31dce028b4c175196195c3e30e75234bd\"\u003e\u003ccode\u003e174dcdf\u003c/code\u003e\u003c/a\u003e KTNB-1097: Fix refactorings for injected context\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/03387d24a94631f697ccbfbd6bdbc51622771df9\"\u003e\u003ccode\u003e03387d2\u003c/code\u003e\u003c/a\u003e IJPL-6079: Migrate plugin advertisement install and enable task to coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/2ecfa95a11d822d29e4c4bbd49e8831db82209e3\"\u003e\u003ccode\u003e2ecfa95\u003c/code\u003e\u003c/a\u003e IJPL-6079: Rename InstallAndEnableTask.java to kt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/2f50463836823519c1f37b128a408175cec5cd15\"\u003e\u003ccode\u003e2f50463\u003c/code\u003e\u003c/a\u003e IJPL-232192: warn about non-normalized paths in EEL process arguments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/cbebdb327f73bebcdc04cdb305c07016523f9d74\"\u003e\u003ccode\u003ecbebdb3\u003c/code\u003e\u003c/a\u003e IJPL-209592: TcpEelMachine state machine, remove TcpEelRegistry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/82341a6c6ceaed28e8e8fd9d2250dbec4fe013ba\"\u003e\u003ccode\u003e82341a6\u003c/code\u003e\u003c/a\u003e docs [eel]: remove \u0026quot;Environment Execution Layer\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/7afaa3d97d6f363f23b47a9b96f3d614e134913c\"\u003e\u003ccode\u003e7afaa3d\u003c/code\u003e\u003c/a\u003e PY-85194 use uv by default\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/intellij-community/compare/pycharm/251.23536.40...pycharm/261.19799.40\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi` from 0.120.1 to 0.128.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.128.0\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e➖ Drop support for \u003ccode\u003epydantic.v1\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14609\"\u003e#14609\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✅ Run performance tests only on Pydantic v2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14608\"\u003e#14608\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.127.1\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔊 Add a custom \u003ccode\u003eFastAPIDeprecationWarning\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14605\"\u003e#14605\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Add documentary to website. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14600\"\u003e#14600\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🌐 Update translations for de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14602\"\u003e#14602\u003c/a\u003e by \u003ca href=\"https://github.com/nilslindemann\"\u003e\u003ccode\u003e@​nilslindemann\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14581\"\u003e#14581\u003c/a\u003e by \u003ca href=\"https://github.com/nilslindemann\"\u003e\u003ccode\u003e@​nilslindemann\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 Update pre-commit to use local Ruff instead of hook. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14604\"\u003e#14604\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✅ Add missing tests for code examples. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14569\"\u003e#14569\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Remove \u003ccode\u003elint\u003c/code\u003e job from \u003ccode\u003etest\u003c/code\u003e CI workflow. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14593\"\u003e#14593\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Update secrets check. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14592\"\u003e#14592\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Run CodSpeed tests in parallel to other tests to speed up CI. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14586\"\u003e#14586\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔨 Update scripts and pre-commit to autofix files. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14585\"\u003e#14585\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.127.0\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔊 Add deprecation warnings when using \u003ccode\u003epydantic.v1\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14583\"\u003e#14583\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 Add LLM prompt file for Korean, generated from the existing translations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14546\"\u003e#14546\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Add LLM prompt file for Japanese, generated from the existing translations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14545\"\u003e#14545\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Upgrade OpenAI model for translations to gpt-5.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14579\"\u003e#14579\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.126.0\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e➖ Drop support for Pydantic v1, keeping short temporary support for Pydantic v2's \u003ccode\u003epydantic.v1\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14575\"\u003e#14575\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\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/fastapi/fastapi/commit/8322a4445a3b25acd9b26b61192571b2d92f9bcd\"\u003e\u003ccode\u003e8322a44\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.128.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4b2cfcfd34d0b2e158a05b377426e0c8376b94de\"\u003e\u003ccode\u003e4b2cfcf\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/e3006305518a56ea35f62a31748ad26fe4356fcc\"\u003e\u003ccode\u003ee300630\u003c/code\u003e\u003c/a\u003e ➖ Drop support for \u003ccode\u003epydantic.v1\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14609\"\u003e#14609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/1b3bea8b6be2220cc1544653ea785d2134fcb35b\"\u003e\u003ccode\u003e1b3bea8\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/34e884156f38dff4094a7764ff895c4d4b872060\"\u003e\u003ccode\u003e34e8841\u003c/code\u003e\u003c/a\u003e ✅ Run performance tests only on Pydantic v2 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14608\"\u003e#14608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cd90c78391f86f3fd06d5b327bffad9666b05b44\"\u003e\u003ccode\u003ecd90c78\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.127.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/93f4dfd88b7d62bda89eb521ebd9322e357e6fff\"\u003e\u003ccode\u003e93f4dfd\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/535b5daa317a9d1d1f9a1058e57650a7beefa861\"\u003e\u003ccode\u003e535b5da\u003c/code\u003e\u003c/a\u003e 🔊 Add a custom \u003ccode\u003eFastAPIDeprecationWarning\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14605\"\u003e#14605\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/6b53786f626db95a42fd0f66afd360bab161f4b1\"\u003e\u003ccode\u003e6b53786\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d98f4eb56eae3155034fe631d9639d95171fb9ab\"\u003e\u003ccode\u003ed98f4eb\u003c/code\u003e\u003c/a\u003e 🔧 Update pre-commit to use local Ruff instead of hook (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14604\"\u003e#14604\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.120.1...0.128.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `starlette` from 0.49.1 to 0.52.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/releases\"\u003estarlette's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.52.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOnly use \u003ccode\u003etyping_extensions\u003c/code\u003e in older Python versions by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3109\"\u003eKludex/starlette#3109\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.52.0...0.52.1\"\u003ehttps://github.com/Kludex/starlette/compare/0.52.0...0.52.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.52.0\u003c/h2\u003e\n\u003cp\u003eIn this release, \u003ccode\u003eState\u003c/code\u003e can be accessed using dictionary-style syntax for improved type safety (\u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3036\"\u003e#3036\u003c/a\u003e).\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003efrom collections.abc import AsyncIterator\nfrom contextlib import asynccontextmanager\nfrom typing import TypedDict\n\u003cp\u003eimport httpx\u003c/p\u003e\n\u003cp\u003efrom starlette.applications import Starlette\nfrom starlette.requests import Request\u003c/p\u003e\n\u003cp\u003eclass State(TypedDict):\nhttp_client: httpx.AsyncClient\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/asynccontextmanager\"\u003e\u003ccode\u003e@​asynccontextmanager\u003c/code\u003e\u003c/a\u003e\nasync def lifespan(app: Starlette) -\u0026gt; AsyncIterator[State]:\nasync with httpx.AsyncClient() as client:\nyield {\u0026quot;http_client\u0026quot;: client}\u003c/p\u003e\n\u003cp\u003easync def homepage(request: Request[State]):\nclient = request.state[\u0026quot;http_client\u0026quot;]\n# If you run the below line with mypy or pyright, it will reveal the correct type.\nreveal_type(client)  # Revealed type is 'httpx.AsyncClient'\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/Kludex/starlette/blob/HEAD/lifespan.md#accessing-state\"\u003eAccessing State\u003c/a\u003e for more details.\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.51.0...0.52.0\"\u003ehttps://github.com/Kludex/starlette/compare/0.51.0...0.52.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.51.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eallow_private_network\u003c/code\u003e in \u003ccode\u003eCORSMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3065\"\u003e#3065\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/blob/main/docs/release-notes.md\"\u003estarlette's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.52.1 (January 18, 2026)\u003c/h2\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eOnly use \u003ccode\u003etyping_extensions\u003c/code\u003e in older Python versions \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3109\"\u003e#3109\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.52.0 (January 18, 2026)\u003c/h2\u003e\n\u003cp\u003eIn this release, \u003ccode\u003eState\u003c/code\u003e can be accessed using dictionary-style syntax for improved type\nsafety (\u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3036\"\u003e#3036\u003c/a\u003e).\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003efrom collections.abc import AsyncIterator\nfrom contextlib import asynccontextmanager\nfrom typing import TypedDict\n\u003cp\u003eimport httpx\u003c/p\u003e\n\u003cp\u003efrom starlette.applications import Starlette\nfrom starlette.requests import Request\u003c/p\u003e\n\u003cp\u003eclass State(TypedDict):\nhttp_client: httpx.AsyncClient\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/asynccontextmanager\"\u003e\u003ccode\u003e@​asynccontextmanager\u003c/code\u003e\u003c/a\u003e\nasync def lifespan(app: Starlette) -\u0026gt; AsyncIterator[State]:\nasync with httpx.AsyncClient() as client:\nyield {\u0026quot;http_client\u0026quot;: client}\u003c/p\u003e\n\u003cp\u003easync def homepage(request: Request[State]):\nclient = request.state[\u0026quot;http_client\u0026quot;]\n# If you run the below line with mypy or pyright, it will reveal the correct type.\nreveal_type(client)  # Revealed type is 'httpx.AsyncClient'\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/Kludex/starlette/blob/main/docs/lifespan.md#accessing-state\"\u003eAccessing State\u003c/a\u003e for more details.\u003c/p\u003e\n\u003ch2\u003e0.51.0 (January 10, 2026)\u003c/h2\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eallow_private_network\u003c/code\u003e in \u003ccode\u003eCORSMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3065\"\u003e#3065\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanged\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eIncrease warning stacklevel on \u003ccode\u003eDeprecationWarning\u003c/code\u003e for wsgi module \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3082\"\u003e#3082\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/Kludex/starlette/commit/e5b8a5d200504a2608bed11fe6f66b1d20b9ae2c\"\u003e\u003ccode\u003ee5b8a5d\u003c/code\u003e\u003c/a\u003e Version 0.52.1 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3110\"\u003e#3110\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/d02eadecb5409e9553922081ac123757849335e7\"\u003e\u003ccode\u003ed02eade\u003c/code\u003e\u003c/a\u003e Only use \u003ccode\u003etyping_extensions\u003c/code\u003e in older Python versions (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3109\"\u003e#3109\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/f490b42f5fa0808ead53115a45d907c6d8e16a47\"\u003e\u003ccode\u003ef490b42\u003c/code\u003e\u003c/a\u003e Version 0.52.0 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3107\"\u003e#3107\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/d8c7cf9aca95b31c7a70473d03c26bc8ce33cd74\"\u003e\u003ccode\u003ed8c7cf9\u003c/code\u003e\u003c/a\u003e Turn \u003ccode\u003eState\u003c/code\u003e into a \u003ccode\u003eMapping\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3036\"\u003e#3036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/cfce146611f7cc2b14c524b26d7e1d6cf0ddcd9f\"\u003e\u003ccode\u003ecfce146\u003c/code\u003e\u003c/a\u003e chore: bump coverage (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3103\"\u003e#3103\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/9138e5597285c6120821a6ad862880d479f329f3\"\u003e\u003ccode\u003e9138e55\u003c/code\u003e\u003c/a\u003e fix: setup github pages for deployment (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3102\"\u003e#3102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/aff6df756b231c42ca088788db4bf4b193f7cc5b\"\u003e\u003ccode\u003eaff6df7\u003c/code\u003e\u003c/a\u003e docs: add environment for github docs (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3101\"\u003e#3101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/434bab94749b8522b08bbef3eff5fb742629d4fd\"\u003e\u003ccode\u003e434bab9\u003c/code\u003e\u003c/a\u003e docS: fix gh pages deploy (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3100\"\u003e#3100\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/03426be1d41fc3963cd2dab5f10992e137eaf5f4\"\u003e\u003ccode\u003e03426be\u003c/code\u003e\u003c/a\u003e docs: replace mkdocs by zensical (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3098\"\u003e#3098\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/df2ee22bc072dc19962120a7559f8fc0de7a094e\"\u003e\u003ccode\u003edf2ee22\u003c/code\u003e\u003c/a\u003e Version 0.51.0 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3097\"\u003e#3097\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/starlette/compare/0.49.1...0.52.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `strawberry-graphql[fastapi]` from 0.284.1 to 0.291.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/strawberry-graphql/strawberry/releases\"\u003estrawberry-graphql[fastapi]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e🍓 0.291.0\u003c/h2\u003e\n\u003cp\u003eAdds a \u003ccode\u003egraphql_type\u003c/code\u003e parameter to \u003ccode\u003estrawberry.argument\u003c/code\u003e that allows you\nto explicitly override the GraphQL type of an argument, useful for static typing\nwhen the Python type differs from the desired GraphQL type.\u003c/p\u003e\n\u003cp\u003eFor example:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eBigInt = strawberry.scalar(\n    int, name=\u0026quot;BigInt\u0026quot;, serialize=lambda v: str(v), parse_value=lambda v: int(v)\n)\n\u003cp\u003e\u003ca href=\"https://github.com/strawberry\"\u003e\u003ccode\u003e@​strawberry\u003c/code\u003e\u003c/a\u003e.type\nclass Query:\n\u003ca href=\"https://github.com/strawberry\"\u003e\u003ccode\u003e@​strawberry\u003c/code\u003e\u003c/a\u003e.field()\ndef username(\nself, user_id: Annotated[int, strawberry.argument(graphql_type=BigInt)]\n) -\u0026gt; str:\nreturn \u0026quot;foobar\u0026quot;\u003c/p\u003e\n\u003cp\u003eschema = strawberry.Schema(Query)\u003c/p\u003e\n\u003cp\u003estr(\nschema\n) == \u0026quot;\u0026quot;\u0026quot;\nscalar BigInt\u003c/p\u003e\n\u003cp\u003etype Query {\nusername(userId: BigInt!): String!\n}\n\u0026quot;\u0026quot;\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eReleases contributed by \u003ca href=\"https://github.com/thearchitector\"\u003e\u003ccode\u003e@​thearchitector\u003c/code\u003e\u003c/a\u003e via \u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4067\"\u003e#4067\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e🍓 0.290.0\u003c/h2\u003e\n\u003cp\u003eThis release improves \u003ccode\u003eschema-codegen\u003c/code\u003e for input types in two ways:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\n\u003cp\u003eNullable input fields now use \u003ccode\u003estrawberry.Maybe[T | None]\u003c/code\u003e, allowing them to\nbe omitted when constructing the input type.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eGraphQL default values on input fields are now generated as Python defaults.\nSupported value types: integers, floats, strings, booleans, null, enums, and\nlists. When a field also has a description (or other metadata), the default is\npassed via \u003ccode\u003estrawberry.field(description=..., default=...)\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eBefore:\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/strawberry-graphql/strawberry/blob/main/CHANGELOG.md\"\u003estrawberry-graphql[fastapi]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.291.0 - 2026-02-01\u003c/h2\u003e\n\u003cp\u003eAdds a \u003ccode\u003egraphql_type\u003c/code\u003e parameter to \u003ccode\u003estrawberry.argument\u003c/code\u003e that allows you\nto explicitly override the GraphQL type of an argument, useful for static typing\nwhen the Python type differs from the desired GraphQL type.\u003c/p\u003e\n\u003cp\u003eFor example:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eBigInt = strawberry.scalar(\n    int, name=\u0026quot;BigInt\u0026quot;, serialize=lambda v: str(v), parse_value=lambda v: int(v)\n)\n\u003cp\u003e\u003ca href=\"https://github.com/strawberry\"\u003e\u003ccode\u003e@​strawberry\u003c/code\u003e\u003c/a\u003e.type\nclass Query:\n\u003ca href=\"https://github.com/strawberry\"\u003e\u003ccode\u003e@​strawberry\u003c/code\u003e\u003c/a\u003e.field()\ndef username(\nself, user_id: Annotated[int, strawberry.argument(graphql_type=BigInt)]\n) -\u0026gt; str:\nreturn \u0026quot;foobar\u0026quot;\u003c/p\u003e\n\u003cp\u003eschema = strawberry.Schema(Query)\u003c/p\u003e\n\u003cp\u003estr(\nschema\n) == \u0026quot;\u0026quot;\u0026quot;\nscalar BigInt\u003c/p\u003e\n\u003cp\u003etype Query {\nusername(userId: BigInt!): String!\n}\n\u0026quot;\u0026quot;\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/thearchitector\"\u003eElias Gabriel\u003c/a\u003e via [PR \u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4067\"\u003e#4067\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/pull/4067/\"\u003estrawberry-graphql/strawberry#4067\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003e0.290.0 - 2026-01-31\u003c/h2\u003e\n\u003cp\u003eThis release improves \u003ccode\u003eschema-codegen\u003c/code\u003e for input types in two ways:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\n\u003cp\u003eNullable input fields now use \u003ccode\u003estrawberry.Maybe[T | None]\u003c/code\u003e, allowing them to\nbe omitted when constructing the input type.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eGraphQL default values on input fields are now generated as Python defaults.\nSupported value types: integers, floats, strings, booleans, null, enums, and\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/4b1a55c631feeff1aa4b579698fed8d2d721c05d\"\u003e\u003ccode\u003e4b1a55c\u003c/code\u003e\u003c/a\u003e Release 🍓 0.291.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/5f668c0f19e2f0fdc5e1b5b029d369c977e577b5\"\u003e\u003ccode\u003e5f668c0\u003c/code\u003e\u003c/a\u003e feat: support graphql type override on resolver arguments (\u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4067\"\u003e#4067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/11484e4edd341681eba05fa825010e4faf0f0e5f\"\u003e\u003ccode\u003e11484e4\u003c/code\u003e\u003c/a\u003e Release 🍓 0.290.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/c2f733a444046bb144c2d4b49f42171abed5b24b\"\u003e\u003ccode\u003ec2f733a\u003c/code\u003e\u003c/a\u003e Add support for nullable inputs and default values in schema codegen (\u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4178\"\u003e#4178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/358a308d463fb997ac5b8ec5a59fe5434c1ba031\"\u003e\u003ccode\u003e358a308\u003c/code\u003e\u003c/a\u003e Release 🍓 0.289.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/e4f341726b9566a6a1cda06075e18477ed5ef066\"\u003e\u003ccode\u003ee4f3417\u003c/code\u003e\u003c/a\u003e Export UploadDefinition for proper type checking with file uploads (\u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4175\"\u003e#4175\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/565166786991eec23160a51a4e0856146b2378db\"\u003e\u003ccode\u003e5651667\u003c/code\u003e\u003c/a\u003e docs: clarify authorization guide (\u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4174\"\u003e#4174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/3ea6135fded40d4312e61ae9805c31d57c4bc24b\"\u003e\u003ccode\u003e3ea6135\u003c/code\u003e\u003c/a\u003e chore(deps): bump python-multipart from 0.0.21 to 0.0.22 (\u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4173\"\u003e#4173\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/4acf049a0b3fbb4d85f1d8504e3063c354557155\"\u003e\u003ccode\u003e4acf049\u003c/code\u003e\u003c/a\u003e Release 🍓 0.289.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/861f07c728ff73865b0f1f8dddd30d71ae6f0d77\"\u003e\u003ccode\u003e861f07c\u003c/code\u003e\u003c/a\u003e fix: consider field annotations for generic detection (\u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4162\"\u003e#4162\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/strawberry-graphql/strawberry/compare/0.284.1...0.291.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn[standard]` from 0.38.0 to 0.40.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/releases\"\u003euvicorn[standard]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.40.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2772\"\u003eKludex/uvicorn#2772\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.39.0...0.40.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.39.0...0.40.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.39.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eexplicitly start ASGI run with empty context by \u003ca href=\"https://github.com/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2742\"\u003eKludex/uvicorn#2742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(websockets): Send close frame on ASGI return by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2769\"\u003eKludex/uvicorn#2769\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/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2742\"\u003eKludex/uvicorn#2742\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.38.0...0.39.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.38.0...0.39.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/blob/main/docs/release-notes.md\"\u003euvicorn[standard]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.40.0 (December 21, 2025)\u003c/h2\u003e\n\u003ch3\u003eRemove\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2772\"\u003e#2772\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.39.0 (December 21, 2025)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSend close frame on ASGI return for WebSockets (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2769\"\u003e#2769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExplicitly start ASGI run with empty context (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2742\"\u003e#2742\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/9ff60042a53cd1bbfd5580ab0a91ea2d1d8f2f8c\"\u003e\u003ccode\u003e9ff6004\u003c/code\u003e\u003c/a\u003e Version 0.40.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2773\"\u003e#2773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/19df042c54c1562f058daf021d6f7bd1d5ed621c\"\u003e\u003ccode\u003e19df042\u003c/code\u003e\u003c/a\u003e Drop Python 3.9 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2772\"\u003e#2772\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/865ce7c0b4329a384273a6628eceb8d597989521\"\u003e\u003ccode\u003e865ce7c\u003c/code\u003e\u003c/a\u003e Run strict mypy on test suite (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2771\"\u003e#2771\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/4f40b8495772eb3a1ab3613ffd7be5156f8e1389\"\u003e\u003ccode\u003e4f40b84\u003c/code\u003e\u003c/a\u003e Version 0.39.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2770\"\u003e#2770\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/5692dfc416f9e65aee5028e55d119313d8d3ab0f\"\u003e\u003ccode\u003e5692dfc\u003c/code\u003e\u003c/a\u003e fix(websockets): Send close frame on ASGI return (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2769\"\u003e#2769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/4194764a26824e5d8ddd1fa673df78dff82966e0\"\u003e\u003ccode\u003e4194764\u003c/code\u003e\u003c/a\u003e chore(deps): bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2763\"\u003e#2763\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/d94bf28743de545d2d4b150f022203a5178cb705\"\u003e\u003ccode\u003ed94bf28\u003c/code\u003e\u003c/a\u003e explicitly start ASGI run with empty context (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2742\"\u003e#2742\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/8ae0bcbecb0a655789abf0c2dd4200848fc68a30\"\u003e\u003ccode\u003e8ae0bcb\u003c/code\u003e\u003c/a\u003e chore(deps): bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2748\"\u003e#2748\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/4744ff9a1a4888c76ea160328cc9dcc2680c2c71\"\u003e\u003ccode\u003e4744ff9\u003c/code\u003e\u003c/a\u003e Add groups configuration for GitHub Actions (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2747\"\u003e#2747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/0391372376c264604a0475b0864bcbf3a8705352\"\u003e\u003ccode\u003e0391372\u003c/code\u003e\u003c/a\u003e chore(deps): bump astral-sh/setup-uv from 6.8.0 to 7.1.2 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2746\"\u003e#2746\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.38.0...0.40.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `beautifulsoup4` from 4.11.1 to 4.14.3\n\nUpdates `python-gnupg` from 0.5.5 to 0.5.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/vsajip/python-gnupg/releases\"\u003epython-gnupg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eEnhancement and bug-fix release 0.5.6\u003c/h2\u003e\n\u003cp\u003eThis is an enhancement and bug-fix release, and all users are encouraged to upgrade.\u003c/p\u003e\n\u003cp\u003eBrief summary:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/vsajip/python-gnupg/issues/261\"\u003e#261\u003c/a\u003e: Ensure capability, fingerprint and keygrip are added to subkey_info.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSet username in the result when Verify uses a signing key that has expired or been revoked. Thanks to Steven Galgano for the patch.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThis release has been signed with my code signing key:\u003c/p\u003e\n\u003cp\u003eVi...\n\n_Description has been truncated_","html_url":"https://github.com/alonsodomin/pants/pull/123","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/alonsodomin%2Fpants/issues/123","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/123/packages"},{"uuid":"3793540180","node_id":"PR_kwDOAG4Ac868J62A","number":22985,"state":"closed","title":"Bump the python-version-updates group across 1 directory with 16 updates","user":"dependabot[bot]","labels":["dependencies","category:internal","release-notes:not-required"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-02-01T04:49:13.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-08T16:22:20.000Z","updated_at":"2026-02-01T04:49:14.000Z","time_to_close":2032013,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-version-updates","update_count":16,"packages":[{"name":"libcst","old_version":"1.8.5","new_version":"1.8.6","repository_url":"https://github.com/Instagram/LibCST"},{"name":"psutil","old_version":"5.9.8","new_version":"7.2.1","repository_url":"https://github.com/giampaolo/psutil"},{"name":"pytest","old_version":"8.4.1","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"types-requests","old_version":"2.32.4.20250913","new_version":"2.32.4.20260107","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"types-setuptools","old_version":"80.9.0.20250822","new_version":"80.9.0.20251223","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"debugpy","old_version":"1.8.16","new_version":"1.8.19","repository_url":"https://github.com/microsoft/debugpy"},{"name":"pydevd-pycharm","old_version":"251.23536.40","new_version":"253.29346.142","repository_url":"https://github.com/JetBrains/intellij-community"},{"name":"fastapi","old_version":"0.120.1","new_version":"0.128.0","repository_url":"https://github.com/fastapi/fastapi"},{"name":"starlette","old_version":"0.49.1","new_version":"0.50.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"strawberry-graphql","old_version":"0.284.1","new_version":"0.288.2"},{"name":"uvicorn","old_version":"0.38.0","new_version":"0.40.0"},{"name":"beautifulsoup4","old_version":"4.11.1","new_version":"4.14.3"},{"name":"python-gnupg","old_version":"0.5.5","new_version":"0.5.6","repository_url":"https://github.com/vsajip/python-gnupg"},{"name":"mypy","old_version":"1.18.2","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"pytest-cov","old_version":"6.2.1","new_version":"7.0.0","repository_url":"https://github.com/pytest-dev/pytest-cov"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [libcst](https://github.com/Instagram/LibCST), [psutil](https://github.com/giampaolo/psutil), [pytest](https://github.com/pytest-dev/pytest), [types-requests](https://github.com/typeshed-internal/stub_uploader), [types-setuptools](https://github.com/typeshed-internal/stub_uploader), [debugpy](https://github.com/microsoft/debugpy), [pydevd-pycharm](https://github.com/JetBrains/intellij-community), [fastapi](https://github.com/fastapi/fastapi), [starlette](https://github.com/Kludex/starlette), [strawberry-graphql[fastapi]](https://github.com/strawberry-graphql/strawberry), [uvicorn[standard]](https://github.com/Kludex/uvicorn), [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/), [python-gnupg](https://github.com/vsajip/python-gnupg), [mypy](https://github.com/python/mypy), [pytest-cov](https://github.com/pytest-dev/pytest-cov) and [flake8](https://github.com/pycqa/flake8) to permit the latest version.\nUpdates `libcst` from 1.8.5 to 1.8.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/releases\"\u003elibcst's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.8.6\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate pyproject.toml for 3.14t by \u003ca href=\"https://github.com/itamaro\"\u003e\u003ccode\u003e@​itamaro\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1417\"\u003eInstagram/LibCST#1417\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate PyO3 to 0.26 by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1413\"\u003eInstagram/LibCST#1413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake CodemodCommand's supported_transforms order deterministic by \u003ca href=\"https://github.com/frvnkliu\"\u003e\u003ccode\u003e@​frvnkliu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1424\"\u003eInstagram/LibCST#1424\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/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1413\"\u003eInstagram/LibCST#1413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frvnkliu\"\u003e\u003ccode\u003e@​frvnkliu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1424\"\u003eInstagram/LibCST#1424\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.5...v1.8.6\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.5...v1.8.6\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/blob/main/CHANGELOG.md\"\u003elibcst's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.8.6 - 2025-11-03\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate pyproject.toml for 3.14t by \u003ca href=\"https://github.com/itamaro\"\u003e\u003ccode\u003e@​itamaro\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1417\"\u003eInstagram/LibCST#1417\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate PyO3 to 0.26 by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1413\"\u003eInstagram/LibCST#1413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake CodemodCommand's supported_transforms order deterministic by \u003ca href=\"https://github.com/frvnkliu\"\u003e\u003ccode\u003e@​frvnkliu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1424\"\u003eInstagram/LibCST#1424\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/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1413\"\u003eInstagram/LibCST#1413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frvnkliu\"\u003e\u003ccode\u003e@​frvnkliu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1424\"\u003eInstagram/LibCST#1424\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.5...v1.8.6\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.5...v1.8.6\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/Instagram/LibCST/commit/9275a8bf7875d08659ce7b266860138bba633410\"\u003e\u003ccode\u003e9275a8b\u003c/code\u003e\u003c/a\u003e bump version to 1.8.6 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1425\"\u003e#1425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/b66c0e28229fd91ac145f1a56d7d884e6f8587b4\"\u003e\u003ccode\u003eb66c0e2\u003c/code\u003e\u003c/a\u003e [CodemodCommand] Make \u003ccode\u003etransform_module\u003c/code\u003e \u003ccode\u003esupported_transforms\u003c/code\u003e order determi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/c2169d240b5011ea820dc18d7a2452f182c2c5d3\"\u003e\u003ccode\u003ec2169d2\u003c/code\u003e\u003c/a\u003e Update PyO3 to 0.26 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1413\"\u003e#1413\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/73b17d8449034b520e7128c8a4bd100674d1e78c\"\u003e\u003ccode\u003e73b17d8\u003c/code\u003e\u003c/a\u003e Update pyproject.toml for 3.14t (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1417\"\u003e#1417\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/421f7d34004de18391014319ec6a818322637a8d\"\u003e\u003ccode\u003e421f7d3\u003c/code\u003e\u003c/a\u003e build(deps): bump pypa/cibuildwheel from 3.1.4 to 3.2.1 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1414\"\u003e#1414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/129b20f4769a2b26b41b262fb88f9aaf8754930b\"\u003e\u003ccode\u003e129b20f\u003c/code\u003e\u003c/a\u003e build(deps): bump github/codeql-action from 3 to 4 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1415\"\u003e#1415\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/6f5da5f99873e4c17e32ca221a3ddde3fb1ea354\"\u003e\u003ccode\u003e6f5da5f\u003c/code\u003e\u003c/a\u003e build(deps): bump astral-sh/setup-uv from 6 to 7 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1416\"\u003e#1416\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.5...v1.8.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psutil` from 5.9.8 to 7.2.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/giampaolo/psutil/blob/master/HISTORY.rst\"\u003epsutil's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e7.2.1\u003c/h1\u003e\n\u003cp\u003e2025-12-29\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2699_, [FreeBSD], [NetBSD]: \u003ccode\u003eheap_info()\u003c/code\u003e_ does not detect small allocations\n(\u0026lt;= 1K). In order to fix that, we now flush internal jemalloc cache before\nfetching the metrics.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e7.2.0\u003c/h1\u003e\n\u003cp\u003e2025-12-23\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e1275_: new \u003ccode\u003eheap_info()\u003c/code\u003e_ and \u003ccode\u003eheap_trim()\u003c/code\u003e_ functions, providing direct\naccess to the platform's native C heap allocator (glibc, mimalloc,\nlibmalloc). Useful to create tools to detect memory leaks.\u003c/li\u003e\n\u003cli\u003e2403_, [Linux]: publish wheels for Linux musl.\u003c/li\u003e\n\u003cli\u003e2680_: unit tests are no longer installed / part of the distribution. They\nnow live under \u003ccode\u003etests/\u003c/code\u003e instead of \u003ccode\u003epsutil/tests\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2684_, [FreeBSD], [critical]: compilation fails on FreeBSD 14 due to missing\ninclude.\u003c/li\u003e\n\u003cli\u003e2691_, [Windows]: fix memory leak in \u003ccode\u003enet_if_stats()\u003c/code\u003e_ due to missing\n\u003ccode\u003ePy_CLEAR\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eCompatibility notes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2680_: \u003ccode\u003eimport psutil.tests\u003c/code\u003e no longer works (but it was never documented to\nbegin with).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e7.1.3\u003c/h1\u003e\n\u003cp\u003e2025-11-02\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2667_: enforce \u003ccode\u003eclang-format\u003c/code\u003e on all C and header files. It is now the\nmandatory formatting style for all C sources.\u003c/li\u003e\n\u003cli\u003e2672_, [macOS], [BSD]: increase the chances to recognize zombie processes and\nraise the appropriate exception (\u003ccode\u003eZombieProcess\u003c/code\u003e_).\u003c/li\u003e\n\u003cli\u003e2676_, 2678_: replace unsafe \u003ccode\u003esprintf\u003c/code\u003e / \u003ccode\u003esnprintf\u003c/code\u003e / \u003ccode\u003esprintf_s\u003c/code\u003e calls with\n\u003ccode\u003estr_format()\u003c/code\u003e. Replace \u003ccode\u003estrlcat\u003c/code\u003e / \u003ccode\u003estrlcpy\u003c/code\u003e with safe \u003ccode\u003estr_copy\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/giampaolo/psutil/commit/6130c19da2d01383befa0dfca2371a792f8881af\"\u003e\u003ccode\u003e6130c19\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2699\"\u003e#2699\u003c/a\u003e / BSD: flush internal jemalloc cache before returning metrics.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/899ee4efa9c1943de14a5818853b6dc9c019eb4f\"\u003e\u003ccode\u003e899ee4e\u003c/code\u003e\u003c/a\u003e Mention psleak\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/704e218db7da14e98a54f2aa9f93372d5900e0b4\"\u003e\u003ccode\u003e704e218\u003c/code\u003e\u003c/a\u003e Pre-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/1a946cfe738045cecf031222cd5078da21946af4\"\u003e\u003ccode\u003e1a946cf\u003c/code\u003e\u003c/a\u003e Take psleak from PYPI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/5085421cabed317d5e2f7164e6072b0be05ba4f1\"\u003e\u003ccode\u003e5085421\u003c/code\u003e\u003c/a\u003e Use external psleak module for memleak tests (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2698\"\u003e#2698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/ac56e6ad0b7c08755a5542afdacb668ad164fd09\"\u003e\u003ccode\u003eac56e6a\u003c/code\u003e\u003c/a\u003e CI: don't cancel CI in progress on 1st failure\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/10fe3d5e9372a504167b0a4df440ab949c0410fe\"\u003e\u003ccode\u003e10fe3d5\u003c/code\u003e\u003c/a\u003e Merge branch 'master' of github.com:giampaolo/psutil\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/ba507bd26bbfe5d1bdc45d606c8979f9e6f632cb\"\u003e\u003ccode\u003eba507bd\u003c/code\u003e\u003c/a\u003e Fix various CI errors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/d5a1398f0860c04883ef881c4760f32d14ef4abf\"\u003e\u003ccode\u003ed5a1398\u003c/code\u003e\u003c/a\u003e Update cpu_count docs: clarify differences from os.cpu_count (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2696\"\u003e#2696\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/556158f55fc3b2f1271b48c66c46912323cf8bec\"\u003e\u003ccode\u003e556158f\u003c/code\u003e\u003c/a\u003e Refact memleak.py\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/giampaolo/psutil/compare/release-5.9.8...release-7.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.4.1 to 9.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13965\"\u003e#13965\u003c/a\u003e: Fixed quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/4492\"\u003e#4492\u003c/a\u003e: The API Reference now contains cross-reference-able documentation of \u003ccode\u003epytest's command-line flags \u0026lt;command-line-flags\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e9.0.1\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.1 (2025-11-12)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13895\"\u003e#13895\u003c/a\u003e: Restore support for skipping tests via \u003ccode\u003eraise unittest.SkipTest\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress plugin added in pytest 9.0 is now automatically disabled when iTerm2 is detected, it generated desktop notifications instead of the desired functionality.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the verbosity settings in the API reference from number to string.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13910\"\u003e#13910\u003c/a\u003e: Fixed \u003c!-- raw HTML omitted --\u003eUserWarning: Do not expect file_or_dir\u003c!-- raw HTML omitted --\u003e on some earlier Python 3.12 and 3.13 point versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePackaging updates and notes for downstreams\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13891\"\u003e#13891\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13942\"\u003e#13942\u003c/a\u003e: The CI/CD part of the release automation is now capable of\ncreating GitHub Releases without having a Git checkout on\ndisk -- by \u003ccode\u003ebluetech\u003c/code\u003e and \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/3d10b5148e03eb82b3ee29181dbdc73cf82699e2\"\u003e\u003ccode\u003e3d10b51\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/188750b725add8c3400eee6fbb6b80559c296d69\"\u003e\u003ccode\u003e188750b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14030\"\u003e#14030\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/1e4b01d1f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7d7bef90cb9a6db8ac1d3dd5b9ae0eb9abd6c58\"\u003e\u003ccode\u003eb7d7bef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14014\"\u003e#14014\u003c/a\u003e from bluetech/compat-note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bd08e85ac76614ff5ca9ae338aee8d8b06c8fae0\"\u003e\u003ccode\u003ebd08e85\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14013\"\u003e#14013\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/922b60377...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bc783862991241c442c9f9c068e51737ec15ea10\"\u003e\u003ccode\u003ebc78386\u003c/code\u003e\u003c/a\u003e Add CLI options reference documentation (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13930\"\u003e#13930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/5a4e398ce89bc23d2cf3fd98c042fdffb6fa8afa\"\u003e\u003ccode\u003e5a4e398\u003c/code\u003e\u003c/a\u003e Fix docs typo (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14005\"\u003e#14005\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14008\"\u003e#14008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/d7ae6df394398168bf9d926f803c26849c8f07ee\"\u003e\u003ccode\u003ed7ae6df\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14006\"\u003e#14006\u003c/a\u003e from pytest-dev/maintenance/update-plugin-list-tmpl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/556f6a22e12d13d1ffeceaf64424eb95d5e0fb87\"\u003e\u003ccode\u003e556f6a2\u003c/code\u003e\u003c/a\u003e pre-commit: fix rst-lint after new release (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13999\"\u003e#13999\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14001\"\u003e#14001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c60fbe63a26f64a42738e3f3527a8f79024fdf50\"\u003e\u003ccode\u003ec60fbe6\u003c/code\u003e\u003c/a\u003e Fix quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10 ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/73d9b011183d9a1c4a7007c1119d97a6e627788e\"\u003e\u003ccode\u003e73d9b01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13995\"\u003e#13995\u003c/a\u003e from nicoddemus/patchback/backports/9.0.x/1b5200c0f...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.4.1...9.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `types-requests` from 2.32.4.20250913 to 2.32.4.20260107\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.20250822 to 80.9.0.20251223\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 `debugpy` from 1.8.16 to 1.8.19\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/microsoft/debugpy/releases\"\u003edebugpy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003edebugpy v1.8.19\u003c/h2\u003e\n\u003cp\u003eMore fixes for \u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1980\"\u003emicrosoft/debugpy#1980\u003c/a\u003e. Spaces in python files are handled now too.\u003c/p\u003e\n\u003ch2\u003edebugpy v1.8.18\u003c/h2\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1980\"\u003eSpaces in python interpreter cause debug launch failure\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003edebugpy v1.8.17\u003c/h2\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/6cbdf8767e4c88dfaedf3db7b09ce2781496fc51\"\u003eDebug attach for 3.14\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/microsoft/debugpy/commit/698499e9ec6cd6edcf0311bb3a0b0d57ad1198ad\"\u003e\u003ccode\u003e698499e\u003c/code\u003e\u003c/a\u003e Add support for space in the python file (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1982\"\u003e#1982\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/e5017d736052d8d84484cdfe05750bd61cc7c50f\"\u003e\u003ccode\u003ee5017d7\u003c/code\u003e\u003c/a\u003e Fix arq quoting to work in runInTerminal (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1981\"\u003e#1981\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/1e3fd91306e507a1b88a1a01c586eef4a1d6791b\"\u003e\u003ccode\u003e1e3fd91\u003c/code\u003e\u003c/a\u003e fix the link to Python extension in \u003ccode\u003eCONTRIBUTING.md\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1934\"\u003e#1934\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/378339a3a84ecd49761bba31a1685862e207d881\"\u003e\u003ccode\u003e378339a\u003c/code\u003e\u003c/a\u003e Update team rotation list in round-robin workflow (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1978\"\u003e#1978\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/93d93f2d6c2c640fd72113d2bb4a14557584b382\"\u003e\u003ccode\u003e93d93f2\u003c/code\u003e\u003c/a\u003e Update CODEOWNERS to remove a reviewer (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1979\"\u003e#1979\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/8f13145a2358ad0f28ef6316fcfa318822789793\"\u003e\u003ccode\u003e8f13145\u003c/code\u003e\u003c/a\u003e Add pyrx-admins as code owners (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1976\"\u003e#1976\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/275caca690ed67c0e94959fe0963e6ef6b14d6b5\"\u003e\u003ccode\u003e275caca\u003c/code\u003e\u003c/a\u003e Add gcc flags (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1947\"\u003e#1947\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/82e409e88311aced08885fc9ec19f8e077e5b00e\"\u003e\u003ccode\u003e82e409e\u003c/code\u003e\u003c/a\u003e include py.typed in the distributed package (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1960\"\u003e#1960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/6cbdf8767e4c88dfaedf3db7b09ce2781496fc51\"\u003e\u003ccode\u003e6cbdf87\u003c/code\u003e\u003c/a\u003e update testing for python 3.14 (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1955\"\u003e#1955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/2eb3afede0dd5b3c6229a2b8849efbfa18b3e078\"\u003e\u003ccode\u003e2eb3afe\u003c/code\u003e\u003c/a\u003e Check if \u003ccode\u003eos.__file__\u003c/code\u003e is available before using it (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1944\"\u003e#1944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/microsoft/debugpy/compare/v1.8.16...v1.8.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydevd-pycharm` from 251.23536.40 to 253.29346.142\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/813b6b8735276d4a4d3ff6ecd2eb3f8fe9db76e3\"\u003e\u003ccode\u003e813b6b8\u003c/code\u003e\u003c/a\u003e [python] RELEASE-647: PyCharm 2025.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/1f54021b7adaef09f33721b4748abaa0515d0f5d\"\u003e\u003ccode\u003e1f54021\u003c/code\u003e\u003c/a\u003e [vcs]: Switch to EDT to show confirmation dialog in FileDocumentManagerListen...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/e3846c490b7e9b073d8a3a1dfca440359486b23a\"\u003e\u003ccode\u003ee3846c4\u003c/code\u003e\u003c/a\u003e [ACP] LLM-21248 Reuse private MCP server across several parallel sessions.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/5852d20e94d0b691a2d97fffe0989cbf1982f9ca\"\u003e\u003ccode\u003e5852d20\u003c/code\u003e\u003c/a\u003e [MCP Server] IJPL-221739 Update MCP SDK to 0.8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/1bbf5d67090f041fd632ee8b7908bb2328395701\"\u003e\u003ccode\u003e1bbf5d6\u003c/code\u003e\u003c/a\u003e [MCP Server] IJPL-221739 Update MCP SDK to 0.8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/cdb962ec6d8b4ad937c12806244401a3b6cc1bb7\"\u003e\u003ccode\u003ecdb962e\u003c/code\u003e\u003c/a\u003e PY-86367 Avoid showing errors dialog with no messages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/f64f3037bf5755ad33b2e13b97b203fbfdb40a4b\"\u003e\u003ccode\u003ef64f303\u003c/code\u003e\u003c/a\u003e IJPL-223262 Gradient for tool window stripes is missing when dragging tool wi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/4c97dbfbf92e9e529c572ad0ef40f8cba53504d3\"\u003e\u003ccode\u003e4c97dbf\u003c/code\u003e\u003c/a\u003e CPP-47813 CPP-47828: fix missing environment in compiler info collection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/85f150f0054d50e3d1be1b55fa35289a558b8c8d\"\u003e\u003ccode\u003e85f150f\u003c/code\u003e\u003c/a\u003e [sql] DBE-23582 Disable Database plugin in PyCharm without active subscription\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/4662be8f84d14d9529dbc2f8fa317f0c9302dd09\"\u003e\u003ccode\u003e4662be8\u003c/code\u003e\u003c/a\u003e [terminal] IJPL-219664 Apply hacky fix for missing tool window actions\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/intellij-community/compare/pycharm/251.23536.40...pycharm/253.29346.142\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi` from 0.120.1 to 0.128.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.128.0\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e➖ Drop support for \u003ccode\u003epydantic.v1\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14609\"\u003e#14609\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✅ Run performance tests only on Pydantic v2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14608\"\u003e#14608\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.127.1\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔊 Add a custom \u003ccode\u003eFastAPIDeprecationWarning\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14605\"\u003e#14605\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Add documentary to website. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14600\"\u003e#14600\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🌐 Update translations for de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14602\"\u003e#14602\u003c/a\u003e by \u003ca href=\"https://github.com/nilslindemann\"\u003e\u003ccode\u003e@​nilslindemann\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14581\"\u003e#14581\u003c/a\u003e by \u003ca href=\"https://github.com/nilslindemann\"\u003e\u003ccode\u003e@​nilslindemann\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 Update pre-commit to use local Ruff instead of hook. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14604\"\u003e#14604\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✅ Add missing tests for code examples. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14569\"\u003e#14569\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Remove \u003ccode\u003elint\u003c/code\u003e job from \u003ccode\u003etest\u003c/code\u003e CI workflow. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14593\"\u003e#14593\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Update secrets check. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14592\"\u003e#14592\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Run CodSpeed tests in parallel to other tests to speed up CI. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14586\"\u003e#14586\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔨 Update scripts and pre-commit to autofix files. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14585\"\u003e#14585\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.127.0\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔊 Add deprecation warnings when using \u003ccode\u003epydantic.v1\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14583\"\u003e#14583\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 Add LLM prompt file for Korean, generated from the existing translations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14546\"\u003e#14546\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Add LLM prompt file for Japanese, generated from the existing translations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14545\"\u003e#14545\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Upgrade OpenAI model for translations to gpt-5.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14579\"\u003e#14579\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.126.0\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e➖ Drop support for Pydantic v1, keeping short temporary support for Pydantic v2's \u003ccode\u003epydantic.v1\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14575\"\u003e#14575\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\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/fastapi/fastapi/commit/8322a4445a3b25acd9b26b61192571b2d92f9bcd\"\u003e\u003ccode\u003e8322a44\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.128.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4b2cfcfd34d0b2e158a05b377426e0c8376b94de\"\u003e\u003ccode\u003e4b2cfcf\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/e3006305518a56ea35f62a31748ad26fe4356fcc\"\u003e\u003ccode\u003ee300630\u003c/code\u003e\u003c/a\u003e ➖ Drop support for \u003ccode\u003epydantic.v1\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14609\"\u003e#14609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/1b3bea8b6be2220cc1544653ea785d2134fcb35b\"\u003e\u003ccode\u003e1b3bea8\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/34e884156f38dff4094a7764ff895c4d4b872060\"\u003e\u003ccode\u003e34e8841\u003c/code\u003e\u003c/a\u003e ✅ Run performance tests only on Pydantic v2 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14608\"\u003e#14608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cd90c78391f86f3fd06d5b327bffad9666b05b44\"\u003e\u003ccode\u003ecd90c78\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.127.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/93f4dfd88b7d62bda89eb521ebd9322e357e6fff\"\u003e\u003ccode\u003e93f4dfd\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/535b5daa317a9d1d1f9a1058e57650a7beefa861\"\u003e\u003ccode\u003e535b5da\u003c/code\u003e\u003c/a\u003e 🔊 Add a custom \u003ccode\u003eFastAPIDeprecationWarning\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14605\"\u003e#14605\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/6b53786f626db95a42fd0f66afd360bab161f4b1\"\u003e\u003ccode\u003e6b53786\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d98f4eb56eae3155034fe631d9639d95171fb9ab\"\u003e\u003ccode\u003ed98f4eb\u003c/code\u003e\u003c/a\u003e 🔧 Update pre-commit to use local Ruff instead of hook (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14604\"\u003e#14604\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.120.1...0.128.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `starlette` from 0.49.1 to 0.50.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/releases\"\u003estarlette's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.50.0\u003c/h2\u003e\n\u003ch2\u003eRemoved\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3061\"\u003e#3061\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.49.3...0.50.0\"\u003ehttps://github.com/Kludex/starlette/compare/0.49.3...0.50.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.49.3\u003c/h2\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRelax strictness on \u003ccode\u003eMiddleware\u003c/code\u003e type \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3059\"\u003e#3059\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.49.2...0.49.3\"\u003ehttps://github.com/Kludex/starlette/compare/0.49.2...0.49.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.49.2\u003c/h2\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore \u003ccode\u003eif-modified-since\u003c/code\u003e header if \u003ccode\u003eif-none-match\u003c/code\u003e is present in \u003ccode\u003eStaticFiles\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3044\"\u003e#3044\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.49.1...0.49.2\"\u003ehttps://github.com/Kludex/starlette/compare/0.49.1...0.49.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/blob/main/docs/release-notes.md\"\u003estarlette's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.50.0 (November 1, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3061\"\u003e#3061\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.49.3 (November 1, 2025)\u003c/h2\u003e\n\u003cp\u003eThis is the last release that supports Python 3.9, which will be dropped in the next minor release.\u003c/p\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eRelax strictness on \u003ccode\u003eMiddleware\u003c/code\u003e type \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3059\"\u003e#3059\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.49.2 (November 1, 2025)\u003c/h2\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore \u003ccode\u003eif-modified-since\u003c/code\u003e header if \u003ccode\u003eif-none-match\u003c/code\u003e is present in \u003ccode\u003eStaticFiles\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3044\"\u003e#3044\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/4941b4a04993d087dea66e9287fe9472babee879\"\u003e\u003ccode\u003e4941b4a\u003c/code\u003e\u003c/a\u003e Version 0.50.0 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3063\"\u003e#3063\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/a0499f60a6f13b8b42381d70bafc076b6ece4eee\"\u003e\u003ccode\u003ea0499f6\u003c/code\u003e\u003c/a\u003e Drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3061\"\u003e#3061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/de3ffecaeadd34612f71495374f5853edbda1bf2\"\u003e\u003ccode\u003ede3ffec\u003c/code\u003e\u003c/a\u003e Version 0.49.3 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3062\"\u003e#3062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/c4433960ccc07289e0963df94dc5c2746f07ca1a\"\u003e\u003ccode\u003ec443396\u003c/code\u003e\u003c/a\u003e Relax strictness on \u003ccode\u003eMiddleware\u003c/code\u003e type (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3059\"\u003e#3059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/85bf0275fbf26f5a7fef539a03bebfeb125b9ea3\"\u003e\u003ccode\u003e85bf027\u003c/code\u003e\u003c/a\u003e Version 0.49.2 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3058\"\u003e#3058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/3d480dd7d5adf474d0736c67a2a3064e88226837\"\u003e\u003ccode\u003e3d480dd\u003c/code\u003e\u003c/a\u003e Ignore \u003ccode\u003eif-modified-since\u003c/code\u003e if \u003ccode\u003eif-none-match\u003c/code\u003e is present (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3057\"\u003e#3057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/da0605243010715356be69693a524f2300011948\"\u003e\u003ccode\u003eda06052\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3056\"\u003e#3056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/34caa9900f47b9ab5afffa5f4ee148a00940f622\"\u003e\u003ccode\u003e34caa99\u003c/code\u003e\u003c/a\u003e Add groups configuration for GitHub Actions (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3055\"\u003e#3055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Kludex/starlette/compare/0.49.1...0.50.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `strawberry-graphql[fastapi]` from 0.284.1 to 0.288.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/strawberry-graphql/strawberry/releases\"\u003estrawberry-graphql[fastapi]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e🍓 0.288.2\u003c/h2\u003e\n\u003cp\u003eFixed two bugs where using \u003ccode\u003estrawberry.Maybe\u003c/code\u003e wrapped in \u003ccode\u003eAnnotated\u003c/code\u003e or using an explicit field definition would raise a \u003ccode\u003eTypeError\u003c/code\u003e about \u0026quot;missing 1 required keyword-only argument\u0026quot;, even though a \u003ccode\u003eMaybe\u003c/code\u003e field should allow \u003ccode\u003eNone\u003c/code\u003e in all cases.\u003c/p\u003e\n\u003cp\u003eThis fix addresses this via custom handling for annotations wrapped with \u003ccode\u003eAnnotated\u003c/code\u003e and handling custom \u003ccode\u003efield\u003c/code\u003e with no \u003ccode\u003edefault\u003c/code\u003e and no \u003ccode\u003edefault_factory\u003c/code\u003e as possible to be \u003ccode\u003eNone\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eReleases contributed by \u003ca href=\"https://github.com/Birdi7\"\u003e\u003ccode\u003e@​Birdi7\u003c/code\u003e\u003c/a\u003e via \u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4084\"\u003e#4084\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e🍓 0.288.1\u003c/h2\u003e\n\u003cp\u003eFixed a bug where using \u003ccode\u003erelay.node()\u003c/code\u003e or \u003ccode\u003erelay.connection()\u003c/code\u003e would raise a\n\u003ccode\u003eDeprecationWarning\u003c/code\u003e about \u0026quot;Argument name-based matching of 'info'\u0026quot;, even though\nthe \u003ccode\u003einfo\u003c/code\u003e parameter was correctly annotated.\u003c/p\u003e\n\u003cp\u003eThis also fixes the same warning when using Python 3.12+ type alias syntax for\n\u003ccode\u003eInfo\u003c/code\u003e, such as \u003ccode\u003etype MyInfo = strawberry.Info[Context, None]\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThe fix recognizes \u003ccode\u003estrawberry.Info\u003c/code\u003e and \u003ccode\u003estrawberry.Parent\u003c/code\u003e annotations (with\nor without generic parameters) when they appear as string forward references.\nOnly fully qualified names are matched to avoid confusion with user-defined types.\u003c/p\u003e\n\u003cp\u003eReleases contributed by \u003ca href=\"https://github.com/bellini666\"\u003e\u003ccode\u003e@​bellini666\u003c/code\u003e\u003c/a\u003e via \u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4081\"\u003e#4081\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e🍓 0.288.0\u003c/h2\u003e\n\u003cp\u003eDeprecate passing a class to \u003ccode\u003estrawberry.scalar()\u003c/code\u003e. Use \u003ccode\u003escalar_map\u003c/code\u003e in\n\u003ccode\u003eStrawberryConfig\u003c/code\u003e instead for better type checking support.\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e# Before (deprecated)\nBase64 = strawberry.scalar(\n    NewType(\u0026quot;Base64\u0026quot;, bytes),\n    serialize=lambda v: base64.b64encode(v).decode(),\n    parse_value=lambda v: base64.b64decode(v),\n)\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eInstead, use \u003ccode\u003escalar_map\u003c/code\u003e in \u003ccode\u003eStrawberryConfig\u003c/code\u003e:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e# Recommended\nBase64 = NewType(\u0026quot;Base64\u0026quot;, bytes)\n\u003cp\u003eschema = strawberry.Schema(\nquery=Query,\nconfig=StrawberryConfig(\nscalar_map={\nBase64: strawberry.scalar(\nname=\u0026quot;Base64\u0026quot;,\nserialize=lambda v: base64.b64encode(v).decode(),\nparse_value=lambda v: base64.b64decode(v),\n)\n}\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/strawberry-graphql/strawberry/blob/main/CHANGELOG.md\"\u003estrawberry-graphql[fastapi]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.288.2 - 2026-01-01\u003c/h2\u003e\n\u003cp\u003eFixed two bugs where using \u003ccode\u003estrawberry.Maybe\u003c/code\u003e wrapped in \u003ccode\u003eAnnotated\u003c/code\u003e or using an explicit field definition would raise a \u003ccode\u003eTypeError\u003c/code\u003e about \u0026quot;missing 1 required keyword-only argument\u0026quot;, even though a \u003ccode\u003eMaybe\u003c/code\u003e field should allow \u003ccode\u003eNone\u003c/code\u003e in all cases.\u003c/p\u003e\n\u003cp\u003eThis fix addresses this via custom handling for annotations wrapped with \u003ccode\u003eAnnotated\u003c/code\u003e and handling custom \u003ccode\u003efield\u003c/code\u003e with no \u003ccode\u003edefault\u003c/code\u003e and no \u003ccode\u003edefault_factory\u003c/code\u003e as possible to be \u003ccode\u003eNone\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/Birdi7\"\u003eEgor\u003c/a\u003e via [PR \u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4084\"\u003e#4084\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/pull/4084/\"\u003estrawberry-graphql/strawberry#4084\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003e0.288.1 - 2025-12-28\u003c/h2\u003e\n\u003cp\u003eFixed a bug where using \u003ccode\u003erelay.node()\u003c/code\u003e or \u003ccode\u003erelay.connection()\u003c/code\u003e would raise a\n\u003ccode\u003eDeprecationWarning\u003c/code\u003e about \u0026quot;Argument name-based matching of 'info'\u0026quot;, even though\nthe \u003ccode\u003einfo\u003c/code\u003e parameter was correctly annotated.\u003c/p\u003e\n\u003cp\u003eThis also fixes the same warning when using Python 3.12+ type alias syntax for\n\u003ccode\u003eInfo\u003c/code\u003e, such as \u003ccode\u003etype MyInfo = strawberry.Info[Context, None]\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThe fix recognizes \u003ccode\u003estrawberry.Info\u003c/code\u003e and \u003ccode\u003estrawberry.Parent\u003c/code\u003e annotations (with\nor without generic parameters) when they appear as string forward references.\nOnly fully qualified names are matched to avoid confusion with user-defined types.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/bellini666\"\u003eThiago Bellini Ribeiro\u003c/a\u003e via [PR \u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4081\"\u003e#4081\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/pull/4081/\"\u003estrawberry-graphql/strawberry#4081\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003e0.288.0 - 2025-12-28\u003c/h2\u003e\n\u003cp\u003eDeprecate passing a class to \u003ccode\u003estrawberry.scalar()\u003c/code\u003e. Use \u003ccode\u003escalar_map\u003c/code\u003e in\n\u003ccode\u003eStrawberryConfig\u003c/code\u003e instead for better type checking support.\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e# Before (deprecated)\nBase64 = strawberry.scalar(\n    NewType(\u0026quot;Base64\u0026quot;, bytes),\n    serialize=lambda v: base64.b64encode(v).decode(),\n    parse_value=lambda v: base64.b64decode(v),\n)\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eInstead, use \u003ccode\u003escalar_map\u003c/code\u003e in \u003ccode\u003eStrawberryConfig\u003c/code\u003e:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e# Recommended\nBase64 = NewType(\u0026quot;Base64\u0026quot;, bytes)\n\u003cp\u003eschema = strawberry.Schema(\nquery=Query,\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/strawberry-graphql/strawberry/commit/4d2881b9f502acfea5e3dbba0f4d5e1921c3a7bc\"\u003e\u003ccode\u003e4d2881b\u003c/code\u003e\u003c/a\u003e Release 🍓 0.288.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/95daebf00285795bdc27a4e55755027261cfa899\"\u003e\u003ccode\u003e95daebf\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eMaybe\u003c/code\u003e usage with \u003ccode\u003eAnnotated\u003c/code\u003e and explicit field definition (\u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4084\"\u003e#4084\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/3bde027227c0b77724170ee13cca34f284cc7109\"\u003e\u003ccode\u003e3bde027\u003c/code\u003e\u003c/a\u003e Release 🍓 0.288.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/5e519b62c77d16e45b527e1b93fec8dbb854dba1\"\u003e\u003ccode\u003e5e519b6\u003c/code\u003e\u003c/a\u003e fix: resolve Info type recognition for TYPE_CHECKING imports and TypeAliasTyp...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/9b7701fe32c7d10a41803ceb40f0b84166112b3f\"\u003e\u003ccode\u003e9b7701f\u003c/code\u003e\u003c/a\u003e docs: extend Maybe documentation and add a new page about UNSET (\u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4080\"\u003e#4080\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/1d0d962e6946e9d19f439c510e8c148f2c7c080f\"\u003e\u003ccode\u003e1d0d962\u003c/code\u003e\u003c/a\u003e Release 🍓 0.288.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/503916cceb5289a2880294dba18fd11c37e4b693\"\u003e\u003ccode\u003e503916c\u003c/code\u003e\u003c/a\u003e refactor: Use a more type-friendly way to define scalars (\u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4076\"\u003e#4076\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/d96fed56466ea8dba360abfd85f0d42dc22061b6\"\u003e\u003ccode\u003ed96fed5\u003c/code\u003e\u003c/a\u003e Release 🍓 0.287.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/43c84b4dc7e94c7c34dfec0af2a455362dc18a88\"\u003e\u003ccode\u003e43c84b4\u003c/code\u003e\u003c/a\u003e Switch from lia-web to cross-web (\u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4079\"\u003e#4079\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/d273e4e7db9dce8b585b51414fb29f8011078f0e\"\u003e\u003ccode\u003ed273e4e\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4077\"\u003e#4077\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/strawberry-graphql/strawberry/compare/0.284.1...0.288.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn[standard]` from 0.38.0 to 0.40.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/releases\"\u003euvicorn[standard]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.40.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2772\"\u003eKludex/uvicorn#2772\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.39.0...0.40.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.39.0...0.40.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.39.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eexplicitly start ASGI run with empty context by \u003ca href=\"https://github.com/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2742\"\u003eKludex/uvicorn#2742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(websockets): Send close frame on ASGI return by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2769\"\u003eKludex/uvicorn#2769\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/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2742\"\u003eKludex/uvicorn#2742\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.38.0...0.39.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.38.0...0.39.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/blob/main/docs/release-notes.md\"\u003euvicorn[standard]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.40.0 (December 21, 2025)\u003c/h2\u003e\n\u003ch3\u003eRemove\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2772\"\u003e#2772\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.39.0 (December 21, 2025)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSend close frame on ASGI return for WebSockets (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2769\"\u003e#2769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExplicitly start ASGI run with empty context (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2742\"\u003e#2742\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/9ff60042a53cd1bbfd5580ab0a91ea2d1d8f2f8c\"\u003e\u003ccode\u003e9ff6004\u003c/code\u003e\u003c/a\u003e Version 0.40.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2773\"\u003e#2773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/19df042c54c1562f058daf021d6f7bd1d5ed621c\"\u003e\u003ccode\u003e19df042\u003c/code\u003e\u003c/a\u003e Drop Python 3.9 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2772\"\u003e#2772\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/865ce7c0b4329a384273a6628eceb8d597989521\"\u003e\u003ccode\u003e865ce7c\u003c/code\u003e\u003c/a\u003e Run strict mypy on test suite (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2771\"\u003e#2771\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/4f40b8495772eb3a1ab3613ffd7be5156f8e1389\"\u003e\u003ccode\u003e4f40b84\u003c/code\u003e\u003c/a\u003e Version 0.39.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2770\"\u003e#2770\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/5692dfc416f9e65aee5028e55d119313d8d3ab0f\"\u003e\u003ccode\u003e5692dfc\u003c/code\u003e\u003c/a\u003e fix(websockets): Send close frame on ASGI return (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2769\"\u003e#2769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/4194764a26824e5d8ddd1fa673df78dff82966e0\"\u003e\u003ccode\u003e4194764\u003c/code\u003e\u003c/a\u003e chore(deps): bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2763\"\u003e#2763\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/d94bf28743de545d2d4b150f022203a5178cb705\"\u003e\u003ccode\u003ed94bf28\u003c/code\u003e\u003c/a\u003e explicitly start ASGI run with empty context (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2742\"\u003e#2742\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/8ae0bcbecb0a655789abf0c2dd4200848fc68a30\"\u003e\u003ccode\u003e8ae0bcb\u003c/code\u003e\u003c/a\u003e chore(deps): bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2748\"\u003e#2748\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/4744ff9a1a4888c76ea160328cc9dcc2680c2c71\"\u003e\u003ccode\u003e4744ff9\u003c/code\u003e\u003c/a\u003e Add groups configuration for GitHub Actions (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2747\"\u003e#2747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/0391372376c264604a0475b0864bcbf3a8705352\"\u003e\u003ccode\u003e0391372\u003c/code\u003e\u003c/a\u003e chore(deps): bump astral-sh/setup-uv from 6.8.0 to 7.1.2 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2746\"\u003e#2746\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.38.0...0.40.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `beautifulsoup4` from 4.11.1 to 4.14.3\n\nUpdates `python-gnupg` from 0.5.5 to 0.5.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/vsajip/python-gnupg/releases\"\u003epython-gnupg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eEnhancement and bug-fix release 0.5.6\u003c/h2\u003e\n\u003cp\u003eThis is an enhancement and bug-fix release, and all users are encouraged to upgrade.\u003c/p\u003e\n\u003cp\u003eBrief summary:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/vsajip/python-gnupg/issues/261\"\u003e#261\u003c/a\u003e: Ensure capability, fingerprint and keygrip are added to subkey_info.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSet username in the result when Verify uses a signing key that has expired or been revoked. Thanks to Steven Galgano for the patch.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThis release has been signed with my code signing key:\u003c/p\u003e\n\u003cp\u003eVinay Sajip (CODE SIGNING KEY) \u0026lt;vinay_sajip at yahoo.co.uk\u0026gt;\nFingerprint: CA74 9061 914E AC13 8E66 EADB 9147 B477 339A 9B86\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/vsajip/python-gnupg/commit/54e9ca0f80f5a0d0b4252e13d5c431f3f5f40c71\"\u003e\u003ccode\u003e54e9ca0\u003c/code\u003e\u003c/a\u003e Changes for 0.5.6.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vsajip/python-gnupg/commit/8825037344b03473595e694e01a1e0fa5e74023f\"\u003e\u003ccode\u003e8825037\u003c/code\u003e\u003c/a\u003e Add support for Python 3.14 (\u003ca href=\"https://redirect.github.com/vsajip/python-gnupg/issues/268\"\u003e#268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vsajip/python-gnupg/commit/909cf606f07097feb5316c265f0108a4c753f9a5\"\u003e\u003ccode\u003e909cf60\u003c/code\u003e\u003c/a\u003e Remove Travis CI and AppVeyor config (\u003ca href=\"https://redirect.github.com/vsajip/python-gnupg/issues/269\"\u003e#269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vsajip/python-gnupg/commit/f0bfa1acb7000cfff3bfdec5d9bff15299c364d3\"\u003e\u003ccode\u003ef0bfa1a\u003c/code\u003e\u003c/a\u003e Drop redundant \u003ccode\u003ewheel\u003c/code\u003e from PEP 517 build deps (\u003ca href=\"https://redirect.github.com/vsajip/python-gnupg/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vsajip/python-gnupg/commit/9b0399b4684a1f8d9e763c99c94cd9baed5ebc34\"\u003e\u003ccode\u003e9b0399b\u003c/code\u003e\u003c/a\u003e Fix typo: spell decrypted_data correctly in the documentation. (\u003ca href=\"https://redirect.github.com/vsajip/python-gnupg/issues/263\"\u003e#263\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vsajip/python-gnupg/commit/fcedea7ac922cf5113c28beff16e59340fa4731c\"\u003e\u003ccode\u003efcedea7\u003c/code\u003e\u003c/a\u003e Added capability to subkey_info, reformatted code.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vsajip/python-gnupg/commit/eca04eb5c9f5d251bb32a183427acb8fbe564102\"\u003e\u003ccode\u003eeca04eb\u003c/code\u003e\u003c/a\u003e Set username when Verify uses a signing key that has expired or been (\u003ca href=\"https://redirect.github.com/vsajip/python-gnupg/issues/262\"\u003e#262\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vsajip/python-gnupg/commit/acfa89869940b81a96c6eb1e475c1c4f645ae879\"\u003e\u003ccode\u003eacfa898\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/vsajip/python-gnupg/issues/261\"\u003e#261\u003c/a\u003e: Ensure fingerprint and keygrip are added to subkey_info.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vsajip/python-gnupg/commit/8148db43edf62ca8310000f0aaae138784c0e51b\"\u003e\u003ccode\u003e8148db4\u003c/code\u003e\u003c/a\u003e Bump version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vsajip/python-gnupg/commit/2e829849129d4789b8877fe621349b09ca5b29cd\"\u003e\u003ccode\u003e2e82984\u003c/code\u003e\u003c/a\u003e Added tag 0.5.5 for changeset 1b77f5b12ad7\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/vsajip/python-gnupg/compare/0.5.5...0.5.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.18.2 to 1.19.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.19.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix noncommutative joins with bounded TypeVars (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20345\"\u003e20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect output format for cached runs by serializing raw errors in cache metas (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20372\"\u003e20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (A5rocks, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20383\"\u003e20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mypyc generator regression with empty tuple (BobTheBuidler, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20371\"\u003e20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash involving Unpack-ed TypeVarTuple (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20323\"\u003e20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on star import of redefinition (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20333\"\u003e20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on typevar with forward ref used in other module (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20334\"\u003e20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFail with an explicit error on PyPy (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20389\"\u003e20389\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChainfire\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eDavid Foster\u003c/li\u003e\n\u003cli\u003eFrank Dana\u003c/li\u003e\n\u003cli\u003eGuo Ci\u003c/li\u003e\n\u003cli\u003eiap\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilton-Balfe\u003c/li\u003e\n\u003cli\u003ejhance\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eJukka Lehtosalo\u003c/li\u003e\n\u003cli\u003eKarelKenens\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael Carlstrom\u003c/li\u003e\n\u003cli\u003eMichael J. Sullivan\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003cli\u003eRandolf Scholz\u003c/li\u003e\n\u003cli\u003eShantanu\u003c/li\u003e\n\u003cli\u003eSigve Sebastian Farstad\u003c/li\u003e\n\u003cli\u003esobolevn\u003c/li\u003e\n\u003cli\u003eStanislav Terliakov\u003c/li\u003e\n\u003cli\u003eStephen Morton\u003c/li\u003e\n\u003cli\u003eTheodore Ando\u003c/li\u003e\n\u003cli\u003eThiago J. Barbalho\u003c/li\u003e\n\u003cli\u003ewyattscarpenter\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI’d also like to thank my employer, Dropbox, for supporting mypy development.\u003c/p\u003e\n\u003ch2\u003eMypy 1.18\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.18.1 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/412c19a6bde31e7afa7f41afdf8356664689ae80\"\u003e\u003ccode\u003e412c19a\u003c/code\u003e\u003c/a\u003e Bump version to 1.19.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/20aea0a6ca0710f5427239bdd2fd8e8bf1caf634\"\u003e\u003ccode\u003e20aea0a\u003c/code\u003e\u003c/a\u003e Update changelog for 1.19.1 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20414\"\u003e#20414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2b23b507524bf1bd7513eea6f2a16fb91e072cb6\"\u003e\u003ccode\u003e2b23b50\u003c/code\u003e\u003c/a\u003e Serialize raw errors in cache metas (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20372\"\u003e#20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f60f90fb8872bf722e32aefd548daaf6d8560e05\"\u003e\u003ccode\u003ef60f90f\u003c/code\u003e\u003c/a\u003e Fail on PyPy in main instead of setup.py (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20389\"\u003e#20389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/58d485b4ea4776e0b9d4045b306cb0818ecc2aa6\"\u003e\u003ccode\u003e58d485b\u003c/code\u003e\u003c/a\u003e Fail with an explicit error on PyPy (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20384\"\u003e#20384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4b31a26788b70c4a2a19adbafa2bbda43dc2e8b\"\u003e\u003ccode\u003ea4b31a2\u003c/code\u003e\u003c/a\u003e Allow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20383\"\u003e#20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8a6eff478416cd3ed3931a6ed77ce61c88ab69e9\"\u003e\u003ccode\u003e8a6eff4\u003c/code\u003e\u003c/a\u003e [mypyc] fix generator regression with empty tuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20371\"\u003e#20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/70eceea682c041c0d8e8462dffef9c7bb252e014\"\u003e\u003ccode\u003e70eceea\u003c/code\u003e\u003c/a\u003e Fix noncommutative joins with bounded TypeVars (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20345\"\u003e#20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/3890fc49bf7cc02db04b1e63eb2540aaacdeecc0\"\u003e\u003ccode\u003e3890fc4\u003c/code\u003e\u003c/a\u003e Fix crash involving Unpack-ed TypeVarTuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20323\"\u003e#20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c93d917a86993e06dcc88e508f28f4f5199ce1c8\"\u003e\u003ccode\u003ec93d917\u003c/code\u003e\u003c/a\u003e Fix crash on star import of redefinition (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20333\"\u003e#20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.18.2...v1.19.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-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 `flake8` to 7.3.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/c48217e1fc006c2dddd14df54e83b67da15de5cd\"\u003e\u003ccode\u003ec48217e\u003c/code\u003e\u003c/a\u003e Release 7.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/f9e0f33281d5bb892cae2c674ac398439d99c732\"\u003e\u003ccode\u003ef9e0f33\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1986\"\u003e#1986\u003c/a\u003e from PyCQA/document-f542\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/6bcdb628597fa2d03494965089ff87a492ffc1e9\"\u003e\u003ccode\u003e6bcdb62\u003c/code\u003e\u003c/a\u003e document F542\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/70a15b8890d5bdf8c449ebb1b5259bd0140cc16b\"\u003e\u003ccode\u003e70a15b8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1985\"\u003e#1985\u003c/a\u003e from PyCQA/upgrade-deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/4941a3e32e54488698ecbc23993bfeb2a60c0fc5\"\u003e\u003ccode\u003e4941a3e\u003c/code\u003e\u003c/a\u003e upgrade pyflakes / pycodestyle\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/23e4005c5501999c29e1e3774de7ed18d1e4e22d\"\u003e\u003ccode\u003e23e4005\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1983\"\u003e#1983\u003c/a\u003e from PyCQA/py314\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/019424b80d3d7d5d8a2a1638f5877080546e3f46\"\u003e\u003ccode\u003e019424b\u003c/code\u003e\u003c/a\u003e add support for t-strings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/6b6f3d5fefecc994a06f425c18c3cddc9b71e4a4\"\u003e\u003ccode\u003e6b6f3d5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1980\"\u003e#1980\u003c/a\u003e from PyCQA/asottile-patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/8dfa6695b4fb1e1401b357367a0a71037d29f6aa\"\u003e\u003ccode\u003e8dfa669\u003c/code\u003e\u003c/a\u003e add rtd sphinx config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/ce3411118382d9332feb2749c8f417d10bfa2584\"\u003e\u003ccode\u003ece34111\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1976\"\u003e#1976\u003c/a\u003e from PyCQA/document-f824\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pycqa/flake8/compare/5.0.4...7.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/pantsbuild/pants/pull/22985","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/pantsbuild%2Fpants/issues/22985","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/22985/packages"},{"uuid":"3774480575","node_id":"PR_kwDOHZgEBs67MS0_","number":80,"state":"open","title":"Bump the ofe-minor-and-patch-updates group in /community/front-end/ofe with 47 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-01-01T11:08:12.000Z","updated_at":"2026-02-01T12:06:02.463Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"ofe-minor-and-patch-updates","update_count":47,"packages":[{"name":"altgraph","old_version":"0.17.4","new_version":"0.17.5","repository_url":"https://github.com/ronaldoussoren/altgraph"},{"name":"argcomplete","old_version":"3.6.2","new_version":"3.6.3","repository_url":"https://github.com/kislyuk/argcomplete"},{"name":"asgiref","old_version":"3.10.0","new_version":"3.11.0","repository_url":"https://github.com/django/asgiref"},{"name":"attrs","old_version":"25.3.0","new_version":"25.4.0","repository_url":"https://github.com/sponsors/hynek"},{"name":"certifi","old_version":"2025.10.5","new_version":"2025.11.12","repository_url":"https://github.com/certifi/python-certifi"},{"name":"cfgv","old_version":"3.4.0","new_version":"3.5.0","repository_url":"https://github.com/asottile/cfgv"},{"name":"charset-normalizer","old_version":"3.4.3","new_version":"3.4.4","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.3.0","new_version":"8.3.1","repository_url":"https://github.com/pallets/click"},{"name":"cryptography","old_version":"46.0.2","new_version":"46.0.3","repository_url":"https://github.com/pyca/cryptography"},{"name":"django-allauth","old_version":"65.12.0","new_version":"65.13.1","repository_url":"https://github.com/sponsors/pennersr"},{"name":"django-crispy-forms","old_version":"2.4","new_version":"2.5","repository_url":"https://github.com/django-crispy-forms/django-crispy-forms"},{"name":"filelock","old_version":"3.19.1","new_version":"3.20.1","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"google-api-core","old_version":"2.25.2","new_version":"2.28.1","repository_url":"https://github.com/googleapis/python-api-core"},{"name":"google-api-python-client","old_version":"2.184.0","new_version":"2.187.0","repository_url":"https://github.com/googleapis/google-api-python-client"},{"name":"google-auth","old_version":"2.41.1","new_version":"2.45.0","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"google-auth-httplib2","old_version":"0.2.0","new_version":"0.3.0","repository_url":"https://github.com/GoogleCloudPlatform/google-auth-library-python-httplib2"},{"name":"google-cloud-artifact-registry","old_version":"1.16.1","new_version":"1.18.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-secret-manager","old_version":"2.24.0","new_version":"2.26.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-build","old_version":"3.32.0","new_version":"3.34.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-billing","old_version":"1.16.3","new_version":"1.17.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-core","old_version":"2.4.3","new_version":"2.5.0","repository_url":"https://github.com/googleapis/python-cloud-core"},{"name":"google-cloud-pubsub","old_version":"2.31.1","new_version":"2.34.0","repository_url":"https://github.com/googleapis/python-pubsub"},{"name":"google-cloud-compute","old_version":"1.38.0","new_version":"1.40.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-storage","old_version":"3.4.0","new_version":"3.7.0","repository_url":"https://github.com/googleapis/python-storage"},{"name":"google-crc32c","old_version":"1.7.1","new_version":"1.8.0","repository_url":"https://github.com/googleapis/python-crc32c"},{"name":"google-resumable-media","old_version":"2.7.2","new_version":"2.8.0","repository_url":"https://github.com/googleapis/google-resumable-media-python"},{"name":"googleapis-common-protos","old_version":"1.70.0","new_version":"1.72.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"grpc-google-iam-v1","old_version":"0.14.2","new_version":"0.14.3","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"grpcio","old_version":"1.75.1","new_version":"1.76.0","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-status","old_version":"1.75.1","new_version":"1.76.0"},{"name":"idna","old_version":"3.10","new_version":"3.11","repository_url":"https://github.com/kjd/idna"},{"name":"libcst","old_version":"1.8.5","new_version":"1.8.6","repository_url":"https://github.com/Instagram/LibCST"},{"name":"macholib","old_version":"1.16.3","new_version":"1.16.4","repository_url":"https://github.com/ronaldoussoren/macholib"},{"name":"nodeenv","old_version":"1.9.1","new_version":"1.10.0","repository_url":"https://github.com/ekalinin/nodeenv"},{"name":"platformdirs","old_version":"4.4.0","new_version":"4.5.1","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"proto-plus","old_version":"1.26.1","new_version":"1.27.0","repository_url":"https://github.com/googleapis/proto-plus-python"},{"name":"pyparsing","old_version":"3.2.5","new_version":"3.3.1","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"referencing","old_version":"0.36.2","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"rpds-py","old_version":"0.27.1","new_version":"0.30.0","repository_url":"https://github.com/crate-py/rpds"},{"name":"ruamel-yaml","old_version":"0.18.15","new_version":"0.19.0"},{"name":"ruamel-yaml-clib","old_version":"0.2.14","new_version":"0.2.15"},{"name":"sqlparse","old_version":"0.5.3","new_version":"0.5.5","repository_url":"https://github.com/andialbrecht/sqlparse"},{"name":"tomli","old_version":"2.2.1","new_version":"2.3.0","repository_url":"https://github.com/hukkin/tomli"},{"name":"urllib3","old_version":"2.5.0","new_version":"2.6.2","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.37.0","new_version":"0.40.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"virtualenv","old_version":"20.34.0","new_version":"20.35.4","repository_url":"https://github.com/pypa/virtualenv"}],"path":"/community/front-end/ofe","ecosystem":"pip"},"body":"Bumps the ofe-minor-and-patch-updates group in /community/front-end/ofe with 47 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [altgraph](https://github.com/ronaldoussoren/altgraph) | `0.17.4` | `0.17.5` |\n| [argcomplete](https://github.com/kislyuk/argcomplete) | `3.6.2` | `3.6.3` |\n| [asgiref](https://github.com/django/asgiref) | `3.10.0` | `3.11.0` |\n| [attrs](https://github.com/sponsors/hynek) | `25.3.0` | `25.4.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.10.5` | `2025.11.12` |\n| [cfgv](https://github.com/asottile/cfgv) | `3.4.0` | `3.5.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.3` | `3.4.4` |\n| [click](https://github.com/pallets/click) | `8.3.0` | `8.3.1` |\n| [cryptography](https://github.com/pyca/cryptography) | `46.0.2` | `46.0.3` |\n| [django-allauth](https://github.com/sponsors/pennersr) | `65.12.0` | `65.13.1` |\n| [django-crispy-forms](https://github.com/django-crispy-forms/django-crispy-forms) | `2.4` | `2.5` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.19.1` | `3.20.1` |\n| [google-api-core](https://github.com/googleapis/python-api-core) | `2.25.2` | `2.28.1` |\n| [google-api-python-client](https://github.com/googleapis/google-api-python-client) | `2.184.0` | `2.187.0` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.41.1` | `2.45.0` |\n| [google-auth-httplib2](https://github.com/GoogleCloudPlatform/google-auth-library-python-httplib2) | `0.2.0` | `0.3.0` |\n| [google-cloud-artifact-registry](https://github.com/googleapis/google-cloud-python) | `1.16.1` | `1.18.0` |\n| [google-cloud-secret-manager](https://github.com/googleapis/google-cloud-python) | `2.24.0` | `2.26.0` |\n| [google-cloud-build](https://github.com/googleapis/google-cloud-python) | `3.32.0` | `3.34.0` |\n| [google-cloud-billing](https://github.com/googleapis/google-cloud-python) | `1.16.3` | `1.17.0` |\n| [google-cloud-core](https://github.com/googleapis/python-cloud-core) | `2.4.3` | `2.5.0` |\n| [google-cloud-pubsub](https://github.com/googleapis/python-pubsub) | `2.31.1` | `2.34.0` |\n| [google-cloud-compute](https://github.com/googleapis/google-cloud-python) | `1.38.0` | `1.40.0` |\n| [google-cloud-storage](https://github.com/googleapis/python-storage) | `3.4.0` | `3.7.0` |\n| [google-crc32c](https://github.com/googleapis/python-crc32c) | `1.7.1` | `1.8.0` |\n| [google-resumable-media](https://github.com/googleapis/google-resumable-media-python) | `2.7.2` | `2.8.0` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.70.0` | `1.72.0` |\n| [grpc-google-iam-v1](https://github.com/googleapis/google-cloud-python) | `0.14.2` | `0.14.3` |\n| [grpcio](https://github.com/grpc/grpc) | `1.75.1` | `1.76.0` |\n| [grpcio-status](https://grpc.io) | `1.75.1` | `1.76.0` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.11` |\n| [libcst](https://github.com/Instagram/LibCST) | `1.8.5` | `1.8.6` |\n| [macholib](https://github.com/ronaldoussoren/macholib) | `1.16.3` | `1.16.4` |\n| [nodeenv](https://github.com/ekalinin/nodeenv) | `1.9.1` | `1.10.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.4.0` | `4.5.1` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.5.1` |\n| [proto-plus](https://github.com/googleapis/proto-plus-python) | `1.26.1` | `1.27.0` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.5` | `3.3.1` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.36.2` | `0.37.0` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.27.1` | `0.30.0` |\n| ruamel-yaml | `0.18.15` | `0.19.0` |\n| ruamel-yaml-clib | `0.2.14` | `0.2.15` |\n| [sqlparse](https://github.com/andialbrecht/sqlparse) | `0.5.3` | `0.5.5` |\n| [tomli](https://github.com/hukkin/tomli) | `2.2.1` | `2.3.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.5.0` | `2.6.2` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.37.0` | `0.40.0` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `20.34.0` | `20.35.4` |\n\nUpdates `altgraph` from 0.17.4 to 0.17.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ronaldoussoren/altgraph/releases\"\u003ealtgraph's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.17.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for python3.13 and 3.14\u003c/li\u003e\n\u003cli\u003eDon't use pkg_resources at runtime\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/ronaldoussoren/altgraph/blob/master/doc/changelog.rst\"\u003ealtgraph's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.17.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate classifiers for Python 3.13 and 3.14\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrop dependency on \u0026quot;pkg_resources\u0026quot;\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/ronaldoussoren/altgraph/commit/3719ef2991e982c5d13c8ab76693a41fd8c183a3\"\u003e\u003ccode\u003e3719ef2\u003c/code\u003e\u003c/a\u003e Claim support for Python 3.13 and 3.14 and drop usage of pkg_resources\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ronaldoussoren/altgraph/compare/v0.17.4...v0.17.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `argcomplete` from 3.6.2 to 3.6.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kislyuk/argcomplete/releases\"\u003eargcomplete's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.6.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMake RE PCRE compatible. Fixes \u003ca href=\"https://redirect.github.com/kislyuk/argcomplete/issues/539\"\u003e#539\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eOnly execute Python interpreters (\u003ca href=\"https://redirect.github.com/kislyuk/argcomplete/issues/536\"\u003e#536\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efish: set variable scope to local to avoid clobbering global or universal variables (\u003ca href=\"https://redirect.github.com/kislyuk/argcomplete/issues/534\"\u003e#534\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocumentation and help improvements\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kislyuk/argcomplete/blob/main/Changes.rst\"\u003eargcomplete's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChanges for v3.6.3 (2025-10-19)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMake RE PCRE compatible. Fixes \u003ca href=\"https://redirect.github.com/kislyuk/argcomplete/issues/539\"\u003e#539\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eOnly execute Python interpreters (\u003ca href=\"https://redirect.github.com/kislyuk/argcomplete/issues/536\"\u003e#536\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efish: set variable scope to local to avoid clobbering global or\nuniversal variables (\u003ca href=\"https://redirect.github.com/kislyuk/argcomplete/issues/534\"\u003e#534\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocumentation and help improvements\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/kislyuk/argcomplete/commit/fae5549ac1e89ec05de7d11ff33f540c74fc3b18\"\u003e\u003ccode\u003efae5549\u003c/code\u003e\u003c/a\u003e v3.6.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kislyuk/argcomplete/commit/2e88e24d3d7a8051b14fe2cffc86a1c0f5b70668\"\u003e\u003ccode\u003e2e88e24\u003c/code\u003e\u003c/a\u003e Update fish shell documentation (\u003ca href=\"https://redirect.github.com/kislyuk/argcomplete/issues/543\"\u003e#543\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kislyuk/argcomplete/commit/fc0d06dd72b542c88b9b4b58bc3ca15bd2e93bee\"\u003e\u003ccode\u003efc0d06d\u003c/code\u003e\u003c/a\u003e Make RE PCRE compatible. Fixes \u003ca href=\"https://redirect.github.com/kislyuk/argcomplete/issues/539\"\u003e#539\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kislyuk/argcomplete/commit/5ce24a975c4054d4285c6512a172330acf150ac9\"\u003e\u003ccode\u003e5ce24a9\u003c/code\u003e\u003c/a\u003e Fixup for a2b8bc6 (\u003ca href=\"https://redirect.github.com/kislyuk/argcomplete/issues/540\"\u003e#540\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kislyuk/argcomplete/commit/a2b8bc6461bcfc919bc3f4b3f83c7716bd078583\"\u003e\u003ccode\u003ea2b8bc6\u003c/code\u003e\u003c/a\u003e Format help placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kislyuk/argcomplete/commit/0f0797b11c480619f3063befeb0f144cf29a7ef7\"\u003e\u003ccode\u003e0f0797b\u003c/code\u003e\u003c/a\u003e Only execute Python interpreters (\u003ca href=\"https://redirect.github.com/kislyuk/argcomplete/issues/536\"\u003e#536\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kislyuk/argcomplete/commit/33448163d9b638606db3f09fa26e5d2b90d7e4ac\"\u003e\u003ccode\u003e3344816\u003c/code\u003e\u003c/a\u003e Add details to error message in activate_global_python_argcomplete.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kislyuk/argcomplete/commit/ab03e8a8dd9313083728eb980bb621df1c940f2c\"\u003e\u003ccode\u003eab03e8a\u003c/code\u003e\u003c/a\u003e Update README.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kislyuk/argcomplete/commit/a3d39d6424da9d3896e6ab87d4cb76c1073213f7\"\u003e\u003ccode\u003ea3d39d6\u003c/code\u003e\u003c/a\u003e fish: set variable scope to local to avoid clobbering global or universal var...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/kislyuk/argcomplete/compare/v3.6.2...v3.6.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `asgiref` from 3.10.0 to 3.11.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django/asgiref/blob/main/CHANGELOG.txt\"\u003easgiref's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.11.0 (2025-11-19)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003esync_to_async\u003c/code\u003e gains a \u003ccode\u003econtext\u003c/code\u003e parameter, similar to those for\n\u003ccode\u003easyncio.create_task\u003c/code\u003e, \u003ccode\u003eTaskGroup\u003c/code\u003e \u0026amp;co, that can be used on Python 3.11+ to\ncontrol the context used by the underlying task.\u003c/p\u003e\n\u003cp\u003eThe parent context is already propagated by default but the additional\ncontrol is useful if multiple \u003ccode\u003esync_to_async\u003c/code\u003e calls need to share the same\ncontext, e.g. when used with \u003ccode\u003easyncio.gather()\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/django/asgiref/commit/b7b15b20ddb51d1d8b6978165c0986686cd08c1d\"\u003e\u003ccode\u003eb7b15b2\u003c/code\u003e\u003c/a\u003e Releasing 3.11.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/901ee4f96db156f0b462690dd7c9f5aa99bcce03\"\u003e\u003ccode\u003e901ee4f\u003c/code\u003e\u003c/a\u003e Added a custom context parameter for the sync_to_async (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/536\"\u003e#536\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/2138f0317d79cedd065571447ae0a7571989550e\"\u003e\u003ccode\u003e2138f03\u003c/code\u003e\u003c/a\u003e Fixed typo in test file comment.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/django/asgiref/compare/3.10.0...3.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `attrs` from 25.3.0 to 25.4.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/hynek/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2025.10.5 to 2025.11.12\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/37ea150bee10958559f804f128de2fdd48e1ed45\"\u003e\u003ccode\u003e37ea150\u003c/code\u003e\u003c/a\u003e 2025.11.12 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/375\"\u003e#375\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/2fa50bb698145e2401e17b23f6969d3952a6f7c1\"\u003e\u003ccode\u003e2fa50bb\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 4.6.2 to 5.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/374\"\u003e#374\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/6cadb5304715523e57ea425f833aa3495a4e01e4\"\u003e\u003ccode\u003e6cadb53\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.10.05...2025.11.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cfgv` from 3.4.0 to 3.5.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/asottile/cfgv/commit/c7342120ec8513671fb8dd54d8a14399dc59cd47\"\u003e\u003ccode\u003ec734212\u003c/code\u003e\u003c/a\u003e v3.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/asottile/cfgv/commit/d64e0cc2ba77dff75a4c15fb6cf5e6ed315dc80b\"\u003e\u003ccode\u003ed64e0cc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/asottile/cfgv/issues/158\"\u003e#158\u003c/a\u003e from asottile/key-value-map\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/asottile/cfgv/commit/641559f162edff0c37277cd7c5ebd2b65292fad1\"\u003e\u003ccode\u003e641559f\u003c/code\u003e\u003c/a\u003e add KeyValueMap\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/asottile/cfgv/commit/82e2f93a1554805a8938a6a3a588efe982e03019\"\u003e\u003ccode\u003e82e2f93\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/asottile/cfgv/issues/157\"\u003e#157\u003c/a\u003e from asottile/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/asottile/cfgv/commit/69cd02016f6a69de3a19a9741f16aa6d40120164\"\u003e\u003ccode\u003e69cd020\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/asottile/cfgv/commit/5ccc4d404d9a6a83bd3b12c1a24437db7ce8a081\"\u003e\u003ccode\u003e5ccc4d4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/asottile/cfgv/issues/156\"\u003e#156\u003c/a\u003e from asottile/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/asottile/cfgv/commit/2e7ffe560a5de38906821304378fe26ceb7a536c\"\u003e\u003ccode\u003e2e7ffe5\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/asottile/cfgv/commit/ef7849933897d28727e453646a5a632202724d41\"\u003e\u003ccode\u003eef78499\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/asottile/cfgv/issues/155\"\u003e#155\u003c/a\u003e from asottile/all-repos_autofix_all-repos-manual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/asottile/cfgv/commit/b34b882bba1f683e9e3da7b3ab97e3ee1607977f\"\u003e\u003ccode\u003eb34b882\u003c/code\u003e\u003c/a\u003e py310+\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/asottile/cfgv/commit/724a279ea352c1883761e34e3f261c11be28f374\"\u003e\u003ccode\u003e724a279\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/asottile/cfgv/issues/154\"\u003e#154\u003c/a\u003e from asottile/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/asottile/cfgv/compare/v3.4.0...v3.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.4.3 to 3.4.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.4.4\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.3...3.4.4\"\u003e3.4.4\u003c/a\u003e (2025-10-13)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBound \u003ccode\u003esetuptools\u003c/code\u003e to a specific constraint \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;=81\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRaised upper bound of mypyc for the optional pre-built extension to v1.18.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esetuptools-scm\u003c/code\u003e as a build dependency.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnforced hashes in \u003ccode\u003edev-requirements.txt\u003c/code\u003e and created \u003ccode\u003eci-requirements.txt\u003c/code\u003e for security purposes.\u003c/li\u003e\n\u003cli\u003eAdditional pre-built wheels for riscv64, s390x, and armv7l architectures.\u003c/li\u003e\n\u003cli\u003eRestore \u003ccode\u003emultiple.intoto.jsonl\u003c/code\u003e in GitHub releases in addition to individual attestation file per wheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.4\"\u003e3.4.4\u003c/a\u003e (2025-10-13)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBound \u003ccode\u003esetuptools\u003c/code\u003e to a specific constraint \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;=81\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRaised upper bound of mypyc for the optional pre-built extension to v1.18.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esetuptools-scm\u003c/code\u003e as a build dependency.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnforced hashes in \u003ccode\u003edev-requirements.txt\u003c/code\u003e and created \u003ccode\u003eci-requirements.txt\u003c/code\u003e for security purposes.\u003c/li\u003e\n\u003cli\u003eAdditional pre-built wheels for riscv64, s390x, and armv7l architectures.\u003c/li\u003e\n\u003cli\u003eRestore \u003ccode\u003e multiple.intoto.jsonl\u003c/code\u003e in GitHub releases in addition to individual attestation file per wheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/b30ffdcc2f11043c0d34e60fe66d3815cd49b32b\"\u003e\u003ccode\u003eb30ffdc\u003c/code\u003e\u003c/a\u003e :wrench: fix checksum step in cd.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/d3fbfcfad7dfe3c640886f1a6a6351da527f6634\"\u003e\u003ccode\u003ed3fbfcf\u003c/code\u003e\u003c/a\u003e :wrench: fix cd.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/dafbb95f8c00d3cc8b99158caa63006ffab98749\"\u003e\u003ccode\u003edafbb95\u003c/code\u003e\u003c/a\u003e Release 3.4.4 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/658\"\u003e#658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/1f18ffaa69d2c84fea7abedb8840197ba9c14562\"\u003e\u003ccode\u003e1f18ffa\u003c/code\u003e\u003c/a\u003e :arrow_up: raise mypy upper bound to 1.18.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/ef4ac69ad203891f24e26b2422ab3a08053044fa\"\u003e\u003ccode\u003eef4ac69\u003c/code\u003e\u003c/a\u003e Merge branch 'release-3.4.4' of github.com:jawah/charset_normalizer into rele...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/4b35dda053db5e2e60a247e80a116e4ef04f439b\"\u003e\u003ccode\u003e4b35dda\u003c/code\u003e\u003c/a\u003e :pencil: write changelog for 3.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/0ec6452f1a34cbc77a55b237c4118807b44c2a33\"\u003e\u003ccode\u003e0ec6452\u003c/code\u003e\u003c/a\u003e :wrench: update cd.yml workflow (add riscv64, s390x and armv7l)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f341edec8a828dda394abfa011b1ded8b4b102e2\"\u003e\u003ccode\u003ef341ede\u003c/code\u003e\u003c/a\u003e :arrow_up: upgrade dependencies (dev, ci)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/a308841e660a4d61ea6c448e7b8bf97415ecdc4a\"\u003e\u003ccode\u003ea308841\u003c/code\u003e\u003c/a\u003e :pencil: write changelog for 3.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/9c906da611d5ca5ef076d6bf7f60e629f661d0b0\"\u003e\u003ccode\u003e9c906da\u003c/code\u003e\u003c/a\u003e :wrench: update cd.yml workflow (add riscv64, s390x and armv7l)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.3...3.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.3.0 to 8.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.3.1\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.1 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.3.1/\"\u003ehttps://pypi.org/project/click/8.3.1/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-1\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-1\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/28\"\u003ehttps://github.com/pallets/click/milestone/28\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDon't discard pager arguments by correctly using \u003ccode\u003esubprocess.Popen\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3039\"\u003e#3039\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3055\"\u003e#3055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace \u003ccode\u003eSentinel.UNSET\u003c/code\u003e default values by \u003ccode\u003eNone\u003c/code\u003e as they're passed through the \u003ccode\u003eContext.invoke()\u003c/code\u003e method. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3066\"\u003e#3066\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3065\"\u003e#3065\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3068\"\u003e#3068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix conversion of \u003ccode\u003eSentinel.UNSET\u003c/code\u003e happening too early, which caused incorrect behavior for multiple parameters using the same name. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3071\"\u003e#3071\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3079\"\u003e#3079\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix rendering when \u003ccode\u003eprompt\u003c/code\u003e and \u003ccode\u003econfirm\u003c/code\u003e parameter \u003ccode\u003eprompt_suffix\u003c/code\u003e is empty. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3019\"\u003e#3019\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3021\"\u003e#3021\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen \u003ccode\u003eSentinel.UNSET\u003c/code\u003e is found during parsing, it will skip calls to \u003ccode\u003etype_cast_value\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3069\"\u003e#3069\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3090\"\u003e#3090\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHide \u003ccode\u003eSentinel.UNSET\u003c/code\u003e values as \u003ccode\u003eNone\u003c/code\u003e when looking up for other parameters through the context inside parameter callbacks. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3136\"\u003e#3136\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3137\"\u003e#3137\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/blob/main/CHANGES.rst\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.3.1\u003c/h2\u003e\n\u003cp\u003eReleased 2025-11-15\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDon't discard pager arguments by correctly using \u003ccode\u003esubprocess.Popen\u003c/code\u003e. :issue:\u003ccode\u003e3039\u003c/code\u003e\n:pr:\u003ccode\u003e3055\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eReplace \u003ccode\u003eSentinel.UNSET\u003c/code\u003e default values by \u003ccode\u003eNone\u003c/code\u003e as they're passed through\nthe \u003ccode\u003eContext.invoke()\u003c/code\u003e method. :issue:\u003ccode\u003e3066\u003c/code\u003e :issue:\u003ccode\u003e3065\u003c/code\u003e :pr:\u003ccode\u003e3068\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix conversion of \u003ccode\u003eSentinel.UNSET\u003c/code\u003e happening too early, which caused incorrect\nbehavior for multiple parameters using the same name. :issue:\u003ccode\u003e3071\u003c/code\u003e :pr:\u003ccode\u003e3079\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eHide \u003ccode\u003eSentinel.UNSET\u003c/code\u003e values as \u003ccode\u003eNone\u003c/code\u003e when looking up for other parameters\nthrough the context inside parameter callbacks. :issue:\u003ccode\u003e3136\u003c/code\u003e :pr:\u003ccode\u003e3137\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix rendering when \u003ccode\u003eprompt\u003c/code\u003e and \u003ccode\u003econfirm\u003c/code\u003e parameter \u003ccode\u003eprompt_suffix\u003c/code\u003e is\nempty. :issue:\u003ccode\u003e3019\u003c/code\u003e :pr:\u003ccode\u003e3021\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eWhen \u003ccode\u003eSentinel.UNSET\u003c/code\u003e is found during parsing, it will skip calls to\n\u003ccode\u003etype_cast_value\u003c/code\u003e. :issue:\u003ccode\u003e3069\u003c/code\u003e :pr:\u003ccode\u003e3090\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/1d038f270701498433cb432f54db89f95f07a845\"\u003e\u003ccode\u003e1d038f2\u003c/code\u003e\u003c/a\u003e release version 8.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/03f3889f505d0c9ca4f9d6810f9e4ba2799f2a66\"\u003e\u003ccode\u003e03f3889\u003c/code\u003e\u003c/a\u003e Fix Ruff UP038 warning (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3141\"\u003e#3141\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/3867781222cb63693ca67df94352d29d8e6e2770\"\u003e\u003ccode\u003e3867781\u003c/code\u003e\u003c/a\u003e Fix Ruff UP038 warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/b91bb9548a5617b1197add95e084d569f57149c3\"\u003e\u003ccode\u003eb91bb95\u003c/code\u003e\u003c/a\u003e Provide altered context to callbacks to hide \u003ccode\u003eUNSET\u003c/code\u003e values as \u003ccode\u003eNone\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3137\"\u003e#3137\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/437e1e3295c7ec979fc1bf285bb402ca20d847e7\"\u003e\u003ccode\u003e437e1e3\u003c/code\u003e\u003c/a\u003e Temporarily provide a fake context to the callback to hide \u003ccode\u003eUNSET\u003c/code\u003e values as ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/ea70da487b05d6bb758d472a3a9ffab4a5b7fcd5\"\u003e\u003ccode\u003eea70da4\u003c/code\u003e\u003c/a\u003e Don't test using a file in docs/ (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3102\"\u003e#3102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/e27b307462b725722f620c69dd1d5509c032d18a\"\u003e\u003ccode\u003ee27b307\u003c/code\u003e\u003c/a\u003e Make \u003ccode\u003euv run --all-extras pyright --verifytypes click\u003c/code\u003e pass (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/a92c573f3195c9da3058eadf1735d38af186d22c\"\u003e\u003ccode\u003ea92c573\u003c/code\u003e\u003c/a\u003e Fix test_edit to work with BSD sed (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3129\"\u003e#3129\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/bd131e1ab63da2281d6dd9b8205ad2eb5a085468\"\u003e\u003ccode\u003ebd131e1\u003c/code\u003e\u003c/a\u003e Fix test_edit to work with BSD sed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/0b5c6b75f617e6ee2f9f6dcd071b8a4bf183d1ed\"\u003e\u003ccode\u003e0b5c6b7\u003c/code\u003e\u003c/a\u003e Add Best practices section  (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3127\"\u003e#3127\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.3.0...8.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 46.0.2 to 46.0.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e46.0.3 - 2025-10-15\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Fixed compilation when using LibreSSL 4.2.0.\n\u003cp\u003e.. _v46-0-2:\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/c0af4dd7b75921bbe9f1d41a03dbd4b64a9e3403\"\u003e\u003ccode\u003ec0af4dd\u003c/code\u003e\u003c/a\u003e release 46.0.3 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13681\"\u003e#13681\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pyca/cryptography/compare/46.0.2...46.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-allauth` from 65.12.0 to 65.13.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/pennersr/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-crispy-forms` from 2.4 to 2.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/releases\"\u003edjango-crispy-forms's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eConfirmed support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eConfirmed support for Django 6.0.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8.\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/django-crispy-forms/django-crispy-forms/blob/main/CHANGELOG.md\"\u003edjango-crispy-forms's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.5 (2025-11-06)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eConfirmed support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eConfirmed support for Django 6.0.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/65fa8ae065638da101851807937bb89ae1b5687e\"\u003e\u003ccode\u003e65fa8ae\u003c/code\u003e\u003c/a\u003e 2.5 Release. (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1424\"\u003e#1424\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/ca4ca14da2aeac3ce934b83861f1b2a558b736fd\"\u003e\u003ccode\u003eca4ca14\u003c/code\u003e\u003c/a\u003e PEP 639 licenses  (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1413\"\u003e#1413\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/aaabe68c0d5a2eee98101ff661b2c5cab28a0777\"\u003e\u003ccode\u003eaaabe68\u003c/code\u003e\u003c/a\u003e Updated pre-commit hook versions.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/125dd1632a460b4dd7b1c8ab0738863d0470c2cb\"\u003e\u003ccode\u003e125dd16\u003c/code\u003e\u003c/a\u003e Pyupgrade 3.9+\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/1f9c8ecc24a3159c86219403ae26e7d0c67e15b7\"\u003e\u003ccode\u003e1f9c8ec\u003c/code\u003e\u003c/a\u003e Confirmed support for Python 3.14, Django. Drop support for Python 3.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/93cb8c8e817870e19a6c426a3e5716ae748a6535\"\u003e\u003ccode\u003e93cb8c8\u003c/code\u003e\u003c/a\u003e Correct names in special thanks section (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1421\"\u003e#1421\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/e327548f80a531bba5ac1049b73108a0681eebf4\"\u003e\u003ccode\u003ee327548\u003c/code\u003e\u003c/a\u003e Added security policy. (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1419\"\u003e#1419\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/64813429d54b39c10d7bb7ad2db4ab0e0e2c418f\"\u003e\u003ccode\u003e6481342\u003c/code\u003e\u003c/a\u003e Enabled GitHub code of conduct (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1416\"\u003e#1416\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/dabd719113c8e7e43fa8d5e254bfa938d169e6e8\"\u003e\u003ccode\u003edabd719\u003c/code\u003e\u003c/a\u003e Add Project Logo. (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1415\"\u003e#1415\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/compare/2.4...2.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `filelock` from 3.19.1 to 3.20.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/py-filelock/releases\"\u003efilelock's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.20.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2025-68146: Fix TOCTOU symlink vulnerability in lock file creation by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/461\"\u003etox-dev/filelock#461\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.20.0...3.20.1\"\u003ehttps://github.com/tox-dev/filelock/compare/3.20.0...3.20.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.20.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd tox.toml to sdist by \u003ca href=\"https://github.com/mtelka\"\u003e\u003ccode\u003e@​mtelka\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/436\"\u003etox-dev/filelock#436\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate docs with example by \u003ca href=\"https://github.com/znichollscr\"\u003e\u003ccode\u003e@​znichollscr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/438\"\u003etox-dev/filelock#438\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd 3.14 support and drop 3.9 by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/448\"\u003etox-dev/filelock#448\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/mtelka\"\u003e\u003ccode\u003e@​mtelka\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/436\"\u003etox-dev/filelock#436\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/znichollscr\"\u003e\u003ccode\u003e@​znichollscr\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/438\"\u003etox-dev/filelock#438\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.19.1...3.20.0\"\u003ehttps://github.com/tox-dev/filelock/compare/3.19.1...3.20.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/377f62251d7cdf30768cc9ee1eb31cea1551c71b\"\u003e\u003ccode\u003e377f622\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/460\"\u003e#460\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/4724d7f8c3393ec1f048c93933e6e3e6ec321f0e\"\u003e\u003ccode\u003e4724d7f\u003c/code\u003e\u003c/a\u003e Fix TOCTOU symlink vulnerability in lock file creation (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/461\"\u003e#461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/cb69414a2327cf0a9887e12054d1dc112ee700af\"\u003e\u003ccode\u003ecb69414\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 5 to 6 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/459\"\u003e#459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/0769294f14a6c62eea64741722f7acef5386b4cd\"\u003e\u003ccode\u003e0769294\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6 to 7 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/458\"\u003e#458\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/414193a188892bd376eb5c56eb45a9cf8ecc9284\"\u003e\u003ccode\u003e414193a\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/457\"\u003e#457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/1456797beb94ad59e5627462ad29f7ed3a966626\"\u003e\u003ccode\u003e1456797\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/456\"\u003e#456\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/8d6bf90af313ac7fd6e41ef2b715d91dd6858f5c\"\u003e\u003ccode\u003e8d6bf90\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/455\"\u003e#455\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/f7edeebddf79c210db2a6af145d33849e93c5550\"\u003e\u003ccode\u003ef7edeeb\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/454\"\u003e#454\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/fb0923562189078b524ad3bd978e5e743dea9b2f\"\u003e\u003ccode\u003efb09235\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/453\"\u003e#453\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/f5825d867707b432e1c93f85833ce8d3766c986c\"\u003e\u003ccode\u003ef5825d8\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/452\"\u003e#452\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/py-filelock/compare/3.19.1...3.20.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-api-core` from 2.25.2 to 2.28.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-api-core/releases\"\u003egoogle-api-core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.28.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/compare/v2.28.0...v2.28.1\"\u003e2.28.1\u003c/a\u003e (2025-10-28)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove dependency on packaging and pkg_resources (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/852\"\u003e#852\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-api-core/commit/ca59a863b08a79c2bf0607f9085de1417422820b\"\u003eca59a86\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.28.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/compare/v2.27.0...v2.28.0\"\u003e2.28.0\u003c/a\u003e (2025-10-24)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eProvide and use Python version support check (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/832\"\u003e#832\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-api-core/commit/d36e896f98a2371c4d58ce1a7a3bc1a77a081836\"\u003ed36e896\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.27.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/compare/v2.26.0...v2.27.0\"\u003e2.27.0\u003c/a\u003e (2025-10-22)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for async bidi streaming apis (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/836\"\u003e#836\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-api-core/commit/95305480d234b6dd0903960db020e55125a997e0\"\u003e9530548\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.26.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/compare/v2.25.2...v2.26.0\"\u003e2.26.0\u003c/a\u003e (2025-10-08)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd trove classifier for Python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/842\"\u003e#842\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-api-core/commit/43690de33a23321d52ab856e2bf253590e1a9357\"\u003e43690de\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-api-core/blob/main/CHANGELOG.md\"\u003egoogle-api-core's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/compare/v2.28.0...v2.28.1\"\u003e2.28.1\u003c/a\u003e (2025-10-28)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove dependency on packaging and pkg_resources (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/852\"\u003e#852\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-api-core/commit/ca59a863b08a79c2bf0607f9085de1417422820b\"\u003eca59a86\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/compare/v2.27.0...v2.28.0\"\u003e2.28.0\u003c/a\u003e (2025-10-24)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eProvide and use Python version support check (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/832\"\u003e#832\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-api-core/commit/d36e896f98a2371c4d58ce1a7a3bc1a77a081836\"\u003ed36e896\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/compare/v2.26.0...v2.27.0\"\u003e2.27.0\u003c/a\u003e (2025-10-22)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for async bidi streaming apis (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/836\"\u003e#836\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-api-core/commit/95305480d234b6dd0903960db020e55125a997e0\"\u003e9530548\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/compare/v2.25.2...v2.26.0\"\u003e2.26.0\u003c/a\u003e (2025-10-08)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd trove classifier for Python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/842\"\u003e#842\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-api-core/commit/43690de33a23321d52ab856e2bf253590e1a9357\"\u003e43690de\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/commit/b8b9a29e062fa0344f5f84c363b0e1b7cf7f1ffd\"\u003e\u003ccode\u003eb8b9a29\u003c/code\u003e\u003c/a\u003e chore(main): release 2.28.1 (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/854\"\u003e#854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/commit/ca59a863b08a79c2bf0607f9085de1417422820b\"\u003e\u003ccode\u003eca59a86\u003c/code\u003e\u003c/a\u003e fix: remove dependency on packaging and pkg_resources (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/852\"\u003e#852\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/commit/6206ce08e019fff0b8599d51c45b9abd2c7a754c\"\u003e\u003ccode\u003e6206ce0\u003c/code\u003e\u003c/a\u003e chore(main): release 2.28.0 (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/847\"\u003e#847\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/commit/d36e896f98a2371c4d58ce1a7a3bc1a77a081836\"\u003e\u003ccode\u003ed36e896\u003c/code\u003e\u003c/a\u003e feat: provide and use Python version support check (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/832\"\u003e#832\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/commit/6c16e96e3e1ec983571f5e35d1e11b2cf125a11b\"\u003e\u003ccode\u003e6c16e96\u003c/code\u003e\u003c/a\u003e chore(main): release 2.27.0 (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/845\"\u003e#845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/commit/1df063f8891518b32ebeefb157ee7bf112d49230\"\u003e\u003ccode\u003e1df063f\u003c/code\u003e\u003c/a\u003e chore(python): Add Python 3.14 to python post processor image (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/844\"\u003e#844\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/commit/95305480d234b6dd0903960db020e55125a997e0\"\u003e\u003ccode\u003e9530548\u003c/code\u003e\u003c/a\u003e feat: support for async bidi streaming apis (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/836\"\u003e#836\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/commit/8168988306b5fdd55be4de26d4bcd0c8f953c74f\"\u003e\u003ccode\u003e8168988\u003c/code\u003e\u003c/a\u003e chore(main): release 2.26.0 (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/843\"\u003e#843\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/commit/43690de33a23321d52ab856e2bf253590e1a9357\"\u003e\u003ccode\u003e43690de\u003c/code\u003e\u003c/a\u003e feat: add trove classifier for Python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/842\"\u003e#842\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/python-api-core/compare/v2.25.2...v2.28.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-api-python-client` from 2.184.0 to 2.187.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-api-python-client/releases\"\u003egoogle-api-python-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.187.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/compare/v2.186.0...v2.187.0\"\u003e2.187.0\u003c/a\u003e (2025-11-04)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eadmin:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/4ae6f5bc3f1a35cd69cb589c432c299df559dacf\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/4ae6f5bc3f1a35cd69cb589c432c299df559dacf\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eaiplatform:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/131f59d6003dfbce3abfa00730dba9f90b9ca2ab\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/131f59d6003dfbce3abfa00730dba9f90b9ca2ab\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ealloydb:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/8c341070f77639ef47f010d9410a814d65f0ed1e\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/8c341070f77639ef47f010d9410a814d65f0ed1e\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eanalyticshub:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/9ba4beb4e61873283345d197c2909259948c5488\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/9ba4beb4e61873283345d197c2909259948c5488\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eandroidpublisher:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/3db77266c2abb44ab149d0f83f58f87727280274\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/3db77266c2abb44ab149d0f83f58f87727280274\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapigee:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/a0411b6f5cc087f24e7ffb2c3e55b75e68f7d3c7\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/a0411b6f5cc087f24e7ffb2c3e55b75e68f7d3c7\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapihub:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/f820a3b6cd6fdcb90a02f0635cc53b231fd340f3\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/f820a3b6cd6fdcb90a02f0635cc53b231fd340f3\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapphub:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/0cde10dd690e2ca303b8dddd26baee762b12e103\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/0cde10dd690e2ca303b8dddd26baee762b12e103\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eartifactregistry:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/c5e5cbd48fac599f541b4bb0671f73504bd95331\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/c5e5cbd48fac599f541b4bb0671f73504bd95331\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eauthorizedbuyersmarketplace:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/4b1a58e965c744981d87598ff4d1d9caeb5ad442\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/4b1a58e965c744981d87598ff4d1d9caeb5ad442\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebackupdr:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/9ea2eb7f2c1bea7de204c1641ad2b2fa232cfad8\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/9ea2eb7f2c1bea7de204c1641ad2b2fa232cfad8\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebiglake:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/f598d38025c1515b5e615f8437a64cbd43fed135\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/f598d38025c1515b5e615f8437a64cbd43fed135\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebigquerydatatransfer:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/8dd81b0b258535afa8a6da984cd62f53892f7754\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/8dd81b0b258535afa8a6da984cd62f53892f7754\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebigquery:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/cee5b00a8ea42682301ccd82abb987ca985520b1\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/cee5b00a8ea42682301ccd82abb987ca985520b1\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003echat:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/c0b2205c2dbc816c783d5d9da64aa8f01ac64976\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/c0b2205c2dbc816c783d5d9da64aa8f01ac64976\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecloudfunctions:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/c40d929e0a719ba2f756c5e076edaafe97f0ade8\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/c40d929e0a719ba2f756c5e076edaafe97f0ade8\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecloudidentity:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/d55d33d3d82ed3045a20a6372368c06060aa7afe\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/d55d33d3d82ed3045a20a6372368c06060aa7afe\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecloudkms:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/aa4d8af269309a77657799795233644c83f41156\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/aa4d8af269309a77657799795233644c83f41156\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecloudscheduler:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/68574b08de677e92f6b4ef73c9aa8981480fd244\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/68574b08de677e92f6b4ef73c9aa8981480fd244\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecompute:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/385aad3a9db1c1e964dfabe2aec63510e495f929\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/385aad3a9db1c1e964dfabe2aec63510e495f929\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003econtactcenterinsights:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/abf00d5720427fc630a1b261b37bddf881d4aed8\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/abf00d5720427fc630a1b261b37bddf881d4aed8\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003econtainer:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/1fa286c4cf3c068ad7389a9f0c9d2672023d0a9a\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/1fa286c4cf3c068ad7389a9f0c9d2672023d0a9a\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edataplex:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/b082bcdea218f8eda4e3167f0d91086067f54326\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/b082bcdea218f8eda4e3167f0d91086067f54326\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edataproc:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/46ecc1b97aee590e952a455f36a17ee57edc4878\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/46ecc1b97aee590e952a455f36a17ee57edc4878\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edatastream:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/94712425b6c1a43eac2f609efa2bbe0130c1d157\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/94712425b6c1a43eac2f609efa2bbe0130c1d157\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeveloperconnect:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/b5dbb37c9de1093601e5258e3390dbcba29090ab\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/b5dbb37c9de1093601e5258e3390dbcba29090ab\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edfareporting:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/eb29fdfc7d374ca0fa8a4521dfd03adf5f9d2aaa\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/eb29fdfc7d374ca0fa8a4521dfd03adf5f9d2aaa\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edialogflow:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/0d073639ba2dd3cf64711a0b2e765c69cf40f301\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/0d073639ba2dd3cf64711a0b2e765c69cf40f301\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ediscoveryengine:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/0a0ffefd477c00e649e2449de4e978e97c7cb77e\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/0a0ffefd477c00e649e2449de4e978e97c7cb77e\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edisplayvideo:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/b952757151bf40ee3e8a29b4ba97723e839d564f\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/b952757151bf40ee3e8a29b4ba97723e839d564f\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edlp:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/c44af38454081885ad41f8e11e39e6d2b8be9250\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/c44af38454081885ad41f8e11e39e6d2b8be9250\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edocumentai:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/892d8591315553114022645b20b312d8f0b0e142\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/892d8591315553114022645b20b312d8f0b0e142\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edrive:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/d0d23365f047c5bc095d500fbfb6364fea5b829f\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/d0d23365f047c5bc095d500fbfb6364fea5b829f\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003efile:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/33cc60f6da2e139c26e4037a0b2bd26a688b956f\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/33cc60f6da2e139c26e4037a0b2bd26a688b956f\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003efirebaseappdistribution:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/d228cb515590e17fdbb2732f667db09940ff65f0\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/d228cb515590e17fdbb2732f667db09940ff65f0\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003efirebaseapphosting:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/62fab0552fa333a8a79c0c433c515b029d743e3f\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/62fab0552fa333a8a79c0c433c515b029d743e3f\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003efirebasedataconnect:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/5fc2c543b13bc466fccd2e89fef36fd6da5a905c\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/5fc2c543b13bc466fccd2e89fef36fd6da5a905c\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003egkeonprem:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/aacb9659d60bed0a38c05936c788d6c96eb30599\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/aacb9659d60bed0a38c05936c788d6c96eb30599\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ehealthcare:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/ac074ed9332b6ebaa776c9ef7123d708fea89b8b\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/ac074ed9332b6ebaa776c9ef7123d708fea89b8b\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eiamcredentials:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/a668b6ab59c1c913ed455c94e722cd0747850c9f\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/a668b6ab59c1c913ed455c94e722cd0747850c9f\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eids:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/e03595989016a96400343dbaa03371a049656d50\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/e03595989016a96400343dbaa03371a049656d50\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elogging:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/652fd598fcd529c3da0563990bf7f4941b172f55\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/652fd598fcd529c3da0563990bf7f4941b172f55\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elooker:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/483cba2bbcd375f8c6808e6ad386f8279b622fb6\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/483cba2bbcd375f8c6808e6ad386f8279b622fb6\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emanagedkafka:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/94e3bc173770528969b1abd935ac393934f6fda4\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/94e3bc173770528969b1abd935ac393934f6fda4\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\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/googleapis/google-api-python-client/commit/623c34ff35b2a4b44bbc0e013073199d5aea4f5a\"\u003e\u003ccode\u003e623c34f\u003c/code\u003e\u003c/a\u003e chore(main): release 2.187.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2682\"\u003e#2682\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e\u003ccode\u003e8edf6d6\u003c/code\u003e\u003c/a\u003e chore: Update discovery artifacts (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2681\"\u003e#2681\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/98ba848a8b8dc3baac562122fc5fd115ee0cea1e\"\u003e\u003ccode\u003e98ba848\u003c/code\u003e\u003c/a\u003e chore(main): release 2.186.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2679\"\u003e#2679\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/86cb1335984094dad37bbf5e2148ef9b44dee5d9\"\u003e\u003ccode\u003e86cb133\u003c/code\u003e\u003c/a\u003e chore: Update discovery artifacts (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2678\"\u003e#2678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/33aee305b094e501517847552292a0f7e1ba8898\"\u003e\u003ccode\u003e33aee30\u003c/code\u003e\u003c/a\u003e chore(main): release 2.185.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2667\"\u003e#2667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8ee51c47a47db8e09997502f482e990b291cbb98\"\u003e\u003ccode\u003e8ee51c4\u003c/code\u003e\u003c/a\u003e chore: Update discovery artifacts (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2672\"\u003e#2672\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/bde091934f8392d920e9f96f44bc0af078fc6124\"\u003e\u003ccode\u003ebde0919\u003c/code\u003e\u003c/a\u003e chore(python): Add Python 3.14 to python post processor image (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2669\"\u003e#2669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/f32e6fa89eebee9b57d2fdd11c2e732a75bb7ffc\"\u003e\u003ccode\u003ef32e6fa\u003c/code\u003e\u003c/a\u003e chore: add googleapis/python-core-client-libraries as codeowner (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2670\"\u003e#2670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/0fb1cf3a3d292281a9ba0d378e3bc7c0a75ecc9c\"\u003e\u003ccode\u003e0fb1cf3\u003c/code\u003e\u003c/a\u003e feat: add support for 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2668\"\u003e#2668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/3850298de90deca18c5aac04f120fc15843fdc54\"\u003e\u003ccode\u003e3850298\u003c/code\u003e\u003c/a\u003e chore: Update discovery artifacts (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2666\"\u003e#2666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/google-api-python-client/compare/v2.184.0...v2.187.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-auth` from 2.41.1 to 2.45.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-auth-library-python/releases\"\u003egoogle-auth's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-auth 2.45.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.44.0...v2.45.0\"\u003e2.45.0\u003c/a\u003e (2025-12-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdding Agent Identity bound token support and handling certificate mismatches with retries (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1890\"\u003e#1890\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/b32c934e\"\u003eb32c934e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-auth 2.44.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.43.0...v2.44.0\"\u003e2.44.0\u003c/a\u003e (2025-12-12)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMDS connections use mTLS (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1856\"\u003e#1856\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0387bb95\"\u003e0387bb95\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003esupport Python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1822\"\u003e#1822\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0f7097e7\"\u003e0f7097e7\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eadd ecdsa p-384 support (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1872\"\u003e#1872\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/39c381a5\"\u003e39c381a5\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd shlex to correctly parse executable commands with spaces (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1855\"\u003e#1855\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/cf6fc3cc\"\u003ecf6fc3cc\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement token revocation in STS client and add revoke() metho… (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1849\"\u003e#1849\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/d5638986\"\u003ed5638986\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd temporary patch to workload cert logic to accomodate Cloud Run mis-configuration (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1880\"\u003e#1880\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/78de7907\"\u003e78de7907\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDelegate workload cert and key default lookup to helper function (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1877\"\u003e#1877\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/b0993c7e\"\u003eb0993c7e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse public refresh method for source credentials in ImpersonatedCredentials (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1884\"\u003e#1884\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/e0c3296f\"\u003ee0c3296f\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-auth 2.43.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.42.1...v2.43.0\"\u003e2.43.0\u003c/a\u003e (2025-11-05)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd public wrapper for _mtls_helper.check_use_client_cert which enables mTLS if GOOGLE_API_USE_CLIENT_CERTIFICATE is not set, when the MWID/X.509 cert sources detected (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1859\"\u003e#1859\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/1535eccb\"\u003e1535eccb\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eEnable mTLS if GOOGLE_API_USE_CLIENT_CERTIFICATE  is not set, if the MWID/X.509 cert sources detected (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1848\"\u003e#1848\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/395e405b\"\u003e395e405b\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eonboard \u003ccode\u003egoogle-auth\u003c/code\u003e to librarian (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1838\"\u003e#1838\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/c503eaa5\"\u003ec503eaa5\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.42.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.42.0...v2.42.1\"\u003e2.42.1\u003c/a\u003e (2025-10-30)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCatch ValueError for json.loads() (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1842\"\u003e#1842\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/b074cad460589633adfc6744c01726ae86f2aa2b\"\u003eb074cad\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.42.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-auth-library-python/blob/main/CHANGELOG...\n\n_Description has been truncated_","html_url":"https://github.com/cboneti/cluster-toolkit/pull/80","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/cboneti%2Fcluster-toolkit/issues/80","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/80/packages"},{"uuid":"3687828622","node_id":"PR_kwDOAG4Ac862tSZe","number":22929,"state":"closed","title":"Bump the python-version-updates group across 1 directory with 12 updates","user":"dependabot[bot]","labels":["dependencies","category:internal","release-notes:not-required"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-01-01T04:20:27.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-02T23:05:27.000Z","updated_at":"2026-01-01T04:20:28.000Z","time_to_close":2524500,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-version-updates","update_count":12,"packages":[{"name":"libcst","old_version":"1.8.5","new_version":"1.8.6","repository_url":"https://github.com/Instagram/LibCST"},{"name":"psutil","old_version":"5.9.8","new_version":"7.1.3","repository_url":"https://github.com/giampaolo/psutil"},{"name":"pytest","old_version":"8.4.1","new_version":"9.0.1","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"debugpy","old_version":"1.8.16","new_version":"1.8.17","repository_url":"https://github.com/microsoft/debugpy"},{"name":"pydevd-pycharm","old_version":"251.23536.40","new_version":"253.28294.256","repository_url":"https://github.com/JetBrains/intellij-community"},{"name":"fastapi","old_version":"0.120.1","new_version":"0.123.5","repository_url":"https://github.com/fastapi/fastapi"},{"name":"starlette","old_version":"0.49.1","new_version":"0.50.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"strawberry-graphql","old_version":"0.284.1","new_version":"0.287.0"},{"name":"beautifulsoup4","old_version":"4.11.1","new_version":"4.14.3"},{"name":"mypy","old_version":"1.18.2","new_version":"1.19.0","repository_url":"https://github.com/python/mypy"},{"name":"pytest-cov","old_version":"6.2.1","new_version":"7.0.0","repository_url":"https://github.com/pytest-dev/pytest-cov"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [libcst](https://github.com/Instagram/LibCST), [psutil](https://github.com/giampaolo/psutil), [pytest](https://github.com/pytest-dev/pytest), [debugpy](https://github.com/microsoft/debugpy), [pydevd-pycharm](https://github.com/JetBrains/intellij-community), [fastapi](https://github.com/fastapi/fastapi), [starlette](https://github.com/Kludex/starlette), [strawberry-graphql[fastapi]](https://github.com/strawberry-graphql/strawberry), [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/), [mypy](https://github.com/python/mypy), [pytest-cov](https://github.com/pytest-dev/pytest-cov) and [flake8](https://github.com/pycqa/flake8) to permit the latest version.\nUpdates `libcst` from 1.8.5 to 1.8.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/releases\"\u003elibcst's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.8.6\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate pyproject.toml for 3.14t by \u003ca href=\"https://github.com/itamaro\"\u003e\u003ccode\u003e@​itamaro\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1417\"\u003eInstagram/LibCST#1417\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate PyO3 to 0.26 by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1413\"\u003eInstagram/LibCST#1413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake CodemodCommand's supported_transforms order deterministic by \u003ca href=\"https://github.com/frvnkliu\"\u003e\u003ccode\u003e@​frvnkliu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1424\"\u003eInstagram/LibCST#1424\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/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1413\"\u003eInstagram/LibCST#1413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frvnkliu\"\u003e\u003ccode\u003e@​frvnkliu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1424\"\u003eInstagram/LibCST#1424\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.5...v1.8.6\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.5...v1.8.6\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/blob/main/CHANGELOG.md\"\u003elibcst's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.8.6 - 2025-11-03\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate pyproject.toml for 3.14t by \u003ca href=\"https://github.com/itamaro\"\u003e\u003ccode\u003e@​itamaro\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1417\"\u003eInstagram/LibCST#1417\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate PyO3 to 0.26 by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1413\"\u003eInstagram/LibCST#1413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake CodemodCommand's supported_transforms order deterministic by \u003ca href=\"https://github.com/frvnkliu\"\u003e\u003ccode\u003e@​frvnkliu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1424\"\u003eInstagram/LibCST#1424\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/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1413\"\u003eInstagram/LibCST#1413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frvnkliu\"\u003e\u003ccode\u003e@​frvnkliu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1424\"\u003eInstagram/LibCST#1424\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.5...v1.8.6\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.5...v1.8.6\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/Instagram/LibCST/commit/9275a8bf7875d08659ce7b266860138bba633410\"\u003e\u003ccode\u003e9275a8b\u003c/code\u003e\u003c/a\u003e bump version to 1.8.6 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1425\"\u003e#1425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/b66c0e28229fd91ac145f1a56d7d884e6f8587b4\"\u003e\u003ccode\u003eb66c0e2\u003c/code\u003e\u003c/a\u003e [CodemodCommand] Make \u003ccode\u003etransform_module\u003c/code\u003e \u003ccode\u003esupported_transforms\u003c/code\u003e order determi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/c2169d240b5011ea820dc18d7a2452f182c2c5d3\"\u003e\u003ccode\u003ec2169d2\u003c/code\u003e\u003c/a\u003e Update PyO3 to 0.26 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1413\"\u003e#1413\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/73b17d8449034b520e7128c8a4bd100674d1e78c\"\u003e\u003ccode\u003e73b17d8\u003c/code\u003e\u003c/a\u003e Update pyproject.toml for 3.14t (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1417\"\u003e#1417\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/421f7d34004de18391014319ec6a818322637a8d\"\u003e\u003ccode\u003e421f7d3\u003c/code\u003e\u003c/a\u003e build(deps): bump pypa/cibuildwheel from 3.1.4 to 3.2.1 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1414\"\u003e#1414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/129b20f4769a2b26b41b262fb88f9aaf8754930b\"\u003e\u003ccode\u003e129b20f\u003c/code\u003e\u003c/a\u003e build(deps): bump github/codeql-action from 3 to 4 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1415\"\u003e#1415\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/6f5da5f99873e4c17e32ca221a3ddde3fb1ea354\"\u003e\u003ccode\u003e6f5da5f\u003c/code\u003e\u003c/a\u003e build(deps): bump astral-sh/setup-uv from 6 to 7 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1416\"\u003e#1416\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.5...v1.8.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psutil` from 5.9.8 to 7.1.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/giampaolo/psutil/blob/master/HISTORY.rst\"\u003epsutil's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e7.1.3\u003c/h1\u003e\n\u003cp\u003e2025-11-02\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2667_: enforce \u003ccode\u003eclang-format\u003c/code\u003e on all C and header files. It is now the\nmandatory formatting style for all C sources.\u003c/li\u003e\n\u003cli\u003e2672_, [macOS], [BSD]: increase the chances to recognize zombie processes and\nraise the appropriate exception (\u003ccode\u003eZombieProcess\u003c/code\u003e_).\u003c/li\u003e\n\u003cli\u003e2676_, 2678_: replace unsafe \u003ccode\u003esprintf\u003c/code\u003e / \u003ccode\u003esnprintf\u003c/code\u003e / \u003ccode\u003esprintf_s\u003c/code\u003e calls with\n\u003ccode\u003estr_format()\u003c/code\u003e. Replace \u003ccode\u003estrlcat\u003c/code\u003e / \u003ccode\u003estrlcpy\u003c/code\u003e with safe \u003ccode\u003estr_copy\u003c/code\u003e /\n\u003ccode\u003estr_append\u003c/code\u003e. This unifies string handling across platforms and reduces\nunsafe usage of standard string functions, improving robustness.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2674_, [Windows]: \u003ccode\u003edisk_usage()\u003c/code\u003e_ could truncate values on 32-bit platforms,\npotentially reporting incorrect total/free/used space for drives larger than\n4GB.\u003c/li\u003e\n\u003cli\u003e2675_, [macOS]: \u003ccode\u003eProcess.status()\u003c/code\u003e_ incorrectly returns \u0026quot;running\u0026quot; for 99%\nof the processes.\u003c/li\u003e\n\u003cli\u003e2677_, [Windows]: fix MAC address string construction in \u003ccode\u003enet_if_addrs()\u003c/code\u003e_.\nPreviously, the MAC address buffer was incorrectly updated using a fixed\nincrement and \u003ccode\u003esprintf_s\u003c/code\u003e, which could overflow or misformat the\nstring if the MAC length or formatting changed. Also, the final '\\n' was\ninserted unnecessarily.\u003c/li\u003e\n\u003cli\u003e2679_, [OpenBSD], [NetBSD], [critical]: can't build due to C syntax error.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e7.1.2\u003c/h1\u003e\n\u003cp\u003e2025-10-25\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2657_: stop publishing prebuilt Linux and Windows wheels for 32-bit Python.\n32-bit CPython is still supported, but psutil must now be built from source.\n2565_: produce wheels for free-thread cPython 3.13 and 3.14 (patch by\nLysandros Nikolaou)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2650_, [macOS]: \u003ccode\u003eProcess.cmdline()\u003c/code\u003e_ and \u003ccode\u003eProcess.environ()\u003c/code\u003e_ may incorrectly\nraise \u003ccode\u003eNoSuchProcess\u003c/code\u003e_ instead of \u003ccode\u003eZombieProcess\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003e2658_, [macOS]: double \u003ccode\u003efree()\u003c/code\u003e in \u003ccode\u003eProcess.environ()\u003c/code\u003e_ when it fails\ninternally. This posed a risk of segfault.\u003c/li\u003e\n\u003cli\u003e2662_, [macOS]: massive C code cleanup to guard against possible segfaults\nwhich were (not so) sporadically spotted on CI.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/5904ff94e3fd0fea3d0734a936834bef6e63369a\"\u003e\u003ccode\u003e5904ff9\u003c/code\u003e\u003c/a\u003e Pre-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/d42db80660b719c91b387b9c6400d43e7a7839bb\"\u003e\u003ccode\u003ed42db80\u003c/code\u003e\u003c/a\u003e Update DEVGUIDE.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/e4e100300c68c86b6bec4a28e5a0ed8035e7f647\"\u003e\u003ccode\u003ee4e1003\u003c/code\u003e\u003c/a\u003e psutil_kinfo_proc: return in case of badargs; also print to stderr in case of...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/bcdede485b346f65ee8109b18e0a03d1cd3fc462\"\u003e\u003ccode\u003ebcdede4\u003c/code\u003e\u003c/a\u003e Introduce PSUTIL_TESTING mode. Terminate execution if str_* funcs fail\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/6822ba73e56a9ff289dadc3cd6d804aa13c3e869\"\u003e\u003ccode\u003e6822ba7\u003c/code\u003e\u003c/a\u003e Replace \u003ccode\u003estrlcat/strlcpy\u003c/code\u003e with safe \u003ccode\u003estr_copy/str_append\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2678\"\u003e#2678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/0a7465c354688061847a44f17df182ccce14e362\"\u003e\u003ccode\u003e0a7465c\u003c/code\u003e\u003c/a\u003e Windows: use str_format() in psutil_users().\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/fd05690da26faedb7b01753fb56f6323b1bdda30\"\u003e\u003ccode\u003efd05690\u003c/code\u003e\u003c/a\u003e [Windows] fix MAC address string construction in \u003ccode\u003enet_if_addrs()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2677\"\u003e#2677\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/7d821358201eb39278fa604ea04745e9fbcae27e\"\u003e\u003ccode\u003e7d82135\u003c/code\u003e\u003c/a\u003e NetBSD: refact proc cwd()\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/262977f655037071ce0d0d884f8d8c7ec8f3ca16\"\u003e\u003ccode\u003e262977f\u003c/code\u003e\u003c/a\u003e Replace unsafe \u003ccode\u003esprintf/snprintf/sprintf_s\u003c/code\u003e calls with \u003ccode\u003estr_format()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2676\"\u003e#2676\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/1ba3cf53a89d0e097848933a4e751e7cbce40be7\"\u003e\u003ccode\u003e1ba3cf5\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2675\"\u003e#2675\u003c/a\u003e / macOS: convert process status() to a meaningful value\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/giampaolo/psutil/compare/release-5.9.8...release-7.1.3\"\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 9.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.1\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.1 (2025-11-12)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13895\"\u003e#13895\u003c/a\u003e: Restore support for skipping tests via \u003ccode\u003eraise unittest.SkipTest\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress plugin added in pytest 9.0 is now automatically disabled when iTerm2 is detected, it generated desktop notifications instead of the desired functionality.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the verbosity settings in the API reference from number to string.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13910\"\u003e#13910\u003c/a\u003e: Fixed \u003c!-- raw HTML omitted --\u003eUserWarning: Do not expect file_or_dir\u003c!-- raw HTML omitted --\u003e on some earlier Python 3.12 and 3.13 point versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePackaging updates and notes for downstreams\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13891\"\u003e#13891\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13942\"\u003e#13942\u003c/a\u003e: The CI/CD part of the release automation is now capable of\ncreating GitHub Releases without having a Git checkout on\ndisk -- by \u003ccode\u003ebluetech\u003c/code\u003e and \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e9.0.0\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.0 (2025-11-05)\u003c/h1\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/1367\"\u003e#1367\u003c/a\u003e: \u003cstrong\u003eSupport for subtests\u003c/strong\u003e has been added.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003esubtests \u0026lt;subtests\u0026gt;\u003c/code\u003e are an alternative to parametrization, useful in situations where the parametrization values are not all known at collection time.\u003c/p\u003e\n\u003cp\u003eExample:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003edef contains_docstring(p: Path) -\u0026gt; bool:\n    \u0026quot;\u0026quot;\u0026quot;Return True if the given Python file contains a top-level docstring.\u0026quot;\u0026quot;\u0026quot;\n    ...\n\u003cp\u003edef test_py_files_contain_docstring(subtests: pytest.Subtests) -\u0026gt; None:\u003cbr /\u003e\nfor path in Path.cwd().glob(\u0026quot;*.py\u0026quot;):\u003cbr /\u003e\nwith subtests.test(path=str(path)):\u003cbr /\u003e\nassert contains_docstring(path)\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/d1b64aa60b9e1a0fcfaf03af7ebeb185f1024a87\"\u003e\u003ccode\u003ed1b64aa\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/0a497c7b213ea950821319fd80dce219b0033f32\"\u003e\u003ccode\u003e0a497c7\u003c/code\u003e\u003c/a\u003e regendoc: remove CI environment variables (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13950\"\u003e#13950\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13951\"\u003e#13951\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a9f7e6ed579b8844e302067b7f05122b82993355\"\u003e\u003ccode\u003ea9f7e6e\u003c/code\u003e\u003c/a\u003e 🧪 Run \u003ccode\u003egh release\u003c/code\u003e w/o Git in CI/CD (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13942\"\u003e#13942\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13947\"\u003e#13947\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/2682a6607304f1f5bb5a2140340003cdf5121bc4\"\u003e\u003ccode\u003e2682a66\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13944\"\u003e#13944\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/bef7d34f1...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a999997e36c53d189ecded3369bf35bfe2be96ad\"\u003e\u003ccode\u003ea999997\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13941\"\u003e#13941\u003c/a\u003e from nicoddemus/min-pre-commit-version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/4bd63a0ead81d740aa767a4384d3b0b4c18f2ef2\"\u003e\u003ccode\u003e4bd63a0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13935\"\u003e#13935\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/ce8b8a7b4...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/15f93b332c1c3ec9c200c0ad3d55af5a2158e0db\"\u003e\u003ccode\u003e15f93b3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e from webknjaz/maintenance/tox-pep517-env-setuptools...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/0fa11ae3f79d06dc9e2f1f7c81ade4a1126d9ef3\"\u003e\u003ccode\u003e0fa11ae\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13927\"\u003e#13927\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/3d8075743...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/fa454700133c7b2cc960cba3b1cd09cc048c25a0\"\u003e\u003ccode\u003efa45470\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13926\"\u003e#13926\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d587e0cf8...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b4e3973505a2b7a2caa17ccc392d91a6ad73e122\"\u003e\u003ccode\u003eb4e3973\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13922\"\u003e#13922\u003c/a\u003e from bluetech/fix-argparse-userwarning\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.4.1...9.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `debugpy` from 1.8.16 to 1.8.17\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/microsoft/debugpy/releases\"\u003edebugpy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003edebugpy v1.8.17\u003c/h2\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/6cbdf8767e4c88dfaedf3db7b09ce2781496fc51\"\u003eDebug attach for 3.14\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/microsoft/debugpy/commit/6cbdf8767e4c88dfaedf3db7b09ce2781496fc51\"\u003e\u003ccode\u003e6cbdf87\u003c/code\u003e\u003c/a\u003e update testing for python 3.14 (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1955\"\u003e#1955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/2eb3afede0dd5b3c6229a2b8849efbfa18b3e078\"\u003e\u003ccode\u003e2eb3afe\u003c/code\u003e\u003c/a\u003e Check if \u003ccode\u003eos.__file__\u003c/code\u003e is available before using it (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1944\"\u003e#1944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/microsoft/debugpy/compare/v1.8.16...v1.8.17\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydevd-pycharm` from 251.23536.40 to 253.28294.256\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/fae0e058c8f88a0be55bfc464af18e4f93e81752\"\u003e\u003ccode\u003efae0e05\u003c/code\u003e\u003c/a\u003e JEWEL-1160 Explicitly disable usage of a Compose Foundation new context menu ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/5f56c914563520ce207e44cd8b13a2d5ca851a5a\"\u003e\u003ccode\u003e5f56c91\u003c/code\u003e\u003c/a\u003e [JEWEL-1158, JEWEL-1159] Fix multiple issues with text context menus\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/464d56e0841dc5b6aa32e9e143184fe201ee043d\"\u003e\u003ccode\u003e464d56e\u003c/code\u003e\u003c/a\u003e IJPL-219405 [build scripts]: using an \u003ca href=\"https://github.com/arg\"\u003e\u003ccode\u003e@​arg\u003c/code\u003e\u003c/a\u003e file in the Windows script launche...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/09f748d06818af7faf4075d8726c2a12dce0a1b5\"\u003e\u003ccode\u003e09f748d\u003c/code\u003e\u003c/a\u003e Move \u003ccode\u003ewithImage\u003c/code\u003e method in GotItTooltip API to \u003ccode\u003eapi-dump-unreviewed\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/03394356707541956fceabe4096b70e90d51dbd5\"\u003e\u003ccode\u003e0339435\u003c/code\u003e\u003c/a\u003e IJPL-209376 light virtual files can have any context\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/00ff371a5cc8815cfdaaf5dfa4e14c3d4e77bc85\"\u003e\u003ccode\u003e00ff371\u003c/code\u003e\u003c/a\u003e PY-85473/PY-85475 black/lsp modal use of \u003ccode\u003eforSdk\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/f9fb715e80c3395d5e8c188f8e3ec06d7eab23fd\"\u003e\u003ccode\u003ef9fb715\u003c/code\u003e\u003c/a\u003e [python] RELEASE-578: PyCharm 2025.3 RC\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/9465c4b585c30f2bf1c0cd2a72ce15ff289eb1fd\"\u003e\u003ccode\u003e9465c4b\u003c/code\u003e\u003c/a\u003e PY-25989 PY-84544 Widen types during type parameters substitution\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/3e9fa8d2dd7bcecc88790568ca618a6de810211d\"\u003e\u003ccode\u003e3e9fa8d\u003c/code\u003e\u003c/a\u003e [python]: PY-85585 : Do not display vens as system pythons in \u0026quot;Add new interp...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/f26e31b994d363b7485d9d3857616863ce4ea19b\"\u003e\u003ccode\u003ef26e31b\u003c/code\u003e\u003c/a\u003e [python]: PY-85585 : (WIP) Introduce method to map errors\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/intellij-community/compare/pycharm/251.23536.40...pycharm/253.28294.256\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi` from 0.120.1 to 0.123.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.123.5\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Allow using dependables with \u003ccode\u003efunctools.partial()\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/9753\"\u003e#9753\u003c/a\u003e by \u003ca href=\"https://github.com/lieryan\"\u003e\u003ccode\u003e@​lieryan\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✨ Add support for wrapped functions (e.g. \u003ccode\u003e@functools.wraps()\u003c/code\u003e) used with forward references. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/5077\"\u003e#5077\u003c/a\u003e by \u003ca href=\"https://github.com/lucaswiman\"\u003e\u003ccode\u003e@​lucaswiman\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✨ Handle wrapped dependencies. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/9555\"\u003e#9555\u003c/a\u003e by \u003ca href=\"https://github.com/phy1729\"\u003e\u003ccode\u003e@​phy1729\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix optional sequence handling with new union syntax from Python 3.10. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14430\"\u003e#14430\u003c/a\u003e 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\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔥 Remove dangling extra condiitonal no longer needed. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14435\"\u003e#14435\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e♻️ Refactor internals, update \u003ccode\u003eis_coroutine\u003c/code\u003e check to reuse internal supported variants (unwrap, check class). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14434\"\u003e#14434\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🌐 Sync German docs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14367\"\u003e#14367\u003c/a\u003e by \u003ca href=\"https://github.com/nilslindemann\"\u003e\u003ccode\u003e@​nilslindemann\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.123.4\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix OpenAPI schema support for computed fields when using \u003ccode\u003eseparate_input_output_schemas=False\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/13207\"\u003e#13207\u003c/a\u003e by \u003ca href=\"https://github.com/vgrafe\"\u003e\u003ccode\u003e@​vgrafe\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Fix docstring of \u003ccode\u003eservers\u003c/code\u003e parameter. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14405\"\u003e#14405\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.123.3\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix Query\\Header\\Cookie parameter model alias. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14360\"\u003e#14360\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🐛 Fix optional sequence handling in \u003ccode\u003eserialize sequence value\u003c/code\u003e with Pydantic V2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14297\"\u003e#14297\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.123.2\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix unformatted \u003ccode\u003e{type_}\u003c/code\u003e in FastAPIError. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14416\"\u003e#14416\u003c/a\u003e by \u003ca href=\"https://github.com/Just-Helpful\"\u003e\u003ccode\u003e@​Just-Helpful\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🐛 Fix parsing extra non-body parameter list. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14356\"\u003e#14356\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🐛 Fix parsing extra \u003ccode\u003eForm\u003c/code\u003e parameter list. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14303\"\u003e#14303\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🐛 Fix support for form values with empty strings interpreted as missing (\u003ccode\u003eNone\u003c/code\u003e if that's the default), for compatibility with HTML forms. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/13537\"\u003e#13537\u003c/a\u003e by \u003ca href=\"https://github.com/MarinPostma\"\u003e\u003ccode\u003e@​MarinPostma\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Add tip on how to install \u003ccode\u003epip\u003c/code\u003e in case of \u003ccode\u003eNo module named pip\u003c/code\u003e error in \u003ccode\u003evirtual-environments.md\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14211\"\u003e#14211\u003c/a\u003e by \u003ca href=\"https://github.com/zadevhub\"\u003e\u003ccode\u003e@​zadevhub\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update Primary Key notes for the SQL databases tutorial to avoid confusion. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14120\"\u003e#14120\u003c/a\u003e by \u003ca href=\"https://github.com/FlaviusRaducu\"\u003e\u003ccode\u003e@​FlaviusRaducu\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Clarify estimation note in documentation. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14070\"\u003e#14070\u003c/a\u003e by \u003ca href=\"https://github.com/SaisakthiM\"\u003e\u003ccode\u003e@​SaisakthiM\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.123.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/fastapi/fastapi/commit/c57ac7bdf3613798c94caceff562a41fa16d4a2d\"\u003e\u003ccode\u003ec57ac7b\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.123.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/3c440c762a8b49d13f54fb586467e7870f9604b3\"\u003e\u003ccode\u003e3c440c7\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/982448661630e2f412f18a192eed29d0da4a8fb1\"\u003e\u003ccode\u003e9824486\u003c/code\u003e\u003c/a\u003e ✨ Allow using dependables with \u003ccode\u003efunctools.partial()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/9753\"\u003e#9753\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/aee8e78078e8a7f2736d3cab7a1cb7197356951c\"\u003e\u003ccode\u003eaee8e78\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/f4a17b7568514092f8a65e1863a32d5c67a4d842\"\u003e\u003ccode\u003ef4a17b7\u003c/code\u003e\u003c/a\u003e 🌐 Sync German docs (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14367\"\u003e#14367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4ade6d62e2274e596e396dfde368d32879d935b6\"\u003e\u003ccode\u003e4ade6d6\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/1c1e584abd5cb98920bf22966f7a8b79d3ec64be\"\u003e\u003ccode\u003e1c1e584\u003c/code\u003e\u003c/a\u003e ✨ Add support for wrapped functions (e.g. \u003ccode\u003e@functools.wraps()\u003c/code\u003e) used with for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/930b27e5fa32ce150ddcea61f0c913435ae71c83\"\u003e\u003ccode\u003e930b27e\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/80d69ae0bb393c728c61c41086b770237b7b676c\"\u003e\u003ccode\u003e80d69ae\u003c/code\u003e\u003c/a\u003e 🐛 Fix optional sequence handling with new union syntax from Python 3.10 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14430\"\u003e#14430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cff2236dacb7aedcaf2d2de0873cfbc9bb2b897a\"\u003e\u003ccode\u003ecff2236\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.120.1...0.123.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `starlette` from 0.49.1 to 0.50.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/releases\"\u003estarlette's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.50.0\u003c/h2\u003e\n\u003ch2\u003eRemoved\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3061\"\u003e#3061\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.49.3...0.50.0\"\u003ehttps://github.com/Kludex/starlette/compare/0.49.3...0.50.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.49.3\u003c/h2\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRelax strictness on \u003ccode\u003eMiddleware\u003c/code\u003e type \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3059\"\u003e#3059\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.49.2...0.49.3\"\u003ehttps://github.com/Kludex/starlette/compare/0.49.2...0.49.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.49.2\u003c/h2\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore \u003ccode\u003eif-modified-since\u003c/code\u003e header if \u003ccode\u003eif-none-match\u003c/code\u003e is present in \u003ccode\u003eStaticFiles\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3044\"\u003e#3044\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.49.1...0.49.2\"\u003ehttps://github.com/Kludex/starlette/compare/0.49.1...0.49.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/blob/main/docs/release-notes.md\"\u003estarlette's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.50.0 (November 1, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3061\"\u003e#3061\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.49.3 (November 1, 2025)\u003c/h2\u003e\n\u003cp\u003eThis is the last release that supports Python 3.9, which will be dropped in the next minor release.\u003c/p\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eRelax strictness on \u003ccode\u003eMiddleware\u003c/code\u003e type \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3059\"\u003e#3059\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.49.2 (November 1, 2025)\u003c/h2\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore \u003ccode\u003eif-modified-since\u003c/code\u003e header if \u003ccode\u003eif-none-match\u003c/code\u003e is present in \u003ccode\u003eStaticFiles\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3044\"\u003e#3044\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/4941b4a04993d087dea66e9287fe9472babee879\"\u003e\u003ccode\u003e4941b4a\u003c/code\u003e\u003c/a\u003e Version 0.50.0 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3063\"\u003e#3063\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/a0499f60a6f13b8b42381d70bafc076b6ece4eee\"\u003e\u003ccode\u003ea0499f6\u003c/code\u003e\u003c/a\u003e Drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3061\"\u003e#3061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/de3ffecaeadd34612f71495374f5853edbda1bf2\"\u003e\u003ccode\u003ede3ffec\u003c/code\u003e\u003c/a\u003e Version 0.49.3 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3062\"\u003e#3062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/c4433960ccc07289e0963df94dc5c2746f07ca1a\"\u003e\u003ccode\u003ec443396\u003c/code\u003e\u003c/a\u003e Relax strictness on \u003ccode\u003eMiddleware\u003c/code\u003e type (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3059\"\u003e#3059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/85bf0275fbf26f5a7fef539a03bebfeb125b9ea3\"\u003e\u003ccode\u003e85bf027\u003c/code\u003e\u003c/a\u003e Version 0.49.2 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3058\"\u003e#3058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/3d480dd7d5adf474d0736c67a2a3064e88226837\"\u003e\u003ccode\u003e3d480dd\u003c/code\u003e\u003c/a\u003e Ignore \u003ccode\u003eif-modified-since\u003c/code\u003e if \u003ccode\u003eif-none-match\u003c/code\u003e is present (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3057\"\u003e#3057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/da0605243010715356be69693a524f2300011948\"\u003e\u003ccode\u003eda06052\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3056\"\u003e#3056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/34caa9900f47b9ab5afffa5f4ee148a00940f622\"\u003e\u003ccode\u003e34caa99\u003c/code\u003e\u003c/a\u003e Add groups configuration for GitHub Actions (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3055\"\u003e#3055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Kludex/starlette/compare/0.49.1...0.50.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `strawberry-graphql[fastapi]` from 0.284.1 to 0.287.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/strawberry-graphql/strawberry/releases\"\u003estrawberry-graphql[fastapi]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e🍓 0.287.0\u003c/h2\u003e\n\u003cp\u003eChange \u003ccode\u003estrawberry.http.base.BaseView.encode_json()\u003c/code\u003e type hint to \u003ccode\u003estr | bytes\u003c/code\u003e and adjust dependent code appropriately.\u003c/p\u003e\n\u003cp\u003eReleases contributed by \u003ca href=\"https://github.com/Brandieee\"\u003e\u003ccode\u003e@​Brandieee\u003c/code\u003e\u003c/a\u003e via \u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4054\"\u003e#4054\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e🍓 0.286.1\u003c/h2\u003e\n\u003cp\u003eSet Content-Type to \u003ccode\u003etext/plain\u003c/code\u003e for exceptions so that these are displayed\ncorrectly.\u003c/p\u003e\n\u003cp\u003eReleases contributed by \u003ca href=\"https://github.com/mgorven\"\u003e\u003ccode\u003e@​mgorven\u003c/code\u003e\u003c/a\u003e via \u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4037\"\u003e#4037\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e🍓 0.286.0\u003c/h2\u003e\n\u003cp\u003eThis release changes \u003ccode\u003e_enum_definition\u003c/code\u003e to \u003ccode\u003e__strawberry_definition__\u003c/code\u003e, this is a follow up to previous\ninternal changes. If you were relying on \u003ccode\u003e_enum_definition\u003c/code\u003e you should update your code to use \u003ccode\u003e__strawberry_definition__\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eWe also expose \u003ccode\u003ehas_enum_definition\u003c/code\u003e to check if a type is a strawberry enum definition.\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003efrom enum import Enum\nimport strawberry\nfrom strawberry.types.enum import StrawberryEnumDefinition, has_enum_definition\n\u003cp\u003e\u003ca href=\"https://github.com/strawberry\"\u003e\u003ccode\u003e@​strawberry\u003c/code\u003e\u003c/a\u003e.enum\nclass ExampleEnum(Enum):\npass\u003c/p\u003e\n\u003cp\u003ehas_enum_definition(ExampleEnum)  # True\u003c/p\u003e\n\u003ch1\u003eNow you can use ExampleEnum.\u003cstrong\u003estrawberry_definition\u003c/strong\u003e to access the enum definition\u003c/h1\u003e\n\u003cp\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eReleases contributed by \u003ca href=\"https://github.com/Ckk3\"\u003e\u003ccode\u003e@​Ckk3\u003c/code\u003e\u003c/a\u003e via \u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/3999\"\u003e#3999\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e🍓 0.285.0\u003c/h2\u003e\n\u003cp\u003eThis release removes support for Apollo Federation v1 and improves Federation v2 support with explicit version control and new directives.\u003c/p\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eRemoved support for Apollo Federation v1\u003c/strong\u003e: All schemas now use Federation v2\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRemoved \u003ccode\u003eenable_federation_2\u003c/code\u003e parameter\u003c/strong\u003e: Replaced with \u003ccode\u003efederation_version\u003c/code\u003e parameter\u003c/li\u003e\n\u003cli\u003eFederation v2 is now always enabled with version 2.11 as the default\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMigration\u003c/h2\u003e\n\u003ch3\u003eIf you were using \u003ccode\u003eenable_federation_2=True\u003c/code\u003e\u003c/h3\u003e\n\u003cp\u003eRemove the parameter:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt; \n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/strawberry-graphql/strawberry/blob/main/CHANGELOG.md\"\u003estrawberry-graphql[fastapi]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.287.0 - 2025-11-22\u003c/h2\u003e\n\u003cp\u003eChange \u003ccode\u003estrawberry.http.base.BaseView.encode_json()\u003c/code\u003e type hint to \u003ccode\u003estr | bytes\u003c/code\u003e and adjust dependent code appropriately.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/Brandieee\"\u003eDavid\u003c/a\u003e via [PR \u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4054\"\u003e#4054\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/pull/4054/\"\u003estrawberry-graphql/strawberry#4054\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003e0.286.1 - 2025-11-21\u003c/h2\u003e\n\u003cp\u003eSet Content-Type to \u003ccode\u003etext/plain\u003c/code\u003e for exceptions so that these are displayed\ncorrectly.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/mgorven\"\u003eMichael Gorven\u003c/a\u003e via [PR \u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4037\"\u003e#4037\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/pull/4037/\"\u003estrawberry-graphql/strawberry#4037\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003e0.286.0 - 2025-11-18\u003c/h2\u003e\n\u003cp\u003eThis release changes \u003ccode\u003e_enum_definition\u003c/code\u003e to \u003ccode\u003e__strawberry_definition__\u003c/code\u003e, this is a follow up to previous\ninternal changes. If you were relying on \u003ccode\u003e_enum_definition\u003c/code\u003e you should update your code to use \u003ccode\u003e__strawberry_definition__\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eWe also expose \u003ccode\u003ehas_enum_definition\u003c/code\u003e to check if a type is a strawberry enum definition.\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003efrom enum import Enum\nimport strawberry\nfrom strawberry.types.enum import StrawberryEnumDefinition, has_enum_definition\n\u003cp\u003e\u003ca href=\"https://github.com/strawberry\"\u003e\u003ccode\u003e@​strawberry\u003c/code\u003e\u003c/a\u003e.enum\nclass ExampleEnum(Enum):\npass\u003c/p\u003e\n\u003cp\u003ehas_enum_definition(ExampleEnum)  # True\u003c/p\u003e\n\u003ch1\u003eNow you can use ExampleEnum.\u003cstrong\u003estrawberry_definition\u003c/strong\u003e to access the enum definition\u003c/h1\u003e\n\u003cp\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/Ckk3\"\u003eLuis Gustavo\u003c/a\u003e via [PR \u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/3999\"\u003e#3999\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/pull/3999/\"\u003estrawberry-graphql/strawberry#3999\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003e0.285.0 - 2025-11-10\u003c/h2\u003e\n\u003cp\u003eThis release removes support for Apollo Federation v1 and improves Federation v2 support with explicit version control and new directives.\u003c/p\u003e\n\u003ch2\u003eBreaking Changes\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/strawberry-graphql/strawberry/commit/b58982ba8e771ea422126b9da0f801020ae8e05b\"\u003e\u003ccode\u003eb58982b\u003c/code\u003e\u003c/a\u003e Release 🍓 0.287.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/97d9b521b95aae590c3d8b83f37ae8e3c4713aca\"\u003e\u003ccode\u003e97d9b52\u003c/code\u003e\u003c/a\u003e Update encode_json type hint to str | bytes (\u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4054\"\u003e#4054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/bdb57b5e4b59e79c252f2ea7104bdf6fb1c0639a\"\u003e\u003ccode\u003ebdb57b5\u003c/code\u003e\u003c/a\u003e Release 🍓 0.286.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/2437857582b3678222d20ddc318c53d6783f120e\"\u003e\u003ccode\u003e2437857\u003c/code\u003e\u003c/a\u003e Fix Content-Type for HTTP exceptions (\u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4037\"\u003e#4037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/2865feac95b0fa915a2a517ff8cbee819626e97f\"\u003e\u003ccode\u003e2865fea\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4036\"\u003e#4036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/223970771dd682b21b19a4e16fbdc67d11d41ad0\"\u003e\u003ccode\u003e2239707\u003c/code\u003e\u003c/a\u003e Release 🍓 0.286.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/9baeb37e8016e7500047ca021474c833f0c6c04b\"\u003e\u003ccode\u003e9baeb37\u003c/code\u003e\u003c/a\u003e Replace EnumDefinition with StrawberryEnum (\u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/3999\"\u003e#3999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/043d68520e30afd8e6d8917e3b21e049459664e9\"\u003e\u003ccode\u003e043d685\u003c/code\u003e\u003c/a\u003e Release 🍓 0.285.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/211365aa087b5fb012270306f8c58bc01da034de\"\u003e\u003ccode\u003e211365a\u003c/code\u003e\u003c/a\u003e Improve support for Apollo Federation; Remove support for Federation 1 (\u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4045\"\u003e#4045\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/1a4768e9edb5ca6e65e88199bfd5a0c33021c2b1\"\u003e\u003ccode\u003e1a4768e\u003c/code\u003e\u003c/a\u003e Release 🍓 0.284.4\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/strawberry-graphql/strawberry/compare/0.284.1...0.287.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `beautifulsoup4` from 4.11.1 to 4.14.3\n\nUpdates `mypy` from 1.18.2 to 1.19.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\u003ch3\u003eDrop Support for Python 3.9\u003c/h3\u003e\n\u003cp\u003eMypy no longer supports running with Python 3.9, which has reached end-of-life.\nWhen running mypy with Python 3.10+, it is still possible to type check code\nthat needs to support Python 3.9 with the \u003ccode\u003e--python-version 3.9\u003c/code\u003e argument.\nSupport for this will be dropped in the first half of 2026!\u003c/p\u003e\n\u003cp\u003eContributed by Marc Mueller (PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20156\"\u003e20156\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003eMypy 1.19\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.19.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\u003ePython 3.9 Support Ending Soon\u003c/h3\u003e\n\u003cp\u003eThis is the last mypy feature release that supports Python 3.9, which reached\nend of life in October 2025.\u003c/p\u003e\n\u003ch3\u003ePerformance Improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch to a more dynamic SCC processing logic (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20053\"\u003e20053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSpeed up type aliases (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19810\"\u003e19810\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed‑Format Cache Improvements\u003c/h3\u003e\n\u003cp\u003eMypy uses a cache by default to speed up incremental runs by reusing partial results\nfrom earlier runs. Mypy 1.18 added a new binary fixed-format cache representation as\nan experimental feature. The feature is no longer experimental, and we are planning\nto enable it by default in a future mypy release (possibly 1.20), since it's faster\nand uses less space than the original, JSON-based cache format. Use\n\u003ccode\u003e--fixed-format-cache\u003c/code\u003e to enable the fixed-format cache.\u003c/p\u003e\n\u003cp\u003eMypy now has an extra dependency on the \u003ccode\u003elibrt\u003c/code\u003e PyPI package, as it's needed for\ncache serialization and deserialization.\u003c/p\u003e\n\u003cp\u003eMypy ships with a tool to convert fixed-format cache files to the old JSON format.\nExample of how to use this:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e$ python -m mypy.exportjson .mypy_cache/.../my_module.data.ff\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/0f068c9ec604daa09e69c92545b059f4b44f566e\"\u003e\u003ccode\u003e0f068c9\u003c/code\u003e\u003c/a\u003e Remove +dev\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/6d5cf52e67da306b62455cdce4ce9a9ccec35d02\"\u003e\u003ccode\u003e6d5cf52\u003c/code\u003e\u003c/a\u003e Various updates to 1.19 changelog (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20304\"\u003e#20304\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/3c813083b27c87cf3a32e7422191b02bf59fab6e\"\u003e\u003ccode\u003e3c81308\u003c/code\u003e\u003c/a\u003e Add draft version of 1.19 release notes (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20296\"\u003e#20296\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/1999a20e9898f673fa2f4c9a91790c075141ba71\"\u003e\u003ccode\u003e1999a20\u003c/code\u003e\u003c/a\u003e [mypyc] librt base64: use existing SIMD CPU dispatch by customizing build fla...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/1b94fbb9fbc581de7e057d71e9892e3acbf9a7d3\"\u003e\u003ccode\u003e1b94fbb\u003c/code\u003e\u003c/a\u003e [mypyc] Fix vtable pointer with inherited dunder new (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20302\"\u003e#20302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/13369cb25fe450f755f63e59156b86df84c08b3d\"\u003e\u003ccode\u003e13369cb\u003c/code\u003e\u003c/a\u003e [mypyc] Fix crash on super in generator (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20291\"\u003e#20291\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a087a5894935cfdbc2eba27a6d04ebca38fd6659\"\u003e\u003ccode\u003ea087a58\u003c/code\u003e\u003c/a\u003e Update import map when new modules added (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20271\"\u003e#20271\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/35e843cc38cedc1bdf87d9937c06d51189ad0e45\"\u003e\u003ccode\u003e35e843c\u003c/code\u003e\u003c/a\u003e [mypyc] Add efficient librt.base64.b64decode (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20263\"\u003e#20263\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/094f66dc742cec2d69add9296fb21cdef50624d0\"\u003e\u003ccode\u003e094f66d\u003c/code\u003e\u003c/a\u003e [mypyc] Add \u003cstrong\u003erepr\u003c/strong\u003e to AssignmentTarget subclasses (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20258\"\u003e#20258\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/0738db3f9d336622923c7ee143e1c3adf7600a31\"\u003e\u003ccode\u003e0738db3\u003c/code\u003e\u003c/a\u003e Do not push partial types to the binder (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20202\"\u003e#20202\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.18.2...v1.19.0\"\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 `flake8` to 7.3.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/c48217e1fc006c2dddd14df54e83b67da15de5cd\"\u003e\u003ccode\u003ec48217e\u003c/code\u003e\u003c/a\u003e Release 7.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/f9e0f33281d5bb892cae2c674ac398439d99c732\"\u003e\u003ccode\u003ef9e0f33\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1986\"\u003e#1986\u003c/a\u003e from PyCQA/document-f542\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/6bcdb628597fa2d03494965089ff87a492ffc1e9\"\u003e\u003ccode\u003e6bcdb62\u003c/code\u003e\u003c/a\u003e document F542\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/70a15b8890d5bdf8c449ebb1b5259bd0140cc16b\"\u003e\u003ccode\u003e70a15b8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1985\"\u003e#1985\u003c/a\u003e from PyCQA/upgrade-deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/4941a3e32e54488698ecbc23993bfeb2a60c0fc5\"\u003e\u003ccode\u003e4941a3e\u003c/code\u003e\u003c/a\u003e upgrade pyflakes / pycodestyle\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/23e4005c5501999c29e1e3774de7ed18d1e4e22d\"\u003e\u003ccode\u003e23e4005\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1983\"\u003e#1983\u003c/a\u003e from PyCQA/py314\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/019424b80d3d7d5d8a2a1638f5877080546e3f46\"\u003e\u003ccode\u003e019424b\u003c/code\u003e\u003c/a\u003e add support for t-strings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/6b6f3d5fefecc994a06f425c18c3cddc9b71e4a4\"\u003e\u003ccode\u003e6b6f3d5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1980\"\u003e#1980\u003c/a\u003e from PyCQA/asottile-patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/8dfa6695b4fb1e1401b357367a0a71037d29f6aa\"\u003e\u003ccode\u003e8dfa669\u003c/code\u003e\u003c/a\u003e add rtd sphinx config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/ce3411118382d9332feb2749c8f417d10bfa2584\"\u003e\u003ccode\u003ece34111\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1976\"\u003e#1976\u003c/a\u003e from PyCQA/document-f824\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pycqa/flake8/compare/5.0.4...7.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/pantsbuild/pants/pull/22929","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/pantsbuild%2Fpants/issues/22929","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/22929/packages"},{"uuid":"3662533526","node_id":"PR_kwDOPF_5m861Y_wt","number":76,"state":"open","title":"chore(python)(deps): bump the python-dependencies group across 1 directory with 73 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-11-25T10:52:15.000Z","updated_at":"2025-11-25T13:02:22.164Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(python)(deps): bump","group_name":"python-dependencies","update_count":73,"packages":[{"name":"arrow","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/arrow-py/arrow"},{"name":"asttokens","old_version":"3.0.0","new_version":"3.0.1","repository_url":"https://github.com/gristlabs/asttokens"},{"name":"attrs","old_version":"25.3.0","new_version":"25.4.0","repository_url":"https://github.com/sponsors/hynek"},{"name":"bleach","old_version":"6.2.0","new_version":"6.3.0","repository_url":"https://github.com/mozilla/bleach"},{"name":"blinker","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/pallets-eco/blinker"},{"name":"build","old_version":"1.2.2.post1","new_version":"1.3.0","repository_url":"https://github.com/pypa/build"},{"name":"cachecontrol","old_version":"0.14.3","new_version":"0.14.4","repository_url":"https://github.com/psf/cachecontrol"},{"name":"cachetools","old_version":"6.2.0","new_version":"6.2.2","repository_url":"https://github.com/tkem/cachetools"},{"name":"charset-normalizer","old_version":"3.4.0","new_version":"3.4.4","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"cli-helpers","old_version":"2.3.1","new_version":"2.7.0","repository_url":"https://github.com/dbcli/cli_helpers"},{"name":"click","old_version":"8.1.7","new_version":"8.3.1","repository_url":"https://github.com/pallets/click"},{"name":"contourpy","old_version":"1.3.2","new_version":"1.3.3","repository_url":"https://github.com/contourpy/contourpy"},{"name":"coverage","old_version":"7.3.4","new_version":"7.12.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"deprecated","old_version":"1.2.18","new_version":"1.3.1","repository_url":"https://github.com/laurent-laporte-pro/deprecated"},{"name":"docutils","old_version":"0.18.1","new_version":"0.22.3","repository_url":"https://github.com/rtfd/recommonmark"},{"name":"fastapi","old_version":"0.121.2","new_version":"0.122.0","repository_url":"https://github.com/fastapi/fastapi"},{"name":"flask","old_version":"3.0.3","new_version":"3.1.2","repository_url":"https://github.com/pallets/flask"},{"name":"freezegun","old_version":"1.3.1","new_version":"1.5.5","repository_url":"https://github.com/spulec/freezegun"},{"name":"fsspec","old_version":"2025.9.0","new_version":"2025.10.0","repository_url":"https://github.com/fsspec/filesystem_spec"},{"name":"google-auth","old_version":"2.41.1","new_version":"2.43.0","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"google-auth-oauthlib","old_version":"1.2.2","new_version":"1.2.3","repository_url":"https://github.com/GoogleCloudPlatform/google-auth-library-python-oauthlib"},{"name":"grpcio","old_version":"1.75.1","new_version":"1.76.0","repository_url":"https://github.com/grpc/grpc"},{"name":"h5py","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/h5py/h5py"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"idna","old_version":"3.10","new_version":"3.11","repository_url":"https://github.com/kjd/idna"},{"name":"iniconfig","old_version":"2.1.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"ipython","old_version":"9.6.0","new_version":"9.7.0","repository_url":"https://github.com/ipython/ipython"},{"name":"ipywidgets","old_version":"8.1.7","new_version":"8.1.8","repository_url":"https://github.com/jupyter-widgets/ipywidgets"},{"name":"jiter","old_version":"0.11.0","new_version":"0.12.0","repository_url":"https://github.com/pydantic/jiter"},{"name":"jupyter","old_version":"1.0.0","new_version":"1.1.1"},{"name":"jupyter-core","old_version":"5.8.1","new_version":"5.9.1","repository_url":"https://github.com/jupyter/jupyter_core"},{"name":"jupyterlab-widgets","old_version":"3.0.15","new_version":"3.0.16","repository_url":"https://github.com/jupyter-widgets/ipywidgets"},{"name":"lark","old_version":"1.3.0","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"libcst","old_version":"1.7.0","new_version":"1.8.6","repository_url":"https://github.com/Instagram/LibCST"},{"name":"litecli","old_version":"1.12.3","new_version":"1.17.0","repository_url":"https://github.com/dbcli/litecli"},{"name":"markdown","old_version":"3.9","new_version":"3.10","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"matplotlib-inline","old_version":"0.1.7","new_version":"0.2.1","repository_url":"https://github.com/ipython/matplotlib-inline"},{"name":"ml-dtypes","old_version":"0.5.3","new_version":"0.5.4","repository_url":"https://github.com/jax-ml/ml_dtypes"},{"name":"mutmut","old_version":"3.3.1","new_version":"3.4.0","repository_url":"https://github.com/boxed/mutmut"},{"name":"mypy","old_version":"1.5.1","new_version":"1.18.2","repository_url":"https://github.com/python/mypy"},{"name":"networkx","old_version":"3.5","new_version":"3.6","repository_url":"https://github.com/networkx/networkx"},{"name":"numpy","old_version":"2.0.2","new_version":"2.3.5","repository_url":"https://github.com/numpy/numpy"},{"name":"objection","old_version":"1.11.0","new_version":"1.12.2","repository_url":"https://github.com/sensepost/objection"},{"name":"openai","old_version":"2.8.0","new_version":"2.8.1","repository_url":"https://github.com/openai/openai-python"},{"name":"optree","old_version":"0.17.0","new_version":"0.18.0","repository_url":"https://github.com/metaopt/optree"},{"name":"packageurl-python","old_version":"0.17.5","new_version":"0.17.6","repository_url":"https://github.com/package-url/packageurl-python"},{"name":"pep517","old_version":"0.13.0","new_version":"0.13.1","repository_url":"https://github.com/pypa/pep517"},{"name":"pexpect","old_version":"4.8.0","new_version":"4.9.0","repository_url":"https://github.com/pexpect/pexpect"},{"name":"prompt-toolkit","old_version":"3.0.48","new_version":"3.0.52","repository_url":"https://github.com/prompt-toolkit/python-prompt-toolkit"},{"name":"psutil","old_version":"7.1.0","new_version":"7.1.3","repository_url":"https://github.com/giampaolo/psutil"},{"name":"pycodestyle","old_version":"2.10.0","new_version":"2.14.0","repository_url":"https://github.com/PyCQA/pycodestyle"},{"name":"pyflakes","old_version":"3.0.1","new_version":"3.4.0","repository_url":"https://github.com/PyCQA/pyflakes"},{"name":"pyparsing","old_version":"3.0.9","new_version":"3.2.5","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pytest-mock","old_version":"3.12.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-timeout","old_version":"2.2.0","new_version":"2.4.0","repository_url":"https://github.com/pytest-dev/pytest-timeout"},{"name":"referencing","old_version":"0.36.2","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"rpds-py","old_version":"0.27.1","new_version":"0.29.0","repository_url":"https://github.com/crate-py/rpds"},{"name":"scipy","old_version":"1.15.3","new_version":"1.16.3","repository_url":"https://github.com/scipy/scipy"},{"name":"seaborn","old_version":"0.12.2","new_version":"0.13.2","repository_url":"https://github.com/mwaskom/seaborn"},{"name":"sqlparse","old_version":"0.5.1","new_version":"0.5.3","repository_url":"https://github.com/andialbrecht/sqlparse"},{"name":"starlette","old_version":"0.49.3","new_version":"0.50.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"termcolor","old_version":"3.1.0","new_version":"3.2.0","repository_url":"https://github.com/termcolor/termcolor"},{"name":"textual","old_version":"6.2.1","new_version":"6.6.0","repository_url":"https://github.com/Textualize/textual"},{"name":"tinycss2","old_version":"1.4.0","new_version":"1.5.1","repository_url":"https://github.com/Kozea/tinycss2"},{"name":"types-requests","old_version":"2.31.0.2","new_version":"2.32.4.20250913","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.2.14","repository_url":"https://github.com/jquast/wcwidth"},{"name":"websocket-client","old_version":"1.8.0","new_version":"1.9.0","repository_url":"https://github.com/websocket-client/websocket-client"},{"name":"werkzeug","old_version":"3.1.1","new_version":"3.1.3","repository_url":"https://github.com/pallets/werkzeug"},{"name":"widgetsnbextension","old_version":"4.0.14","new_version":"4.0.15"},{"name":"celery","old_version":"5.4.0","new_version":"5.5.3","repository_url":"https://github.com/celery/celery"},{"name":"celery","old_version":"5.4.0","new_version":"5.5.3","repository_url":"https://github.com/celery/celery"},{"name":"kombu","old_version":"5.4.2","new_version":"5.6.0","repository_url":"https://github.com/celery/kombu"},{"name":"amqp","old_version":"5.2.0","new_version":"5.3.1","repository_url":"https://github.com/celery/py-amqp"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-dependencies group with 73 updates in the /python-ai-service directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [arrow](https://github.com/arrow-py/arrow) | `1.3.0` | `1.4.0` |\n| [asttokens](https://github.com/gristlabs/asttokens) | `3.0.0` | `3.0.1` |\n| [attrs](https://github.com/sponsors/hynek) | `25.3.0` | `25.4.0` |\n| [bleach](https://github.com/mozilla/bleach) | `6.2.0` | `6.3.0` |\n| [blinker](https://github.com/pallets-eco/blinker) | `1.8.2` | `1.9.0` |\n| [build](https://github.com/pypa/build) | `1.2.2.post1` | `1.3.0` |\n| [cachecontrol](https://github.com/psf/cachecontrol) | `0.14.3` | `0.14.4` |\n| [cachetools](https://github.com/tkem/cachetools) | `6.2.0` | `6.2.2` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.0` | `3.4.4` |\n| [cli-helpers](https://github.com/dbcli/cli_helpers) | `2.3.1` | `2.7.0` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.3.1` |\n| [contourpy](https://github.com/contourpy/contourpy) | `1.3.2` | `1.3.3` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.3.4` | `7.12.0` |\n| [deprecated](https://github.com/laurent-laporte-pro/deprecated) | `1.2.18` | `1.3.1` |\n| [docutils](https://github.com/rtfd/recommonmark) | `0.18.1` | `0.22.3` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.121.2` | `0.122.0` |\n| [flask](https://github.com/pallets/flask) | `3.0.3` | `3.1.2` |\n| [freezegun](https://github.com/spulec/freezegun) | `1.3.1` | `1.5.5` |\n| [fsspec](https://github.com/fsspec/filesystem_spec) | `2025.9.0` | `2025.10.0` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.41.1` | `2.43.0` |\n| [google-auth-oauthlib](https://github.com/GoogleCloudPlatform/google-auth-library-python-oauthlib) | `1.2.2` | `1.2.3` |\n| [grpcio](https://github.com/grpc/grpc) | `1.75.1` | `1.76.0` |\n| [h5py](https://github.com/h5py/h5py) | `3.14.0` | `3.15.1` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.11` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.1.0` | `2.3.0` |\n| [ipython](https://github.com/ipython/ipython) | `9.6.0` | `9.7.0` |\n| [ipywidgets](https://github.com/jupyter-widgets/ipywidgets) | `8.1.7` | `8.1.8` |\n| [jiter](https://github.com/pydantic/jiter) | `0.11.0` | `0.12.0` |\n| [jupyter](https://jupyter.org) | `1.0.0` | `1.1.1` |\n| [jupyter-core](https://github.com/jupyter/jupyter_core) | `5.8.1` | `5.9.1` |\n| [jupyterlab-widgets](https://github.com/jupyter-widgets/ipywidgets) | `3.0.15` | `3.0.16` |\n| [lark](https://github.com/lark-parser/lark) | `1.3.0` | `1.3.1` |\n| [libcst](https://github.com/Instagram/LibCST) | `1.7.0` | `1.8.6` |\n| [litecli](https://github.com/dbcli/litecli) | `1.12.3` | `1.17.0` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.9` | `3.10` |\n| [matplotlib-inline](https://github.com/ipython/matplotlib-inline) | `0.1.7` | `0.2.1` |\n| [ml-dtypes](https://github.com/jax-ml/ml_dtypes) | `0.5.3` | `0.5.4` |\n| [mutmut](https://github.com/boxed/mutmut) | `3.3.1` | `3.4.0` |\n| [mypy](https://github.com/python/mypy) | `1.5.1` | `1.18.2` |\n| [networkx](https://github.com/networkx/networkx) | `3.5` | `3.6` |\n| [numpy](https://github.com/numpy/numpy) | `2.0.2` | `2.3.5` |\n| [objection](https://github.com/sensepost/objection) | `1.11.0` | `1.12.2` |\n| [openai](https://github.com/openai/openai-python) | `2.8.0` | `2.8.1` |\n| [optree](https://github.com/metaopt/optree) | `0.17.0` | `0.18.0` |\n| [packageurl-python](https://github.com/package-url/packageurl-python) | `0.17.5` | `0.17.6` |\n| [pep517](https://github.com/pypa/pep517) | `0.13.0` | `0.13.1` |\n| [pexpect](https://github.com/pexpect/pexpect) | `4.8.0` | `4.9.0` |\n| [prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) | `3.0.48` | `3.0.52` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.1.0` | `7.1.3` |\n| [pycodestyle](https://github.com/PyCQA/pycodestyle) | `2.10.0` | `2.14.0` |\n| [pyflakes](https://github.com/PyCQA/pyflakes) | `3.0.1` | `3.4.0` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.0.9` | `3.2.5` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.12.0` | `3.15.1` |\n| [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) | `2.2.0` | `2.4.0` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.36.2` | `0.37.0` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.27.1` | `0.29.0` |\n| [scipy](https://github.com/scipy/scipy) | `1.15.3` | `1.16.3` |\n| [seaborn](https://github.com/mwaskom/seaborn) | `0.12.2` | `0.13.2` |\n| [sqlparse](https://github.com/andialbrecht/sqlparse) | `0.5.1` | `0.5.3` |\n| [starlette](https://github.com/Kludex/starlette) | `0.49.3` | `0.50.0` |\n| [termcolor](https://github.com/termcolor/termcolor) | `3.1.0` | `3.2.0` |\n| [textual](https://github.com/Textualize/textual) | `6.2.1` | `6.6.0` |\n| [tinycss2](https://github.com/Kozea/tinycss2) | `1.4.0` | `1.5.1` |\n| [types-requests](https://github.com/typeshed-internal/stub_uploader) | `2.31.0.2` | `2.32.4.20250913` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.2.14` |\n| [websocket-client](https://github.com/websocket-client/websocket-client) | `1.8.0` | `1.9.0` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.1` | `3.1.3` |\n| [widgetsnbextension](http://jupyter.org) | `4.0.14` | `4.0.15` |\n| [celery](https://github.com/celery/celery) | `5.4.0` | `5.5.3` |\n| [celery[redis]](https://github.com/celery/celery) | `5.4.0` | `5.5.3` |\n| [kombu](https://github.com/celery/kombu) | `5.4.2` | `5.6.0` |\n| [amqp](https://github.com/celery/py-amqp) | `5.2.0` | `5.3.1` |\n\n\nUpdates `arrow` from 1.3.0 to 1.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/arrow-py/arrow/releases\"\u003earrow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.4.0\u003c/h2\u003e\n\u003ch2\u003eADDED\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eweek_start\u003c/code\u003e parameter to \u003ccode\u003efloor()\u003c/code\u003e and \u003ccode\u003eceil()\u003c/code\u003e methods. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1222\"\u003e#1222\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1222\"\u003earrow-py/arrow#1222\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eFORMAT_RFC3339_STRICT\u003c/code\u003e with a T separator. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1201\"\u003e#1201\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1201\"\u003earrow-py/arrow#1201\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded Macedonian in Latin locale support. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1200\"\u003e#1200\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1200\"\u003earrow-py/arrow#1200\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded Persian/Farsi locale support. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1190\"\u003e#1190\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1190\"\u003earrow-py/arrow#1190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded week and weeks to Thai locale timeframes. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1218\"\u003e#1218\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1218\"\u003earrow-py/arrow#1218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded weeks to Catalan locale. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1189\"\u003e#1189\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1189\"\u003earrow-py/arrow#1189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded Persian names of months, month-abbreviations and day-abbreviations in Gregorian calendar. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1172\"\u003e#1172\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1172\"\u003earrow-py/arrow#1172\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eCHANGED\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated Arrow to use ZoneInfo for timezones instead of pytz. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1217\"\u003e#1217\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1217\"\u003earrow-py/arrow#1217\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFIXED\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed humanize month limits. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1224\"\u003e#1224\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1224\"\u003earrow-py/arrow#1224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed type hint of \u003ccode\u003eArrow.__getattr__\u003c/code\u003e. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1171\"\u003e#1171\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1171\"\u003earrow-py/arrow#1171\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed spelling and removed poorly used expressions in Korean locale. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1181\"\u003e#1181\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1181\"\u003earrow-py/arrow#1181\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdated \u003ccode\u003eshift()\u003c/code\u003e method for issue \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1145\"\u003e#1145\u003c/a\u003e. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1194\"\u003e#1194\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1194\"\u003earrow-py/arrow#1194\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved Greek locale translations (seconds, days, \u0026quot;ago\u0026quot;, and month typo). [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1184\"\u003e#1184\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1184\"\u003earrow-py/arrow#1184\u003c/a\u003e), [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1186\"\u003e#1186\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1186\"\u003earrow-py/arrow#1186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAddressed \u003ccode\u003edatetime.utcnow\u003c/code\u003e deprecation warning. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1182\"\u003e#1182\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1182\"\u003earrow-py/arrow#1182\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eINTERNAL\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded codecov test results. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1223\"\u003e#1223\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1223\"\u003earrow-py/arrow#1223\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdated CI dependencies (actions/setup-python, actions/checkout, codecov/codecov-action, actions/cache).\u003c/li\u003e\n\u003cli\u003eAdded docstrings to parser.py. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1010\"\u003e#1010\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1010\"\u003earrow-py/arrow#1010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdated Python versions support and bumped CI dependencies. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1177\"\u003e#1177\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1177\"\u003earrow-py/arrow#1177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded dependabot for GitHub actions. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1193\"\u003e#1193\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1193\"\u003earrow-py/arrow#1193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMoved dateutil types to test requirements. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1183\"\u003e#1183\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1183\"\u003earrow-py/arrow#1183\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded documentation link for \u003ccode\u003earrow.format\u003c/code\u003e. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1180\"\u003e#1180\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1180\"\u003earrow-py/arrow#1180\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/arrow-py/arrow/blob/master/CHANGELOG.rst\"\u003earrow's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.0 (2025-10-18)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[ADDED] Added \u003ccode\u003eweek_start\u003c/code\u003e parameter to \u003ccode\u003efloor()\u003c/code\u003e and \u003ccode\u003eceil()\u003c/code\u003e methods. \u003ccode\u003ePR [#1222](https://github.com/arrow-py/arrow/issues/1222) \u0026lt;https://github.com/arrow-py/arrow/pull/1222\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[ADDED] Added \u003ccode\u003eFORMAT_RFC3339_STRICT\u003c/code\u003e with a T separator. \u003ccode\u003ePR [#1201](https://github.com/arrow-py/arrow/issues/1201) \u0026lt;https://github.com/arrow-py/arrow/pull/1201\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[ADDED] Added Macedonian in Latin locale support. \u003ccode\u003ePR [#1200](https://github.com/arrow-py/arrow/issues/1200) \u0026lt;https://github.com/arrow-py/arrow/pull/1200\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[ADDED] Added Persian/Farsi locale support. \u003ccode\u003ePR [#1190](https://github.com/arrow-py/arrow/issues/1190) \u0026lt;https://github.com/arrow-py/arrow/pull/1190\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[ADDED] Added week and weeks to Thai locale timeframes. \u003ccode\u003ePR [#1218](https://github.com/arrow-py/arrow/issues/1218) \u0026lt;https://github.com/arrow-py/arrow/pull/1218\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[ADDED] Added weeks to Catalan locale. \u003ccode\u003ePR [#1189](https://github.com/arrow-py/arrow/issues/1189) \u0026lt;https://github.com/arrow-py/arrow/pull/1189\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[ADDED] Added Persian names of months, month-abbreviations and day-abbreviations in Gregorian calendar. \u003ccode\u003ePR [#1172](https://github.com/arrow-py/arrow/issues/1172) \u0026lt;https://github.com/arrow-py/arrow/pull/1172\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[CHANGED] Migrated Arrow to use ZoneInfo for timezones instead of pytz. \u003ccode\u003ePR [#1217](https://github.com/arrow-py/arrow/issues/1217) \u0026lt;https://github.com/arrow-py/arrow/pull/1217\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[FIXED] Fixed humanize month limits. \u003ccode\u003ePR [#1224](https://github.com/arrow-py/arrow/issues/1224) \u0026lt;https://github.com/arrow-py/arrow/pull/1224\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[FIXED] Fixed type hint of \u003ccode\u003eArrow.__getattr__\u003c/code\u003e. \u003ccode\u003ePR [#1171](https://github.com/arrow-py/arrow/issues/1171) \u0026lt;https://github.com/arrow-py/arrow/pull/1171\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[FIXED] Fixed spelling and removed poorly used expressions in Korean locale. \u003ccode\u003ePR [#1181](https://github.com/arrow-py/arrow/issues/1181) \u0026lt;https://github.com/arrow-py/arrow/pull/1181\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[FIXED] Updated \u003ccode\u003eshift()\u003c/code\u003e method for issue \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1145\"\u003e#1145\u003c/a\u003e. \u003ccode\u003ePR [#1194](https://github.com/arrow-py/arrow/issues/1194) \u0026lt;https://github.com/arrow-py/arrow/pull/1194\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[FIXED] Improved Greek locale translations (seconds, days, \u0026quot;ago\u0026quot;, and month typo). \u003ccode\u003ePR [#1184](https://github.com/arrow-py/arrow/issues/1184) \u0026lt;https://github.com/arrow-py/arrow/pull/1184\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003ePR [#1186](https://github.com/arrow-py/arrow/issues/1186) \u0026lt;https://github.com/arrow-py/arrow/pull/1186\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e[FIXED] Addressed \u003ccode\u003edatetime.utcnow\u003c/code\u003e deprecation warning. \u003ccode\u003ePR [#1182](https://github.com/arrow-py/arrow/issues/1182) \u0026lt;https://github.com/arrow-py/arrow/pull/1182\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[INTERNAL] Added codecov test results. \u003ccode\u003ePR [#1223](https://github.com/arrow-py/arrow/issues/1223) \u0026lt;https://github.com/arrow-py/arrow/pull/1223\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[INTERNAL] Updated CI dependencies (actions/setup-python, actions/checkout, codecov/codecov-action, actions/cache).\u003c/li\u003e\n\u003cli\u003e[INTERNAL] Added docstrings to parser.py. \u003ccode\u003ePR [#1010](https://github.com/arrow-py/arrow/issues/1010) \u0026lt;https://github.com/arrow-py/arrow/pull/1010\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[INTERNAL] Updated Python versions support and bumped CI dependencies. \u003ccode\u003ePR [#1177](https://github.com/arrow-py/arrow/issues/1177) \u0026lt;https://github.com/arrow-py/arrow/pull/1177\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[INTERNAL] Added dependabot for GitHub actions. \u003ccode\u003ePR [#1193](https://github.com/arrow-py/arrow/issues/1193) \u0026lt;https://github.com/arrow-py/arrow/pull/1193\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[INTERNAL] Moved dateutil types to test requirements. \u003ccode\u003ePR [#1183](https://github.com/arrow-py/arrow/issues/1183) \u0026lt;https://github.com/arrow-py/arrow/pull/1183\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[INTERNAL] Added documentation link for \u003ccode\u003earrow.format\u003c/code\u003e. \u003ccode\u003ePR [#1180](https://github.com/arrow-py/arrow/issues/1180) \u0026lt;https://github.com/arrow-py/arrow/pull/1180\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/arrow-py/arrow/commit/2c1f5185ad66bf3b1cf8c0812f4b4fe65ac46656\"\u003e\u003ccode\u003e2c1f518\u003c/code\u003e\u003c/a\u003e Bump release CI flow to use Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arrow-py/arrow/commit/2483bfea4ec8a4da609036aba3ce1b32cb571875\"\u003e\u003ccode\u003e2483bfe\u003c/code\u003e\u003c/a\u003e Bump changelog date\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arrow-py/arrow/commit/c61de9299733da6d4a7e8badabae43684a3f9da2\"\u003e\u003ccode\u003ec61de92\u003c/code\u003e\u003c/a\u003e Bump version and add changelog (\u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1228\"\u003e#1228\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arrow-py/arrow/commit/c3bb589536b283e3e3886d1d6bc01a6374c8e656\"\u003e\u003ccode\u003ec3bb589\u003c/code\u003e\u003c/a\u003e Update pypy CI version and update pre-commit dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arrow-py/arrow/commit/85cd905332d108303da1cbd0f2336fcae058147f\"\u003e\u003ccode\u003e85cd905\u003c/code\u003e\u003c/a\u003e Run tests on next Python release (\u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1227\"\u003e#1227\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arrow-py/arrow/commit/4c8c44aefc0e5504b9c3cbf0d6adbb0ec4aa4571\"\u003e\u003ccode\u003e4c8c44a\u003c/code\u003e\u003c/a\u003e Add week_start parameter to floor() and ceil() (\u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1222\"\u003e#1222\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arrow-py/arrow/commit/7ccbe66122ca53d90acf9c69c37aa95c81a1fe89\"\u003e\u003ccode\u003e7ccbe66\u003c/code\u003e\u003c/a\u003e add codecov test results (\u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1223\"\u003e#1223\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arrow-py/arrow/commit/05cd9b47d0db1c22b44cb739832f1b9701855313\"\u003e\u003ccode\u003e05cd9b4\u003c/code\u003e\u003c/a\u003e fix humanize month limits (\u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1224\"\u003e#1224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arrow-py/arrow/commit/ea756ea779468b0c6a9f45439dc05cfd5e71ee1e\"\u003e\u003ccode\u003eea756ea\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1220\"\u003e#1220\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arrow-py/arrow/commit/86f7520f15b2dd46f9c49f71ce5c15bbc537ed67\"\u003e\u003ccode\u003e86f7520\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1219\"\u003e#1219\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/arrow-py/arrow/compare/1.3.0...1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `asttokens` from 3.0.0 to 3.0.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/bdbf396fc0e006912ba82f1137dfd6b2d5aa9af2\"\u003e\u003ccode\u003ebdbf396\u003c/code\u003e\u003c/a\u003e Update mypy; add 3.14 to the CI; drop python 3.8 support (\u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/167\"\u003e#167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/f859c055e8453650e1987c5aefaaec36582d3a07\"\u003e\u003ccode\u003ef859c05\u003c/code\u003e\u003c/a\u003e Add tests for astroid v2, v3, and v4 to the CI (\u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/166\"\u003e#166\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/84ef059ba28d08816d3d881e363b9ed42bbeae3a\"\u003e\u003ccode\u003e84ef059\u003c/code\u003e\u003c/a\u003e Adapt asttokens for astroid 4.x (\u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/165\"\u003e#165\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/9db9335648659520c7c8453bc39550fa4f95d539\"\u003e\u003ccode\u003e9db9335\u003c/code\u003e\u003c/a\u003e Various links improvements (\u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/163\"\u003e#163\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/3371ebf7f48f6a731d409fffd6ba235e6a95d85b\"\u003e\u003ccode\u003e3371ebf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/161\"\u003e#161\u003c/a\u003e from gristlabs/dependabot/pip/docs/requests-2.32.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/3a60115d3efdb01efc8a6442b59fdd0071518e70\"\u003e\u003ccode\u003e3a60115\u003c/code\u003e\u003c/a\u003e Bump requests from 2.32.2 to 2.32.4 in /docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/584b51c6c084455ad4597886657783d1b661ddfa\"\u003e\u003ccode\u003e584b51c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/160\"\u003e#160\u003c/a\u003e from gristlabs/dependabot/pip/docs/urllib3-2.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/3e9d703323ce94987bf9e030bd010eae13fa15b4\"\u003e\u003ccode\u003e3e9d703\u003c/code\u003e\u003c/a\u003e Bump urllib3 from 2.2.2 to 2.5.0 in /docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/64d3f7c3637775fef832a9a9cdb78ec02da494e6\"\u003e\u003ccode\u003e64d3f7c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/158\"\u003e#158\u003c/a\u003e from gristlabs/dependabot/pip/docs/jinja2-3.1.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/9b5fb1abfb171cfb1f01c2d996cbd31e9d1f0660\"\u003e\u003ccode\u003e9b5fb1a\u003c/code\u003e\u003c/a\u003e Bump jinja2 from 3.1.4 to 3.1.6 in /docs\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/gristlabs/asttokens/compare/v3.0.0...v3.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `attrs` from 25.3.0 to 25.4.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/hynek/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bleach` from 6.2.0 to 6.3.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mozilla/bleach/blob/main/CHANGES\"\u003ebleach's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 6.3.0 (October 27th, 2025)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBackwards incompatible changes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/756\"\u003e#756\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eNone\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/758\"\u003e#758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix wbr handling. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/488\"\u003e#488\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/mozilla/bleach/commit/5546d5dbce60d08ccb99d981778d74044d646d4e\"\u003e\u003ccode\u003e5546d5d\u003c/code\u003e\u003c/a\u003e chore: prep for 6.3.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/88df3ff23fb2a43e174b3fdfe9191ef516de868a\"\u003e\u003ccode\u003e88df3ff\u003c/code\u003e\u003c/a\u003e chore: fix readthedocs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/d8b2fb45b2606515c58787c223d6605c6c70868f\"\u003e\u003ccode\u003ed8b2fb4\u003c/code\u003e\u003c/a\u003e fix: fix wbr handling (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/488\"\u003e#488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/55e48cedb20bda23940ab34753a1fb378d5d30b9\"\u003e\u003ccode\u003e55e48ce\u003c/code\u003e\u003c/a\u003e chore: add support for Python 3.14 (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/758\"\u003e#758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/a4d6cddac6e338c3d6f84c755a5fcb32e9e18fba\"\u003e\u003ccode\u003ea4d6cdd\u003c/code\u003e\u003c/a\u003e chore: drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/756\"\u003e#756\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/172d92faef543a83c6760c63c32749586cdd564b\"\u003e\u003ccode\u003e172d92f\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.6.0 to 6.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/df88612f2e9daf8f4ee23cf0e29b712d9d9147b6\"\u003e\u003ccode\u003edf88612\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.2.2 to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/cbcf6b18d19aeb7777699f9385013d0a04052b68\"\u003e\u003ccode\u003ecbcf6b1\u003c/code\u003e\u003c/a\u003e Bump actions/cache from 4.2.3 to 4.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/d9aa7ef592d57dda56e26ba31d06e1b279c58eca\"\u003e\u003ccode\u003ed9aa7ef\u003c/code\u003e\u003c/a\u003e Switch from dependabot reviewers to CODEOWNERS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/06f0f76cc68112bda3fa101d1730d5ba914d54a1\"\u003e\u003ccode\u003e06f0f76\u003c/code\u003e\u003c/a\u003e Update setuptools, wheel, and twine for devs\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mozilla/bleach/compare/v6.2.0...v6.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `blinker` from 1.8.2 to 1.9.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets-eco/blinker/releases\"\u003eblinker's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.9.0\u003c/h2\u003e\n\u003cp\u003eThis is the Blinker 1.9.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecations, or introduce potentially breaking changes. We encourage everyone to upgrade, and to use a tool such as \u003ca href=\"https://pypi.org/project/pip-tools/\"\u003epip-tools\u003c/a\u003e to pin all dependencies and control upgrades. Test with warnings treated as errors to be able to adapt to deprecation warnings early.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/blinker/1.9.0/\"\u003ehttps://pypi.org/project/blinker/1.9.0/\u003c/a\u003e\nChanges: \u003ca href=\"https://blinker.readthedocs.io/en/stable/#version-1-9-0\"\u003ehttps://blinker.readthedocs.io/en/stable/#version-1-9-0\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets-eco/blinker/milestone/1?closed=1\"\u003ehttps://github.com/pallets-eco/blinker/milestone/1?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/175\"\u003e#175\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove previously deprecated \u003ccode\u003e__version__\u003c/code\u003e, \u003ccode\u003ereceiver_connected\u003c/code\u003e, \u003ccode\u003eSignal.temporarily_connected_to\u003c/code\u003e and \u003ccode\u003eWeakNamespace\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/172\"\u003e#172\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip weakref signal cleanup if the interpreter is shutting down. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/173\"\u003e#173\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/pallets-eco/blinker/blob/main/CHANGES.rst\"\u003eblinker's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.9.0\u003c/h2\u003e\n\u003cp\u003eReleased 2024-11-08\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8. :pr:\u003ccode\u003e175\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove previously deprecated \u003ccode\u003e__version__\u003c/code\u003e, \u003ccode\u003ereceiver_connected\u003c/code\u003e,\n\u003ccode\u003eSignal.temporarily_connected_to\u003c/code\u003e and \u003ccode\u003eWeakNamespace\u003c/code\u003e. :pr:\u003ccode\u003e172\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eSkip weakref signal cleanup if the interpreter is shutting down.\n:issue:\u003ccode\u003e173\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/pallets-eco/blinker/commit/669f3a027828d19786e708b511277fabcd6b9532\"\u003e\u003ccode\u003e669f3a0\u003c/code\u003e\u003c/a\u003e release version 1.9.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/cfe116fa7912d8dcb0deee4907aa63d1efaadf5b\"\u003e\u003ccode\u003ecfe116f\u003c/code\u003e\u003c/a\u003e try disabling attestions on test pypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/16e4bd70a19353d9d7cf47e4df7de54936296377\"\u003e\u003ccode\u003e16e4bd7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/174\"\u003e#174\u003c/a\u003e from projectgus/bugfix/weakref_disconnect_shutdown\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/42561fdf065032f5c39aea04d8c3fb4db93f73f3\"\u003e\u003ccode\u003e42561fd\u003c/code\u003e\u003c/a\u003e Fix \u0026quot;Exception ignored\u0026quot; in weakref callback during interpreter shutdown.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/dcce3e97743494433025e0b68f742f3582b6ba6a\"\u003e\u003ccode\u003edcce3e9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/175\"\u003e#175\u003c/a\u003e from pallets-eco/drop-python3.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/efa95eaa080b0d4a8dcfc46ad1f387ea1ddebd97\"\u003e\u003ccode\u003eefa95ea\u003c/code\u003e\u003c/a\u003e drop support for python 3.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/82305185358d8ce21619ec0f324688a14a89c23b\"\u003e\u003ccode\u003e8230518\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/94f1202f08c6d00a9fe1ecf5c8cba9da84e4b22f\"\u003e\u003ccode\u003e94f1202\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/8c983ecd764e1d113d24522838c2a7312460b7eb\"\u003e\u003ccode\u003e8c983ec\u003c/code\u003e\u003c/a\u003e remove previously deprecated code (\u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/172\"\u003e#172\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/f5915f3bfcd9f9da0caf6cd4858bf68068c52963\"\u003e\u003ccode\u003ef5915f3\u003c/code\u003e\u003c/a\u003e set up pre-commit lite workflow\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets-eco/blinker/compare/1.8.2...1.9.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `build` from 1.2.2.post1 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/pypa/build/releases\"\u003ebuild's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--config-json\u003c/code\u003e (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/916\"\u003e#916\u003c/a\u003e, fixes issue \u003ca href=\"https://redirect.github.com/pypa/build/issues/900\"\u003e#900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8 (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/891\"\u003e#891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTest on Python 3.14, colorful help on 3.14+ (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/895\"\u003e#895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eModuleNotFoundError\u003c/code\u003e when \u003ccode\u003epip\u003c/code\u003e is not installed (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/898\"\u003e#898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDisable use of \u003ccode\u003epip install --python\u003c/code\u003e for debundled pip (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/861\"\u003e#861\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't pass no-wheel to virtualenv if it would warn (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/892\"\u003e#892\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOptimize our tests to run faster (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/871\"\u003e#871\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/872\"\u003e#872\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/738\"\u003e#738\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow running our tests without virtualenv (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/911\"\u003e#911\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix issues in our tests (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/824\"\u003e#824\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/918\"\u003e#918\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/870\"\u003e#870\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/915\"\u003e#915\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/862\"\u003e#862\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/863\"\u003e#863\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/899\"\u003e#899\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/896\"\u003e#896\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/854\"\u003e#854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse SPDX identifiers for our license metadata (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/914\"\u003e#914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse dependency-groups for our development (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/880\"\u003e#880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMention conda and update uv mention in README/docs (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/842\"\u003e#842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/816\"\u003e#816\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/917\"\u003e#917\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/build/blob/main/CHANGELOG.rst\"\u003ebuild's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.3.0 (2025-08-01)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--config-json\u003c/code\u003e\n(PR :pr:\u003ccode\u003e916\u003c/code\u003e, fixes issue :issue:\u003ccode\u003e900\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8\n(PR :pr:\u003ccode\u003e891\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eTest on Python 3.14, colorful help on 3.14+\n(PR :pr:\u003ccode\u003e895\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eModuleNotFoundError\u003c/code\u003e when \u003ccode\u003epip\u003c/code\u003e is not installed\n(PR :pr:\u003ccode\u003e898\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDisable use of \u003ccode\u003epip install --python\u003c/code\u003e for debundled pip\n(PR :pr:\u003ccode\u003e861\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDon't pass no-wheel to virtualenv if it would warn\n(PR :pr:\u003ccode\u003e892\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eOptimize our tests to run faster\n(PR :pr:\u003ccode\u003e871\u003c/code\u003e, :pr:\u003ccode\u003e872\u003c/code\u003e, :pr:\u003ccode\u003e738\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAllow running our tests without virtualenv\n(PR :pr:\u003ccode\u003e911\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix issues in our tests\n(PR :pr:\u003ccode\u003e824\u003c/code\u003e, :pr:\u003ccode\u003e918\u003c/code\u003e, :pr:\u003ccode\u003e870\u003c/code\u003e, :pr:\u003ccode\u003e915\u003c/code\u003e, :pr:\u003ccode\u003e862\u003c/code\u003e, :pr:\u003ccode\u003e863\u003c/code\u003e, :pr:\u003ccode\u003e899\u003c/code\u003e, :pr:\u003ccode\u003e896\u003c/code\u003e, :pr:\u003ccode\u003e854\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse SPDX identifiers for our license metadata\n(PR :pr:\u003ccode\u003e914\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse dependency-groups for our development\n(PR :pr:\u003ccode\u003e880\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMention conda and update uv mention in README/docs\n(PR :pr:\u003ccode\u003e842\u003c/code\u003e, :pr:\u003ccode\u003e816\u003c/code\u003e, :pr:\u003ccode\u003e917\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.2.2 (2024-09-06)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd editable to \u003ccode\u003ebuilder.get_requries_for_build\u003c/code\u003e's static types\n(PR :pr:\u003ccode\u003e764\u003c/code\u003e, fixes issue :issue:\u003ccode\u003e763\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eInclude artifact attestations in our release\n(PR :pr:\u003ccode\u003e782\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix typing compatibility with typed \u003ccode\u003epyproject-hooks\u003c/code\u003e\n(PR :pr:\u003ccode\u003e788\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMark more tests with \u003ccode\u003enetwork\u003c/code\u003e\n(PR :pr:\u003ccode\u003e808\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd more intersphinx links to docs\n(PR :pr:\u003ccode\u003e804\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003euv\u003c/code\u003e optional for tests\n(PR :pr:\u003ccode\u003e807\u003c/code\u003e and :pr:\u003ccode\u003e813\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.2.1 (2024-03-28)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid error when terminal width is undetectable on Python \u0026lt; 3.11\n(PR :pr:\u003ccode\u003e761\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/pypa/build/commit/60e8752f69178d2b2c3563e9c8fa17aa6e11b12c\"\u003e\u003ccode\u003e60e8752\u003c/code\u003e\u003c/a\u003e chore: bump to 1.3.0 (\u003ca href=\"https://redirect.github.com/pypa/build/issues/919\"\u003e#919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/807cfba618bc4f7b13e938ffa395fffd82494383\"\u003e\u003ccode\u003e807cfba\u003c/code\u003e\u003c/a\u003e feat: add --config-json (\u003ca href=\"https://redirect.github.com/pypa/build/issues/916\"\u003e#916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/bf54ad04ffe30e7f7847ea0bcbc081b550830950\"\u003e\u003ccode\u003ebf54ad0\u003c/code\u003e\u003c/a\u003e tests: fix issues with ignore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/53852df8d84d1d17afaa851d4e1cc3754676bb29\"\u003e\u003ccode\u003e53852df\u003c/code\u003e\u003c/a\u003e docs: uv example\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/b983371befe0547b312aba36083b859d923d9bfc\"\u003e\u003ccode\u003eb983371\u003c/code\u003e\u003c/a\u003e tests: optional virtualenv\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/6cd157ad0b614a76a13374032a4f56b65048c0be\"\u003e\u003ccode\u003e6cd157a\u003c/code\u003e\u003c/a\u003e Adopt PEP 639 \u0026quot;license\u0026quot; field (\u003ca href=\"https://redirect.github.com/pypa/build/issues/914\"\u003e#914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/bdaea367438b8e5ed3c26a7497eafc007084fbec\"\u003e\u003ccode\u003ebdaea36\u003c/code\u003e\u003c/a\u003e tests: fixes for errors in CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/14d6508679e2ddb4a511b4b41e972cb374e9dadb\"\u003e\u003ccode\u003e14d6508\u003c/code\u003e\u003c/a\u003e pre-commit: bump repositories\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/59ac60e78e0dc5164355bd29eb99fb1cb2d7a59c\"\u003e\u003ccode\u003e59ac60e\u003c/code\u003e\u003c/a\u003e pre-commit: bump repositories\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/48ebd63cd7049dff737093c462970262ae1ceed0\"\u003e\u003ccode\u003e48ebd63\u003c/code\u003e\u003c/a\u003e pre-commit: bump repositories\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/build/compare/1.2.2.post1...1.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachecontrol` from 0.14.3 to 0.14.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/cachecontrol/releases\"\u003ecachecontrol's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.14.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebuild(deps): bump github/codeql-action from 3.28.16 to 3.28.17 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/psf/cachecontrol/pull/382\"\u003epsf/cachecontrol#382\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump github/codeql-action from 3.28.17 to 3.28.18 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/psf/cachecontrol/pull/383\"\u003epsf/cachecontrol#383\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump astral-sh/setup-uv from 6.0.1 to 6.1.0 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/psf/cachecontrol/pull/385\"\u003epsf/cachecontrol#385\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(ci): cleanup, add Python 3.14 by \u003ca href=\"https://github.com/woodruffw\"\u003e\u003ccode\u003e@​woodruffw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/psf/cachecontrol/pull/392\"\u003epsf/cachecontrol#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix typo by \u003ca href=\"https://github.com/zackzack38\"\u003e\u003ccode\u003e@​zackzack38\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/psf/cachecontrol/pull/388\"\u003epsf/cachecontrol#388\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: prepare for 0.14.4 by \u003ca href=\"https://github.com/woodruffw\"\u003e\u003ccode\u003e@​woodruffw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/psf/cachecontrol/pull/394\"\u003epsf/cachecontrol#394\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/zackzack38\"\u003e\u003ccode\u003e@​zackzack38\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/cachecontrol/pull/388\"\u003epsf/cachecontrol#388\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/cachecontrol/compare/v0.14.3...v0.14.4\"\u003ehttps://github.com/psf/cachecontrol/compare/v0.14.3...v0.14.4\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/cachecontrol/blob/master/docs/release_notes.rst\"\u003ecachecontrol's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.14.4\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eExplicitly support Python 3.14.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/cachecontrol/commit/aba0315599d7d4200074ab3606384732be7bbc25\"\u003e\u003ccode\u003eaba0315\u003c/code\u003e\u003c/a\u003e chore: prepare for 0.14.4 (\u003ca href=\"https://redirect.github.com/psf/cachecontrol/issues/394\"\u003e#394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/cachecontrol/commit/e8a968302db0bab1d8016b1da07440803eb230c6\"\u003e\u003ccode\u003ee8a9683\u003c/code\u003e\u003c/a\u003e fix typo (\u003ca href=\"https://redirect.github.com/psf/cachecontrol/issues/388\"\u003e#388\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/cachecontrol/commit/02df424c36e1103c90131879949c12b8254b64dd\"\u003e\u003ccode\u003e02df424\u003c/code\u003e\u003c/a\u003e chore(ci): cleanup, add Python 3.14 (\u003ca href=\"https://redirect.github.com/psf/cachecontrol/issues/392\"\u003e#392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/cachecontrol/commit/9af76f749721ef7ee27e692c5c62a19aedab7731\"\u003e\u003ccode\u003e9af76f7\u003c/code\u003e\u003c/a\u003e build(deps): bump astral-sh/setup-uv in the actions group (\u003ca href=\"https://redirect.github.com/psf/cachecontrol/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/cachecontrol/commit/3f169f69e3871340833535380306b43735b5b0a9\"\u003e\u003ccode\u003e3f169f6\u003c/code\u003e\u003c/a\u003e build(deps): bump github/codeql-action in the actions group (\u003ca href=\"https://redirect.github.com/psf/cachecontrol/issues/383\"\u003e#383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/cachecontrol/commit/3e0c8f2fbd85bc1d64ecaac7d6b0e838a8dae8f7\"\u003e\u003ccode\u003e3e0c8f2\u003c/code\u003e\u003c/a\u003e build(deps): bump github/codeql-action in the actions group (\u003ca href=\"https://redirect.github.com/psf/cachecontrol/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/psf/cachecontrol/compare/v0.14.3...v0.14.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachetools` from 6.2.0 to 6.2.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev6.2.2 (2025-11-13)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMinor improvements from GitHub Copilot code review.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove documentation.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.2.1 (2025-10-12)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd support for Python 3.14.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove documentation.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate CI environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/4ee2600ab09b109f79d4ef08103240bf9f239b2d\"\u003e\u003ccode\u003e4ee2600\u003c/code\u003e\u003c/a\u003e Release v6.2.2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/f1cec391fea1a1e407fe596b6e37b849adf7fce5\"\u003e\u003ccode\u003ef1cec39\u003c/code\u003e\u003c/a\u003e Minor improvements from GitHub Copilot code review.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/e9117dc1e18389341ce4836f171e23d89f306b65\"\u003e\u003ccode\u003ee9117dc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/371\"\u003e#371\u003c/a\u003e from RektPunk/master\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/6774af212c0c95c2179f2644023fac74317d0262\"\u003e\u003ccode\u003e6774af2\u003c/code\u003e\u003c/a\u003e fix typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/4d8fc20d9eac2cf93d0d938127f6dd3c30441c22\"\u003e\u003ccode\u003e4d8fc20\u003c/code\u003e\u003c/a\u003e docs: add cachetools-async to related projects in README (\u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/369\"\u003e#369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/ca7508fd56103a1b6d6f17c8e93e36c60b44ca25\"\u003e\u003ccode\u003eca7508f\u003c/code\u003e\u003c/a\u003e Release v6.2.1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/f7193077decbbeddbbb76677a1d8912a454886f2\"\u003e\u003ccode\u003ef719307\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/339\"\u003e#339\u003c/a\u003e: Improve documentation regarding funtion default arguments.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/b32d00b7d4ca95ba67edfa3167c81938761ae09a\"\u003e\u003ccode\u003eb32d00b\u003c/code\u003e\u003c/a\u003e Fix typos.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/a9a7e2cc8f2f6ab3403d5b967e3324cf237878c0\"\u003e\u003ccode\u003ea9a7e2c\u003c/code\u003e\u003c/a\u003e Move extended \u003ca href=\"https://github.com/ttl\"\u003e\u003ccode\u003e@​ttl\u003c/code\u003e\u003c/a\u003e_cache docs to proper place.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/072b7e1724b5f608e611ba6d40162722012c9149\"\u003e\u003ccode\u003e072b7e1\u003c/code\u003e\u003c/a\u003e docs: clarify what units the \u003ccode\u003ettl\u003c/code\u003e argument uses (i.e., seconds)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tkem/cachetools/compare/v6.2.0...v6.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.4.0 to 3.4.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.4.4\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.3...3.4.4\"\u003e3.4.4\u003c/a\u003e (2025-10-13)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBound \u003ccode\u003esetuptools\u003c/code\u003e to a specific constraint \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;=81\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRaised upper bound of mypyc for the optional pre-built extension to v1.18.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esetuptools-scm\u003c/code\u003e as a build dependency.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnforced hashes in \u003ccode\u003edev-requirements.txt\u003c/code\u003e and created \u003ccode\u003eci-requirements.txt\u003c/code\u003e for security purposes.\u003c/li\u003e\n\u003cli\u003eAdditional pre-built wheels for riscv64, s390x, and armv7l architectures.\u003c/li\u003e\n\u003cli\u003eRestore \u003ccode\u003emultiple.intoto.jsonl\u003c/code\u003e in GitHub releases in addition to individual attestation file per wheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.9\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.1\u003c/h2\u003e\n\u003ch2\u003e🚀 We're still raising awareness around HTTP/2, and HTTP/3!\u003c/h2\u003e\n\u003cp\u003eDid you know that Internet Explorer 11 shipped with an optional HTTP/2 support back in 2013? also libcurl did ship it in 2014[...]\nUsing Requests today is the rough equivalent of using EOL Windows 8!  We promptly invite Python developers to look at the first drop-in replacement for Requests, \u003ca href=\"https://github.com/jawah/niquests\"\u003enamely Niquests\u003c/a\u003e. Ship with native WebSocket, SSE, Happy Eyeballs, DNS over HTTPS, and so on[...] All of this while remaining compatible with all Requests prior plug-ins / add-ons.\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/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.4\"\u003e3.4.4\u003c/a\u003e (2025-10-13)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBound \u003ccode\u003esetuptools\u003c/code\u003e to a specific constraint \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;=81\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRaised upper bound of mypyc for the optional pre-built extension to v1.18.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esetuptools-scm\u003c/code\u003e as a build dependency.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnforced hashes in \u003ccode\u003edev-requirements.txt\u003c/code\u003e and created \u003ccode\u003eci-requirements.txt\u003c/code\u003e for security purposes.\u003c/li\u003e\n\u003cli\u003eAdditional pre-built wheels for riscv64, s390x, and armv7l architectures.\u003c/li\u003e\n\u003cli\u003eRestore \u003ccode\u003e multiple.intoto.jsonl\u003c/code\u003e in GitHub releases in addition to individual attestation file per wheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.0...3.4.1\"\u003e3.4.1\u003c/a\u003e (2024-12-24)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eProject metadata are now stored using \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e using setuptools as the build backend.\u003c/li\u003e\n\u003cli\u003eEnforce annotation delayed loading for a simpler and consistent types in the project.\u003c/li\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.14 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\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/jawah/charset_normalizer/commit/b30ffdcc2f11043c0d34e60fe66d3815cd49b32b\"\u003e\u003ccode\u003eb30ffdc\u003c/code\u003e\u003c/a\u003e :wrench: fix checksum step in cd.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/d3fbfcfad7dfe3c640886f1a6a6351da527f6634\"\u003e\u003ccode\u003ed3fbfcf\u003c/code\u003e\u003c/a\u003e :wrench: fix cd.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/dafbb95f8c00d3cc8b99158caa63006ffab98749\"\u003e\u003ccode\u003edafbb95\u003c/code\u003e\u003c/a\u003e Release 3.4.4 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/658\"\u003e#658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/1f18ffaa69d2c84fea7abedb8840197ba9c14562\"\u003e\u003ccode\u003e1f18ffa\u003c/code\u003e\u003c/a\u003e :arrow_up: raise mypy upper bound to 1.18.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/ef4ac69ad203891f24e26b2422ab3a08053044fa\"\u003e\u003ccode\u003eef4ac69\u003c/code\u003e\u003c/a\u003e Merge branch 'release-3.4.4' of github.com:jawah/charset_normalizer into rele...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/4b35dda053db5e2e60a247e80a116e4ef04f439b\"\u003e\u003ccode\u003e4b35dda\u003c/code\u003e\u003c/a\u003e :pencil: write changelog for 3.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/0ec6452f1a34cbc77a55b237c4118807b44c2a33\"\u003e\u003ccode\u003e0ec6452\u003c/code\u003e\u003c/a\u003e :wrench: update cd.yml workflow (add riscv64, s390x and armv7l)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f341edec8a828dda394abfa011b1ded8b4b102e2\"\u003e\u003ccode\u003ef341ede\u003c/code\u003e\u003c/a\u003e :arrow_up: upgrade dependencies (dev, ci)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/a308841e660a4d61ea6c448e7b8bf97415ecdc4a\"\u003e\u003ccode\u003ea308841\u003c/code\u003e\u003c/a\u003e :pencil: write changelog for 3.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/9c906da611d5ca5ef076d6bf7f60e629f661d0b0\"\u003e\u003ccode\u003e9c906da\u003c/code\u003e\u003c/a\u003e :wrench: update cd.yml workflow (add riscv64, s390x and armv7l)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.0...3.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cli-helpers` from 2.3.1 to 2.7.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/dbcli/cli_helpers/blob/main/CHANGELOG\"\u003ecli-helpers's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 2.7.0\u003c/h2\u003e\n\u003cp\u003e(released on 2025-07-28)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003emysql\u003c/code\u003e and \u003ccode\u003emysql_unicode\u003c/code\u003e output formats which right-align numbers.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 2.6.0\u003c/h2\u003e\n\u003cp\u003e(released on 2025-07-12)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRegister the JSON formats so they are actually usable.\u003c/li\u003e\n\u003cli\u003eMake JSON formats able to encode Decimals and None/NULLs.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 2.5.0\u003c/h2\u003e\n\u003cp\u003e(released on 2025-07-10)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded noheader CSV and TSV output formats.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003ejsonl\u003c/code\u003e and \u003ccode\u003ejsonl_escaped\u003c/code\u003e output formats.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 2.4.0\u003c/h2\u003e\n\u003cp\u003e(released on 2025-03-10)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded format_timestamps preprocessor for per-column date/time formatting.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dbcli/cli_helpers/commit/c34ae9fc68c4c8a74124c2cd416fc06148d71445\"\u003e\u003ccode\u003ec34ae9f\u003c/code\u003e\u003c/a\u003e Releasing version 2.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dbcli/cli_helpers/commit/c0d127c362583fe96ca1a49a6365187f9a03cffb\"\u003e\u003ccode\u003ec0d127c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/dbcli/cli_helpers/issues/96\"\u003e#96\u003c/a\u003e from dbcli/RW/add-mysql-output-formats\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dbcli/cli_helpers/commit/6f804e9636499f2c37154192e8d60c47670403cc\"\u003e\u003ccode\u003e6f804e9\u003c/code\u003e\u003c/a\u003e add mysql/mysql_unicode output formats\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dbcli/cli_helpers/commit/22881bb13b98f0fdf85faf61af3c5c92a2184044\"\u003e\u003ccode\u003e22881bb\u003c/code\u003e\u003c/a\u003e Releasing version 2.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dbcli/cli_helpers/commit/090a529385052852115f7274ce3a0915820610e4\"\u003e\u003ccode\u003e090a529\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/dbcli/cli_helpers/issues/95\"\u003e#95\u003c/a\u003e from dbcli/RW/changelog-v2-6-0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dbcli/cli_helpers/commit/a94997008b955647a4d0c5951b5d19b9105efc36\"\u003e\u003ccode\u003ea949970\u003c/code\u003e\u003c/a\u003e update changelog for release v2.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dbcli/cli_helpers/commit/789daf491d2945f23e2359f6a3ae93067cf31e7b\"\u003e\u003ccode\u003e789daf4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/dbcli/cli_helpers/issues/94\"\u003e#94\u003c/a\u003e from dbcli/RW/json-format-followups\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dbcli/cli_helpers/commit/49bfdb922915a9906ca6af23e1cab9216b055253\"\u003e\u003ccode\u003e49bfdb9\u003c/code\u003e\u003c/a\u003e followups for JSON output formats\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dbcli/cli_helpers/commit/0edf14eabfaaf556d75560ae2bfd674ed2276ba9\"\u003e\u003ccode\u003e0edf14e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/dbcli/cli_helpers/issues/93\"\u003e#93\u003c/a\u003e from dbcli/RW/prepare-v2-5-0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dbcli/cli_helpers/commit/24fb5fc2bdc561301c34e3e7e572a51352741ba2\"\u003e\u003ccode\u003e24fb5fc\u003c/code\u003e\u003c/a\u003e bump version for v2.5.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/dbcli/cli_helpers/compare/v2.3.1...v2.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.1.7 to 8.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.3.1\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.1 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.3.1/\"\u003ehttps://pypi.org/project/click/8.3.1/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-1\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-1\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/28\"\u003ehttps://github.com/pallets/click/milestone/28\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDon't discard pager arguments by correctly using \u003ccode\u003esubprocess.Popen\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3039\"\u003e#3039\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3055\"\u003e#3055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace \u003ccode\u003eSentinel.UNSET\u003c/code\u003e default values by \u003ccode\u003eNone\u003c/code\u003e as they're passed through the \u003ccode\u003eContext.invoke()\u003c/code\u003e method. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3066\"\u003e#3066\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3065\"\u003e#3065\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3068\"\u003e#3068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix conversion of \u003ccode\u003eSentinel.UNSET\u003c/code\u003e happening too early, which caused incorrect behavior for multiple parameters using the same name. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3071\"\u003e#3071\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3079\"\u003e#3079\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix rendering when \u003ccode\u003eprompt\u003c/code\u003e and \u003ccode\u003econfirm\u003c/code\u003e parameter \u003ccode\u003eprompt_suffix\u003c/code\u003e is empty. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3019\"\u003e#3019\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3021\"\u003e#3021\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen \u003ccode\u003eSentinel.UNSET\u003c/code\u003e is found during parsing, it will skip calls to \u003ccode\u003etype_cast_value\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3069\"\u003e#3069\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3090\"\u003e#3090\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHide \u003ccode\u003eSentinel.UNSET\u003c/code\u003e values as \u003ccode\u003eNone\u003c/code\u003e when looking up for other parameters through the context inside parameter callbacks. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3136\"\u003e#3136\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3137\"\u003e#3137\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.3.0\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecation, or introduce potentially breaking changes.\u003c/p\u003e\n\u003cp\u003eWe encourage everyone to upgrade. You can read more about our \u003ca href=\"https://palletsprojects.com/versions\"\u003eVersion Support Policy\u003c/a\u003e on our website.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.3.0/\"\u003ehttps://pypi.org/project/click/8.3.0/\u003c/a\u003e\nChanges:  \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-0\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-0\u003c/a\u003e\nMilestone \u003ca href=\"https://github.com/pallets/click/milestone/27\"\u003ehttps://github.com/pallets/click/milestone/27\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eImproved flag option handling\u003c/strong\u003e: Reworked the relationship between \u003ccode\u003eflag_value\u003c/code\u003e\nand \u003ccode\u003edefault\u003c/code\u003e parameters for better consistency:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter value is now preserved as-is and passed directly\nto CLI functions (no more unexpected transformations)\u003c/li\u003e\n\u003cli\u003eException: flag options with \u003ccode\u003edefault=True\u003c/code\u003e maintain backward compatibility\nby defaulting to their \u003ccode\u003eflag_value\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter can now be any type (\u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003eNone\u003c/code\u003e, etc.)\u003c/li\u003e\n\u003cli\u003eFixes inconsistencies reported in: \u003ca href=\"https://redirect.github.com/pallets/click/issues/1992\"\u003e#1992\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2514\"\u003e#2514\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2610\"\u003e#2610\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3024\"\u003e#3024\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003edefault\u003c/code\u003e to be set on \u003ccode\u003eArgument\u003c/code\u003e for \u003ccode\u003enargs = -1\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2164\"\u003e#2164\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for \u003ccode\u003enargs\u003c/code\u003e option in combination with flag\noption \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for nargs option in combination with flag option \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix handling of quoted and escaped parameters in Fish autocompletion. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2995\"\u003e#2995\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3013\"\u003e#3013\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLazily import \u003ccode\u003eshutil\u003c/code\u003e.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3023\"\u003e#3023\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProperly forward exception information to resources registered with\n\u003ccode\u003eclick.core.Context.with_resource()\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3058\"\u003e#3058\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression related to EOF handling in CliRunner.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2939\"\u003e#2939\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2940\"\u003e#2940\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.2.2\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.2.2 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.2.2/\"\u003ehttps://pypi.org/project/click/8.2.2/\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/blob/main/CHANGES.rst\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.3.1\u003c/h2\u003e\n\u003cp\u003eReleased 2025-11-15\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDon't discard pager arguments by correctly using \u003ccode\u003esubprocess.Popen\u003c/code\u003e. :issue:\u003ccode\u003e3039\u003c/code\u003e\n:pr:\u003ccode\u003e3055\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eReplace \u003ccode\u003eSentinel.UNSET\u003c/code\u003e default values by \u003ccode\u003eNone\u003c/code\u003e as they're passed through\nthe \u003ccode\u003eContext.invoke()\u003c/code\u003e method. :issue:\u003ccode\u003e3066\u003c/code\u003e :issue:\u003ccode\u003e3065\u003c/code\u003e :pr:\u003ccode\u003e3068\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix conversion of \u003ccode\u003eSentinel.UNSET\u003c/code\u003e happening too early, which caused incorrect\nbehavior for multiple parameters using the same name. :issue:\u003ccode\u003e3071\u003c/code\u003e :pr:\u003ccode\u003e3079\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eHide \u003ccode\u003eSentinel.UNSET\u003c/code\u003e values as \u003ccode\u003eNone\u003c/code\u003e when looking up for other parameters\nthrough the context inside parameter callbacks. :issue:\u003ccode\u003e3136\u003c/code\u003e :pr:\u003ccode\u003e3137\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix rendering when \u003ccode\u003eprompt\u003c/code\u003e and \u003ccode\u003econfirm\u003c/code\u003e parameter \u003ccode\u003eprompt_suffix\u003c/code\u003e is\nempty. :issue:\u003ccode\u003e3019\u003c/code\u003e :pr:\u003ccode\u003e3021\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eWhen \u003ccode\u003eSentinel.UNSET\u003c/code\u003e is found during parsing, it will skip calls to\n\u003ccode\u003etype_cast_value\u003c/code\u003e. :issue:\u003ccode\u003e3069\u003c/code\u003e :pr:\u003ccode\u003e3090\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.3.0\u003c/h2\u003e\n\u003cp\u003eReleased 2025-09-17\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eImproved flag option handling\u003c/strong\u003e: Reworked the relationship between \u003ccode\u003eflag_value\u003c/code\u003e\nand \u003ccode\u003edefault\u003c/code\u003e parameters for better consistency:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter value is now preserved as-is and passed directly\nto CLI functions (no more unexpected transformations)\u003c/li\u003e\n\u003cli\u003eException: flag options with \u003ccode\u003edefault=True\u003c/code\u003e maintain backward compatibility\nby defaulting to their \u003ccode\u003eflag_value\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter can now be any type (\u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003eNone\u003c/code\u003e, etc.)\u003c/li\u003e\n\u003cli\u003eFixes inconsistencies reported in: :issue:\u003ccode\u003e1992\u003c/code\u003e :issue:\u003ccode\u003e2514\u003c/code\u003e :issue:\u003ccode\u003e2610\u003c/code\u003e\n:issue:\u003ccode\u003e3024\u003c/code\u003e :pr:\u003ccode\u003e3030\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003edefault\u003c/code\u003e to be set on \u003ccode\u003eArgument\u003c/code\u003e for \u003ccode\u003enargs = -1\u003c/code\u003e. :issue:\u003ccode\u003e2164\u003c/code\u003e\n:pr:\u003ccode\u003e3030\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for \u003ccode\u003enargs\u003c/code\u003e option in combination with flag\noption :issue:\u003ccode\u003e2813\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix handling of quoted and escaped parameters in Fish autocompletion. :issue:\u003ccode\u003e2995\u003c/code\u003e :pr:\u003ccode\u003e3013\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLazily import \u003ccode\u003eshutil\u003c/code\u003e. :pr:\u003ccode\u003e3023\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProperly forward exception information to resources registered with\n\u003ccode\u003eclick.core.Context.with_resource()\u003c/code\u003e. :issue:\u003ccode\u003e2447\u003c/code\u003e :pr:\u003ccode\u003e3058\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression related to EOF handling in \u003ccode\u003eCliRunner\u003c/code\u003e. :issue:\u003ccode\u003e2939\u003c/code\u003e :pr:\u003ccode\u003e2940\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.2.2\u003c/h2\u003e\n\u003cp\u003eReleased 2025-07-31\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix reconciliation of \u003ccode\u003edefault\u003c/code\u003e, \u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003etype\u003c/code\u003e parameters for\nflag options, as well as parsing and normalization of environment variables.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/1d038f270701498433cb432f54db89f95f07a845\"\u003e\u003ccode\u003e1d038f2\u003c/code\u003e\u003c/a\u003e release version 8.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/03f3889f505d0c9ca4f9d6810f9e4ba2799f2a66\"\u003e\u003ccode\u003e03f3889\u003c/code\u003e\u003c/a\u003e Fix Ruff UP038 warning (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3141\"\u003e#3141\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/3867781222cb63693ca67df94352d29d8e6e2770\"\u003e\u003ccode\u003e3867781\u003c/code\u003e\u003c/a\u003e Fix Ruff UP038 warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/b91bb9548a5617b1197add95e084d569f57149c3\"\u003e\u003ccode\u003eb91bb95\u003c/code\u003e\u003c/a\u003e Provide altered context to callbacks to hide \u003ccode\u003eUNSET\u003c/code\u003e values as \u003ccode\u003eNone\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3137\"\u003e#3137\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/437e1e3295c7ec979fc1bf285bb402ca20d847e7\"\u003e\u003ccode\u003e437e1e3\u003c/code\u003e\u003c/a\u003e Temporarily provide a fake context to the callback to hide \u003ccode\u003eUNSET\u003c/code\u003e values as ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/ea70da487b05d6bb758d472a3a9ffab4a5b7fcd5\"\u003e\u003ccode\u003eea70da4\u003c/code\u003e\u003c/a\u003e Don't test using a file in docs/ (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3102\"\u003e#3102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/e27b307462b725722f620c69dd1d5509c032d18a\"\u003e\u003ccode\u003ee27b307\u003c/code\u003e\u003c/a\u003e Make \u003ccode\u003euv run --all-extras pyright --verifytypes click\u003c/code\u003e pass (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/a92c573f3195c9da3058eadf1735d38af186d22c\"\u003e\u003ccode\u003ea92c573\u003c/code\u003e\u003c/a\u003e Fix test_edit to work with BSD sed (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3129\"\u003e#3129\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/bd131e1ab63da2281d6dd9b8205ad2eb5...\n\n_Description has been truncated_","html_url":"https://github.com/magic-ai-trading-bot/bot-core/pull/76","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/magic-ai-trading-bot%2Fbot-core/issues/76","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/76/packages"},{"uuid":"3613155385","node_id":"PR_kwDOIEpTDs6yzV-M","number":888,"state":"open","title":"build: bump libcst from 1.8.5 to 1.8.6","user":"dependabot[bot]","labels":["dependencies:pyproject"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-11-11T17:07:44.000Z","updated_at":"2025-11-11T19:31:42.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build","packages":[{"name":"libcst","old_version":"1.8.5","new_version":"1.8.6","repository_url":"https://github.com/Instagram/LibCST"}],"path":null,"ecosystem":"pip"},"body":"Bumps [libcst](https://github.com/Instagram/LibCST) from 1.8.5 to 1.8.6.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/releases\"\u003elibcst's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.8.6\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate pyproject.toml for 3.14t by \u003ca href=\"https://github.com/itamaro\"\u003e\u003ccode\u003e@​itamaro\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1417\"\u003eInstagram/LibCST#1417\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate PyO3 to 0.26 by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1413\"\u003eInstagram/LibCST#1413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake CodemodCommand's supported_transforms order deterministic by \u003ca href=\"https://github.com/frvnkliu\"\u003e\u003ccode\u003e@​frvnkliu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1424\"\u003eInstagram/LibCST#1424\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/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1413\"\u003eInstagram/LibCST#1413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frvnkliu\"\u003e\u003ccode\u003e@​frvnkliu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1424\"\u003eInstagram/LibCST#1424\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.5...v1.8.6\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.5...v1.8.6\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/blob/main/CHANGELOG.md\"\u003elibcst's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.8.6 - 2025-11-03\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate pyproject.toml for 3.14t by \u003ca href=\"https://github.com/itamaro\"\u003e\u003ccode\u003e@​itamaro\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1417\"\u003eInstagram/LibCST#1417\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate PyO3 to 0.26 by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1413\"\u003eInstagram/LibCST#1413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake CodemodCommand's supported_transforms order deterministic by \u003ca href=\"https://github.com/frvnkliu\"\u003e\u003ccode\u003e@​frvnkliu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1424\"\u003eInstagram/LibCST#1424\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/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1413\"\u003eInstagram/LibCST#1413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frvnkliu\"\u003e\u003ccode\u003e@​frvnkliu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1424\"\u003eInstagram/LibCST#1424\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.5...v1.8.6\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.5...v1.8.6\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/Instagram/LibCST/commit/9275a8bf7875d08659ce7b266860138bba633410\"\u003e\u003ccode\u003e9275a8b\u003c/code\u003e\u003c/a\u003e bump version to 1.8.6 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1425\"\u003e#1425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/b66c0e28229fd91ac145f1a56d7d884e6f8587b4\"\u003e\u003ccode\u003eb66c0e2\u003c/code\u003e\u003c/a\u003e [CodemodCommand] Make \u003ccode\u003etransform_module\u003c/code\u003e \u003ccode\u003esupported_transforms\u003c/code\u003e order determi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/c2169d240b5011ea820dc18d7a2452f182c2c5d3\"\u003e\u003ccode\u003ec2169d2\u003c/code\u003e\u003c/a\u003e Update PyO3 to 0.26 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1413\"\u003e#1413\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/73b17d8449034b520e7128c8a4bd100674d1e78c\"\u003e\u003ccode\u003e73b17d8\u003c/code\u003e\u003c/a\u003e Update pyproject.toml for 3.14t (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1417\"\u003e#1417\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/421f7d34004de18391014319ec6a818322637a8d\"\u003e\u003ccode\u003e421f7d3\u003c/code\u003e\u003c/a\u003e build(deps): bump pypa/cibuildwheel from 3.1.4 to 3.2.1 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1414\"\u003e#1414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/129b20f4769a2b26b41b262fb88f9aaf8754930b\"\u003e\u003ccode\u003e129b20f\u003c/code\u003e\u003c/a\u003e build(deps): bump github/codeql-action from 3 to 4 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1415\"\u003e#1415\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/6f5da5f99873e4c17e32ca221a3ddde3fb1ea354\"\u003e\u003ccode\u003e6f5da5f\u003c/code\u003e\u003c/a\u003e build(deps): bump astral-sh/setup-uv from 6 to 7 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1416\"\u003e#1416\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.5...v1.8.6\"\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=libcst\u0026package-manager=pip\u0026previous-version=1.8.5\u0026new-version=1.8.6)](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/ansys/pystk/pull/888","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ansys%2Fpystk/issues/888","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/888/packages"},{"uuid":"3578154989","node_id":"PR_kwDOETt2Sc6w_svi","number":4529,"state":"open","title":"Bump the minor-python group in /shared_requirements with 16 updates","user":"dependabot[bot]","labels":["Python","dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-11-01T16:09:54.000Z","updated_at":"2025-11-01T16:11:10.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-python","update_count":16,"packages":[{"name":"click","old_version":"8.1.7","new_version":"8.3.0","repository_url":"https://github.com/pallets/click"},{"name":"google-auth","old_version":"2.39.0","new_version":"2.42.1","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"google-crc32c","old_version":"1.6.0","new_version":"1.7.1","repository_url":"https://github.com/googleapis/python-crc32c"},{"name":"googleapis-common-protos","old_version":"1.70.0","new_version":"1.71.0"},{"name":"grpcio-status","old_version":"1.70.0","new_version":"1.76.0"},{"name":"grpcio","old_version":"1.70.0","new_version":"1.76.0","repository_url":"https://github.com/grpc/grpc"},{"name":"iniconfig","old_version":"2.1.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"libcst","old_version":"1.7.0","new_version":"1.8.5","repository_url":"https://github.com/Instagram/LibCST"},{"name":"numpy","old_version":"2.2.0","new_version":"2.3.4","repository_url":"https://github.com/numpy/numpy"},{"name":"pandas","old_version":"2.2.3","new_version":"2.3.3","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.5.0","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"pycparser","old_version":"2.22","new_version":"2.23","repository_url":"https://github.com/eliben/pycparser"},{"name":"pytest","old_version":"8.3.4","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"typing-extensions","old_version":"4.13.2","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"zipp","old_version":"3.21.0","new_version":"3.23.0","repository_url":"https://github.com/jaraco/zipp"}],"path":"/shared_requirements","ecosystem":"pip"},"body":"Bumps the minor-python group in /shared_requirements with 16 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.3.0` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.39.0` | `2.42.1` |\n| [google-crc32c](https://github.com/googleapis/python-crc32c) | `1.6.0` | `1.7.1` |\n| [googleapis-common-protos[grpc]](https://github.com/googleapis/google-cloud-python) | `1.70.0` | `1.71.0` |\n| [grpcio-status](https://grpc.io) | `1.70.0` | `1.76.0` |\n| [grpcio](https://github.com/grpc/grpc) | `1.70.0` | `1.76.0` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.1.0` | `2.3.0` |\n| [libcst](https://github.com/Instagram/LibCST) | `1.7.0` | `1.8.5` |\n| [numpy](https://github.com/numpy/numpy) | `2.2.0` | `2.3.4` |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.2.3` | `2.3.3` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.5.0` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [pycparser](https://github.com/eliben/pycparser) | `2.22` | `2.23` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.4` | `8.4.2` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.13.2` | `4.15.0` |\n| [zipp](https://github.com/jaraco/zipp) | `3.21.0` | `3.23.0` |\n\nUpdates `click` from 8.1.7 to 8.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.3.0\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecation, or introduce potentially breaking changes.\u003c/p\u003e\n\u003cp\u003eWe encourage everyone to upgrade. You can read more about our \u003ca href=\"https://palletsprojects.com/versions\"\u003eVersion Support Policy\u003c/a\u003e on our website.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.3.0/\"\u003ehttps://pypi.org/project/click/8.3.0/\u003c/a\u003e\nChanges:  \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-0\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-0\u003c/a\u003e\nMilestone \u003ca href=\"https://github.com/pallets/click/milestone/27\"\u003ehttps://github.com/pallets/click/milestone/27\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eImproved flag option handling\u003c/strong\u003e: Reworked the relationship between \u003ccode\u003eflag_value\u003c/code\u003e\nand \u003ccode\u003edefault\u003c/code\u003e parameters for better consistency:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter value is now preserved as-is and passed directly\nto CLI functions (no more unexpected transformations)\u003c/li\u003e\n\u003cli\u003eException: flag options with \u003ccode\u003edefault=True\u003c/code\u003e maintain backward compatibility\nby defaulting to their \u003ccode\u003eflag_value\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter can now be any type (\u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003eNone\u003c/code\u003e, etc.)\u003c/li\u003e\n\u003cli\u003eFixes inconsistencies reported in: \u003ca href=\"https://redirect.github.com/pallets/click/issues/1992\"\u003e#1992\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2514\"\u003e#2514\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2610\"\u003e#2610\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3024\"\u003e#3024\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003edefault\u003c/code\u003e to be set on \u003ccode\u003eArgument\u003c/code\u003e for \u003ccode\u003enargs = -1\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2164\"\u003e#2164\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for \u003ccode\u003enargs\u003c/code\u003e option in combination with flag\noption \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for nargs option in combination with flag option \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix handling of quoted and escaped parameters in Fish autocompletion. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2995\"\u003e#2995\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3013\"\u003e#3013\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLazily import \u003ccode\u003eshutil\u003c/code\u003e.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3023\"\u003e#3023\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProperly forward exception information to resources registered with\n\u003ccode\u003eclick.core.Context.with_resource()\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3058\"\u003e#3058\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression related to EOF handling in CliRunner.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2939\"\u003e#2939\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2940\"\u003e#2940\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.2.2\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.2.2 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.2.2/\"\u003ehttps://pypi.org/project/click/8.2.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-2-2\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-2-2\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/25\"\u003ehttps://github.com/pallets/click/milestone/25\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix reconciliation of \u003ccode\u003edefault\u003c/code\u003e, \u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003etype\u003c/code\u003e parameters for\nflag options, as well as parsing and normalization of environment variables.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/2952\"\u003e#2952\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2956\"\u003e#2956\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typing issue in \u003ccode\u003eBadParameter\u003c/code\u003e and \u003ccode\u003eMissingParameter\u003c/code\u003e exceptions for the\nparameter \u003ccode\u003eparam_hint\u003c/code\u003e that did not allow for a sequence of string where the\nunderlying functino \u003ccode\u003e_join_param_hints\u003c/code\u003e allows for it. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2777\"\u003e#2777\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2990\"\u003e#2990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse the value of \u003ccode\u003eEnum\u003c/code\u003e choices to render their default value in help\nscreen. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2911\"\u003e#2911\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3004\"\u003e#3004\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix completion for the Z shell (\u003ccode\u003ezsh\u003c/code\u003e) for completion items containing\ncolons. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2703\"\u003e#2703\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2846\"\u003e#2846\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't include envvar in error hint when not configured. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2971\"\u003e#2971\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2972\"\u003e#2972\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/pallets/click/blob/main/CHANGES.rst\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.3.0\u003c/h2\u003e\n\u003cp\u003eReleased 2025-09-17\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eImproved flag option handling\u003c/strong\u003e: Reworked the relationship between \u003ccode\u003eflag_value\u003c/code\u003e\nand \u003ccode\u003edefault\u003c/code\u003e parameters for better consistency:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter value is now preserved as-is and passed directly\nto CLI functions (no more unexpected transformations)\u003c/li\u003e\n\u003cli\u003eException: flag options with \u003ccode\u003edefault=True\u003c/code\u003e maintain backward compatibility\nby defaulting to their \u003ccode\u003eflag_value\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter can now be any type (\u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003eNone\u003c/code\u003e, etc.)\u003c/li\u003e\n\u003cli\u003eFixes inconsistencies reported in: :issue:\u003ccode\u003e1992\u003c/code\u003e :issue:\u003ccode\u003e2514\u003c/code\u003e :issue:\u003ccode\u003e2610\u003c/code\u003e\n:issue:\u003ccode\u003e3024\u003c/code\u003e :pr:\u003ccode\u003e3030\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003edefault\u003c/code\u003e to be set on \u003ccode\u003eArgument\u003c/code\u003e for \u003ccode\u003enargs = -1\u003c/code\u003e. :issue:\u003ccode\u003e2164\u003c/code\u003e\n:pr:\u003ccode\u003e3030\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for \u003ccode\u003enargs\u003c/code\u003e option in combination with flag\noption :issue:\u003ccode\u003e2813\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix handling of quoted and escaped parameters in Fish autocompletion. :issue:\u003ccode\u003e2995\u003c/code\u003e :pr:\u003ccode\u003e3013\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLazily import \u003ccode\u003eshutil\u003c/code\u003e. :pr:\u003ccode\u003e3023\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProperly forward exception information to resources registered with\n\u003ccode\u003eclick.core.Context.with_resource()\u003c/code\u003e. :issue:\u003ccode\u003e2447\u003c/code\u003e :pr:\u003ccode\u003e3058\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression related to EOF handling in \u003ccode\u003eCliRunner\u003c/code\u003e. :issue:\u003ccode\u003e2939\u003c/code\u003e :pr:\u003ccode\u003e2940\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.2.2\u003c/h2\u003e\n\u003cp\u003eReleased 2025-07-31\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix reconciliation of \u003ccode\u003edefault\u003c/code\u003e, \u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003etype\u003c/code\u003e parameters for\nflag options, as well as parsing and normalization of environment variables.\n:issue:\u003ccode\u003e2952\u003c/code\u003e :pr:\u003ccode\u003e2956\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix typing issue in \u003ccode\u003eBadParameter\u003c/code\u003e and \u003ccode\u003eMissingParameter\u003c/code\u003e exceptions for the\nparameter \u003ccode\u003eparam_hint\u003c/code\u003e that did not allow for a sequence of string where the\nunderlying function \u003ccode\u003e_join_param_hints\u003c/code\u003e allows for it. :issue:\u003ccode\u003e2777\u003c/code\u003e :pr:\u003ccode\u003e2990\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUse the value of \u003ccode\u003eEnum\u003c/code\u003e choices to render their default value in help\nscreen. Refs :issue:\u003ccode\u003e2911\u003c/code\u003e :pr:\u003ccode\u003e3004\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix completion for the Z shell (\u003ccode\u003ezsh\u003c/code\u003e) for completion items containing\ncolons. :issue:\u003ccode\u003e2703\u003c/code\u003e :pr:\u003ccode\u003e2846\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDon't include envvar in error hint when not configured. :issue:\u003ccode\u003e2971\u003c/code\u003e :pr:\u003ccode\u003e2972\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix a rare race in \u003ccode\u003eclick.testing.StreamMixer\u003c/code\u003e's finalization that manifested\nas a \u003ccode\u003eValueError\u003c/code\u003e on close in a multi-threaded test session.\n:issue:\u003ccode\u003e2993\u003c/code\u003e :pr:\u003ccode\u003e2991\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.2.1\u003c/h2\u003e\n\u003cp\u003eReleased 2025-05-20\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/pallets/click/commit/00fadb8904387158ce6e9aa1573be770446895c1\"\u003e\u003ccode\u003e00fadb8\u003c/code\u003e\u003c/a\u003e Release version 8.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/2a0e3ba907927ade6951d5732b775f11b54cb766\"\u003e\u003ccode\u003e2a0e3ba\u003c/code\u003e\u003c/a\u003e testing/CliRunner: Fix regression related to EOF introduced in 262bdf0 (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/e11a1efc3395e998a1521a0dc35672a799e78d30\"\u003e\u003ccode\u003ee11a1ef\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into fix-cli-runner-prompt-eof-handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/36deba8a95a2585de1a2aa4475b7f054f52830ac\"\u003e\u003ccode\u003e36deba8\u003c/code\u003e\u003c/a\u003e Forward exception information to resources registered in a context (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3058\"\u003e#3058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/f2cae7ae997cd32311cab3dede4c2b89fe05e191\"\u003e\u003ccode\u003ef2cae7a\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Add summary of PR to changelog for 8.3.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/7c7ec36354f49d1a092cb077fa4881ea4d70ba01\"\u003e\u003ccode\u003e7c7ec36\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Split resource exception handling tests in single and nested\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/92129c552da88ac30b578132031efa4b003ecc46\"\u003e\u003ccode\u003e92129c5\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Added exception forwarding to context tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/555fa9bb37770a6845a98be60b0c84876775552e\"\u003e\u003ccode\u003e555fa9b\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Forward exception data to exit stack when calling \u003ccode\u003e__exit__\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/16fe802a3f96c4c8fa3cd382f1a7577fda0c5321\"\u003e\u003ccode\u003e16fe802\u003c/code\u003e\u003c/a\u003e Add more tests on \u003ccode\u003eEnum\u003c/code\u003e rendering (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3053\"\u003e#3053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/d36de6fc67882f23d7a7d61cd4c0e25e0f88b0ac\"\u003e\u003ccode\u003ed36de6f\u003c/code\u003e\u003c/a\u003e Add more tests on Enum rendering their item's names and not values\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.1.7...8.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-auth` from 2.39.0 to 2.42.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-auth-library-python/releases\"\u003egoogle-auth's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.42.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.42.0...v2.42.1\"\u003e2.42.1\u003c/a\u003e (2025-10-30)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCatch ValueError for json.loads() (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1842\"\u003e#1842\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/b074cad460589633adfc6744c01726ae86f2aa2b\"\u003eb074cad\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.42.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.41.1...v2.42.0\"\u003e2.42.0\u003c/a\u003e (2025-10-24)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd trust boundary support for external accounts. (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1809\"\u003e#1809\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/36ecb1d65883477d27faf9c2281fc289659b9903\"\u003e36ecb1d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRead scopes from ADC json for impersoanted cred (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1820\"\u003e#1820\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/62c0fc82a3625542381f85c698595446fc99ddae\"\u003e62c0fc8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.41.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.41.0...v2.41.1\"\u003e2.41.1\u003c/a\u003e (2025-09-30)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSuppress deprecation warning for ADC (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1815\"\u003e#1815\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/751ce3f625eb24029e9f0c59c081bdd3e18eb583\"\u003e751ce3f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.41.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.40.3...v2.41.0\"\u003e2.41.0\u003c/a\u003e (2025-09-29)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for cachetools 6.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1773\"\u003e#1773\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/af18060d521baf86c219d66a26631decb3b28e79\"\u003eaf18060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd trust boundary support for service accounts and impersonation. (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1778\"\u003e#1778\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/99be2ce19401296718f880c7a80cd2e841df78bf\"\u003e99be2ce\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecating \u003ca href=\"https://googleapis.dev/python/google-auth/latest/reference/google.auth.html#google.auth.load_credentials_from_dict\"\u003eload_credentials_from_dict\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/58b66ec8069bfe5304c7da512fe89a8e838ce1ca\"\u003e58b66ec\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeprecating \u003ca href=\"https://googleapis.dev/python/google-auth/latest/reference/google.auth.html#google.auth.load_credentials_from_file\"\u003eload_credentials_from_file\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/58b66ec8069bfe5304c7da512fe89a8e838ce1ca\"\u003e58b66ec\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix type error in credentials.py for python 3.7 and 3.8 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1805\"\u003e#1805\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/c30a6a781d3e385598a0ac28a370a7f4800010cc\"\u003ec30a6a7\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate user guide to include x509 feature. (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1802\"\u003e#1802\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/2d89ab4d85568564e1f462f5b463991ffd9b82b1\"\u003e2d89ab4\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/googleapis/google-auth-library-python/blob/main/CHANGELOG.md\"\u003egoogle-auth's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.42.0...v2.42.1\"\u003e2.42.1\u003c/a\u003e (2025-10-30)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCatch ValueError for json.loads() (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1842\"\u003e#1842\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/b074cad460589633adfc6744c01726ae86f2aa2b\"\u003eb074cad\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.41.1...v2.42.0\"\u003e2.42.0\u003c/a\u003e (2025-10-24)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd trust boundary support for external accounts. (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1809\"\u003e#1809\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/36ecb1d65883477d27faf9c2281fc289659b9903\"\u003e36ecb1d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRead scopes from ADC json for impersoanted cred (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1820\"\u003e#1820\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/62c0fc82a3625542381f85c698595446fc99ddae\"\u003e62c0fc8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.41.0...v2.41.1\"\u003e2.41.1\u003c/a\u003e (2025-09-30)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSuppress deprecation warning for ADC (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1815\"\u003e#1815\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/751ce3f625eb24029e9f0c59c081bdd3e18eb583\"\u003e751ce3f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.40.3...v2.41.0\"\u003e2.41.0\u003c/a\u003e (2025-09-29)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for cachetools 6.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1773\"\u003e#1773\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/af18060d521baf86c219d66a26631decb3b28e79\"\u003eaf18060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd trust boundary support for service accounts and impersonation. (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1778\"\u003e#1778\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/99be2ce19401296718f880c7a80cd2e841df78bf\"\u003e99be2ce\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecating \u003ca href=\"https://googleapis.dev/python/google-auth/latest/reference/google.auth.html#google.auth.load_credentials_from_dict\"\u003eload_credentials_from_dict\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/58b66ec8069bfe5304c7da512fe89a8e838ce1ca\"\u003e58b66ec\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeprecating \u003ca href=\"https://googleapis.dev/python/google-auth/latest/reference/google.auth.html#google.auth.load_credentials_from_file\"\u003eload_credentials_from_file\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/58b66ec8069bfe5304c7da512fe89a8e838ce1ca\"\u003e58b66ec\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix type error in credentials.py for python 3.7 and 3.8 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1805\"\u003e#1805\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/c30a6a781d3e385598a0ac28a370a7f4800010cc\"\u003ec30a6a7\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate user guide to include x509 feature. (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1802\"\u003e#1802\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/2d89ab4d85568564e1f462f5b463991ffd9b82b1\"\u003e2d89ab4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.40.2...v2.40.3\"\u003e2.40.3\u003c/a\u003e (2025-06-04)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/5d1b862db2b23b4b7ae7d243f6dbb23165636bd5\"\u003e\u003ccode\u003e5d1b862\u003c/code\u003e\u003c/a\u003e chore(main): release 2.42.1 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1853\"\u003e#1853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/b074cad460589633adfc6744c01726ae86f2aa2b\"\u003e\u003ccode\u003eb074cad\u003c/code\u003e\u003c/a\u003e fix: catch ValueError for json.loads() (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1842\"\u003e#1842\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/cb62f5727854965e108c4e1790c4f9f9306fe3ce\"\u003e\u003ccode\u003ecb62f57\u003c/code\u003e\u003c/a\u003e chore: secret update (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1851\"\u003e#1851\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/2f8826d3226a3df7dfdd5898c91ea15ee21d1bd0\"\u003e\u003ccode\u003e2f8826d\u003c/code\u003e\u003c/a\u003e chore(main): release 2.42.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1819\"\u003e#1819\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/aca34b5ca521398be7bb99543a32302bc40ca234\"\u003e\u003ccode\u003eaca34b5\u003c/code\u003e\u003c/a\u003e chore: secret update (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1847\"\u003e#1847\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/62c0fc82a3625542381f85c698595446fc99ddae\"\u003e\u003ccode\u003e62c0fc8\u003c/code\u003e\u003c/a\u003e fix: Read scopes from ADC json for impersoanted cred (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1820\"\u003e#1820\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/36ecb1d65883477d27faf9c2281fc289659b9903\"\u003e\u003ccode\u003e36ecb1d\u003c/code\u003e\u003c/a\u003e feat: Add trust boundary support for external accounts. (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1809\"\u003e#1809\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/10823c2feb700075cd9d2e895ca60a1fa0d4d912\"\u003e\u003ccode\u003e10823c2\u003c/code\u003e\u003c/a\u003e chore: secret update (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1818\"\u003e#1818\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/e16d70b750e469d59e89ebc8969b6a74a97ae365\"\u003e\u003ccode\u003ee16d70b\u003c/code\u003e\u003c/a\u003e test: Add tests to cover deprecation and suppression (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1817\"\u003e#1817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/ebf33636bc3e525de37f331b75fade6b61c950cb\"\u003e\u003ccode\u003eebf3363\u003c/code\u003e\u003c/a\u003e chore(main): release 2.41.1 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1816\"\u003e#1816\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.39.0...v2.42.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-crc32c` from 1.6.0 to 1.7.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-crc32c/releases\"\u003egoogle-crc32c's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.7.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-crc32c/compare/v1.7.0...v1.7.1\"\u003e1.7.1\u003c/a\u003e (2025-03-25)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.13 windows wheels (\u003ca href=\"https://github.com/googleapis/python-crc32c/commit/fbb0e26b576fb82b8677b14505e702313cbcfe4e\"\u003efbb0e26\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.7.1rc1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-crc32c/compare/v1.7.0...v1.7.1rc1\"\u003e1.7.1rc1\u003c/a\u003e (2025-03-24)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.13 windows wheels (\u003ca href=\"https://github.com/googleapis/python-crc32c/commit/fbb0e26b576fb82b8677b14505e702313cbcfe4e\"\u003efbb0e26\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.7.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-crc32c/compare/v1.6.0...v1.7.0\"\u003e1.7.0\u003c/a\u003e (2025-03-17)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.13 trove classifier (\u003ca href=\"https://redirect.github.com/googleapis/python-crc32c/issues/233\"\u003e#233\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-crc32c/commit/b1252575f21d0dde1e131f5251a989f56fb2c0d5\"\u003eb125257\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for python 3.13 (\u003ca href=\"https://redirect.github.com/googleapis/python-crc32c/issues/239\"\u003e#239\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-crc32c/commit/6b918f4b081daf3cbee0cbd778b27c98670fb3a4\"\u003e6b918f4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.7.0rc1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-crc32c/compare/v1.6.0...v1.7.0rc1\"\u003e1.7.0rc1\u003c/a\u003e (2025-03-17)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.13 trove classifier (\u003ca href=\"https://redirect.github.com/googleapis/python-crc32c/issues/233\"\u003e#233\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-crc32c/commit/b1252575f21d0dde1e131f5251a989f56fb2c0d5\"\u003eb125257\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for python 3.13 (\u003ca href=\"https://redirect.github.com/googleapis/python-crc32c/issues/239\"\u003e#239\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-crc32c/commit/6b918f4b081daf3cbee0cbd778b27c98670fb3a4\"\u003e6b918f4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-crc32c/blob/main/CHANGELOG.md\"\u003egoogle-crc32c's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-crc32c/compare/v1.7.0...v1.7.1\"\u003e1.7.1\u003c/a\u003e (2025-03-25)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.13 windows wheels (\u003ca href=\"https://github.com/googleapis/python-crc32c/commit/fbb0e26b576fb82b8677b14505e702313cbcfe4e\"\u003efbb0e26\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-crc32c/compare/v1.6.0...v1.7.0\"\u003e1.7.0\u003c/a\u003e (2025-03-17)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.13 trove classifier (\u003ca href=\"https://redirect.github.com/googleapis/python-crc32c/issues/233\"\u003e#233\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-crc32c/commit/b1252575f21d0dde1e131f5251a989f56fb2c0d5\"\u003eb125257\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for python 3.13 (\u003ca href=\"https://redirect.github.com/googleapis/python-crc32c/issues/239\"\u003e#239\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-crc32c/commit/6b918f4b081daf3cbee0cbd778b27c98670fb3a4\"\u003e6b918f4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-crc32c/commit/2f190af0e633056f73b69301233cd38c06a01355\"\u003e\u003ccode\u003e2f190af\u003c/code\u003e\u003c/a\u003e chore(main): release 1.7.1 (\u003ca href=\"https://redirect.github.com/googleapis/python-crc32c/issues/280\"\u003e#280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-crc32c/commit/f6f30afe19b76582ec42b648aadb1f7b36a93f5b\"\u003e\u003ccode\u003ef6f30af\u003c/code\u003e\u003c/a\u003e build: update dependencies in .kokoro/requirements.txt (\u003ca href=\"https://redirect.github.com/googleapis/python-crc32c/issues/283\"\u003e#283\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-crc32c/commit/e8dfb6272364e1bdee272d425021535150773f58\"\u003e\u003ccode\u003ee8dfb62\u003c/code\u003e\u003c/a\u003e build: update license identifiers in setup.cfg (\u003ca href=\"https://redirect.github.com/googleapis/python-crc32c/issues/281\"\u003e#281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-crc32c/commit/fbb0e26b576fb82b8677b14505e702313cbcfe4e\"\u003e\u003ccode\u003efbb0e26\u003c/code\u003e\u003c/a\u003e build: update windows build script to use trimmed python version (\u003ca href=\"https://redirect.github.com/googleapis/python-crc32c/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-crc32c/commit/9a26b14b22aea80d0eafbffa9cf4fc4c5af605d8\"\u003e\u003ccode\u003e9a26b14\u003c/code\u003e\u003c/a\u003e chore(deps): update all dependencies (\u003ca href=\"https://redirect.github.com/googleapis/python-crc32c/issues/273\"\u003e#273\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-crc32c/commit/02434cdefcaf93347aba26e6e2598866bcd6fbe7\"\u003e\u003ccode\u003e02434cd\u003c/code\u003e\u003c/a\u003e chore(python): remove unused docs scripts (\u003ca href=\"https://redirect.github.com/googleapis/python-crc32c/issues/271\"\u003e#271\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-crc32c/commit/a63ba5521430e728d96d7aec4797dccf9bea45b4\"\u003e\u003ccode\u003ea63ba55\u003c/code\u003e\u003c/a\u003e chore(main): release 1.7.0 (\u003ca href=\"https://redirect.github.com/googleapis/python-crc32c/issues/246\"\u003e#246\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-crc32c/commit/ffede4b1c793e77d7b0a8e954f68aceb4074c904\"\u003e\u003ccode\u003effede4b\u003c/code\u003e\u003c/a\u003e build: disable logging in publish_python_wheel.sh (\u003ca href=\"https://redirect.github.com/googleapis/python-crc32c/issues/276\"\u003e#276\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-crc32c/commit/45f4714785385ce310f8316012773fffda0f577d\"\u003e\u003ccode\u003e45f4714\u003c/code\u003e\u003c/a\u003e build: update build scripts to prepare for release (\u003ca href=\"https://redirect.github.com/googleapis/python-crc32c/issues/275\"\u003e#275\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-crc32c/commit/6b918f4b081daf3cbee0cbd778b27c98670fb3a4\"\u003e\u003ccode\u003e6b918f4\u003c/code\u003e\u003c/a\u003e feat: add support for python 3.13 (\u003ca href=\"https://redirect.github.com/googleapis/python-crc32c/issues/239\"\u003e#239\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/python-crc32c/compare/v1.6.0...v1.7.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `googleapis-common-protos[grpc]` from 1.70.0 to 1.71.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/releases\"\u003egoogleapis-common-protos[grpc]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogleapis-common-protos 1.71.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/googleapis-common-protos-v1.70.0...googleapis-common-protos-v1.71.0\"\u003e1.71.0\u003c/a\u003e (2025-10-20)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd support for Python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14699\"\u003e#14699\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/8b69540b\"\u003e8b69540b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/b46d2934515b3611ca35870fa6b034eb41af5eef\"\u003e\u003ccode\u003eb46d293\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20251020T120127Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14778\"\u003e#14778\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/295713f918bc121843bac0702e759471b06f1f5b\"\u003e\u003ccode\u003e295713f\u003c/code\u003e\u003c/a\u003e chore(librarian): onboard google-cloud-dialogflow-cx (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14768\"\u003e#14768\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/a925caeb1fffce7e8554fb6b5437c98fa5168754\"\u003e\u003ccode\u003ea925cae\u003c/code\u003e\u003c/a\u003e feat: Add support for Python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14764\"\u003e#14764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/84be9032eb7ba04bb305870160699d2bc12e0dac\"\u003e\u003ccode\u003e84be903\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20251017T151203Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14762\"\u003e#14762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1b6c82dedecc7f5cff09650ee204641577620751\"\u003e\u003ccode\u003e1b6c82d\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20251016T234720Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14754\"\u003e#14754\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/32b32eff99a3312711e116b75d12aabffa06a869\"\u003e\u003ccode\u003e32b32ef\u003c/code\u003e\u003c/a\u003e chore(librarian): Delete grpc-google-iam-v1/.OwlBot.yaml (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14747\"\u003e#14747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/d0ebbba25ce500e39e43635e4d55ca8f3226fa0e\"\u003e\u003ccode\u003ed0ebbba\u003c/code\u003e\u003c/a\u003e chore(librarian): onboard google-cloud-gke-hub (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14720\"\u003e#14720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/531a400efb37d16dba07a4b3c3481d99b35c5e2e\"\u003e\u003ccode\u003e531a400\u003c/code\u003e\u003c/a\u003e chore(librarian): onboard google-cloud-monitoring-dashboards (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14719\"\u003e#14719\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/3b6cd47e851ff66ee95dcf66dc37743cc9133c05\"\u003e\u003ccode\u003e3b6cd47\u003c/code\u003e\u003c/a\u003e chore(librarian): reduce diff in google-cloud-iam (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14718\"\u003e#14718\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/80ab8285f6ace1830fe2f44de55e5b6cded6e2de\"\u003e\u003ccode\u003e80ab828\u003c/code\u003e\u003c/a\u003e chore: update README for Python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14738\"\u003e#14738\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/googleapis-common-protos-v1.70.0...googleapis-common-protos-v1.71.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `grpcio-status` from 1.70.0 to 1.76.0\n\nUpdates `grpcio` from 1.70.0 to 1.76.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/grpc/grpc/releases\"\u003egrpcio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v1.76.0\u003c/h2\u003e\n\u003cp\u003eThis is release 1.76.0 (\u003ca href=\"https://github.com/grpc/grpc/blob/master/doc/g_stands_for.md\"\u003egenuine\u003c/a\u003e) of gRPC Core.\u003c/p\u003e\n\u003cp\u003eFor gRPC documentation, see \u003ca href=\"https://grpc.io/\"\u003egrpc.io\u003c/a\u003e. For previous releases, see \u003ca href=\"https://github.com/grpc/grpc/releases\"\u003eReleases\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis release contains refinements, improvements, and bug fixes, with highlights listed below.\u003c/p\u003e\n\u003ch2\u003eCore\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePrioritize system CA over bundled CA. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/40583\"\u003e#40583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[event_engine] Introduce a event_engine_poller_for_python experiment. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/40243\"\u003e#40243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[metrics] add grpc.lb.backend_service label. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/40486\"\u003e#40486\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eC#\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[csharp tools] \u003ca href=\"https://redirect.github.com/grpc/grpc/issues/39374\"\u003e#39374\u003c/a\u003e Grpc.Tools can't process file Suffix name with Upper character. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/40072\"\u003e#40072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePython\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[Python] gRPC AsyncIO: Improve CompletionQueue polling performance. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/39993\"\u003e#39993\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease v1.76.0-pre1\u003c/h2\u003e\n\u003cp\u003eThis is a prerelease of gRPC Core 1.76.0 (genuine).\u003c/p\u003e\n\u003cp\u003eFor gRPC documentation, see \u003ca href=\"https://grpc.io/\"\u003egrpc.io\u003c/a\u003e. For previous releases, see \u003ca href=\"https://github.com/grpc/grpc/releases\"\u003eReleases\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis prerelease contains refinements, improvements, and bug fixes.\u003c/p\u003e\n\u003ch2\u003eRelease v1.75.1\u003c/h2\u003e\n\u003cp\u003eThis is release gRPC Core 1.75.1 (gemini).\u003c/p\u003e\n\u003cp\u003eFor gRPC documentation, see \u003ca href=\"https://grpc.io/\"\u003egrpc.io\u003c/a\u003e. For previous releases, see \u003ca href=\"https://github.com/grpc/grpc/releases\"\u003eReleases\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis release contains refinements, improvements, and bug fixes.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003ePython\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRelease grpcio wheels with Python 3.14 support (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40403\"\u003e#40403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAsyncio: fixes grpc shutdown race condition occurring during python interpreter finalizations. (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40447\"\u003e#40447\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eThis also addresses previously reported issues with empty error message on Python interpreter exit (\u003ccode\u003eError in sys.excepthook:\u003c/code\u003e/\u003ccode\u003eOriginal exception was:\u003c/code\u003e empty): \u003ca href=\"https://redirect.github.com/grpc/grpc/issues/36655\"\u003e#36655\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/grpc/grpc/issues/38679\"\u003e#38679\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/grpc/grpc/issues/33342\"\u003e#33342\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003ePython 3.14: preserve current behavior when using grpc.aio async methods outside of a running event loop. (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40750\"\u003e#40750\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eNote: using async methods outside of a running event loop is \u003ca href=\"https://docs.python.org/3.14/library/asyncio-policy.html#asyncio-policies\"\u003ediscouraged\u003c/a\u003e by Python, and \u003cstrong\u003ewill be deprecated in future gRPC releases\u003c/strong\u003e. Please use the \u003ca href=\"https://docs.python.org/3.14/library/asyncio-runner.html#asyncio.run\"\u003easyncio.run()\u003c/a\u003e function (or \u003ca href=\"https://docs.python.org/3.14/library/asyncio-runner.html#asyncio.Runner\"\u003easyncio.Runner\u003c/a\u003e for custom loop factories). For interactive mode, use dedicated \u003ca href=\"https://docs.python.org/3/library/asyncio.html#asyncio-cli\"\u003easyncio REPL\u003c/a\u003e: \u003ccode\u003epython -m asyncio\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/grpc/grpc/compare/v1.75.0...v1.75.1\"\u003ehttps://github.com/grpc/grpc/compare/v1.75.0...v1.75.1\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/f5ffb68d8a2fd603dff16287e90a4ac571e1fec6\"\u003e\u003ccode\u003ef5ffb68\u003c/code\u003e\u003c/a\u003e [Release] Bump version to 1.76.0 (on v1.76.x branch) (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40925\"\u003e#40925\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/ffd83794b3804739c0789096155833e302ac1270\"\u003e\u003ccode\u003effd8379\u003c/code\u003e\u003c/a\u003e [Release] Bump version to 1.76.0-pre1 (on v1.76.x branch) (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40798\"\u003e#40798\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/835d394034060002262ab4e404e552ac0393a1a1\"\u003e\u003ccode\u003e835d394\u003c/code\u003e\u003c/a\u003e [Release] Bump core version to 51.0.0 for upcoming release (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40784\"\u003e#40784\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/de6ce7f32b1bf254d2b4c04e8872b63284632fd3\"\u003e\u003ccode\u003ede6ce7f\u003c/code\u003e\u003c/a\u003e [PH2] Add files for goaway support (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40786\"\u003e#40786\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/f7dd7f4b4186049d104aa2c88ad4432f58c19ede\"\u003e\u003ccode\u003ef7dd7f4\u003c/code\u003e\u003c/a\u003e [PH2][Trivial][CleanUp]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/2d40a376c7ea72602fa7bc62606324b1ff14c44f\"\u003e\u003ccode\u003e2d40a37\u003c/code\u003e\u003c/a\u003e [PH2][ChannelZ][ZTrace][Skeleton]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/83acb278bef565d8d46d6e19582eaacc86f737a3\"\u003e\u003ccode\u003e83acb27\u003c/code\u003e\u003c/a\u003e [build] Add Missing Dependencies for reflection_proto in Preparation for Enab...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/abfe8a29d31a8ab9ff6cdda11cdfa2813cb59632\"\u003e\u003ccode\u003eabfe8a2\u003c/code\u003e\u003c/a\u003e [PH2] Stream list represents streams open for reads.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/c65d8de800aaa907b45cee54ebcd29d5b556d3ca\"\u003e\u003ccode\u003ec65d8de\u003c/code\u003e\u003c/a\u003e [PH2][Expt] Fix the experiment expiry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/755d025f16d20641155e89ecc46777e94e9e172d\"\u003e\u003ccode\u003e755d025\u003c/code\u003e\u003c/a\u003e Fix latent_see_test flakiness\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/grpc/grpc/compare/v1.70.0...v1.76.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `iniconfig` from 2.1.0 to 2.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/iniconfig/releases\"\u003einiconfig's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 2.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd IniConfig.parse() with inline comment stripping and Unicode whitespace handling by \u003ca href=\"https://github.com/RonnyPfannschmidt\"\u003e\u003ccode\u003e@​RonnyPfannschmidt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/70\"\u003epytest-dev/iniconfig#70\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pytest-dev/iniconfig/compare/v2.2.0...v2.3.0\"\u003ehttps://github.com/pytest-dev/iniconfig/compare/v2.2.0...v2.3.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 2.2.0\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/iniconfig/blob/main/CHANGELOG\"\u003einiconfig's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.3.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eadd IniConfig.parse() classmethod with strip_inline_comments parameter (fixes \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/55\"\u003e#55\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eby default (strip_inline_comments=True), inline comments are properly stripped from values\u003c/li\u003e\n\u003cli\u003eset strip_inline_comments=False to preserve old behavior if needed\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eIniConfig() constructor maintains backward compatibility (does not strip inline comments)\u003c/li\u003e\n\u003cli\u003eusers should migrate to IniConfig.parse() for correct comment handling\u003c/li\u003e\n\u003cli\u003eadd strip_section_whitespace parameter to IniConfig.parse() (regarding \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/4\"\u003e#4\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eopt-in parameter to strip Unicode whitespace from section names\u003c/li\u003e\n\u003cli\u003ewhen True, strips Unicode whitespace (U+00A0, U+2000, U+3000, etc.) from section names\u003c/li\u003e\n\u003cli\u003ewhen False (default), preserves existing behavior for backward compatibility\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eclarify Unicode whitespace handling (regarding \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/4\"\u003e#4\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003esince iniconfig 2.0.0 (Python 3 only), all strings are Unicode by default\u003c/li\u003e\n\u003cli\u003ePython 3's str.strip() has handled Unicode whitespace since Python 3.0 (2008)\u003c/li\u003e\n\u003cli\u003einiconfig automatically benefits from this in all supported versions (Python \u0026gt;= 3.10)\u003c/li\u003e\n\u003cli\u003ekey names and values have Unicode whitespace properly stripped using Python's built-in methods\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.2.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003edrop Python 3.8 and 3.9 support (now requires Python \u0026gt;= 3.10)\u003c/li\u003e\n\u003cli\u003eadd Python 3.14 classifier\u003c/li\u003e\n\u003cli\u003emigrate from hatchling to setuptools 77 with setuptools_scm\u003c/li\u003e\n\u003cli\u003eadopt PEP 639 license specifiers and PEP 740 build attestations\u003c/li\u003e\n\u003cli\u003emigrate from black + pyupgrade to ruff\u003c/li\u003e\n\u003cli\u003emigrate CI to uv and unified test workflow\u003c/li\u003e\n\u003cli\u003eautomate GitHub releases and PyPI publishing via Trusted Publishing\u003c/li\u003e\n\u003cli\u003einclude tests in sdist\u003c/li\u003e\n\u003cli\u003emodernize code for Python 3.10+ (remove \u003cstrong\u003efuture\u003c/strong\u003e annotations, TYPE_CHECKING guards)\u003c/li\u003e\n\u003cli\u003erename _ParsedLine to ParsedLine\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/7faed13ae50bad7c5da3f5782f254a8a7736bb84\"\u003e\u003ccode\u003e7faed13\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/70\"\u003e#70\u003c/a\u003e from RonnyPfannschmidt/comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/58c08691bbb86aee8efbf73e37293dd6d65b68b4\"\u003e\u003ccode\u003e58c0869\u003c/code\u003e\u003c/a\u003e Refactor: Simplify IniConfig constructor and parse() method\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/6d0af4529e4375e49dc871aa3d5ce17fe1791afe\"\u003e\u003ccode\u003e6d0af45\u003c/code\u003e\u003c/a\u003e Add strip_section_whitespace parameter to address issue \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/4\"\u003e#4\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/e2d89f5283cbeb4b4ca55fe88b1c353c343b4972\"\u003e\u003ccode\u003ee2d89f5\u003c/code\u003e\u003c/a\u003e Add IniConfig.parse() classmethod to fix inline comment handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/57b7ed9c7a5950f9c57b2cfbe641ff4cc04baf1c\"\u003e\u003ccode\u003e57b7ed9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/66\"\u003e#66\u003c/a\u003e from killiandesse/pep639\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/27ac49f56794db397ecb017414663a81e701dfdc\"\u003e\u003ccode\u003e27ac49f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/69\"\u003e#69\u003c/a\u003e from RonnyPfannschmidt/limit-attestation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/3402322097aa7b6eba9a68c96faddc780e04b085\"\u003e\u003ccode\u003e3402322\u003c/code\u003e\u003c/a\u003e Disable build attestations for PRs from forks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/27e6a7b4a7b24f7f8a5e5492b071ab16eff36f95\"\u003e\u003ccode\u003e27e6a7b\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into pep639\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/65228817674f099d48cab0f0974000ea0e3031c1\"\u003e\u003ccode\u003e6522881\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/68\"\u003e#68\u003c/a\u003e from pytest-dev/fix-build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/8b2bccb3b6be37c9bf70a4fbe0cda4c92c70355f\"\u003e\u003ccode\u003e8b2bccb\u003c/code\u003e\u003c/a\u003e Update CHANGELOG and automate releases\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/iniconfig/compare/v2.1.0...v2.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `libcst` from 1.7.0 to 1.8.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/releases\"\u003elibcst's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.8.5\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: circular import error by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1406\"\u003eInstagram/LibCST#1406\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.4...v1.8.5\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.4...v1.8.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.8.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efixed: generate Attribute nodes when applying type annotations by \u003ca href=\"https://github.com/tungol\"\u003e\u003ccode\u003e@​tungol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1396\"\u003eInstagram/LibCST#1396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded:Support parsing of t-strings \u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1374\"\u003e#1374\u003c/a\u003e  by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1398\"\u003eInstagram/LibCST#1398\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded: add support for PEP758 by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1401\"\u003eInstagram/LibCST#1401\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tungol\"\u003e\u003ccode\u003e@​tungol\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1396\"\u003eInstagram/LibCST#1396\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.4\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.8.2\u003c/h2\u003e\n\u003ch1\u003eFixed\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix(dependency): add back typing-extensions for 3.9 by \u003ca href=\"https://github.com/Lee-W\"\u003e\u003ccode\u003e@​Lee-W\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1358\"\u003eInstagram/LibCST#1358\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Lee-W\"\u003e\u003ccode\u003e@​Lee-W\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1358\"\u003eInstagram/LibCST#1358\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.1...v1.8.2\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.1...v1.8.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.8.1\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd helper to convert nodes to matchers by \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1351\"\u003eInstagram/LibCST#1351\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eUpdated\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid raising bare Exception by \u003ca href=\"https://github.com/zaicruvoir1rominet\"\u003e\u003ccode\u003e@​zaicruvoir1rominet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1168\"\u003eInstagram/LibCST#1168\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade PyYAML-ft version and use new module name by \u003ca href=\"https://github.com/lysnikolaou\"\u003e\u003ccode\u003e@​lysnikolaou\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1353\"\u003eInstagram/LibCST#1353\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lysnikolaou\"\u003e\u003ccode\u003e@​lysnikolaou\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1353\"\u003eInstagram/LibCST#1353\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.0...v1.8.1\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.0...v1.8.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.8.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow configuring empty formatter lists in codemod CLI by \u003ca href=\"https://github.com/ngoldbaum\"\u003e\u003ccode\u003e@​ngoldbaum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1319\"\u003eInstagram/LibCST#1319\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePublish several new binary wheels\n\u003cul\u003e\n\u003cli\u003emacos intel by \u003ca href=\"https://github.com/hadialqattan\"\u003e\u003ccode\u003e@​hadialqattan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1316\"\u003eInstagram/LibCST#1316\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ewindows arm64 by \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1304\"\u003eInstagram/LibCST#1304\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e3.13 CPython free-threaded by \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1333\"\u003eInstagram/LibCST#1333\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(only on \u003ca href=\"https://test.pypi.org/project/libcst/#history\"\u003etest.pypi.org\u003c/a\u003e) 3.14 and 3.14 CPython free-threaded by \u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1345\"\u003eInstagram/LibCST#1345\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1331\"\u003eInstagram/LibCST#1331\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eEnable support for free-threaded CPython by \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1295\"\u003eInstagram/LibCST#1295\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1335\"\u003eInstagram/LibCST#1335\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/blob/main/CHANGELOG.md\"\u003elibcst's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.8.5 - 2025-09-25\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efixed: circular import error by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1406\"\u003eInstagram/LibCST#1406\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.8.4 - 2025-09-09\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efixed: generate Attribute nodes when applying type annotations by \u003ca href=\"https://github.com/tungol\"\u003e\u003ccode\u003e@​tungol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1396\"\u003eInstagram/LibCST#1396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded: Support parsing of t-strings \u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1374\"\u003e#1374\u003c/a\u003e  by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1398\"\u003eInstagram/LibCST#1398\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded: add support for PEP758 by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1401\"\u003eInstagram/LibCST#1401\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tungol\"\u003e\u003ccode\u003e@​tungol\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1396\"\u003eInstagram/LibCST#1396\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.4\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.4\u003c/a\u003e\u003c/p\u003e\n\u003ch1\u003e1.8.3 - 2025-08-29\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eremoved: remove entry points to pure parser by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1375\"\u003eInstagram/LibCST#1375\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixed: fixes match statements to work with PositionProvider by \u003ca href=\"https://github.com/imsut\"\u003e\u003ccode\u003e@​imsut\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1389\"\u003eInstagram/LibCST#1389\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hunterhogan\"\u003e\u003ccode\u003e@​hunterhogan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1378\"\u003eInstagram/LibCST#1378\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thomas-serre-sonarsource\"\u003e\u003ccode\u003e@​thomas-serre-sonarsource\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1379\"\u003eInstagram/LibCST#1379\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/imsut\"\u003e\u003ccode\u003e@​imsut\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1389\"\u003eInstagram/LibCST#1389\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.3\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.3\u003c/a\u003e\u003c/p\u003e\n\u003ch1\u003e1.8.2 - 2025-06-13\u003c/h1\u003e\n\u003ch1\u003eFixed\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix(dependency): add back typing-extensions for 3.9 by \u003ca href=\"https://github.com/Lee-W\"\u003e\u003ccode\u003e@​Lee-W\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1358\"\u003eInstagram/LibCST#1358\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Lee-W\"\u003e\u003ccode\u003e@​Lee-W\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1358\"\u003eInstagram/LibCST#1358\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.1...v1.8.2\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.1...v1.8.2\u003c/a\u003e\u003c/p\u003e\n\u003ch1\u003e1.8.1 - 2025-06-10\u003c/h1\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd helper to convert nodes to matchers by \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1351\"\u003eInstagram/LibCST#1351\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eUpdated\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid raising bare Exception by \u003ca href=\"https://github.com/zaicruvoir1rominet\"\u003e\u003ccode\u003e@​zaicruvoir1rominet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1168\"\u003eInstagram/LibCST#1168\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade PyYAML-ft version and use new module name by \u003ca href=\"https://github.com/lysnikolaou\"\u003e\u003ccode\u003e@​lysnikolaou\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1353\"\u003eInstagram/LibCST#1353\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/7c906eb47c02dca8d5b4273a032805516361c8cb\"\u003e\u003ccode\u003e7c906eb\u003c/code\u003e\u003c/a\u003e bump version to 1.8.5 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1407\"\u003e#1407\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/de5635394b5627cb86656147ba2f96e835ed3d44\"\u003e\u003ccode\u003ede56353\u003c/code\u003e\u003c/a\u003e fix: circular import error (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1406\"\u003e#1406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/47cacb69a32520be52975527e0cc87a4b4d5cd77\"\u003e\u003ccode\u003e47cacb6\u003c/code\u003e\u003c/a\u003e bump version to 1.8.4 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1402\"\u003e#1402\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/3b5329aa2022d97972d2f58eefe61b759b8e56c1\"\u003e\u003ccode\u003e3b5329a\u003c/code\u003e\u003c/a\u003e feat: add support for PEP758 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1401\"\u003e#1401\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/48668dfabb25e4bbdd35f81407498f5f5e47bf88\"\u003e\u003ccode\u003e48668df\u003c/code\u003e\u003c/a\u003e Support parsing of t-strings \u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1374\"\u003e#1374\u003c/a\u003e  (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1398\"\u003e#1398\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/0c82bfa76166ed38409a97de8974f9aaf3e7e572\"\u003e\u003ccode\u003e0c82bfa\u003c/code\u003e\u003c/a\u003e build(deps): bump regex from 1.11.1 to 1.11.2 in /native (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1399\"\u003e#1399\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/f40d8351450ca9adfe5270bd86ec7951e83221f4\"\u003e\u003ccode\u003ef40d835\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1400\"\u003e#1400\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/d721a06c3fc3ab9210acd180cec5aaca856e1bc7\"\u003e\u003ccode\u003ed721a06\u003c/code\u003e\u003c/a\u003e generate Attribute nodes when applying type annotations (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1396\"\u003e#1396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/e064729b4c04b834754c7be7f43a4dfb38972570\"\u003e\u003ccode\u003ee064729\u003c/code\u003e\u003c/a\u003e build(deps): bump pypa/cibuildwheel from 3.0.1 to 3.1.4 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1395\"\u003e#1395\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/f746afd537910d99bd8226a1c1edbf5bc69630eb\"\u003e\u003ccode\u003ef746afd\u003c/code\u003e\u003c/a\u003e build(deps): bump rayon from 1.10.0 to 1.11.0 in /native (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1394\"\u003e#1394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.7.0...v1.8.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `numpy` from 2.2.0 to 2.3.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/numpy/numpy/releases\"\u003enumpy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.3.4 (Oct 15,  2025)\u003c/h2\u003e\n\u003ch1\u003eNumPy 2.3.4 Release Notes\u003c/h1\u003e\n\u003cp\u003eThe NumPy 2.3.4 release is a patch release split between a number of maintenance\nupdates and bug fixes. This release supports Python versions 3.11-3.14. This\nrelease is based on Python 3.14.0 final.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cp\u003eThe \u003ccode\u003enpymath\u003c/code\u003e and \u003ccode\u003enpyrandom\u003c/code\u003e libraries now have a \u003ccode\u003e.lib\u003c/code\u003e rather than a\n\u003ccode\u003e.a\u003c/code\u003e file extension on win-arm64, for compatibility for building with MSVC and\n\u003ccode\u003esetuptools\u003c/code\u003e. Please note that using these static libraries is discouraged\nand for existing projects using it, it's best to use it with a matching\ncompiler toolchain, which is \u003ccode\u003eclang-cl\u003c/code\u003e on Windows on Arm.\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/29750\"\u003egh-29750\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eA total of 17 people contributed to this release. People with a \u0026quot;+\u0026quot; by their\nnames contributed a patch for the first time.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e!DWesl\u003c/li\u003e\n\u003cli\u003eCharles Harris\u003c/li\u003e\n\u003cli\u003eChristian Barbia +\u003c/li\u003e\n\u003cli\u003eEvgeni Burovski\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eMaaz +\u003c/li\u003e\n\u003cli\u003eMateusz Sokół\u003c/li\u003e\n\u003cli\u003eMatti Picus\u003c/li\u003e\n\u003cli\u003eNathan Goldbaum\u003c/li\u003e\n\u003cli\u003eRalf Gommers\u003c/li\u003e\n\u003cli\u003eRiku Sakamoto +\u003c/li\u003e\n\u003cli\u003eSandeep Gupta +\u003c/li\u003e\n\u003cli\u003eSayed Awad\u003c/li\u003e\n\u003cli\u003eSebastian Berg\u003c/li\u003e\n\u003cli\u003eSergey Fedorov +\u003c/li\u003e\n\u003cli\u003eWarren Weckesser\u003c/li\u003e\n\u003cli\u003edependabot[bot]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePull requests merged\u003c/h2\u003e\n\u003cp\u003eA total of 30 pull requests were merged for this release.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/29725\"\u003e#29725\u003c/a\u003e: MAINT: Prepare 2.3.x for further development\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/29781\"\u003e#29781\u003c/a\u003e: MAINT: Pin some upstream dependences\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/29782\"\u003e#29782\u003c/a\u003e: BLD: enable x86-simd-sort to build on KNL with -mavx512f\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/29783\"\u003e#29783\u003c/a\u003e: BUG: Include python-including headers first (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/29281\"\u003e#29281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/29784\"\u003e#29784\u003c/a\u003e: TYP: fix np.number and np.*integer method declaration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/29785\"\u003e#29785\u003c/a\u003e: TYP: mypy 1.18.1\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/1458b9e79d1a5755eae9adcb346758f449b6b430\"\u003e\u003ccode\u003e1458b9e\u003c/code\u003e\u003c/a\u003e REL: Prepare for the NumPy 2.3.4 release (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/29955\"\u003e#29955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/7583bed3577d8b5e7e74a24a6337d530b045f0bc\"\u003e\u003ccode\u003e7583bed\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/29950\"\u003e#29950\u003c/a\u003e from charris/backport-29885\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/318675152646f184a24da3f9b8742de202c99bfb\"\u003e\u003ccode\u003e3186751\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/29949\"\u003e#29949\u003c/a\u003e from charris/backport-29948\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/7fd2ad9eff9cb04bcea5e2b6f89e8870329c5c93\"\u003e\u003ccode\u003e7fd2ad9\u003c/code\u003e\u003c/a\u003e STY: rename \u003ccode\u003e@classmethod\u003c/code\u003e arg to \u003ccode\u003ecls\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/fe8447d7aefe7c63ab37d426e6d725e857fb45f7\"\u003e\u003ccode\u003efe8447d\u003c/code\u003e\u003c/a\u003e MAINT: Simplify string arena growth strategy (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/29885\"\u003e#29885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/a90f073415846b378ab166b5a2f9acf87876853b\"\u003e\u003ccode\u003ea90f073\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/29940\"\u003e#29940\u003c/a\u003e from charris/backport-29937\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/55d91abd9564835cc0e0dcc92d84b25dcfaff1d9\"\u003e\u003ccode\u003e55d91ab\u003c/code\u003e\u003c/a\u003e MAINT: Bump pypa/cibuildwheel from 3.1.4 to 3.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/e2f038314bb736930f74c127eed8843d29f59c55\"\u003e\u003ccode\u003ee2f0383\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/29926\"\u003e#29926\u003c/a\u003e from charris/backport-29609\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/b427e83710abd344168f156ab212a8d19f0d2185\"\u003e\u003ccode\u003eb427e83\u003c/code\u003e\u003c/a\u003e BUG: fix negative samples generated by Wald distribution (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/29609\"\u003e#29609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/36363d6534eb9e786f998a56ccc59f0ba1bc1efe\"\u003e\u003ccode\u003e36363d6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/29922\"\u003e#29922\u003c/a\u003e from charris/backport-29914\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/numpy/numpy/compare/v2.2.0...v2.3.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pandas` from 2.2.3 to 2.3.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pandas-dev/pandas/releases\"\u003epandas's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ePandas 2.3.3\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 2.3.3.\nThis release includes some improvements and fixes to the future string data type (preview feature for the upcoming pandas 3.0). We recommend that all users upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/pandas-docs/version/2.3/whatsnew/v2.3.3.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\nPandas 2.3.3 supports Python 3.9 and higher, and is the first release to support Python 3.14.\u003c/p\u003e\n\u003cp\u003eThe release will be available on the conda-forge channel:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install pandas --channel conda-forge\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr via PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython3 -m pip install --upgrade pandas\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003ch2\u003ePandas 2.3.2\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 2.3.2.\nThis release includes some improvements and fixes to the future string data type (preview feature for the upcoming pandas 3.0). We recommend that all users upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/pandas-docs/version/2.3/whatsnew/v2.3.2.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\nPandas 2.3.2 supports Python 3.9 and higher.\u003c/p\u003e\n\u003cp\u003eThe release will be available on the conda-forge channel:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install pandas --channel conda-forge\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr via PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython3 -m pip install --upgrade pandas\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003ch2\u003ePandas 2.3.1\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 2.3.1.\nThis release includes some improvements and fixes to the future string data type (preview feature for the upcoming pandas 3.0). We recommend that all users upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/pandas-docs/version/2.3.1/whatsnew/v2.3.1.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\nPandas 2.3.1 supports Python 3.9 and hi...\n\n_Description has been truncated_","html_url":"https://github.com/SatcherInstitute/health-equity-tracker/pull/4529","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/SatcherInstitute%2Fhealth-equity-tracker/issues/4529","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/4529/packages"},{"uuid":"3533243963","node_id":"PR_kwDOP8wAgs6urK6V","number":930,"state":"closed","title":"Bump libcst from 1.7.0 to 1.8.5","user":"dependabot[bot]","labels":["dependencies","python","test-needed","missing-coverage"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-10-20T17:15:23.000Z","author_association":null,"state_reason":null,"created_at":"2025-10-20T17:12:17.000Z","updated_at":"2025-10-20T17:15:32.000Z","time_to_close":186,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"libcst","old_version":"1.7.0","new_version":"1.8.5","repository_url":"https://github.com/Instagram/LibCST"}],"path":null,"ecosystem":"pip"},"body":"Bumps [libcst](https://github.com/Instagram/LibCST) from 1.7.0 to 1.8.5.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/releases\"\u003elibcst's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.8.5\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: circular import error by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1406\"\u003eInstagram/LibCST#1406\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.4...v1.8.5\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.4...v1.8.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.8.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efixed: generate Attribute nodes when applying type annotations by \u003ca href=\"https://github.com/tungol\"\u003e\u003ccode\u003e@​tungol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1396\"\u003eInstagram/LibCST#1396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded:Support parsing of t-strings \u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1374\"\u003e#1374\u003c/a\u003e  by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1398\"\u003eInstagram/LibCST#1398\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded: add support for PEP758 by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1401\"\u003eInstagram/LibCST#1401\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tungol\"\u003e\u003ccode\u003e@​tungol\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1396\"\u003eInstagram/LibCST#1396\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.4\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.8.2\u003c/h2\u003e\n\u003ch1\u003eFixed\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix(dependency): add back typing-extensions for 3.9 by \u003ca href=\"https://github.com/Lee-W\"\u003e\u003ccode\u003e@​Lee-W\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1358\"\u003eInstagram/LibCST#1358\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Lee-W\"\u003e\u003ccode\u003e@​Lee-W\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1358\"\u003eInstagram/LibCST#1358\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.1...v1.8.2\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.1...v1.8.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.8.1\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd helper to convert nodes to matchers by \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1351\"\u003eInstagram/LibCST#1351\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eUpdated\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid raising bare Exception by \u003ca href=\"https://github.com/zaicruvoir1rominet\"\u003e\u003ccode\u003e@​zaicruvoir1rominet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1168\"\u003eInstagram/LibCST#1168\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade PyYAML-ft version and use new module name by \u003ca href=\"https://github.com/lysnikolaou\"\u003e\u003ccode\u003e@​lysnikolaou\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1353\"\u003eInstagram/LibCST#1353\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lysnikolaou\"\u003e\u003ccode\u003e@​lysnikolaou\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1353\"\u003eInstagram/LibCST#1353\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.0...v1.8.1\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.0...v1.8.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.8.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow configuring empty formatter lists in codemod CLI by \u003ca href=\"https://github.com/ngoldbaum\"\u003e\u003ccode\u003e@​ngoldbaum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1319\"\u003eInstagram/LibCST#1319\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePublish several new binary wheels\n\u003cul\u003e\n\u003cli\u003emacos intel by \u003ca href=\"https://github.com/hadialqattan\"\u003e\u003ccode\u003e@​hadialqattan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1316\"\u003eInstagram/LibCST#1316\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ewindows arm64 by \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1304\"\u003eInstagram/LibCST#1304\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e3.13 CPython free-threaded by \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1333\"\u003eInstagram/LibCST#1333\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(only on \u003ca href=\"https://test.pypi.org/project/libcst/#history\"\u003etest.pypi.org\u003c/a\u003e) 3.14 and 3.14 CPython free-threaded by \u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1345\"\u003eInstagram/LibCST#1345\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1331\"\u003eInstagram/LibCST#1331\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eEnable support for free-threaded CPython by \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1295\"\u003eInstagram/LibCST#1295\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1335\"\u003eInstagram/LibCST#1335\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/blob/main/CHANGELOG.md\"\u003elibcst's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.8.5 - 2025-09-25\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efixed: circular import error by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1406\"\u003eInstagram/LibCST#1406\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.8.4 - 2025-09-09\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efixed: generate Attribute nodes when applying type annotations by \u003ca href=\"https://github.com/tungol\"\u003e\u003ccode\u003e@​tungol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1396\"\u003eInstagram/LibCST#1396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded: Support parsing of t-strings \u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1374\"\u003e#1374\u003c/a\u003e  by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1398\"\u003eInstagram/LibCST#1398\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded: add support for PEP758 by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1401\"\u003eInstagram/LibCST#1401\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tungol\"\u003e\u003ccode\u003e@​tungol\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1396\"\u003eInstagram/LibCST#1396\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.4\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.4\u003c/a\u003e\u003c/p\u003e\n\u003ch1\u003e1.8.3 - 2025-08-29\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eremoved: remove entry points to pure parser by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1375\"\u003eInstagram/LibCST#1375\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixed: fixes match statements to work with PositionProvider by \u003ca href=\"https://github.com/imsut\"\u003e\u003ccode\u003e@​imsut\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1389\"\u003eInstagram/LibCST#1389\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hunterhogan\"\u003e\u003ccode\u003e@​hunterhogan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1378\"\u003eInstagram/LibCST#1378\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thomas-serre-sonarsource\"\u003e\u003ccode\u003e@​thomas-serre-sonarsource\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1379\"\u003eInstagram/LibCST#1379\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/imsut\"\u003e\u003ccode\u003e@​imsut\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1389\"\u003eInstagram/LibCST#1389\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.3\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.3\u003c/a\u003e\u003c/p\u003e\n\u003ch1\u003e1.8.2 - 2025-06-13\u003c/h1\u003e\n\u003ch1\u003eFixed\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix(dependency): add back typing-extensions for 3.9 by \u003ca href=\"https://github.com/Lee-W\"\u003e\u003ccode\u003e@​Lee-W\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1358\"\u003eInstagram/LibCST#1358\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Lee-W\"\u003e\u003ccode\u003e@​Lee-W\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1358\"\u003eInstagram/LibCST#1358\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.1...v1.8.2\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.1...v1.8.2\u003c/a\u003e\u003c/p\u003e\n\u003ch1\u003e1.8.1 - 2025-06-10\u003c/h1\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd helper to convert nodes to matchers by \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1351\"\u003eInstagram/LibCST#1351\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eUpdated\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid raising bare Exception by \u003ca href=\"https://github.com/zaicruvoir1rominet\"\u003e\u003ccode\u003e@​zaicruvoir1rominet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1168\"\u003eInstagram/LibCST#1168\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade PyYAML-ft version and use new module name by \u003ca href=\"https://github.com/lysnikolaou\"\u003e\u003ccode\u003e@​lysnikolaou\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1353\"\u003eInstagram/LibCST#1353\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/7c906eb47c02dca8d5b4273a032805516361c8cb\"\u003e\u003ccode\u003e7c906eb\u003c/code\u003e\u003c/a\u003e bump version to 1.8.5 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1407\"\u003e#1407\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/de5635394b5627cb86656147ba2f96e835ed3d44\"\u003e\u003ccode\u003ede56353\u003c/code\u003e\u003c/a\u003e fix: circular import error (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1406\"\u003e#1406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/47cacb69a32520be52975527e0cc87a4b4d5cd77\"\u003e\u003ccode\u003e47cacb6\u003c/code\u003e\u003c/a\u003e bump version to 1.8.4 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1402\"\u003e#1402\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/3b5329aa2022d97972d2f58eefe61b759b8e56c1\"\u003e\u003ccode\u003e3b5329a\u003c/code\u003e\u003c/a\u003e feat: add support for PEP758 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1401\"\u003e#1401\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/48668dfabb25e4bbdd35f81407498f5f5e47bf88\"\u003e\u003ccode\u003e48668df\u003c/code\u003e\u003c/a\u003e Support parsing of t-strings \u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1374\"\u003e#1374\u003c/a\u003e  (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1398\"\u003e#1398\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/0c82bfa76166ed38409a97de8974f9aaf3e7e572\"\u003e\u003ccode\u003e0c82bfa\u003c/code\u003e\u003c/a\u003e build(deps): bump regex from 1.11.1 to 1.11.2 in /native (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1399\"\u003e#1399\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/f40d8351450ca9adfe5270bd86ec7951e83221f4\"\u003e\u003ccode\u003ef40d835\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1400\"\u003e#1400\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/d721a06c3fc3ab9210acd180cec5aaca856e1bc7\"\u003e\u003ccode\u003ed721a06\u003c/code\u003e\u003c/a\u003e generate Attribute nodes when applying type annotations (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1396\"\u003e#1396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/e064729b4c04b834754c7be7f43a4dfb38972570\"\u003e\u003ccode\u003ee064729\u003c/code\u003e\u003c/a\u003e build(deps): bump pypa/cibuildwheel from 3.0.1 to 3.1.4 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1395\"\u003e#1395\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/f746afd537910d99bd8226a1c1edbf5bc69630eb\"\u003e\u003ccode\u003ef746afd\u003c/code\u003e\u003c/a\u003e build(deps): bump rayon from 1.10.0 to 1.11.0 in /native (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1394\"\u003e#1394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.7.0...v1.8.5\"\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=libcst\u0026package-manager=pip\u0026previous-version=1.7.0\u0026new-version=1.8.5)](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/neuron7x/TradePulse/pull/930","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/neuron7x%2FTradePulse/issues/930","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/930/packages"},{"uuid":"2901967766","node_id":"PR_kwDOMt9I9c6s-IOW","number":80,"state":"closed","title":"[pip][dev] (deps-dev): Bump libcst from 1.7.0 to 1.8.5 in the dev-dependencies group across 1 directory","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-10-13T09:01:41.537Z","updated_at":"2025-10-13T10:56:20.236Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"[pip][dev] (deps-dev): Bump","packages":[{"name":"libcst","old_version":"1.7.0","new_version":"1.8.5","repository_url":"https://github.com/Instagram/LibCST"}],"path":"the dev-dependencies group across 1 directory","ecosystem":"pip"},"body":"Bumps the dev-dependencies group with 1 update in the / directory: [libcst](https://github.com/Instagram/LibCST).\n\nUpdates `libcst` from 1.7.0 to 1.8.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/releases\"\u003elibcst's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.8.5\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: circular import error by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1406\"\u003eInstagram/LibCST#1406\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.4...v1.8.5\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.4...v1.8.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.8.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efixed: generate Attribute nodes when applying type annotations by \u003ca href=\"https://github.com/tungol\"\u003e\u003ccode\u003e@​tungol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1396\"\u003eInstagram/LibCST#1396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded:Support parsing of t-strings \u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1374\"\u003e#1374\u003c/a\u003e  by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1398\"\u003eInstagram/LibCST#1398\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded: add support for PEP758 by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1401\"\u003eInstagram/LibCST#1401\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tungol\"\u003e\u003ccode\u003e@​tungol\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1396\"\u003eInstagram/LibCST#1396\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.4\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.8.2\u003c/h2\u003e\n\u003ch1\u003eFixed\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix(dependency): add back typing-extensions for 3.9 by \u003ca href=\"https://github.com/Lee-W\"\u003e\u003ccode\u003e@​Lee-W\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1358\"\u003eInstagram/LibCST#1358\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Lee-W\"\u003e\u003ccode\u003e@​Lee-W\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1358\"\u003eInstagram/LibCST#1358\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.1...v1.8.2\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.1...v1.8.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.8.1\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd helper to convert nodes to matchers by \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1351\"\u003eInstagram/LibCST#1351\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eUpdated\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid raising bare Exception by \u003ca href=\"https://github.com/zaicruvoir1rominet\"\u003e\u003ccode\u003e@​zaicruvoir1rominet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1168\"\u003eInstagram/LibCST#1168\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade PyYAML-ft version and use new module name by \u003ca href=\"https://github.com/lysnikolaou\"\u003e\u003ccode\u003e@​lysnikolaou\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1353\"\u003eInstagram/LibCST#1353\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lysnikolaou\"\u003e\u003ccode\u003e@​lysnikolaou\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1353\"\u003eInstagram/LibCST#1353\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.0...v1.8.1\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.0...v1.8.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.8.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow configuring empty formatter lists in codemod CLI by \u003ca href=\"https://github.com/ngoldbaum\"\u003e\u003ccode\u003e@​ngoldbaum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1319\"\u003eInstagram/LibCST#1319\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePublish several new binary wheels\n\u003cul\u003e\n\u003cli\u003emacos intel by \u003ca href=\"https://github.com/hadialqattan\"\u003e\u003ccode\u003e@​hadialqattan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1316\"\u003eInstagram/LibCST#1316\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ewindows arm64 by \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1304\"\u003eInstagram/LibCST#1304\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e3.13 CPython free-threaded by \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1333\"\u003eInstagram/LibCST#1333\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(only on \u003ca href=\"https://test.pypi.org/project/libcst/#history\"\u003etest.pypi.org\u003c/a\u003e) 3.14 and 3.14 CPython free-threaded by \u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1345\"\u003eInstagram/LibCST#1345\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1331\"\u003eInstagram/LibCST#1331\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eEnable support for free-threaded CPython by \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1295\"\u003eInstagram/LibCST#1295\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1335\"\u003eInstagram/LibCST#1335\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/blob/main/CHANGELOG.md\"\u003elibcst's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.8.5 - 2025-09-25\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efixed: circular import error by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1406\"\u003eInstagram/LibCST#1406\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.8.4 - 2025-09-09\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efixed: generate Attribute nodes when applying type annotations by \u003ca href=\"https://github.com/tungol\"\u003e\u003ccode\u003e@​tungol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1396\"\u003eInstagram/LibCST#1396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded: Support parsing of t-strings \u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1374\"\u003e#1374\u003c/a\u003e  by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1398\"\u003eInstagram/LibCST#1398\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded: add support for PEP758 by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1401\"\u003eInstagram/LibCST#1401\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tungol\"\u003e\u003ccode\u003e@​tungol\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1396\"\u003eInstagram/LibCST#1396\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.4\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.4\u003c/a\u003e\u003c/p\u003e\n\u003ch1\u003e1.8.3 - 2025-08-29\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eremoved: remove entry points to pure parser by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1375\"\u003eInstagram/LibCST#1375\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixed: fixes match statements to work with PositionProvider by \u003ca href=\"https://github.com/imsut\"\u003e\u003ccode\u003e@​imsut\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1389\"\u003eInstagram/LibCST#1389\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hunterhogan\"\u003e\u003ccode\u003e@​hunterhogan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1378\"\u003eInstagram/LibCST#1378\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thomas-serre-sonarsource\"\u003e\u003ccode\u003e@​thomas-serre-sonarsource\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1379\"\u003eInstagram/LibCST#1379\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/imsut\"\u003e\u003ccode\u003e@​imsut\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1389\"\u003eInstagram/LibCST#1389\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.3\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.3\u003c/a\u003e\u003c/p\u003e\n\u003ch1\u003e1.8.2 - 2025-06-13\u003c/h1\u003e\n\u003ch1\u003eFixed\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix(dependency): add back typing-extensions for 3.9 by \u003ca href=\"https://github.com/Lee-W\"\u003e\u003ccode\u003e@​Lee-W\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1358\"\u003eInstagram/LibCST#1358\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Lee-W\"\u003e\u003ccode\u003e@​Lee-W\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1358\"\u003eInstagram/LibCST#1358\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.1...v1.8.2\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.1...v1.8.2\u003c/a\u003e\u003c/p\u003e\n\u003ch1\u003e1.8.1 - 2025-06-10\u003c/h1\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd helper to convert nodes to matchers by \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1351\"\u003eInstagram/LibCST#1351\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eUpdated\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid raising bare Exception by \u003ca href=\"https://github.com/zaicruvoir1rominet\"\u003e\u003ccode\u003e@​zaicruvoir1rominet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1168\"\u003eInstagram/LibCST#1168\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade PyYAML-ft version and use new module name by \u003ca href=\"https://github.com/lysnikolaou\"\u003e\u003ccode\u003e@​lysnikolaou\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1353\"\u003eInstagram/LibCST#1353\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/7c906eb47c02dca8d5b4273a032805516361c8cb\"\u003e\u003ccode\u003e7c906eb\u003c/code\u003e\u003c/a\u003e bump version to 1.8.5 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1407\"\u003e#1407\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/de5635394b5627cb86656147ba2f96e835ed3d44\"\u003e\u003ccode\u003ede56353\u003c/code\u003e\u003c/a\u003e fix: circular import error (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1406\"\u003e#1406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/47cacb69a32520be52975527e0cc87a4b4d5cd77\"\u003e\u003ccode\u003e47cacb6\u003c/code\u003e\u003c/a\u003e bump version to 1.8.4 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1402\"\u003e#1402\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/3b5329aa2022d97972d2f58eefe61b759b8e56c1\"\u003e\u003ccode\u003e3b5329a\u003c/code\u003e\u003c/a\u003e feat: add support for PEP758 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1401\"\u003e#1401\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/48668dfabb25e4bbdd35f81407498f5f5e47bf88\"\u003e\u003ccode\u003e48668df\u003c/code\u003e\u003c/a\u003e Support parsing of t-strings \u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1374\"\u003e#1374\u003c/a\u003e  (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1398\"\u003e#1398\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/0c82bfa76166ed38409a97de8974f9aaf3e7e572\"\u003e\u003ccode\u003e0c82bfa\u003c/code\u003e\u003c/a\u003e build(deps): bump regex from 1.11.1 to 1.11.2 in /native (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1399\"\u003e#1399\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/f40d8351450ca9adfe5270bd86ec7951e83221f4\"\u003e\u003ccode\u003ef40d835\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1400\"\u003e#1400\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/d721a06c3fc3ab9210acd180cec5aaca856e1bc7\"\u003e\u003ccode\u003ed721a06\u003c/code\u003e\u003c/a\u003e generate Attribute nodes when applying type annotations (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1396\"\u003e#1396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/e064729b4c04b834754c7be7f43a4dfb38972570\"\u003e\u003ccode\u003ee064729\u003c/code\u003e\u003c/a\u003e build(deps): bump pypa/cibuildwheel from 3.0.1 to 3.1.4 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1395\"\u003e#1395\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/f746afd537910d99bd8226a1c1edbf5bc69630eb\"\u003e\u003ccode\u003ef746afd\u003c/code\u003e\u003c/a\u003e build(deps): bump rayon from 1.10.0 to 1.11.0 in /native (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1394\"\u003e#1394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.7.0...v1.8.5\"\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=libcst\u0026package-manager=pip\u0026previous-version=1.7.0\u0026new-version=1.8.5)](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/github/annotated-logger/pull/80","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/github%2Fannotated-logger/issues/80","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/80/packages"},{"uuid":"3507867234","node_id":"PR_kwDOMt9I9c6tWSC9","number":82,"state":"closed","title":"[pip] (deps): Bump the dev-dependencies group across 1 directory with 4 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-10-17T20:25:40.000Z","author_association":null,"state_reason":null,"created_at":"2025-10-12T21:05:15.000Z","updated_at":"2025-10-17T20:25:42.000Z","time_to_close":429625,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"[pip] (deps): Bump","group_name":"dev-dependencies","update_count":4,"packages":[{"name":"idna","old_version":"3.10","new_version":"3.11","repository_url":"https://github.com/kjd/idna"},{"name":"libcst","old_version":"1.7.0","new_version":"1.8.5","repository_url":"https://github.com/Instagram/LibCST"},{"name":"textual","old_version":"6.2.1","new_version":"6.3.0","repository_url":"https://github.com/Textualize/textual"},{"name":"virtualenv","old_version":"20.34.0","new_version":"20.35.3","repository_url":"https://github.com/pypa/virtualenv"}],"path":null,"ecosystem":"pip"},"body":"Bumps the dev-dependencies group with 4 updates in the / directory: [idna](https://github.com/kjd/idna), [libcst](https://github.com/Instagram/LibCST), [textual](https://github.com/Textualize/textual) and [virtualenv](https://github.com/pypa/virtualenv).\n\nUpdates `idna` from 3.10 to 3.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kjd/idna/blob/master/HISTORY.rst\"\u003eidna's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e3.11 (2025-10-12)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate to Unicode 16.0.0, including significant changes to UTS46\nprocessing. As a result of Unicode ending support for it, transitional\nprocessing no longer has an effect and returns the same result.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14, lowest supported version is Python 3.8.\u003c/li\u003e\n\u003cli\u003eVarious updates to packaging, including PEP 740 support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/ad949ee3052c2265c66e3df2dd8871a5832ba327\"\u003e\u003ccode\u003ead949ee\u003c/code\u003e\u003c/a\u003e Release v3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/cae4ba779e0a543823894bd4136651c187944da8\"\u003e\u003ccode\u003ecae4ba7\u003c/code\u003e\u003c/a\u003e Second release candidate for 3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/8adb305165c77c4a45d1568a70ead75d2197692c\"\u003e\u003ccode\u003e8adb305\u003c/code\u003e\u003c/a\u003e Add space in RST link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/74cb2b652bb06133b0c4ab52cc98221be63162cf\"\u003e\u003ccode\u003e74cb2b6\u003c/code\u003e\u003c/a\u003e Release candidate for 3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/05dab09fdde5bbf7d52f757c4dc62e0ba934cca8\"\u003e\u003ccode\u003e05dab09\u003c/code\u003e\u003c/a\u003e Format idna-data with ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/90eac78b737d26613776b490432fc6d926b15c55\"\u003e\u003ccode\u003e90eac78\u003c/code\u003e\u003c/a\u003e Apply ruff formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/a31ce7ecc0b767e40abb5ce28744ac567b73f366\"\u003e\u003ccode\u003ea31ce7e\u003c/code\u003e\u003c/a\u003e Remove errant test vectors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/81f03334211c78c1832991ce70ebafb3cbfbb79c\"\u003e\u003ccode\u003e81f0333\u003c/code\u003e\u003c/a\u003e Omit vectors known to be broken in test suite\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/a0f32578c0cac28c7ffbb4c860c92eb2b9b579bd\"\u003e\u003ccode\u003ea0f3257\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into unicode-16-uts46-changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/38d98860e6a1ab92fd35ab09ea4739feabf339a3\"\u003e\u003ccode\u003e38d9886\u003c/code\u003e\u003c/a\u003e Remove extra UTS46 test vector\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kjd/idna/compare/v3.10...v3.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `libcst` from 1.7.0 to 1.8.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/releases\"\u003elibcst's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.8.5\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: circular import error by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1406\"\u003eInstagram/LibCST#1406\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.4...v1.8.5\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.4...v1.8.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.8.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efixed: generate Attribute nodes when applying type annotations by \u003ca href=\"https://github.com/tungol\"\u003e\u003ccode\u003e@​tungol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1396\"\u003eInstagram/LibCST#1396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded:Support parsing of t-strings \u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1374\"\u003e#1374\u003c/a\u003e  by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1398\"\u003eInstagram/LibCST#1398\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded: add support for PEP758 by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1401\"\u003eInstagram/LibCST#1401\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tungol\"\u003e\u003ccode\u003e@​tungol\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1396\"\u003eInstagram/LibCST#1396\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.4\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.8.2\u003c/h2\u003e\n\u003ch1\u003eFixed\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix(dependency): add back typing-extensions for 3.9 by \u003ca href=\"https://github.com/Lee-W\"\u003e\u003ccode\u003e@​Lee-W\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1358\"\u003eInstagram/LibCST#1358\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Lee-W\"\u003e\u003ccode\u003e@​Lee-W\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1358\"\u003eInstagram/LibCST#1358\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.1...v1.8.2\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.1...v1.8.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.8.1\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd helper to convert nodes to matchers by \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1351\"\u003eInstagram/LibCST#1351\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eUpdated\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid raising bare Exception by \u003ca href=\"https://github.com/zaicruvoir1rominet\"\u003e\u003ccode\u003e@​zaicruvoir1rominet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1168\"\u003eInstagram/LibCST#1168\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade PyYAML-ft version and use new module name by \u003ca href=\"https://github.com/lysnikolaou\"\u003e\u003ccode\u003e@​lysnikolaou\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1353\"\u003eInstagram/LibCST#1353\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lysnikolaou\"\u003e\u003ccode\u003e@​lysnikolaou\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1353\"\u003eInstagram/LibCST#1353\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.0...v1.8.1\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.0...v1.8.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.8.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow configuring empty formatter lists in codemod CLI by \u003ca href=\"https://github.com/ngoldbaum\"\u003e\u003ccode\u003e@​ngoldbaum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1319\"\u003eInstagram/LibCST#1319\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePublish several new binary wheels\n\u003cul\u003e\n\u003cli\u003emacos intel by \u003ca href=\"https://github.com/hadialqattan\"\u003e\u003ccode\u003e@​hadialqattan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1316\"\u003eInstagram/LibCST#1316\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ewindows arm64 by \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1304\"\u003eInstagram/LibCST#1304\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e3.13 CPython free-threaded by \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1333\"\u003eInstagram/LibCST#1333\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(only on \u003ca href=\"https://test.pypi.org/project/libcst/#history\"\u003etest.pypi.org\u003c/a\u003e) 3.14 and 3.14 CPython free-threaded by \u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1345\"\u003eInstagram/LibCST#1345\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1331\"\u003eInstagram/LibCST#1331\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eEnable support for free-threaded CPython by \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1295\"\u003eInstagram/LibCST#1295\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1335\"\u003eInstagram/LibCST#1335\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/blob/main/CHANGELOG.md\"\u003elibcst's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.8.5 - 2025-09-25\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efixed: circular import error by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1406\"\u003eInstagram/LibCST#1406\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.8.4 - 2025-09-09\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efixed: generate Attribute nodes when applying type annotations by \u003ca href=\"https://github.com/tungol\"\u003e\u003ccode\u003e@​tungol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1396\"\u003eInstagram/LibCST#1396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded: Support parsing of t-strings \u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1374\"\u003e#1374\u003c/a\u003e  by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1398\"\u003eInstagram/LibCST#1398\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded: add support for PEP758 by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1401\"\u003eInstagram/LibCST#1401\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tungol\"\u003e\u003ccode\u003e@​tungol\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1396\"\u003eInstagram/LibCST#1396\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.4\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.4\u003c/a\u003e\u003c/p\u003e\n\u003ch1\u003e1.8.3 - 2025-08-29\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eremoved: remove entry points to pure parser by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1375\"\u003eInstagram/LibCST#1375\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixed: fixes match statements to work with PositionProvider by \u003ca href=\"https://github.com/imsut\"\u003e\u003ccode\u003e@​imsut\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1389\"\u003eInstagram/LibCST#1389\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hunterhogan\"\u003e\u003ccode\u003e@​hunterhogan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1378\"\u003eInstagram/LibCST#1378\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thomas-serre-sonarsource\"\u003e\u003ccode\u003e@​thomas-serre-sonarsource\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1379\"\u003eInstagram/LibCST#1379\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/imsut\"\u003e\u003ccode\u003e@​imsut\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1389\"\u003eInstagram/LibCST#1389\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.3\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.3\u003c/a\u003e\u003c/p\u003e\n\u003ch1\u003e1.8.2 - 2025-06-13\u003c/h1\u003e\n\u003ch1\u003eFixed\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix(dependency): add back typing-extensions for 3.9 by \u003ca href=\"https://github.com/Lee-W\"\u003e\u003ccode\u003e@​Lee-W\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1358\"\u003eInstagram/LibCST#1358\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Lee-W\"\u003e\u003ccode\u003e@​Lee-W\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1358\"\u003eInstagram/LibCST#1358\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.1...v1.8.2\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.1...v1.8.2\u003c/a\u003e\u003c/p\u003e\n\u003ch1\u003e1.8.1 - 2025-06-10\u003c/h1\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd helper to convert nodes to matchers by \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1351\"\u003eInstagram/LibCST#1351\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eUpdated\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid raising bare Exception by \u003ca href=\"https://github.com/zaicruvoir1rominet\"\u003e\u003ccode\u003e@​zaicruvoir1rominet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1168\"\u003eInstagram/LibCST#1168\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade PyYAML-ft version and use new module name by \u003ca href=\"https://github.com/lysnikolaou\"\u003e\u003ccode\u003e@​lysnikolaou\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1353\"\u003eInstagram/LibCST#1353\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/7c906eb47c02dca8d5b4273a032805516361c8cb\"\u003e\u003ccode\u003e7c906eb\u003c/code\u003e\u003c/a\u003e bump version to 1.8.5 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1407\"\u003e#1407\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/de5635394b5627cb86656147ba2f96e835ed3d44\"\u003e\u003ccode\u003ede56353\u003c/code\u003e\u003c/a\u003e fix: circular import error (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1406\"\u003e#1406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/47cacb69a32520be52975527e0cc87a4b4d5cd77\"\u003e\u003ccode\u003e47cacb6\u003c/code\u003e\u003c/a\u003e bump version to 1.8.4 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1402\"\u003e#1402\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/3b5329aa2022d97972d2f58eefe61b759b8e56c1\"\u003e\u003ccode\u003e3b5329a\u003c/code\u003e\u003c/a\u003e feat: add support for PEP758 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1401\"\u003e#1401\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/48668dfabb25e4bbdd35f81407498f5f5e47bf88\"\u003e\u003ccode\u003e48668df\u003c/code\u003e\u003c/a\u003e Support parsing of t-strings \u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1374\"\u003e#1374\u003c/a\u003e  (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1398\"\u003e#1398\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/0c82bfa76166ed38409a97de8974f9aaf3e7e572\"\u003e\u003ccode\u003e0c82bfa\u003c/code\u003e\u003c/a\u003e build(deps): bump regex from 1.11.1 to 1.11.2 in /native (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1399\"\u003e#1399\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/f40d8351450ca9adfe5270bd86ec7951e83221f4\"\u003e\u003ccode\u003ef40d835\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1400\"\u003e#1400\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/d721a06c3fc3ab9210acd180cec5aaca856e1bc7\"\u003e\u003ccode\u003ed721a06\u003c/code\u003e\u003c/a\u003e generate Attribute nodes when applying type annotations (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1396\"\u003e#1396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/e064729b4c04b834754c7be7f43a4dfb38972570\"\u003e\u003ccode\u003ee064729\u003c/code\u003e\u003c/a\u003e build(deps): bump pypa/cibuildwheel from 3.0.1 to 3.1.4 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1395\"\u003e#1395\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/f746afd537910d99bd8226a1c1edbf5bc69630eb\"\u003e\u003ccode\u003ef746afd\u003c/code\u003e\u003c/a\u003e build(deps): bump rayon from 1.10.0 to 1.11.0 in /native (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1394\"\u003e#1394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.7.0...v1.8.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `textual` from 6.2.1 to 6.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Textualize/textual/releases\"\u003etextual's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eThe Pithonic release\u003c/h2\u003e\n\u003cp\u003eVersion 6.3.0 adds support for Python 3.14, but drops support for Python3.8.\u003c/p\u003e\n\u003cp\u003eIf you are updating, you may also want to update \u003ccode\u003etextual-dev\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThere is also a new CSS rule, and a fix for code highlighting.\u003c/p\u003e\n\u003cp\u003eEnjoy!\u003c/p\u003e\n\u003ch2\u003e[6.3.0] - 2025-10-11\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded scrollbar-visibility rule \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6156\"\u003eTextualize/textual#6156\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed highlight not auto-detecting lexer \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6167\"\u003eTextualize/textual#6167\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python3.8 \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6121/\"\u003eTextualize/textual#6121\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded support for Python3.14 \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6121/\"\u003eTextualize/textual#6121\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/Textualize/textual/blob/main/CHANGELOG.md\"\u003etextual's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[6.3.0] - 2025-10-11\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded scrollbar-visibility rule \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6156\"\u003eTextualize/textual#6156\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed highlight not auto-detecting lexer \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6167\"\u003eTextualize/textual#6167\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python3.8 \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6121/\"\u003eTextualize/textual#6121\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded support for Python3.14 \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6121/\"\u003eTextualize/textual#6121\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/Textualize/textual/commit/eed9aa0ccc3ae263e56b38f9763e556572c0496d\"\u003e\u003ccode\u003eeed9aa0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/textual/issues/6121\"\u003e#6121\u003c/a\u003e from TomJGooding/build-update-supported-python-versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/2ca685d1ca7bbdbe82af3634f77daa46940cff02\"\u003e\u003ccode\u003e2ca685d\u003c/code\u003e\u003c/a\u003e fix date\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/ea089d5ae15ccd5b4187851be97ecbde4023b275\"\u003e\u003ccode\u003eea089d5\u003c/code\u003e\u003c/a\u003e bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/def653b8bd1be282b6a3211bf0a7e90f5dab9a7a\"\u003e\u003ccode\u003edef653b\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into build-update-supported-python-versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/f1c6becbc2f80486800ad68a27967b82f8ff1d64\"\u003e\u003ccode\u003ef1c6bec\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/textual/issues/6160\"\u003e#6160\u003c/a\u003e from gvx/main\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/bce43d523d7c854a280c3ba238669c9d3dfb0233\"\u003e\u003ccode\u003ebce43d5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/textual/issues/6169\"\u003e#6169\u003c/a\u003e from Textualize/content-optimization\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/395185e5c942fe3bdf83835933d49f4bc9ff1dc1\"\u003e\u003ccode\u003e395185e\u003c/code\u003e\u003c/a\u003e remove print\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/f06cd6e0362fd3e2d3f35815c16bcdadc52c1991\"\u003e\u003ccode\u003ef06cd6e\u003c/code\u003e\u003c/a\u003e optimization\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/156eb68ffca7c3d7c4fb6a7b52fcfbf10b4857f6\"\u003e\u003ccode\u003e156eb68\u003c/code\u003e\u003c/a\u003e ci: remove allow-prereleases for Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/218cabca5ba6c6203d819dbfd623ec2a25d392bd\"\u003e\u003ccode\u003e218cabc\u003c/code\u003e\u003c/a\u003e changelog\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Textualize/textual/compare/v6.2.1...v6.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `virtualenv` from 20.34.0 to 20.35.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/virtualenv/releases\"\u003evirtualenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e20.35.3\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erelease 20.35.1 by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2976\"\u003epypa/virtualenv#2976\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert out effort to extract discovery by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2978\"\u003epypa/virtualenv#2978\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erelease 20.35.2 by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2980\"\u003epypa/virtualenv#2980\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etest_too_many_open_files fails by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2979\"\u003epypa/virtualenv#2979\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pypa/virtualenv/compare/20.35.1...20.35.3\"\u003ehttps://github.com/pypa/virtualenv/compare/20.35.1...20.35.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e20.35.2\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erelease 20.35.1 by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2976\"\u003epypa/virtualenv#2976\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert out effort to extract discovery by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2978\"\u003epypa/virtualenv#2978\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pypa/virtualenv/compare/20.35.1...20.35.2\"\u003ehttps://github.com/pypa/virtualenv/compare/20.35.1...20.35.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e20.35.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erelease 20.34.0 by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2954\"\u003epypa/virtualenv#2954\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: Decouple discovery module by \u003ca href=\"https://github.com/esafak\"\u003e\u003ccode\u003e@​esafak\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2956\"\u003epypa/virtualenv#2956\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: ensure creation of python3.exe and python3 on Windows by \u003ca href=\"https://github.com/esafak\"\u003e\u003ccode\u003e@​esafak\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2957\"\u003epypa/virtualenv#2957\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Use getattr for tcl/tk library paths by \u003ca href=\"https://github.com/esafak\"\u003e\u003ccode\u003e@​esafak\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2945\"\u003epypa/virtualenv#2945\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Import fs_is_case_sensitive absolutely in py_info.py by \u003ca href=\"https://github.com/esafak\"\u003e\u003ccode\u003e@​esafak\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2960\"\u003epypa/virtualenv#2960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeclare 3.14 support by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2970\"\u003epypa/virtualenv#2970\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erelease 20.35.0 by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2971\"\u003epypa/virtualenv#2971\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Patch get_interpreter to handle missing cache and app_data by \u003ca href=\"https://github.com/esafak\"\u003e\u003ccode\u003e@​esafak\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2974\"\u003epypa/virtualenv#2974\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix backwards incompatible changes on PythonInfo by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2975\"\u003epypa/virtualenv#2975\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pypa/virtualenv/compare/20.34.0...20.35.1\"\u003ehttps://github.com/pypa/virtualenv/compare/20.34.0...20.35.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e20.35.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erelease 20.34.0 by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2954\"\u003epypa/virtualenv#2954\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: Decouple discovery module by \u003ca href=\"https://github.com/esafak\"\u003e\u003ccode\u003e@​esafak\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2956\"\u003epypa/virtualenv#2956\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: ensure creation of python3.exe and python3 on Windows by \u003ca href=\"https://github.com/esafak\"\u003e\u003ccode\u003e@​esafak\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2957\"\u003epypa/virtualenv#2957\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Use getattr for tcl/tk library paths by \u003ca href=\"https://github.com/esafak\"\u003e\u003ccode\u003e@​esafak\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2945\"\u003epypa/virtualenv#2945\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Import fs_is_case_sensitive absolutely in py_info.py by \u003ca href=\"https://github.com/esafak\"\u003e\u003ccode\u003e@​esafak\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2960\"\u003epypa/virtualenv#2960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump pypa/gh-action-pypi-publish from 1.12.3 to 1.13.0 in /.github/workflows by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2964\"\u003epypa/virtualenv#2964\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeclare 3.14 support by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2970\"\u003epypa/virtualenv#2970\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/virtualenv/blob/main/docs/changelog.rst\"\u003evirtualenv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev20.35.3 (2025-10-10)\u003c/h2\u003e\n\u003cp\u003eBugfixes - 20.35.3\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e- Accept RuntimeError in `test_too_many_open_files`, by :user:`esafak` (:issue:`2935`)\n\u003ch2\u003ev20.35.2 (2025-10-10)\u003c/h2\u003e\n\u003cp\u003eBugfixes - 20.35.2\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRevert out changes related to the extraction of the discovery module - by :user:\u003ccode\u003egaborbernat\u003c/code\u003e. (:issue:\u003ccode\u003e2978\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev20.35.1 (2025-10-09)\u003c/h2\u003e\n\u003cp\u003eBugfixes - 20.35.1\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e- Patch get_interpreter to handle missing cache and app_data - by :user:`esafak` (:issue:`2972`)\n- Fix backwards incompatible changes to ``PythonInfo`` - by :user:`gaborbernat`. (:issue:`2975`)\n\u003ch2\u003ev20.35.0 (2025-10-08)\u003c/h2\u003e\n\u003cp\u003eFeatures - 20.35.0\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd AppData and Cache protocols to discovery for decoupling - by :user:\u003ccode\u003eesafak\u003c/code\u003e. (:issue:\u003ccode\u003e2074\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure python3.exe and python3 on Windows for Python 3 - by :user:\u003ccode\u003eesafak\u003c/code\u003e. (:issue:\u003ccode\u003e2774\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes - 20.35.0\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e- Replaced direct references to tcl/tk library paths with getattr - by :user:`esafak` (:issue:`2944`)\n- Restore absolute import of fs_is_case_sensitive - by :user:`esafak`. (:issue:`2955`)\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/virtualenv/commit/8a1160e2bab063f6d6ab6295052cece8dd805cba\"\u003e\u003ccode\u003e8a1160e\u003c/code\u003e\u003c/a\u003e release 20.35.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/virtualenv/commit/a07135f34ad8f30c9921f05dc913ccd83e06679d\"\u003e\u003ccode\u003ea07135f\u003c/code\u003e\u003c/a\u003e test_too_many_open_files fails (\u003ca href=\"https://redirect.github.com/pypa/virtualenv/issues/2979\"\u003e#2979\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/virtualenv/commit/e265338ec6e4e5437763f4a3ddef9b9f9cbc6a26\"\u003e\u003ccode\u003ee265338\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pypa/virtualenv/issues/2980\"\u003e#2980\u003c/a\u003e from gaborbernat/release-20.35.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/virtualenv/commit/53872861ccf957ef7df2ba2020fba759f7b9c914\"\u003e\u003ccode\u003e5387286\u003c/code\u003e\u003c/a\u003e release 20.35.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/virtualenv/commit/9b47ce9616bbac8379a6cb682b4429be935ed515\"\u003e\u003ccode\u003e9b47ce9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pypa/virtualenv/issues/2978\"\u003e#2978\u003c/a\u003e from gaborbernat/2977\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/virtualenv/commit/c5674f250657081691dfacfd84b683ff058d9b5c\"\u003e\u003ccode\u003ec5674f2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pypa/virtualenv/issues/2976\"\u003e#2976\u003c/a\u003e from pypa/release-20.35.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/virtualenv/commit/78a8dc2d1262eef0e48da8dc153f492a6e26f198\"\u003e\u003ccode\u003e78a8dc2\u003c/code\u003e\u003c/a\u003e release 20.35.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/virtualenv/commit/2dbf4f2269b87782ddf9a9a0e6ff47096f9f62cc\"\u003e\u003ccode\u003e2dbf4f2\u003c/code\u003e\u003c/a\u003e Fix backwards incompatible changes on PythonInfo (\u003ca href=\"https://redirect.github.com/pypa/virtualenv/issues/2975\"\u003e#2975\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/virtualenv/commit/de1820dd472786383f0ee393524141880fe4e055\"\u003e\u003ccode\u003ede1820d\u003c/code\u003e\u003c/a\u003e fix: Patch get_interpreter to handle missing cache and app_data (\u003ca href=\"https://redirect.github.com/pypa/virtualenv/issues/2974\"\u003e#2974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/virtualenv/commit/8e1ecc705a502705931e7576b8dd72bab90cde91\"\u003e\u003ccode\u003e8e1ecc7\u003c/code\u003e\u003c/a\u003e release 20.35.0 (\u003ca href=\"https://redirect.github.com/pypa/virtualenv/issues/2971\"\u003e#2971\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/virtualenv/compare/20.34.0...20.35.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot 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/github/annotated-logger/pull/82","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/github%2Fannotated-logger/issues/82","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/82/packages"},{"uuid":"2888893847","node_id":"PR_kwDOGLHsfc6sMQWX","number":4724,"state":"closed","title":"Bump the ofe-minor-and-patch-updates group across 1 directory with 22 updates","user":"dependabot[bot]","labels":["dependencies","python","release-chore"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-10-07T01:50:55.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-10-06T05:51:24.000Z","updated_at":"2025-10-07T01:50:56.000Z","time_to_close":71971,"merged_at":"2025-10-07T01:50:55.000Z","merged_by":"aslam-quad","closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"ofe-minor-and-patch-updates","update_count":22,"packages":[{"name":"asgiref","old_version":"3.9.1","new_version":"3.10.0","repository_url":"https://github.com/django/asgiref"},{"name":"certifi","old_version":"2025.8.3","new_version":"2025.10.5","repository_url":"https://github.com/certifi/python-certifi"},{"name":"click","old_version":"8.2.1","new_version":"8.3.0","repository_url":"https://github.com/pallets/click"},{"name":"django-allauth","old_version":"65.11.1","new_version":"65.12.0","repository_url":"https://github.com/sponsors/pennersr"},{"name":"google-api-core","old_version":"2.25.1","new_version":"2.25.2","repository_url":"https://github.com/googleapis/python-api-core"},{"name":"google-api-python-client","old_version":"2.179.0","new_version":"2.184.0","repository_url":"https://github.com/googleapis/google-api-python-client"},{"name":"google-auth","old_version":"2.40.3","new_version":"2.41.1","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"google-cloud-build","old_version":"3.31.3","new_version":"3.32.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-compute","old_version":"1.35.0","new_version":"1.38.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-storage","old_version":"3.3.1","new_version":"3.4.0","repository_url":"https://github.com/googleapis/python-storage"},{"name":"grpcio","old_version":"1.74.0","new_version":"1.75.1","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-status","old_version":"1.74.0","new_version":"1.75.1"},{"name":"httplib2","old_version":"0.30.0","new_version":"0.31.0","repository_url":"https://github.com/httplib2/httplib2"},{"name":"identify","old_version":"2.6.13","new_version":"2.6.15","repository_url":"https://github.com/pre-commit/identify"},{"name":"isort","old_version":"6.0.1","new_version":"6.1.0","repository_url":"https://github.com/PyCQA/isort"},{"name":"libcst","old_version":"1.8.2","new_version":"1.8.5","repository_url":"https://github.com/Instagram/LibCST"},{"name":"pycparser","old_version":"2.22","new_version":"2.23","repository_url":"https://github.com/eliben/pycparser"},{"name":"pylint","old_version":"3.3.8","new_version":"3.3.9","repository_url":"https://github.com/pylint-dev/pylint"},{"name":"pyparsing","old_version":"3.2.3","new_version":"3.2.5","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"ruamel-yaml-clib","old_version":"0.2.12","new_version":"0.2.14"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.37.0","repository_url":"https://github.com/Kludex/uvicorn"}],"path":null,"ecosystem":"pip"},"body":"Bumps the ofe-minor-and-patch-updates group with 22 updates in the /community/front-end/ofe directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [asgiref](https://github.com/django/asgiref) | `3.9.1` | `3.10.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.8.3` | `2025.10.5` |\n| [click](https://github.com/pallets/click) | `8.2.1` | `8.3.0` |\n| [django-allauth](https://github.com/sponsors/pennersr) | `65.11.1` | `65.12.0` |\n| [google-api-core](https://github.com/googleapis/python-api-core) | `2.25.1` | `2.25.2` |\n| [google-api-python-client](https://github.com/googleapis/google-api-python-client) | `2.179.0` | `2.184.0` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.40.3` | `2.41.1` |\n| [google-cloud-build](https://github.com/googleapis/google-cloud-python) | `3.31.3` | `3.32.0` |\n| [google-cloud-compute](https://github.com/googleapis/google-cloud-python) | `1.35.0` | `1.38.0` |\n| [google-cloud-storage](https://github.com/googleapis/python-storage) | `3.3.1` | `3.4.0` |\n| [grpcio](https://github.com/grpc/grpc) | `1.74.0` | `1.75.1` |\n| [grpcio-status](https://grpc.io) | `1.74.0` | `1.75.1` |\n| [httplib2](https://github.com/httplib2/httplib2) | `0.30.0` | `0.31.0` |\n| [identify](https://github.com/pre-commit/identify) | `2.6.13` | `2.6.15` |\n| [isort](https://github.com/PyCQA/isort) | `6.0.1` | `6.1.0` |\n| [libcst](https://github.com/Instagram/LibCST) | `1.8.2` | `1.8.5` |\n| [pycparser](https://github.com/eliben/pycparser) | `2.22` | `2.23` |\n| [pylint](https://github.com/pylint-dev/pylint) | `3.3.8` | `3.3.9` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.3` | `3.2.5` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| ruamel-yaml-clib | `0.2.12` | `0.2.14` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.37.0` |\n\n\nUpdates `asgiref` from 3.9.1 to 3.10.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django/asgiref/blob/main/CHANGELOG.txt\"\u003easgiref's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.10.0 (2025-10-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded AsyncSingleThreadContext context manager to ensure multiple AsyncToSync\ninvocations use the same thread. (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/511\"\u003e#511\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.9.2 (2025-09-23)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdds support for Python 3.14.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixes wsgi.errors file descriptor in WsgiToAsgi adapter.\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/django/asgiref/commit/f587b122af17bdba5749c30b96d2237bc1c2dfdf\"\u003e\u003ccode\u003ef587b12\u003c/code\u003e\u003c/a\u003e Releasing 3.10.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/b08087c3b6df811a0524585c4d4dafdc6b12c222\"\u003e\u003ccode\u003eb08087c\u003c/code\u003e\u003c/a\u003e Added AsyncSingleThreadContext (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/511\"\u003e#511\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/3471a0c09bd043d61c299308c0c8519ab6c0f774\"\u003e\u003ccode\u003e3471a0c\u003c/code\u003e\u003c/a\u003e Releasing 3.9.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/4f892bd261cee9afe51d67333e9bc7cd98b39a35\"\u003e\u003ccode\u003e4f892bd\u003c/code\u003e\u003c/a\u003e Remove Python 3.8 from tox\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/83cd6f3c6f59a66999446c2893cdb3fcae3c03c5\"\u003e\u003ccode\u003e83cd6f3\u003c/code\u003e\u003c/a\u003e Run CI against Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/796b9f14fd92d3131c7c39fab308ddd986d271eb\"\u003e\u003ccode\u003e796b9f1\u003c/code\u003e\u003c/a\u003e Fix incorrect Trailer header (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/531\"\u003e#531\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/29b108b0a9a5eddae3e282ba33915412a855e529\"\u003e\u003ccode\u003e29b108b\u003c/code\u003e\u003c/a\u003e Fixed \u003ca href=\"https://redirect.github.com/django/asgiref/issues/529\"\u003e#529\u003c/a\u003e: wsgi.errors should be a StringIO (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/530\"\u003e#530\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/django/asgiref/compare/3.9.1...3.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2025.8.3 to 2025.10.5\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/fb14ac49a976b1695d84b1ac1307276a20b3aac9\"\u003e\u003ccode\u003efb14ac4\u003c/code\u003e\u003c/a\u003e 2025.10.05 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/371\"\u003e#371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/2c7c7ee6b76a118191b685a4cc028d4241f22eb7\"\u003e\u003ccode\u003e2c7c7ee\u003c/code\u003e\u003c/a\u003e Add Python 3.14 classifier in setup.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/1a5cb7b3771bba256755f88b3dcf3ac13f064622\"\u003e\u003ccode\u003e1a5cb7b\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.6.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/367\"\u003e#367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/dea59605ef2b266c2e0e67938e8c8535a04b1211\"\u003e\u003ccode\u003edea5960\u003c/code\u003e\u003c/a\u003e Bump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/83566b7c993eef772facdaff59c7bba105675329\"\u003e\u003ccode\u003e83566b7\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.2.2 to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ca2e121bdb304fd01f802d3b1ee6a65684f569f2\"\u003e\u003ccode\u003eca2e121\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4.3.0 to 5.0.0\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.08.03...2025.10.05\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.2.1 to 8.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.3.0\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecation, or introduce potentially breaking changes.\u003c/p\u003e\n\u003cp\u003eWe encourage everyone to upgrade. You can read more about our \u003ca href=\"https://palletsprojects.com/versions\"\u003eVersion Support Policy\u003c/a\u003e on our website.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.3.0/\"\u003ehttps://pypi.org/project/click/8.3.0/\u003c/a\u003e\nChanges:  \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-0\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-0\u003c/a\u003e\nMilestone \u003ca href=\"https://github.com/pallets/click/milestone/27\"\u003ehttps://github.com/pallets/click/milestone/27\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eImproved flag option handling\u003c/strong\u003e: Reworked the relationship between \u003ccode\u003eflag_value\u003c/code\u003e\nand \u003ccode\u003edefault\u003c/code\u003e parameters for better consistency:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter value is now preserved as-is and passed directly\nto CLI functions (no more unexpected transformations)\u003c/li\u003e\n\u003cli\u003eException: flag options with \u003ccode\u003edefault=True\u003c/code\u003e maintain backward compatibility\nby defaulting to their \u003ccode\u003eflag_value\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter can now be any type (\u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003eNone\u003c/code\u003e, etc.)\u003c/li\u003e\n\u003cli\u003eFixes inconsistencies reported in: \u003ca href=\"https://redirect.github.com/pallets/click/issues/1992\"\u003e#1992\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2514\"\u003e#2514\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2610\"\u003e#2610\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3024\"\u003e#3024\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003edefault\u003c/code\u003e to be set on \u003ccode\u003eArgument\u003c/code\u003e for \u003ccode\u003enargs = -1\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2164\"\u003e#2164\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for \u003ccode\u003enargs\u003c/code\u003e option in combination with flag\noption \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for nargs option in combination with flag option \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix handling of quoted and escaped parameters in Fish autocompletion. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2995\"\u003e#2995\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3013\"\u003e#3013\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLazily import \u003ccode\u003eshutil\u003c/code\u003e.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3023\"\u003e#3023\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProperly forward exception information to resources registered with\n\u003ccode\u003eclick.core.Context.with_resource()\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3058\"\u003e#3058\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression related to EOF handling in CliRunner.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2939\"\u003e#2939\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2940\"\u003e#2940\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.2.2\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.2.2 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.2.2/\"\u003ehttps://pypi.org/project/click/8.2.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-2-2\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-2-2\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/25\"\u003ehttps://github.com/pallets/click/milestone/25\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix reconciliation of \u003ccode\u003edefault\u003c/code\u003e, \u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003etype\u003c/code\u003e parameters for\nflag options, as well as parsing and normalization of environment variables.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/2952\"\u003e#2952\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2956\"\u003e#2956\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typing issue in \u003ccode\u003eBadParameter\u003c/code\u003e and \u003ccode\u003eMissingParameter\u003c/code\u003e exceptions for the\nparameter \u003ccode\u003eparam_hint\u003c/code\u003e that did not allow for a sequence of string where the\nunderlying functino \u003ccode\u003e_join_param_hints\u003c/code\u003e allows for it. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2777\"\u003e#2777\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2990\"\u003e#2990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse the value of \u003ccode\u003eEnum\u003c/code\u003e choices to render their default value in help\nscreen. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2911\"\u003e#2911\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3004\"\u003e#3004\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix completion for the Z shell (\u003ccode\u003ezsh\u003c/code\u003e) for completion items containing\ncolons. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2703\"\u003e#2703\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2846\"\u003e#2846\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't include envvar in error hint when not configured. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2971\"\u003e#2971\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2972\"\u003e#2972\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/pallets/click/blob/main/CHANGES.rst\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.3.0\u003c/h2\u003e\n\u003cp\u003eReleased 2025-09-17\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eImproved flag option handling\u003c/strong\u003e: Reworked the relationship between \u003ccode\u003eflag_value\u003c/code\u003e\nand \u003ccode\u003edefault\u003c/code\u003e parameters for better consistency:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter value is now preserved as-is and passed directly\nto CLI functions (no more unexpected transformations)\u003c/li\u003e\n\u003cli\u003eException: flag options with \u003ccode\u003edefault=True\u003c/code\u003e maintain backward compatibility\nby defaulting to their \u003ccode\u003eflag_value\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter can now be any type (\u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003eNone\u003c/code\u003e, etc.)\u003c/li\u003e\n\u003cli\u003eFixes inconsistencies reported in: :issue:\u003ccode\u003e1992\u003c/code\u003e :issue:\u003ccode\u003e2514\u003c/code\u003e :issue:\u003ccode\u003e2610\u003c/code\u003e\n:issue:\u003ccode\u003e3024\u003c/code\u003e :pr:\u003ccode\u003e3030\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003edefault\u003c/code\u003e to be set on \u003ccode\u003eArgument\u003c/code\u003e for \u003ccode\u003enargs = -1\u003c/code\u003e. :issue:\u003ccode\u003e2164\u003c/code\u003e\n:pr:\u003ccode\u003e3030\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for \u003ccode\u003enargs\u003c/code\u003e option in combination with flag\noption :issue:\u003ccode\u003e2813\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix handling of quoted and escaped parameters in Fish autocompletion. :issue:\u003ccode\u003e2995\u003c/code\u003e :pr:\u003ccode\u003e3013\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLazily import \u003ccode\u003eshutil\u003c/code\u003e. :pr:\u003ccode\u003e3023\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProperly forward exception information to resources registered with\n\u003ccode\u003eclick.core.Context.with_resource()\u003c/code\u003e. :issue:\u003ccode\u003e2447\u003c/code\u003e :pr:\u003ccode\u003e3058\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression related to EOF handling in CliRunner. :issue:\u003ccode\u003e2939\u003c/code\u003e :pr:\u003ccode\u003e2940\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.2.2\u003c/h2\u003e\n\u003cp\u003eReleased 2025-07-31\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix reconciliation of \u003ccode\u003edefault\u003c/code\u003e, \u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003etype\u003c/code\u003e parameters for\nflag options, as well as parsing and normalization of environment variables.\n:issue:\u003ccode\u003e2952\u003c/code\u003e :pr:\u003ccode\u003e2956\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix typing issue in \u003ccode\u003eBadParameter\u003c/code\u003e and \u003ccode\u003eMissingParameter\u003c/code\u003e exceptions for the\nparameter \u003ccode\u003eparam_hint\u003c/code\u003e that did not allow for a sequence of string where the\nunderlying function \u003ccode\u003e_join_param_hints\u003c/code\u003e allows for it. :issue:\u003ccode\u003e2777\u003c/code\u003e :pr:\u003ccode\u003e2990\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUse the value of \u003ccode\u003eEnum\u003c/code\u003e choices to render their default value in help\nscreen. Refs :issue:\u003ccode\u003e2911\u003c/code\u003e :pr:\u003ccode\u003e3004\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix completion for the Z shell (\u003ccode\u003ezsh\u003c/code\u003e) for completion items containing\ncolons. :issue:\u003ccode\u003e2703\u003c/code\u003e :pr:\u003ccode\u003e2846\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDon't include envvar in error hint when not configured. :issue:\u003ccode\u003e2971\u003c/code\u003e :pr:\u003ccode\u003e2972\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix a rare race in \u003ccode\u003eclick.testing.StreamMixer\u003c/code\u003e's finalization that manifested\nas a \u003ccode\u003eValueError\u003c/code\u003e on close in a multi-threaded test session.\n:issue:\u003ccode\u003e2993\u003c/code\u003e :pr:\u003ccode\u003e2991\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/pallets/click/commit/00fadb8904387158ce6e9aa1573be770446895c1\"\u003e\u003ccode\u003e00fadb8\u003c/code\u003e\u003c/a\u003e Release version 8.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/2a0e3ba907927ade6951d5732b775f11b54cb766\"\u003e\u003ccode\u003e2a0e3ba\u003c/code\u003e\u003c/a\u003e testing/CliRunner: Fix regression related to EOF introduced in 262bdf0 (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/e11a1efc3395e998a1521a0dc35672a799e78d30\"\u003e\u003ccode\u003ee11a1ef\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into fix-cli-runner-prompt-eof-handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/36deba8a95a2585de1a2aa4475b7f054f52830ac\"\u003e\u003ccode\u003e36deba8\u003c/code\u003e\u003c/a\u003e Forward exception information to resources registered in a context (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3058\"\u003e#3058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/f2cae7ae997cd32311cab3dede4c2b89fe05e191\"\u003e\u003ccode\u003ef2cae7a\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Add summary of PR to changelog for 8.3.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/7c7ec36354f49d1a092cb077fa4881ea4d70ba01\"\u003e\u003ccode\u003e7c7ec36\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Split resource exception handling tests in single and nested\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/92129c552da88ac30b578132031efa4b003ecc46\"\u003e\u003ccode\u003e92129c5\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Added exception forwarding to context tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/555fa9bb37770a6845a98be60b0c84876775552e\"\u003e\u003ccode\u003e555fa9b\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Forward exception data to exit stack when calling \u003ccode\u003e__exit__\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/16fe802a3f96c4c8fa3cd382f1a7577fda0c5321\"\u003e\u003ccode\u003e16fe802\u003c/code\u003e\u003c/a\u003e Add more tests on \u003ccode\u003eEnum\u003c/code\u003e rendering (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3053\"\u003e#3053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/d36de6fc67882f23d7a7d61cd4c0e25e0f88b0ac\"\u003e\u003ccode\u003ed36de6f\u003c/code\u003e\u003c/a\u003e Add more tests on Enum rendering their item's names and not values\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.2.1...8.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-allauth` from 65.11.1 to 65.12.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/pennersr/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-api-core` from 2.25.1 to 2.25.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-api-core/releases\"\u003egoogle-api-core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.25.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/compare/v2.25.1...v2.25.2\"\u003e2.25.2\u003c/a\u003e (2025-10-01)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate credentials_file argument (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/841\"\u003e#841\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-api-core/commit/324eb7464d6ade9a8c2e413d4695bc7d7adfcb3d\"\u003e324eb74\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix async tests and round-off error in test expectations (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/837\"\u003e#837\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-api-core/commit/14a59789e144905bd6c82180ad07a52bf1f84f02\"\u003e14a5978\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-api-core/blob/main/CHANGELOG.md\"\u003egoogle-api-core's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/compare/v2.25.1...v2.25.2\"\u003e2.25.2\u003c/a\u003e (2025-10-01)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate credentials_file argument (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/841\"\u003e#841\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-api-core/commit/324eb7464d6ade9a8c2e413d4695bc7d7adfcb3d\"\u003e324eb74\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix async tests and round-off error in test expectations (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/837\"\u003e#837\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-api-core/commit/14a59789e144905bd6c82180ad07a52bf1f84f02\"\u003e14a5978\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/commit/4587c0bac93bc693bfb8b5b51b294f8177ee8217\"\u003e\u003ccode\u003e4587c0b\u003c/code\u003e\u003c/a\u003e chore(main): release 2.25.2 (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/838\"\u003e#838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/commit/324eb7464d6ade9a8c2e413d4695bc7d7adfcb3d\"\u003e\u003ccode\u003e324eb74\u003c/code\u003e\u003c/a\u003e fix: deprecate credentials_file argument (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/841\"\u003e#841\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/commit/14a59789e144905bd6c82180ad07a52bf1f84f02\"\u003e\u003ccode\u003e14a5978\u003c/code\u003e\u003c/a\u003e fix: fix async tests and round-off error in test expectations (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/837\"\u003e#837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/python-api-core/compare/v2.25.1...v2.25.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-api-python-client` from 2.179.0 to 2.184.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-api-python-client/releases\"\u003egoogle-api-python-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.184.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/compare/v2.183.0...v2.184.0\"\u003e2.184.0\u003c/a\u003e (2025-09-30)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eaiplatform:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/6d830b0bf7136396a0bbbfcca085a4d25f77d2a5\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/6d830b0bf7136396a0bbbfcca085a4d25f77d2a5\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ealloydb:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/c5baca732c76b520dc2a3bd24d865150fc7241d2\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/c5baca732c76b520dc2a3bd24d865150fc7241d2\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eandroidmanagement:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/37d9cacc272e0c7d063c798538017f5d93928349\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/37d9cacc272e0c7d063c798538017f5d93928349\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebackupdr:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/9442d50d83d99779978ad8c78f060d7dd81875a9\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/9442d50d83d99779978ad8c78f060d7dd81875a9\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebeyondcorp:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/1c7b14beaec6527f9d5ee94b8c25834530d550f8\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/1c7b14beaec6527f9d5ee94b8c25834530d550f8\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebigquery:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/e597e8cd946e626e4933b0623b04fc890788421f\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/e597e8cd946e626e4933b0623b04fc890788421f\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecertificatemanager:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/8103d979c6a49aea9a4767da6d2c21bb3cfd4316\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/8103d979c6a49aea9a4767da6d2c21bb3cfd4316\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003echecks:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/76f11597add11565281c85f63976dacd150ccdf1\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/76f11597add11565281c85f63976dacd150ccdf1\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecloudidentity:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/48ef36e008af1c2c4e582467c380ea7ef932d9d3\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/48ef36e008af1c2c4e582467c380ea7ef932d9d3\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecloudscheduler:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/e7c1a304146103814287280dc184e2fa36ff4de3\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/e7c1a304146103814287280dc184e2fa36ff4de3\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecompute:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/dad1b28292640a4910be2dfccfa7393143b067b5\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/dad1b28292640a4910be2dfccfa7393143b067b5\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003econtactcenterinsights:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/875ca98176ebe365aab1378c1b42ba2cc6433989\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/875ca98176ebe365aab1378c1b42ba2cc6433989\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003econtainer:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/67ec89a5ce13e636cdece6268224ecff16081377\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/67ec89a5ce13e636cdece6268224ecff16081377\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edialogflow:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/18f204690386d9d5c111a01ad321a50f240266cf\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/18f204690386d9d5c111a01ad321a50f240266cf\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ediscoveryengine:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/74265e6935cb31ae8be52e93b87bcc87b458b4fe\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/74265e6935cb31ae8be52e93b87bcc87b458b4fe\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edlp:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/2cd4dd1c084fd3b9185549f84d2dd1d7b10ff9a6\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/2cd4dd1c084fd3b9185549f84d2dd1d7b10ff9a6\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edocs:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/60dab3207e030361020395ae611cb7e8164233dc\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/60dab3207e030361020395ae611cb7e8164233dc\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edocumentai:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/9ef10c06c4dafae8332c3a934d470eb1d356a304\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/9ef10c06c4dafae8332c3a934d470eb1d356a304\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003efirebaseappdistribution:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/0499205d24a30b49ecd7daefc84f8f1b98d43ee3\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/0499205d24a30b49ecd7daefc84f8f1b98d43ee3\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003efirebaseapphosting:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/873fe995f8b36eb247161528d5c9d873a4cf4a76\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/873fe995f8b36eb247161528d5c9d873a4cf4a76\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003efirestore:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/54e550995df5b4d47367303e7a5a39625275ad24\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/54e550995df5b4d47367303e7a5a39625275ad24\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eintegrations:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/7a2c0b6536835c43371a11eaf499c86f11b4e398\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/7a2c0b6536835c43371a11eaf499c86f11b4e398\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emigrationcenter:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/fe3809427c52eeac3eb3d33d1ae2f5e76b89826d\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/fe3809427c52eeac3eb3d33d1ae2f5e76b89826d\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eoracledatabase:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/c8f9301d0a116e971fa9e9c79d59f22c285ae0b2\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/c8f9301d0a116e971fa9e9c79d59f22c285ae0b2\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eoslogin:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/e7ad756e90e296018335bab4ed630023e2da3b4f\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/e7ad756e90e296018335bab4ed630023e2da3b4f\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eplaces:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/5f5b8563e930c85669417d9378687a189081ee67\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/5f5b8563e930c85669417d9378687a189081ee67\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003erecaptchaenterprise:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/6dfb3ed8516a78458fab64cb79abae8a96d05470\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/6dfb3ed8516a78458fab64cb79abae8a96d05470\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003esaasservicemgmt:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/865353450158266e8d505f0b8170b1a0710c1f27\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/865353450158266e8d505f0b8170b1a0710c1f27\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eserviceconsumermanagement:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/6b819e78e9003619a9ffca9811358f407eebaf83\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/6b819e78e9003619a9ffca9811358f407eebaf83\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eservicemanagement:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/8fbaca3ec2a60c9c9bfbda5c93980e66cff07bad\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/8fbaca3ec2a60c9c9bfbda5c93980e66cff07bad\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eserviceusage:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/781371b027ca978e2c38864f7d53f645306d21e9\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/781371b027ca978e2c38864f7d53f645306d21e9\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003esqladmin:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/e53f47018c6248f9f048ca5418a48f05d5fe09a8\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/e53f47018c6248f9f048ca5418a48f05d5fe09a8\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estorage:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/53cb3d9e10219db874e65113448c28dabcee404a\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/53cb3d9e10219db874e65113448c28dabcee404a\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etexttospeech:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/ff0931d871f06884e6afd093644aa403313d964b\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/ff0931d871f06884e6afd093644aa403313d964b\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etpu:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/4254558da3975611ece872d592eb104bf091acb5\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/4254558da3975611ece872d592eb104bf091acb5\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ewebfonts:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/ce0f981f1f25630bc2768a697aa8da218c6e6af1\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/ce0f981f1f25630bc2768a697aa8da218c6e6af1\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edataflow:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/64b88544581231cd164dd9faa4d146924f1d16ee\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/64b88544581231cd164dd9faa4d146924f1d16ee\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edatastore:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/350d08137cd8f43fcbc473d77bcf693a2e00d917\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/350d08137cd8f43fcbc473d77bcf693a2e00d917\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eiamcredentials:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/079eeee6fb972c9e5cd595dff5b51d1e0530217a\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/079eeee6fb972c9e5cd595dff5b51d1e0530217a\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elogging:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/262129516dfd7cf518e6abbe4050d96ac647bcf3\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/262129516dfd7cf518e6abbe4050d96ac647bcf3\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\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/googleapis/google-api-python-client/commit/9764b8385a5de37b636a6aedb87a8db9402845a3\"\u003e\u003ccode\u003e9764b83\u003c/code\u003e\u003c/a\u003e chore(main): release 2.184.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2665\"\u003e#2665\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e\u003ccode\u003e724c158\u003c/code\u003e\u003c/a\u003e chore: Update discovery artifacts (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2664\"\u003e#2664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/9695453e9391b20e1c5ba015f5ff2028b433b2b5\"\u003e\u003ccode\u003e9695453\u003c/code\u003e\u003c/a\u003e chore(main): release 2.183.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2662\"\u003e#2662\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8934c764cc08e15aa0e013a2f97a59967296ef9a\"\u003e\u003ccode\u003e8934c76\u003c/code\u003e\u003c/a\u003e chore: Update discovery artifacts (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2661\"\u003e#2661\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/35a5d161fb8ff76faca28548237ca7d6a4d569ba\"\u003e\u003ccode\u003e35a5d16\u003c/code\u003e\u003c/a\u003e chore(main): release 2.182.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2654\"\u003e#2654\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/c9e33f4aee974b1512cc6a3ac0e1607917976f9d\"\u003e\u003ccode\u003ec9e33f4\u003c/code\u003e\u003c/a\u003e chore: Update discovery artifacts (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2659\"\u003e#2659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/46a12bd7a803f46f13aa2764209a03009a9f8f1e\"\u003e\u003ccode\u003e46a12bd\u003c/code\u003e\u003c/a\u003e chore: Update discovery artifacts (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2653\"\u003e#2653\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/dbfca7cb04959166e3365bcd035f7b7bbbcb5320\"\u003e\u003ccode\u003edbfca7c\u003c/code\u003e\u003c/a\u003e chore(main): release 2.181.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2651\"\u003e#2651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/0413210177b2e5d812cd21ce6246b73a2929d610\"\u003e\u003ccode\u003e0413210\u003c/code\u003e\u003c/a\u003e chore: Update discovery artifacts (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2650\"\u003e#2650\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/93540745d63276ff4bc3ac682619bb43920baa05\"\u003e\u003ccode\u003e9354074\u003c/code\u003e\u003c/a\u003e chore(main): release 2.180.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2644\"\u003e#2644\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-api-python-client/compare/v2.179.0...v2.184.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-auth` from 2.40.3 to 2.41.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-auth-library-python/releases\"\u003egoogle-auth's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.41.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.41.0...v2.41.1\"\u003e2.41.1\u003c/a\u003e (2025-09-30)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSuppress deprecation warning for ADC (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1815\"\u003e#1815\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/751ce3f625eb24029e9f0c59c081bdd3e18eb583\"\u003e751ce3f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.41.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.40.3...v2.41.0\"\u003e2.41.0\u003c/a\u003e (2025-09-29)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for cachetools 6.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1773\"\u003e#1773\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/af18060d521baf86c219d66a26631decb3b28e79\"\u003eaf18060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd trust boundary support for service accounts and impersonation. (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1778\"\u003e#1778\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/99be2ce19401296718f880c7a80cd2e841df78bf\"\u003e99be2ce\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecating \u003ca href=\"https://googleapis.dev/python/google-auth/latest/reference/google.auth.html#google.auth.load_credentials_from_dict\"\u003eload_credentials_from_dict\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/58b66ec8069bfe5304c7da512fe89a8e838ce1ca\"\u003e58b66ec\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeprecating \u003ca href=\"https://googleapis.dev/python/google-auth/latest/reference/google.auth.html#google.auth.load_credentials_from_file\"\u003eload_credentials_from_file\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/58b66ec8069bfe5304c7da512fe89a8e838ce1ca\"\u003e58b66ec\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix type error in credentials.py for python 3.7 and 3.8 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1805\"\u003e#1805\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/c30a6a781d3e385598a0ac28a370a7f4800010cc\"\u003ec30a6a7\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate user guide to include x509 feature. (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1802\"\u003e#1802\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/2d89ab4d85568564e1f462f5b463991ffd9b82b1\"\u003e2d89ab4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-auth-library-python/blob/main/CHANGELOG.md\"\u003egoogle-auth's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.41.0...v2.41.1\"\u003e2.41.1\u003c/a\u003e (2025-09-30)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSuppress deprecation warning for ADC (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1815\"\u003e#1815\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/751ce3f625eb24029e9f0c59c081bdd3e18eb583\"\u003e751ce3f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.40.3...v2.41.0\"\u003e2.41.0\u003c/a\u003e (2025-09-29)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for cachetools 6.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1773\"\u003e#1773\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/af18060d521baf86c219d66a26631decb3b28e79\"\u003eaf18060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd trust boundary support for service accounts and impersonation. (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1778\"\u003e#1778\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/99be2ce19401296718f880c7a80cd2e841df78bf\"\u003e99be2ce\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecating \u003ca href=\"https://googleapis.dev/python/google-auth/latest/reference/google.auth.html#google.auth.load_credentials_from_dict\"\u003eload_credentials_from_dict\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/58b66ec8069bfe5304c7da512fe89a8e838ce1ca\"\u003e58b66ec\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeprecating \u003ca href=\"https://googleapis.dev/python/google-auth/latest/reference/google.auth.html#google.auth.load_credentials_from_file\"\u003eload_credentials_from_file\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/58b66ec8069bfe5304c7da512fe89a8e838ce1ca\"\u003e58b66ec\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix type error in credentials.py for python 3.7 and 3.8 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1805\"\u003e#1805\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/c30a6a781d3e385598a0ac28a370a7f4800010cc\"\u003ec30a6a7\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate user guide to include x509 feature. (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1802\"\u003e#1802\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/2d89ab4d85568564e1f462f5b463991ffd9b82b1\"\u003e2d89ab4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/ebf33636bc3e525de37f331b75fade6b61c950cb\"\u003e\u003ccode\u003eebf3363\u003c/code\u003e\u003c/a\u003e chore(main): release 2.41.1 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1816\"\u003e#1816\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/751ce3f625eb24029e9f0c59c081bdd3e18eb583\"\u003e\u003ccode\u003e751ce3f\u003c/code\u003e\u003c/a\u003e fix: suppress deprecation warning for ADC (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1815\"\u003e#1815\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/819199ac180e368823e1364695273aa41851cc6e\"\u003e\u003ccode\u003e819199a\u003c/code\u003e\u003c/a\u003e chore(main): release 2.41.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1797\"\u003e#1797\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/58b66ec8069bfe5304c7da512fe89a8e838ce1ca\"\u003e\u003ccode\u003e58b66ec\u003c/code\u003e\u003c/a\u003e fix: Deprecating generic load methods and adding warnings on few cred types (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/1e8a867a84c26c249ad9bf659d9bdf61183883c7\"\u003e\u003ccode\u003e1e8a867\u003c/code\u003e\u003c/a\u003e chore: update owners (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1813\"\u003e#1813\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/c30a6a781d3e385598a0ac28a370a7f4800010cc\"\u003e\u003ccode\u003ec30a6a7\u003c/code\u003e\u003c/a\u003e fix: fix type error in credentials.py for python 3.7 and 3.8 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1805\"\u003e#1805\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/03dfee20e3c2d6e232e12eb78ef4201244ce7c13\"\u003e\u003ccode\u003e03dfee2\u003c/code\u003e\u003c/a\u003e chore: secret update (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1806\"\u003e#1806\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/2d89ab4d85568564e1f462f5b463991ffd9b82b1\"\u003e\u003ccode\u003e2d89ab4\u003c/code\u003e\u003c/a\u003e docs: update user guide to include x509 feature. (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1802\"\u003e#1802\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/03e640ed4ba4a6afbbe4462beb43a95b60744ed7\"\u003e\u003ccode\u003e03e640e\u003c/code\u003e\u003c/a\u003e chore: update secret (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1803\"\u003e#1803\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/99be2ce19401296718f880c7a80cd2e841df78bf\"\u003e\u003ccode\u003e99be2ce\u003c/code\u003e\u003c/a\u003e feat: Add trust boundary support for service accounts and impersonation. (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1778\"\u003e#1778\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.40.3...v2.41.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-build` from 3.31.3 to 3.32.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/releases\"\u003egoogle-cloud-build's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-build: v3.32.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-build-v3.31.3...google-cloud-build-v3.32.0\"\u003e3.32.0\u003c/a\u003e (2025-08-29)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd option to enable nested virtualization if available (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/47981a80a477c714e489410d4e77979ec1404b27\"\u003e47981a8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate comments for \u003ccode\u003emachine_type\u003c/code\u003e and \u003ccode\u003edisk_size_gb\u003c/code\u003e (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/47981a80a477c714e489410d4e77979ec1404b27\"\u003e47981a8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/b0c7b29b16476d60a616a39b6fd1b600c25dc753\"\u003e\u003ccode\u003eb0c7b29\u003c/code\u003e\u003c/a\u003e chore: release main (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14321\"\u003e#14321\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/25504f3752d1e2c63d4f3f56114b7529c5f10b2e\"\u003e\u003ccode\u003e25504f3\u003c/code\u003e\u003c/a\u003e chore: [google-cloud-geminidataanalytics] update Python generator version to ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/077a8ffd3e2890dc1277bf516f4126bfdf666a96\"\u003e\u003ccode\u003e077a8ff\u003c/code\u003e\u003c/a\u003e chore: [google-cloud-run] update Python generator version to 1.25.1 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14200\"\u003e#14200\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/4d08928433140722727f7953d5caefa5fc676c47\"\u003e\u003ccode\u003e4d08928\u003c/code\u003e\u003c/a\u003e chore: [google-ai-generativelanguage] update Python generator version to 1.25...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/7d1e79ed15ccf56ce744a8c45ddefa5a6e6ca46e\"\u003e\u003ccode\u003e7d1e79e\u003c/code\u003e\u003c/a\u003e chore: [Many APIs] update Python generator version to 1.25.1 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14313\"\u003e#14313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/86d0606c0b0d35a16926f630a630603ac768fbb5\"\u003e\u003ccode\u003e86d0606\u003c/code\u003e\u003c/a\u003e chore: [google-shopping-merchant-accounts] update Python generator version to...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/6c265645d13eb3bff5cc519a33965f8670871358\"\u003e\u003ccode\u003e6c26564\u003c/code\u003e\u003c/a\u003e chore: [Many APIs] update Python generator version to 1.25.1 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14316\"\u003e#14316\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/08076ef884baddfe523d0be8cdfafe5637ee073b\"\u003e\u003ccode\u003e08076ef\u003c/code\u003e\u003c/a\u003e chore: [google-apps-chat] update Python generator version to 1.25.1 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14294\"\u003e#14294\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/b533146158a0009952cf0767da42a711d9a20f0f\"\u003e\u003ccode\u003eb533146\u003c/code\u003e\u003c/a\u003e chore: [Many APIs] update Python generator version to 1.25.1 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14310\"\u003e#14310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/eb26719e1cceb0915a533b33e9f992a5f521a263\"\u003e\u003ccode\u003eeb26719\u003c/code\u003e\u003c/a\u003e chore: [Many APIs] update Python generator version to 1.25.1 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14315\"\u003e#14315\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-build-v3.31.3...google-cloud-build-v3.32.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-compute` from 1.35.0 to 1.38.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/releases\"\u003egoogle-cloud-compute's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-compute: v1.38.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-compute-v1.37.0...google-cloud-compute-v1.38.0\"\u003e1.38.0\u003c/a\u003e (2025-09-22)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[google-cloud-compute] Update Compute Engine v1 API to revision 20250902 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14434\"\u003e#14434\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/daf5ab81499ccb7bf29c74b616af9f6235c12526\"\u003edaf5ab8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-cloud-compute: v1.37.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-compute-v1.36.0...google-cloud-compute-v1.37.0\"\u003e1.37.0\u003c/a\u003e (2025-09-04)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[google-cloud-compute] Update Compute Engine v1 API to revision 20250810 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/1091\"\u003e#1091\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14324\"\u003e#14324\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/6cdbcee600286643cba8caf3c2219e9810b317fe\"\u003e6cdbcee\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-cloud-compute: v1.36.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-compute-v1.35.0...google-cloud-compute-v1.36.0\"\u003e1.36.0\u003c/a\u003e (2025-08-29)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[google-cloud-compute] Update Compute Engine v1 API to revision 20250807 (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/51732d38da49f8a0598d58b204dc7d9c86ee0e52\"\u003e51732d3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/5e2ba929d44fefe28a3376a74344d314ea8c3f99\"\u003e\u003ccode\u003e5e2ba92\u003c/code\u003e\u003c/a\u003e chore: release main (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14505\"\u003e#14505\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/ac6a7213bd0fee9291ae0ab8aa0009cc334b0156\"\u003e\u003ccode\u003eac6a721\u003c/code\u003e\u003c/a\u003e feat: [google-cloud-texttospeech] add Gemini TTS Multispeaker API fields (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14\"\u003e#14\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/6842396f3662264aa1beca9a5a08f9d0f171483a\"\u003e\u003ccode\u003e6842396\u003c/code\u003e\u003c/a\u003e docs: [google-cloud-cloudsecuritycompliance] updated documentation for APIs (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/94387fbab5eb311da34cebfbd6f5f599f8078a18\"\u003e\u003ccode\u003e94387fb\u003c/code\u003e\u003c/a\u003e feat: [google-cloud-dataplex] A new service \u003ccode\u003eBusinessGlossaryService\u003c/code\u003e is adde...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/709f283915c348c549ddba1b56a133c192e6caae\"\u003e\u003ccode\u003e709f283\u003c/code\u003e\u003c/a\u003e chore: add link to PyPI history in CHANGELOG.md (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14506\"\u003e#14506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/26730096e491346f02af2a82138224a110485e74\"\u003e\u003ccode\u003e2673009\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20250919T072957Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14501\"\u003e#14501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/db0680bd38e8707d5eb974b1b820cf9219a61463\"\u003e\u003ccode\u003edb0680b\u003c/code\u003e\u003c/a\u003e chore: remove obsolete scripts (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14444\"\u003e#14444\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/8be8e45fe4b0e1e0885b870a4d8dd9793a9a5cd4\"\u003e\u003ccode\u003e8be8e45\u003c/code\u003e\u003c/a\u003e chore: remove testing/.gitignore (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14445\"\u003e#14445\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/5877dca12c8c5171e924bd1a30263b04b9ecbc3b\"\u003e\u003ccode\u003e5877dca\u003c/code\u003e\u003c/a\u003e chore: remove redundant files (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14446\"\u003e#14446\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/f9fc5fccd48d87af3edb9668e5e962d097457d58\"\u003e\u003ccode\u003ef9fc5fc\u003c/code\u003e\u003c/a\u003e fix!: Moved Company enums to a separate file (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14455\"\u003e#14455\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-compute-v1.35.0...google-cloud-compute-v1.38.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-storage` from 3.3.1 to 3.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-storage/releases\"\u003egoogle-cloud-storage's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.4.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-storage/compare/v3.3.1...v3.4.0\"\u003e3.4.0\u003c/a\u003e (2025-09-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eexperimental:\u003c/strong\u003e Add async grpc client (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1537\"\u003e#1537\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/ac57b8d819a49aef0ed0cb5bb630bf11012f43e3\"\u003eac57b8d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eexperimental:\u003c/strong\u003e Add grpc client (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1533\"\u003e#1533\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/5674587f2aa347ec2787f2bc1e847eaa294bc1ca\"\u003e5674587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGAPIC generation failed with 'Directory not empty' (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1542\"\u003e#1542\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/c80d8207a8661b84c56cd66bb34de7b5704675b8\"\u003ec80d820\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-storage/blob/main/CHANGELOG.md\"\u003egoogle-cloud-storage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-storage/compare/v3.3.1...v3.4.0\"\u003e3.4.0\u003c/a\u003e (2025-09-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eexperimental:\u003c/strong\u003e Add async grpc client (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1537\"\u003e#1537\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/ac57b8d819a49aef0ed0cb5bb630bf11012f43e3\"\u003eac57b8d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eexperimental:\u003c/strong\u003e Add grpc client (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1533\"\u003e#1533\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/5674587f2aa347ec2787f2bc1e847eaa294bc1ca\"\u003e5674587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGAPIC generation failed with 'Directory not empty' (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1542\"\u003e#1542\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/c80d8207a8661b84c56cd66bb34de7b5704675b8\"\u003ec80d820\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/fd8e9119d81ea6b53e9af591d5d464c91b263c51\"\u003e\u003ccode\u003efd8e911\u003c/code\u003e\u003c/a\u003e chore(main): release 3.4.0 (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1543\"\u003e#1543\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/ac57b8d819a49aef0ed0cb5bb630bf11012f43e3\"\u003e\u003ccode\u003eac57b8d\u003c/code\u003e\u003c/a\u003e feat(experimental): add async grpc client (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1537\"\u003e#1537\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/5674587f2aa347ec2787f2bc1e847eaa294bc1ca\"\u003e\u003ccode\u003e5674587\u003c/code\u003e\u003c/a\u003e feat(experimental): Add grpc client (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1533\"\u003e#1533\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/dc3756d00c75438a8e7097b2f9160dc47ca73e03\"\u003e\u003ccode\u003edc3756d\u003c/code\u003e\u003c/a\u003e chore: Update gapic-generator-python to 1.26.2 (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1540\"\u003e#1540\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/c80d8207a8661b84c56cd66bb34de7b5704675b8\"\u003e\u003ccode\u003ec80d820\u003c/code\u003e\u003c/a\u003e fix: GAPIC generation failed with 'Directory not empty' (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1542\"\u003e#1542\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/b4ce8dad8fc08be8d4c67fa3dc33c7867d7df822\"\u003e\u003ccode\u003eb4ce8da\u003c/code\u003e\u003c/a\u003e chore: add argparse to run samples as script (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1538\"\u003e#1538\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/87f71961d6a498e8bf74c4f995b4c0f98190892d\"\u003e\u003ccode\u003e87f7196\u003c/code\u003e\u003c/a\u003e chore: update Python generator version to 1.25.1 (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1535\"\u003e#1535\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/67326df83ced2678987f98f1daa926c6849ab925\"\u003e\u003ccode\u003e67326df\u003c/code\u003e\u003c/a\u003e chore: fix the gapic unit tests (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1536\"\u003e#1536\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/python-storage/compare/v3.3.1...v3.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `grpcio` from 1.74.0 to 1.75.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/grpc/grpc/releases\"\u003egrpcio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v1.75.1\u003c/h2\u003e\n\u003cp\u003eThis is release gRPC Core 1.75.1 (gemini).\u003c/p\u003e\n\u003cp\u003eFor gRPC documentation, see \u003ca href=\"https://grpc.io/\"\u003egrpc.io\u003c/a\u003e. For previous releases, see \u003ca href=\"https://github.com/grpc/grpc/releases\"\u003eReleases\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis release contains refinements, improvements, and bug fixes.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003ePython\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRelease grpcio wheels with Python 3.14 support (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40403\"\u003e#40403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAsyncio: fixes grpc shutdown race condition occurring during python interpreter finalizations. (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40447\"\u003e#40447\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eThis also addresses previously reported issues with empty error message on Python interpreter exit (\u003ccode\u003eError in sys.excepthook:\u003c/code\u003e/\u003ccode\u003eOriginal exception was:\u003c/code\u003e empty): \u003ca href=\"https://redirect.github.com/grpc/grpc/issues/36655\"\u003e#36655\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/grpc/grpc/issues/38679\"\u003e#38679\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/grpc/grpc/issues/33342\"\u003e#33342\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003ePython 3.14: preserve current behavior when using grpc.aio async methods outside of a running event loop. (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40750\"\u003e#40750\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eNote: using async methods outside of a running event loop is \u003ca href=\"https://docs.python.org/3.14/library/asyncio-policy.html#asyncio-policies\"\u003ediscouraged\u003c/a\u003e by Python, and \u003cstrong\u003ewill be deprecated in future gRPC releases\u003c/strong\u003e. Please use the \u003ca href=\"https://docs.python.org/3.14/library/asyncio-runner.html#asyncio.run\"\u003easyncio.run()\u003c/a\u003e function (or \u003ca href=\"https://docs.python.org/3.14/library/asyncio-runner.html#asyncio.Runner\"\u003easyncio.Runner\u003c/a\u003e for custom loop factories). For interactive mode, use dedicated \u003ca href=\"https://docs.python.org/3/library/asyncio.html#asyncio-cli\"\u003easyncio REPL\u003c/a\u003e: \u003ccode\u003epython -m asyncio\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/grpc/grpc/compare/v1.75.0...v1.75.1\"\u003ehttps://github.com/grpc/grpc/compare/v1.75.0...v1.75.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eRelease v1.75.0\u003c/h2\u003e\n\u003cp\u003eThis is release 1.75.0 (\u003ca href=\"https://github.com/grpc/grpc/blob/master/doc/g_stands_for.md\"\u003egemini\u003c/a\u003e) of gRPC Core.\u003c/p\u003e\n\u003cp\u003eFor gRPC documentation, see \u003ca href=\"https://grpc.io/\"\u003egrpc.io\u003c/a\u003e. For previous releases, see \u003ca href=\"https://github.com/grpc/grpc/releases\"\u003eReleases\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis release contains refinements, improvements, and bug fixes, with highlights listed below.\u003c/p\u003e\n\u003ch2\u003eCore\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[Security] Cherry Pick Spiffe Verification. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/40515\"\u003e#40515\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Python][Typeguard] Part 3 - Add Typeguard to AIO stack in tests. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/40217\"\u003e#40217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[c-ares] update version to 1.34.5. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/39508\"\u003e#39508\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[pick_first] fix bug that caused us to stop attempting to connect. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/40162\"\u003e#40162\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eC++\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[OTel C++] Implement retry metrics. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/39195\"\u003e#39195\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eObjective-C\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix data race by adding custom getter for \u003ccode\u003estate\u003c/code\u003e property with \u003ccode\u003e@synchronized\u003c/code\u003e locking. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/40146\"\u003e#40146\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePython\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003egRPC Python (grpcio) now depends on \u003ccode\u003etyping-extensions~=4.13\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40137\"\u003e#40137\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate musllinux wheels from \u003ccode\u003emusllinux_1_1\u003c/code\u003e to \u003ccode\u003emusllinux_1_2\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40317\"\u003e#40317\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eDropping \u003ccode\u003emusllinux_1_1\u003c/code\u003e because it reached EOL in November 2024\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/grpc...\n\n_Description has been truncated_","html_url":"https://github.com/GoogleCloudPlatform/cluster-toolkit/pull/4724","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/GoogleCloudPlatform%2Fcluster-toolkit/issues/4724","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/4724/packages"},{"uuid":"3481857963","node_id":"PR_kwDOIEpTDs6r_zJU","number":850,"state":"open","title":"build: bump libcst from 1.8.4 to 1.8.5","user":"dependabot[bot]","labels":["dependencies:pyproject"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-10-03T17:11:58.000Z","updated_at":"2025-10-04T17:09:32.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build","packages":[{"name":"libcst","old_version":"1.8.4","new_version":"1.8.5","repository_url":"https://github.com/Instagram/LibCST"}],"path":null,"ecosystem":"pip"},"body":"Bumps [libcst](https://github.com/Instagram/LibCST) from 1.8.4 to 1.8.5.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/releases\"\u003elibcst's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.8.5\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: circular import error by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1406\"\u003eInstagram/LibCST#1406\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.4...v1.8.5\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.4...v1.8.5\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/blob/main/CHANGELOG.md\"\u003elibcst's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.8.5 - 2025-09-25\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efixed: circular import error by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1406\"\u003eInstagram/LibCST#1406\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/7c906eb47c02dca8d5b4273a032805516361c8cb\"\u003e\u003ccode\u003e7c906eb\u003c/code\u003e\u003c/a\u003e bump version to 1.8.5 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1407\"\u003e#1407\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/de5635394b5627cb86656147ba2f96e835ed3d44\"\u003e\u003ccode\u003ede56353\u003c/code\u003e\u003c/a\u003e fix: circular import error (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1406\"\u003e#1406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.4...v1.8.5\"\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=libcst\u0026package-manager=pip\u0026previous-version=1.8.4\u0026new-version=1.8.5)](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/ansys/pystk/pull/850","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ansys%2Fpystk/issues/850","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/850/packages"},{"uuid":"2879652386","node_id":"PR_kwDOI_U7IM6rpAIi","number":261,"state":"open","title":"Update libcst requirement from ~=1.8.2 to ~=1.8.5","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:33.000Z","updated_at":"2025-10-02T15:01:10.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Update","packages":[{"name":"libcst","old_version":"~=1.8.2","new_version":"~=1.8.5","repository_url":"https://github.com/Instagram/LibCST"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [libcst](https://github.com/Instagram/LibCST) 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/Instagram/LibCST/releases\"\u003elibcst's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.8.5\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: circular import error by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1406\"\u003eInstagram/LibCST#1406\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.4...v1.8.5\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.4...v1.8.5\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/blob/main/CHANGELOG.md\"\u003elibcst's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.8.5 - 2025-09-25\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efixed: circular import error by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1406\"\u003eInstagram/LibCST#1406\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.8.4 - 2025-09-09\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efixed: generate Attribute nodes when applying type annotations by \u003ca href=\"https://github.com/tungol\"\u003e\u003ccode\u003e@​tungol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1396\"\u003eInstagram/LibCST#1396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded: Support parsing of t-strings \u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1374\"\u003e#1374\u003c/a\u003e  by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1398\"\u003eInstagram/LibCST#1398\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded: add support for PEP758 by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1401\"\u003eInstagram/LibCST#1401\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tungol\"\u003e\u003ccode\u003e@​tungol\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1396\"\u003eInstagram/LibCST#1396\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.4\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.4\u003c/a\u003e\u003c/p\u003e\n\u003ch1\u003e1.8.3 - 2025-08-29\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eremoved: remove entry points to pure parser by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1375\"\u003eInstagram/LibCST#1375\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixed: fixes match statements to work with PositionProvider by \u003ca href=\"https://github.com/imsut\"\u003e\u003ccode\u003e@​imsut\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1389\"\u003eInstagram/LibCST#1389\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hunterhogan\"\u003e\u003ccode\u003e@​hunterhogan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1378\"\u003eInstagram/LibCST#1378\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thomas-serre-sonarsource\"\u003e\u003ccode\u003e@​thomas-serre-sonarsource\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1379\"\u003eInstagram/LibCST#1379\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/imsut\"\u003e\u003ccode\u003e@​imsut\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1389\"\u003eInstagram/LibCST#1389\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.3\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.3\u003c/a\u003e\u003c/p\u003e\n\u003ch1\u003e1.8.2 - 2025-06-13\u003c/h1\u003e\n\u003ch1\u003eFixed\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix(dependency): add back typing-extensions for 3.9 by \u003ca href=\"https://github.com/Lee-W\"\u003e\u003ccode\u003e@​Lee-W\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1358\"\u003eInstagram/LibCST#1358\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Lee-W\"\u003e\u003ccode\u003e@​Lee-W\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1358\"\u003eInstagram/LibCST#1358\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.1...v1.8.2\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.1...v1.8.2\u003c/a\u003e\u003c/p\u003e\n\u003ch1\u003e1.8.1 - 2025-06-10\u003c/h1\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd helper to convert nodes to matchers by \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1351\"\u003eInstagram/LibCST#1351\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eUpdated\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid raising bare Exception by \u003ca href=\"https://github.com/zaicruvoir1rominet\"\u003e\u003ccode\u003e@​zaicruvoir1rominet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1168\"\u003eInstagram/LibCST#1168\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade PyYAML-ft version and use new module name by \u003ca href=\"https://github.com/lysnikolaou\"\u003e\u003ccode\u003e@​lysnikolaou\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1353\"\u003eInstagram/LibCST#1353\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/7c906eb47c02dca8d5b4273a032805516361c8cb\"\u003e\u003ccode\u003e7c906eb\u003c/code\u003e\u003c/a\u003e bump version to 1.8.5 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1407\"\u003e#1407\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/de5635394b5627cb86656147ba2f96e835ed3d44\"\u003e\u003ccode\u003ede56353\u003c/code\u003e\u003c/a\u003e fix: circular import error (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1406\"\u003e#1406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/47cacb69a32520be52975527e0cc87a4b4d5cd77\"\u003e\u003ccode\u003e47cacb6\u003c/code\u003e\u003c/a\u003e bump version to 1.8.4 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1402\"\u003e#1402\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/3b5329aa2022d97972d2f58eefe61b759b8e56c1\"\u003e\u003ccode\u003e3b5329a\u003c/code\u003e\u003c/a\u003e feat: add support for PEP758 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1401\"\u003e#1401\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/48668dfabb25e4bbdd35f81407498f5f5e47bf88\"\u003e\u003ccode\u003e48668df\u003c/code\u003e\u003c/a\u003e Support parsing of t-strings \u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1374\"\u003e#1374\u003c/a\u003e  (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1398\"\u003e#1398\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/0c82bfa76166ed38409a97de8974f9aaf3e7e572\"\u003e\u003ccode\u003e0c82bfa\u003c/code\u003e\u003c/a\u003e build(deps): bump regex from 1.11.1 to 1.11.2 in /native (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1399\"\u003e#1399\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/f40d8351450ca9adfe5270bd86ec7951e83221f4\"\u003e\u003ccode\u003ef40d835\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1400\"\u003e#1400\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/d721a06c3fc3ab9210acd180cec5aaca856e1bc7\"\u003e\u003ccode\u003ed721a06\u003c/code\u003e\u003c/a\u003e generate Attribute nodes when applying type annotations (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1396\"\u003e#1396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/e064729b4c04b834754c7be7f43a4dfb38972570\"\u003e\u003ccode\u003ee064729\u003c/code\u003e\u003c/a\u003e build(deps): bump pypa/cibuildwheel from 3.0.1 to 3.1.4 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1395\"\u003e#1395\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/f746afd537910d99bd8226a1c1edbf5bc69630eb\"\u003e\u003ccode\u003ef746afd\u003c/code\u003e\u003c/a\u003e build(deps): bump rayon from 1.10.0 to 1.11.0 in /native (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1394\"\u003e#1394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.5\"\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/261","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/AllSpiceIO%2Fpy-allspice/issues/261","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/261/packages"},{"uuid":"2877628451","node_id":"PR_kwDOGLHsfc6rhSAj","number":4712,"state":"closed","title":"Bump the ofe-minor-and-patch-updates group in /community/front-end/ofe with 18 updates","user":"dependabot[bot]","labels":["dependencies","python","release-chore"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2025-10-06T05:32:45.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-10-01T10:06:03.000Z","updated_at":"2025-10-06T05:32:45.000Z","time_to_close":415602,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"ofe-minor-and-patch-updates","update_count":18,"packages":[{"name":"asgiref","old_version":"3.9.1","new_version":"3.9.2","repository_url":"https://github.com/django/asgiref"},{"name":"click","old_version":"8.2.1","new_version":"8.3.0","repository_url":"https://github.com/pallets/click"},{"name":"django-allauth","old_version":"65.11.1","new_version":"65.11.2","repository_url":"https://github.com/sponsors/pennersr"},{"name":"google-api-python-client","old_version":"2.179.0","new_version":"2.183.0","repository_url":"https://github.com/googleapis/google-api-python-client"},{"name":"google-auth","old_version":"2.40.3","new_version":"2.41.1","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"google-cloud-build","old_version":"3.31.3","new_version":"3.32.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-compute","old_version":"1.35.0","new_version":"1.38.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-storage","old_version":"3.3.1","new_version":"3.4.0","repository_url":"https://github.com/googleapis/python-storage"},{"name":"grpcio","old_version":"1.74.0","new_version":"1.75.1","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-status","old_version":"1.74.0","new_version":"1.75.1"},{"name":"httplib2","old_version":"0.30.0","new_version":"0.31.0","repository_url":"https://github.com/httplib2/httplib2"},{"name":"identify","old_version":"2.6.13","new_version":"2.6.14","repository_url":"https://github.com/pre-commit/identify"},{"name":"libcst","old_version":"1.8.2","new_version":"1.8.5","repository_url":"https://github.com/Instagram/LibCST"},{"name":"pycparser","old_version":"2.22","new_version":"2.23","repository_url":"https://github.com/eliben/pycparser"},{"name":"pyparsing","old_version":"3.2.3","new_version":"3.2.5","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"ruamel-yaml-clib","old_version":"0.2.12","new_version":"0.2.14"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.37.0","repository_url":"https://github.com/Kludex/uvicorn"}],"path":"/community/front-end/ofe","ecosystem":"pip"},"body":"Bumps the ofe-minor-and-patch-updates group in /community/front-end/ofe with 18 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [asgiref](https://github.com/django/asgiref) | `3.9.1` | `3.9.2` |\n| [click](https://github.com/pallets/click) | `8.2.1` | `8.3.0` |\n| [django-allauth](https://github.com/sponsors/pennersr) | `65.11.1` | `65.11.2` |\n| [google-api-python-client](https://github.com/googleapis/google-api-python-client) | `2.179.0` | `2.183.0` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.40.3` | `2.41.1` |\n| [google-cloud-build](https://github.com/googleapis/google-cloud-python) | `3.31.3` | `3.32.0` |\n| [google-cloud-compute](https://github.com/googleapis/google-cloud-python) | `1.35.0` | `1.38.0` |\n| [google-cloud-storage](https://github.com/googleapis/python-storage) | `3.3.1` | `3.4.0` |\n| [grpcio](https://github.com/grpc/grpc) | `1.74.0` | `1.75.1` |\n| [grpcio-status](https://grpc.io) | `1.74.0` | `1.75.1` |\n| [httplib2](https://github.com/httplib2/httplib2) | `0.30.0` | `0.31.0` |\n| [identify](https://github.com/pre-commit/identify) | `2.6.13` | `2.6.14` |\n| [libcst](https://github.com/Instagram/LibCST) | `1.8.2` | `1.8.5` |\n| [pycparser](https://github.com/eliben/pycparser) | `2.22` | `2.23` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.3` | `3.2.5` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| ruamel-yaml-clib | `0.2.12` | `0.2.14` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.37.0` |\n\nUpdates `asgiref` from 3.9.1 to 3.9.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django/asgiref/blob/main/CHANGELOG.txt\"\u003easgiref's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.9.2 (2025-09-23)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdds support for Python 3.14.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixes wsgi.errors file descriptor in WsgiToAsgi adapter.\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/django/asgiref/commit/3471a0c09bd043d61c299308c0c8519ab6c0f774\"\u003e\u003ccode\u003e3471a0c\u003c/code\u003e\u003c/a\u003e Releasing 3.9.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/4f892bd261cee9afe51d67333e9bc7cd98b39a35\"\u003e\u003ccode\u003e4f892bd\u003c/code\u003e\u003c/a\u003e Remove Python 3.8 from tox\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/83cd6f3c6f59a66999446c2893cdb3fcae3c03c5\"\u003e\u003ccode\u003e83cd6f3\u003c/code\u003e\u003c/a\u003e Run CI against Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/796b9f14fd92d3131c7c39fab308ddd986d271eb\"\u003e\u003ccode\u003e796b9f1\u003c/code\u003e\u003c/a\u003e Fix incorrect Trailer header (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/531\"\u003e#531\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/29b108b0a9a5eddae3e282ba33915412a855e529\"\u003e\u003ccode\u003e29b108b\u003c/code\u003e\u003c/a\u003e Fixed \u003ca href=\"https://redirect.github.com/django/asgiref/issues/529\"\u003e#529\u003c/a\u003e: wsgi.errors should be a StringIO (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/530\"\u003e#530\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/django/asgiref/compare/3.9.1...3.9.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.2.1 to 8.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.3.0\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecation, or introduce potentially breaking changes.\u003c/p\u003e\n\u003cp\u003eWe encourage everyone to upgrade. You can read more about our \u003ca href=\"https://palletsprojects.com/versions\"\u003eVersion Support Policy\u003c/a\u003e on our website.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.3.0/\"\u003ehttps://pypi.org/project/click/8.3.0/\u003c/a\u003e\nChanges:  \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-0\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-0\u003c/a\u003e\nMilestone \u003ca href=\"https://github.com/pallets/click/milestone/27\"\u003ehttps://github.com/pallets/click/milestone/27\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eImproved flag option handling\u003c/strong\u003e: Reworked the relationship between \u003ccode\u003eflag_value\u003c/code\u003e\nand \u003ccode\u003edefault\u003c/code\u003e parameters for better consistency:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter value is now preserved as-is and passed directly\nto CLI functions (no more unexpected transformations)\u003c/li\u003e\n\u003cli\u003eException: flag options with \u003ccode\u003edefault=True\u003c/code\u003e maintain backward compatibility\nby defaulting to their \u003ccode\u003eflag_value\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter can now be any type (\u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003eNone\u003c/code\u003e, etc.)\u003c/li\u003e\n\u003cli\u003eFixes inconsistencies reported in: \u003ca href=\"https://redirect.github.com/pallets/click/issues/1992\"\u003e#1992\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2514\"\u003e#2514\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2610\"\u003e#2610\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3024\"\u003e#3024\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003edefault\u003c/code\u003e to be set on \u003ccode\u003eArgument\u003c/code\u003e for \u003ccode\u003enargs = -1\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2164\"\u003e#2164\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for \u003ccode\u003enargs\u003c/code\u003e option in combination with flag\noption \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for nargs option in combination with flag option \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix handling of quoted and escaped parameters in Fish autocompletion. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2995\"\u003e#2995\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3013\"\u003e#3013\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLazily import \u003ccode\u003eshutil\u003c/code\u003e.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3023\"\u003e#3023\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProperly forward exception information to resources registered with\n\u003ccode\u003eclick.core.Context.with_resource()\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3058\"\u003e#3058\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression related to EOF handling in CliRunner.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2939\"\u003e#2939\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2940\"\u003e#2940\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.2.2\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.2.2 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.2.2/\"\u003ehttps://pypi.org/project/click/8.2.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-2-2\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-2-2\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/25\"\u003ehttps://github.com/pallets/click/milestone/25\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix reconciliation of \u003ccode\u003edefault\u003c/code\u003e, \u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003etype\u003c/code\u003e parameters for\nflag options, as well as parsing and normalization of environment variables.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/2952\"\u003e#2952\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2956\"\u003e#2956\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typing issue in \u003ccode\u003eBadParameter\u003c/code\u003e and \u003ccode\u003eMissingParameter\u003c/code\u003e exceptions for the\nparameter \u003ccode\u003eparam_hint\u003c/code\u003e that did not allow for a sequence of string where the\nunderlying functino \u003ccode\u003e_join_param_hints\u003c/code\u003e allows for it. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2777\"\u003e#2777\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2990\"\u003e#2990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse the value of \u003ccode\u003eEnum\u003c/code\u003e choices to render their default value in help\nscreen. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2911\"\u003e#2911\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3004\"\u003e#3004\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix completion for the Z shell (\u003ccode\u003ezsh\u003c/code\u003e) for completion items containing\ncolons. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2703\"\u003e#2703\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2846\"\u003e#2846\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't include envvar in error hint when not configured. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2971\"\u003e#2971\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2972\"\u003e#2972\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/pallets/click/blob/main/CHANGES.rst\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.3.0\u003c/h2\u003e\n\u003cp\u003eReleased 2025-09-17\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eImproved flag option handling\u003c/strong\u003e: Reworked the relationship between \u003ccode\u003eflag_value\u003c/code\u003e\nand \u003ccode\u003edefault\u003c/code\u003e parameters for better consistency:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter value is now preserved as-is and passed directly\nto CLI functions (no more unexpected transformations)\u003c/li\u003e\n\u003cli\u003eException: flag options with \u003ccode\u003edefault=True\u003c/code\u003e maintain backward compatibility\nby defaulting to their \u003ccode\u003eflag_value\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter can now be any type (\u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003eNone\u003c/code\u003e, etc.)\u003c/li\u003e\n\u003cli\u003eFixes inconsistencies reported in: :issue:\u003ccode\u003e1992\u003c/code\u003e :issue:\u003ccode\u003e2514\u003c/code\u003e :issue:\u003ccode\u003e2610\u003c/code\u003e\n:issue:\u003ccode\u003e3024\u003c/code\u003e :pr:\u003ccode\u003e3030\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003edefault\u003c/code\u003e to be set on \u003ccode\u003eArgument\u003c/code\u003e for \u003ccode\u003enargs = -1\u003c/code\u003e. :issue:\u003ccode\u003e2164\u003c/code\u003e\n:pr:\u003ccode\u003e3030\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for \u003ccode\u003enargs\u003c/code\u003e option in combination with flag\noption :issue:\u003ccode\u003e2813\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix handling of quoted and escaped parameters in Fish autocompletion. :issue:\u003ccode\u003e2995\u003c/code\u003e :pr:\u003ccode\u003e3013\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLazily import \u003ccode\u003eshutil\u003c/code\u003e. :pr:\u003ccode\u003e3023\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProperly forward exception information to resources registered with\n\u003ccode\u003eclick.core.Context.with_resource()\u003c/code\u003e. :issue:\u003ccode\u003e2447\u003c/code\u003e :pr:\u003ccode\u003e3058\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression related to EOF handling in CliRunner. :issue:\u003ccode\u003e2939\u003c/code\u003e :pr:\u003ccode\u003e2940\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.2.2\u003c/h2\u003e\n\u003cp\u003eReleased 2025-07-31\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix reconciliation of \u003ccode\u003edefault\u003c/code\u003e, \u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003etype\u003c/code\u003e parameters for\nflag options, as well as parsing and normalization of environment variables.\n:issue:\u003ccode\u003e2952\u003c/code\u003e :pr:\u003ccode\u003e2956\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix typing issue in \u003ccode\u003eBadParameter\u003c/code\u003e and \u003ccode\u003eMissingParameter\u003c/code\u003e exceptions for the\nparameter \u003ccode\u003eparam_hint\u003c/code\u003e that did not allow for a sequence of string where the\nunderlying function \u003ccode\u003e_join_param_hints\u003c/code\u003e allows for it. :issue:\u003ccode\u003e2777\u003c/code\u003e :pr:\u003ccode\u003e2990\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUse the value of \u003ccode\u003eEnum\u003c/code\u003e choices to render their default value in help\nscreen. Refs :issue:\u003ccode\u003e2911\u003c/code\u003e :pr:\u003ccode\u003e3004\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix completion for the Z shell (\u003ccode\u003ezsh\u003c/code\u003e) for completion items containing\ncolons. :issue:\u003ccode\u003e2703\u003c/code\u003e :pr:\u003ccode\u003e2846\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDon't include envvar in error hint when not configured. :issue:\u003ccode\u003e2971\u003c/code\u003e :pr:\u003ccode\u003e2972\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix a rare race in \u003ccode\u003eclick.testing.StreamMixer\u003c/code\u003e's finalization that manifested\nas a \u003ccode\u003eValueError\u003c/code\u003e on close in a multi-threaded test session.\n:issue:\u003ccode\u003e2993\u003c/code\u003e :pr:\u003ccode\u003e2991\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/pallets/click/commit/00fadb8904387158ce6e9aa1573be770446895c1\"\u003e\u003ccode\u003e00fadb8\u003c/code\u003e\u003c/a\u003e Release version 8.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/2a0e3ba907927ade6951d5732b775f11b54cb766\"\u003e\u003ccode\u003e2a0e3ba\u003c/code\u003e\u003c/a\u003e testing/CliRunner: Fix regression related to EOF introduced in 262bdf0 (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/e11a1efc3395e998a1521a0dc35672a799e78d30\"\u003e\u003ccode\u003ee11a1ef\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into fix-cli-runner-prompt-eof-handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/36deba8a95a2585de1a2aa4475b7f054f52830ac\"\u003e\u003ccode\u003e36deba8\u003c/code\u003e\u003c/a\u003e Forward exception information to resources registered in a context (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3058\"\u003e#3058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/f2cae7ae997cd32311cab3dede4c2b89fe05e191\"\u003e\u003ccode\u003ef2cae7a\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Add summary of PR to changelog for 8.3.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/7c7ec36354f49d1a092cb077fa4881ea4d70ba01\"\u003e\u003ccode\u003e7c7ec36\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Split resource exception handling tests in single and nested\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/92129c552da88ac30b578132031efa4b003ecc46\"\u003e\u003ccode\u003e92129c5\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Added exception forwarding to context tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/555fa9bb37770a6845a98be60b0c84876775552e\"\u003e\u003ccode\u003e555fa9b\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Forward exception data to exit stack when calling \u003ccode\u003e__exit__\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/16fe802a3f96c4c8fa3cd382f1a7577fda0c5321\"\u003e\u003ccode\u003e16fe802\u003c/code\u003e\u003c/a\u003e Add more tests on \u003ccode\u003eEnum\u003c/code\u003e rendering (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3053\"\u003e#3053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/d36de6fc67882f23d7a7d61cd4c0e25e0f88b0ac\"\u003e\u003ccode\u003ed36de6f\u003c/code\u003e\u003c/a\u003e Add more tests on Enum rendering their item's names and not values\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.2.1...8.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-allauth` from 65.11.1 to 65.11.2\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/pennersr/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-api-python-client` from 2.179.0 to 2.183.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-api-python-client/releases\"\u003egoogle-api-python-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.183.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/compare/v2.182.0...v2.183.0\"\u003e2.183.0\u003c/a\u003e (2025-09-23)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eaiplatform:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/dd56bd7c1810c19d22cd4efe55c0e11674f384ee\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/dd56bd7c1810c19d22cd4efe55c0e11674f384ee\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8934c764cc08e15aa0e013a2f97a59967296ef9a\"\u003e8934c76\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eandroidmanagement:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/51107a656275120000ab499bc8af75ccf4bcd933\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/51107a656275120000ab499bc8af75ccf4bcd933\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8934c764cc08e15aa0e013a2f97a59967296ef9a\"\u003e8934c76\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebigquery:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/ce919522452b844c8c9b7a9621737b8fdb8a948d\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/ce919522452b844c8c9b7a9621737b8fdb8a948d\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8934c764cc08e15aa0e013a2f97a59967296ef9a\"\u003e8934c76\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebigtableadmin:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/ebae81ea64e6b7794d00a3fc556f0d3cbb9a1c4b\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/ebae81ea64e6b7794d00a3fc556f0d3cbb9a1c4b\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8934c764cc08e15aa0e013a2f97a59967296ef9a\"\u003e8934c76\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003echat:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/ccc9bde48e5128aa1cfe4b3559791f24a7feec1e\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/ccc9bde48e5128aa1cfe4b3559791f24a7feec1e\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8934c764cc08e15aa0e013a2f97a59967296ef9a\"\u003e8934c76\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecloudcommerceprocurement:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/6acd1a9da6162f553550f0a2285e7ae63c2945fd\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/6acd1a9da6162f553550f0a2285e7ae63c2945fd\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8934c764cc08e15aa0e013a2f97a59967296ef9a\"\u003e8934c76\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecloudidentity:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/957b7dcd5fe6d67929fa68003a2e2fe52ca59f74\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/957b7dcd5fe6d67929fa68003a2e2fe52ca59f74\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8934c764cc08e15aa0e013a2f97a59967296ef9a\"\u003e8934c76\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecloudkms:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/975916ba57714af3800d9b943210d0a608ae922d\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/975916ba57714af3800d9b943210d0a608ae922d\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8934c764cc08e15aa0e013a2f97a59967296ef9a\"\u003e8934c76\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecompute:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/583463137fa260a774b425c2b17630dae4fd9953\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/583463137fa260a774b425c2b17630dae4fd9953\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8934c764cc08e15aa0e013a2f97a59967296ef9a\"\u003e8934c76\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003econnectors:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/b6be6cb309d31288787685d4e01a43bd6277556f\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/b6be6cb309d31288787685d4e01a43bd6277556f\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8934c764cc08e15aa0e013a2f97a59967296ef9a\"\u003e8934c76\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edataform:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/bfd0bca858052c8dc84584c103a3b4bb1494757a\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/bfd0bca858052c8dc84584c103a3b4bb1494757a\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8934c764cc08e15aa0e013a2f97a59967296ef9a\"\u003e8934c76\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ediscoveryengine:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/51c34c4bfbc94ff6c6211dfc4a6dcb1785845930\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/51c34c4bfbc94ff6c6211dfc4a6dcb1785845930\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8934c764cc08e15aa0e013a2f97a59967296ef9a\"\u003e8934c76\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edlp:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/888f7b33f791fa9fe02bfea06a0704b017eec684\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/888f7b33f791fa9fe02bfea06a0704b017eec684\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8934c764cc08e15aa0e013a2f97a59967296ef9a\"\u003e8934c76\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edocumentai:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/50eb5b6bd4e83df7ecacbfc5cbc2cd7d1db58773\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/50eb5b6bd4e83df7ecacbfc5cbc2cd7d1db58773\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8934c764cc08e15aa0e013a2f97a59967296ef9a\"\u003e8934c76\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edomains:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/b3ab658cc884f18e940e83cfa6844227bedc9eba\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/b3ab658cc884f18e940e83cfa6844227bedc9eba\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8934c764cc08e15aa0e013a2f97a59967296ef9a\"\u003e8934c76\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeventarc:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/105e7c99eaf1b91dbad2e09d967ec7998c866025\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/105e7c99eaf1b91dbad2e09d967ec7998c866025\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8934c764cc08e15aa0e013a2f97a59967296ef9a\"\u003e8934c76\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003efirebaseappdistribution:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/7f3ac1010be4fa207d7b477575c671d5652f1767\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/7f3ac1010be4fa207d7b477575c671d5652f1767\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8934c764cc08e15aa0e013a2f97a59967296ef9a\"\u003e8934c76\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emigrationcenter:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/8805f0858edfc57c8707a8405a8d79c5a423bd32\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/8805f0858edfc57c8707a8405a8d79c5a423bd32\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8934c764cc08e15aa0e013a2f97a59967296ef9a\"\u003e8934c76\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003enetapp:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/a40b629454024d4bcfa156c3c5c19176eb09026c\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/a40b629454024d4bcfa156c3c5c19176eb09026c\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8934c764cc08e15aa0e013a2f97a59967296ef9a\"\u003e8934c76\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003enetworkconnectivity:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/c5b7beda6b1ce2435fe4b00bf775d6d4cd3f7345\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/c5b7beda6b1ce2435fe4b00bf775d6d4cd3f7345\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8934c764cc08e15aa0e013a2f97a59967296ef9a\"\u003e8934c76\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003enetworksecurity:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/db1452ba34c8d8e4cae5c30046993449db6fa336\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/db1452ba34c8d8e4cae5c30046993449db6fa336\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8934c764cc08e15aa0e013a2f97a59967296ef9a\"\u003e8934c76\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eoracledatabase:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/dc6914b7527d4f99e12ce6913a3bab787bb4297c\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/dc6914b7527d4f99e12ce6913a3bab787bb4297c\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8934c764cc08e15aa0e013a2f97a59967296ef9a\"\u003e8934c76\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eretail:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/7f362b739c62e66080ba7a5765972865a20064a9\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/7f362b739c62e66080ba7a5765972865a20064a9\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8934c764cc08e15aa0e013a2f97a59967296ef9a\"\u003e8934c76\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003esqladmin:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/cb86c15ebc719b02425ba6f5fc4694ae7cdec2f4\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/cb86c15ebc719b02425ba6f5fc4694ae7cdec2f4\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8934c764cc08e15aa0e013a2f97a59967296ef9a\"\u003e8934c76\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eworkloadmanager:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/b5aaa05ab795abfe10e741bb65877df4d89301c2\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/b5aaa05ab795abfe10e741bb65877df4d89301c2\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8934c764cc08e15aa0e013a2f97a59967296ef9a\"\u003e8934c76\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.182.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/compare/v2.181.0...v2.182.0\"\u003e2.182.0\u003c/a\u003e (2025-09-16)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eaiplatform:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/e8eefdc62fb7bf1f8b70e6c670afa014208b5421\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/e8eefdc62fb7bf1f8b70e6c670afa014208b5421\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/46a12bd7a803f46f13aa2764209a03009a9f8f1e\"\u003e46a12bd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ealloydb:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/b34a3254b1d84f3e3da4096ffcd66ae435d82375\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/b34a3254b1d84f3e3da4096ffcd66ae435d82375\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/c9e33f4aee974b1512cc6a3ac0e1607917976f9d\"\u003ec9e33f4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eanalyticshub:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/67b3e55e7b36b6cdfdc324483ef019cb8c9072e4\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/67b3e55e7b36b6cdfdc324483ef019cb8c9072e4\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/46a12bd7a803f46f13aa2764209a03009a9f8f1e\"\u003e46a12bd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eandroidpublisher:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/2e9b68d8cf6ec0075a73c5e4592aaa27e0d38ced\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/2e9b68d8cf6ec0075a73c5e4592aaa27e0d38ced\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/46a12bd7a803f46f13aa2764209a03009a9f8f1e\"\u003e46a12bd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapigee:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/bdb05bf2a5494979afc57a4f66bc5e78ac6172f1\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/bdb05bf2a5494979afc57a4f66bc5e78ac6172f1\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/c9e33f4aee974b1512cc6a3ac0e1607917976f9d\"\u003ec9e33f4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapihub:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/9fea79faa088afde920c5c16d3c7ae3d14ba6d2f\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/9fea79faa088afde920c5c16d3c7ae3d14ba6d2f\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/c9e33f4aee974b1512cc6a3ac0e1607917976f9d\"\u003ec9e33f4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebackupdr:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/b6465d09d94fb5b87eab86a858f697889d182426\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/b6465d09d94fb5b87eab86a858f697889d182426\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/c9e33f4aee974b1512cc6a3ac0e1607917976f9d\"\u003ec9e33f4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecloudcommerceprocurement:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/e77e2707a7947e9412299ed8499490f002a2bd25\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/e77e2707a7947e9412299ed8499490f002a2bd25\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/46a12bd7a803f46f13aa2764209a03009a9f8f1e\"\u003e46a12bd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecompute:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/d7ec4689bc525691ddb134ded1faed58eb1e3493\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/d7ec4689bc525691ddb134ded1faed58eb1e3493\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/c9e33f4aee974b1512cc6a3ac0e1607917976f9d\"\u003ec9e33f4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003econnectors:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/353b32550b03044840da559b8df504a1d866889e\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/353b32550b03044840da559b8df504a1d866889e\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/46a12bd7a803f46f13aa2764209a03009a9f8f1e\"\u003e46a12bd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003econtaineranalysis:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/c26d46fdcde6fb9682f72c8a12f3b57de312269e\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/c26d46fdcde6fb9682f72c8a12f3b57de312269e\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/c9e33f4aee974b1512cc6a3ac0e1607917976f9d\"\u003ec9e33f4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edatamigration:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/e2078e6715a81d469aa15f5fcec722276a3ee895\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/e2078e6715a81d469aa15f5fcec722276a3ee895\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/46a12bd7a803f46f13aa2764209a03009a9f8f1e\"\u003e46a12bd\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/googleapis/google-api-python-client/commit/9695453e9391b20e1c5ba015f5ff2028b433b2b5\"\u003e\u003ccode\u003e9695453\u003c/code\u003e\u003c/a\u003e chore(main): release 2.183.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2662\"\u003e#2662\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8934c764cc08e15aa0e013a2f97a59967296ef9a\"\u003e\u003ccode\u003e8934c76\u003c/code\u003e\u003c/a\u003e chore: Update discovery artifacts (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2661\"\u003e#2661\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/35a5d161fb8ff76faca28548237ca7d6a4d569ba\"\u003e\u003ccode\u003e35a5d16\u003c/code\u003e\u003c/a\u003e chore(main): release 2.182.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2654\"\u003e#2654\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/c9e33f4aee974b1512cc6a3ac0e1607917976f9d\"\u003e\u003ccode\u003ec9e33f4\u003c/code\u003e\u003c/a\u003e chore: Update discovery artifacts (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2659\"\u003e#2659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/46a12bd7a803f46f13aa2764209a03009a9f8f1e\"\u003e\u003ccode\u003e46a12bd\u003c/code\u003e\u003c/a\u003e chore: Update discovery artifacts (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2653\"\u003e#2653\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/dbfca7cb04959166e3365bcd035f7b7bbbcb5320\"\u003e\u003ccode\u003edbfca7c\u003c/code\u003e\u003c/a\u003e chore(main): release 2.181.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2651\"\u003e#2651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/0413210177b2e5d812cd21ce6246b73a2929d610\"\u003e\u003ccode\u003e0413210\u003c/code\u003e\u003c/a\u003e chore: Update discovery artifacts (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2650\"\u003e#2650\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/93540745d63276ff4bc3ac682619bb43920baa05\"\u003e\u003ccode\u003e9354074\u003c/code\u003e\u003c/a\u003e chore(main): release 2.180.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2644\"\u003e#2644\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/e9389d4ceacb5df759e0c41475429ddd60d70578\"\u003e\u003ccode\u003ee9389d4\u003c/code\u003e\u003c/a\u003e chore: Update discovery artifacts (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2647\"\u003e#2647\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8b109032b71ca0b95b106af3ce470b7193d73148\"\u003e\u003ccode\u003e8b10903\u003c/code\u003e\u003c/a\u003e chore: Update discovery artifacts (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2643\"\u003e#2643\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/google-api-python-client/compare/v2.179.0...v2.183.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-auth` from 2.40.3 to 2.41.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-auth-library-python/releases\"\u003egoogle-auth's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.41.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.41.0...v2.41.1\"\u003e2.41.1\u003c/a\u003e (2025-09-30)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSuppress deprecation warning for ADC (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1815\"\u003e#1815\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/751ce3f625eb24029e9f0c59c081bdd3e18eb583\"\u003e751ce3f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.41.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.40.3...v2.41.0\"\u003e2.41.0\u003c/a\u003e (2025-09-29)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for cachetools 6.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1773\"\u003e#1773\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/af18060d521baf86c219d66a26631decb3b28e79\"\u003eaf18060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd trust boundary support for service accounts and impersonation. (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1778\"\u003e#1778\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/99be2ce19401296718f880c7a80cd2e841df78bf\"\u003e99be2ce\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecating \u003ca href=\"https://googleapis.dev/python/google-auth/latest/reference/google.auth.html#google.auth.load_credentials_from_dict\"\u003eload_credentials_from_dict\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/58b66ec8069bfe5304c7da512fe89a8e838ce1ca\"\u003e58b66ec\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeprecating \u003ca href=\"https://googleapis.dev/python/google-auth/latest/reference/google.auth.html#google.auth.load_credentials_from_file\"\u003eload_credentials_from_file\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/58b66ec8069bfe5304c7da512fe89a8e838ce1ca\"\u003e58b66ec\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix type error in credentials.py for python 3.7 and 3.8 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1805\"\u003e#1805\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/c30a6a781d3e385598a0ac28a370a7f4800010cc\"\u003ec30a6a7\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate user guide to include x509 feature. (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1802\"\u003e#1802\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/2d89ab4d85568564e1f462f5b463991ffd9b82b1\"\u003e2d89ab4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-auth-library-python/blob/main/CHANGELOG.md\"\u003egoogle-auth's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.41.0...v2.41.1\"\u003e2.41.1\u003c/a\u003e (2025-09-30)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSuppress deprecation warning for ADC (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1815\"\u003e#1815\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/751ce3f625eb24029e9f0c59c081bdd3e18eb583\"\u003e751ce3f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.40.3...v2.41.0\"\u003e2.41.0\u003c/a\u003e (2025-09-29)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for cachetools 6.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1773\"\u003e#1773\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/af18060d521baf86c219d66a26631decb3b28e79\"\u003eaf18060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd trust boundary support for service accounts and impersonation. (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1778\"\u003e#1778\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/99be2ce19401296718f880c7a80cd2e841df78bf\"\u003e99be2ce\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecating \u003ca href=\"https://googleapis.dev/python/google-auth/latest/reference/google.auth.html#google.auth.load_credentials_from_dict\"\u003eload_credentials_from_dict\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/58b66ec8069bfe5304c7da512fe89a8e838ce1ca\"\u003e58b66ec\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeprecating \u003ca href=\"https://googleapis.dev/python/google-auth/latest/reference/google.auth.html#google.auth.load_credentials_from_file\"\u003eload_credentials_from_file\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/58b66ec8069bfe5304c7da512fe89a8e838ce1ca\"\u003e58b66ec\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix type error in credentials.py for python 3.7 and 3.8 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1805\"\u003e#1805\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/c30a6a781d3e385598a0ac28a370a7f4800010cc\"\u003ec30a6a7\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate user guide to include x509 feature. (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1802\"\u003e#1802\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/2d89ab4d85568564e1f462f5b463991ffd9b82b1\"\u003e2d89ab4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/ebf33636bc3e525de37f331b75fade6b61c950cb\"\u003e\u003ccode\u003eebf3363\u003c/code\u003e\u003c/a\u003e chore(main): release 2.41.1 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1816\"\u003e#1816\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/751ce3f625eb24029e9f0c59c081bdd3e18eb583\"\u003e\u003ccode\u003e751ce3f\u003c/code\u003e\u003c/a\u003e fix: suppress deprecation warning for ADC (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1815\"\u003e#1815\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/819199ac180e368823e1364695273aa41851cc6e\"\u003e\u003ccode\u003e819199a\u003c/code\u003e\u003c/a\u003e chore(main): release 2.41.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1797\"\u003e#1797\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/58b66ec8069bfe5304c7da512fe89a8e838ce1ca\"\u003e\u003ccode\u003e58b66ec\u003c/code\u003e\u003c/a\u003e fix: Deprecating generic load methods and adding warnings on few cred types (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/1e8a867a84c26c249ad9bf659d9bdf61183883c7\"\u003e\u003ccode\u003e1e8a867\u003c/code\u003e\u003c/a\u003e chore: update owners (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1813\"\u003e#1813\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/c30a6a781d3e385598a0ac28a370a7f4800010cc\"\u003e\u003ccode\u003ec30a6a7\u003c/code\u003e\u003c/a\u003e fix: fix type error in credentials.py for python 3.7 and 3.8 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1805\"\u003e#1805\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/03dfee20e3c2d6e232e12eb78ef4201244ce7c13\"\u003e\u003ccode\u003e03dfee2\u003c/code\u003e\u003c/a\u003e chore: secret update (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1806\"\u003e#1806\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/2d89ab4d85568564e1f462f5b463991ffd9b82b1\"\u003e\u003ccode\u003e2d89ab4\u003c/code\u003e\u003c/a\u003e docs: update user guide to include x509 feature. (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1802\"\u003e#1802\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/03e640ed4ba4a6afbbe4462beb43a95b60744ed7\"\u003e\u003ccode\u003e03e640e\u003c/code\u003e\u003c/a\u003e chore: update secret (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1803\"\u003e#1803\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/99be2ce19401296718f880c7a80cd2e841df78bf\"\u003e\u003ccode\u003e99be2ce\u003c/code\u003e\u003c/a\u003e feat: Add trust boundary support for service accounts and impersonation. (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1778\"\u003e#1778\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.40.3...v2.41.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-build` from 3.31.3 to 3.32.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/releases\"\u003egoogle-cloud-build's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-build: v3.32.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-build-v3.31.3...google-cloud-build-v3.32.0\"\u003e3.32.0\u003c/a\u003e (2025-08-29)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd option to enable nested virtualization if available (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/47981a80a477c714e489410d4e77979ec1404b27\"\u003e47981a8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate comments for \u003ccode\u003emachine_type\u003c/code\u003e and \u003ccode\u003edisk_size_gb\u003c/code\u003e (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/47981a80a477c714e489410d4e77979ec1404b27\"\u003e47981a8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/b0c7b29b16476d60a616a39b6fd1b600c25dc753\"\u003e\u003ccode\u003eb0c7b29\u003c/code\u003e\u003c/a\u003e chore: release main (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14321\"\u003e#14321\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/25504f3752d1e2c63d4f3f56114b7529c5f10b2e\"\u003e\u003ccode\u003e25504f3\u003c/code\u003e\u003c/a\u003e chore: [google-cloud-geminidataanalytics] update Python generator version to ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/077a8ffd3e2890dc1277bf516f4126bfdf666a96\"\u003e\u003ccode\u003e077a8ff\u003c/code\u003e\u003c/a\u003e chore: [google-cloud-run] update Python generator version to 1.25.1 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14200\"\u003e#14200\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/4d08928433140722727f7953d5caefa5fc676c47\"\u003e\u003ccode\u003e4d08928\u003c/code\u003e\u003c/a\u003e chore: [google-ai-generativelanguage] update Python generator version to 1.25...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/7d1e79ed15ccf56ce744a8c45ddefa5a6e6ca46e\"\u003e\u003ccode\u003e7d1e79e\u003c/code\u003e\u003c/a\u003e chore: [Many APIs] update Python generator version to 1.25.1 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14313\"\u003e#14313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/86d0606c0b0d35a16926f630a630603ac768fbb5\"\u003e\u003ccode\u003e86d0606\u003c/code\u003e\u003c/a\u003e chore: [google-shopping-merchant-accounts] update Python generator version to...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/6c265645d13eb3bff5cc519a33965f8670871358\"\u003e\u003ccode\u003e6c26564\u003c/code\u003e\u003c/a\u003e chore: [Many APIs] update Python generator version to 1.25.1 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14316\"\u003e#14316\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/08076ef884baddfe523d0be8cdfafe5637ee073b\"\u003e\u003ccode\u003e08076ef\u003c/code\u003e\u003c/a\u003e chore: [google-apps-chat] update Python generator version to 1.25.1 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14294\"\u003e#14294\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/b533146158a0009952cf0767da42a711d9a20f0f\"\u003e\u003ccode\u003eb533146\u003c/code\u003e\u003c/a\u003e chore: [Many APIs] update Python generator version to 1.25.1 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14310\"\u003e#14310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/eb26719e1cceb0915a533b33e9f992a5f521a263\"\u003e\u003ccode\u003eeb26719\u003c/code\u003e\u003c/a\u003e chore: [Many APIs] update Python generator version to 1.25.1 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14315\"\u003e#14315\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-build-v3.31.3...google-cloud-build-v3.32.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-compute` from 1.35.0 to 1.38.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/releases\"\u003egoogle-cloud-compute's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-compute: v1.38.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-compute-v1.37.0...google-cloud-compute-v1.38.0\"\u003e1.38.0\u003c/a\u003e (2025-09-22)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[google-cloud-compute] Update Compute Engine v1 API to revision 20250902 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14434\"\u003e#14434\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/daf5ab81499ccb7bf29c74b616af9f6235c12526\"\u003edaf5ab8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-cloud-compute: v1.37.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-compute-v1.36.0...google-cloud-compute-v1.37.0\"\u003e1.37.0\u003c/a\u003e (2025-09-04)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[google-cloud-compute] Update Compute Engine v1 API to revision 20250810 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/1091\"\u003e#1091\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14324\"\u003e#14324\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/6cdbcee600286643cba8caf3c2219e9810b317fe\"\u003e6cdbcee\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-cloud-compute: v1.36.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-compute-v1.35.0...google-cloud-compute-v1.36.0\"\u003e1.36.0\u003c/a\u003e (2025-08-29)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[google-cloud-compute] Update Compute Engine v1 API to revision 20250807 (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/51732d38da49f8a0598d58b204dc7d9c86ee0e52\"\u003e51732d3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/5e2ba929d44fefe28a3376a74344d314ea8c3f99\"\u003e\u003ccode\u003e5e2ba92\u003c/code\u003e\u003c/a\u003e chore: release main (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14505\"\u003e#14505\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/ac6a7213bd0fee9291ae0ab8aa0009cc334b0156\"\u003e\u003ccode\u003eac6a721\u003c/code\u003e\u003c/a\u003e feat: [google-cloud-texttospeech] add Gemini TTS Multispeaker API fields (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14\"\u003e#14\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/6842396f3662264aa1beca9a5a08f9d0f171483a\"\u003e\u003ccode\u003e6842396\u003c/code\u003e\u003c/a\u003e docs: [google-cloud-cloudsecuritycompliance] updated documentation for APIs (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/94387fbab5eb311da34cebfbd6f5f599f8078a18\"\u003e\u003ccode\u003e94387fb\u003c/code\u003e\u003c/a\u003e feat: [google-cloud-dataplex] A new service \u003ccode\u003eBusinessGlossaryService\u003c/code\u003e is adde...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/709f283915c348c549ddba1b56a133c192e6caae\"\u003e\u003ccode\u003e709f283\u003c/code\u003e\u003c/a\u003e chore: add link to PyPI history in CHANGELOG.md (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14506\"\u003e#14506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/26730096e491346f02af2a82138224a110485e74\"\u003e\u003ccode\u003e2673009\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20250919T072957Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14501\"\u003e#14501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/db0680bd38e8707d5eb974b1b820cf9219a61463\"\u003e\u003ccode\u003edb0680b\u003c/code\u003e\u003c/a\u003e chore: remove obsolete scripts (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14444\"\u003e#14444\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/8be8e45fe4b0e1e0885b870a4d8dd9793a9a5cd4\"\u003e\u003ccode\u003e8be8e45\u003c/code\u003e\u003c/a\u003e chore: remove testing/.gitignore (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14445\"\u003e#14445\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/5877dca12c8c5171e924bd1a30263b04b9ecbc3b\"\u003e\u003ccode\u003e5877dca\u003c/code\u003e\u003c/a\u003e chore: remove redundant files (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14446\"\u003e#14446\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/f9fc5fccd48d87af3edb9668e5e962d097457d58\"\u003e\u003ccode\u003ef9fc5fc\u003c/code\u003e\u003c/a\u003e fix!: Moved Company enums to a separate file (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14455\"\u003e#14455\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-compute-v1.35.0...google-cloud-compute-v1.38.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-storage` from 3.3.1 to 3.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-storage/releases\"\u003egoogle-cloud-storage's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.4.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-storage/compare/v3.3.1...v3.4.0\"\u003e3.4.0\u003c/a\u003e (2025-09-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eexperimental:\u003c/strong\u003e Add async grpc client (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1537\"\u003e#1537\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/ac57b8d819a49aef0ed0cb5bb630bf11012f43e3\"\u003eac57b8d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eexperimental:\u003c/strong\u003e Add grpc client (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1533\"\u003e#1533\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/5674587f2aa347ec2787f2bc1e847eaa294bc1ca\"\u003e5674587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGAPIC generation failed with 'Directory not empty' (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1542\"\u003e#1542\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/c80d8207a8661b84c56cd66bb34de7b5704675b8\"\u003ec80d820\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-storage/blob/main/CHANGELOG.md\"\u003egoogle-cloud-storage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-storage/compare/v3.3.1...v3.4.0\"\u003e3.4.0\u003c/a\u003e (2025-09-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eexperimental:\u003c/strong\u003e Add async grpc client (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1537\"\u003e#1537\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/ac57b8d819a49aef0ed0cb5bb630bf11012f43e3\"\u003eac57b8d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eexperimental:\u003c/strong\u003e Add grpc client (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1533\"\u003e#1533\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/5674587f2aa347ec2787f2bc1e847eaa294bc1ca\"\u003e5674587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGAPIC generation failed with 'Directory not empty' (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1542\"\u003e#1542\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/c80d8207a8661b84c56cd66bb34de7b5704675b8\"\u003ec80d820\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/fd8e9119d81ea6b53e9af591d5d464c91b263c51\"\u003e\u003ccode\u003efd8e911\u003c/code\u003e\u003c/a\u003e chore(main): release 3.4.0 (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1543\"\u003e#1543\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/ac57b8d819a49aef0ed0cb5bb630bf11012f43e3\"\u003e\u003ccode\u003eac57b8d\u003c/code\u003e\u003c/a\u003e feat(experimental): add async grpc client (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1537\"\u003e#1537\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/5674587f2aa347ec2787f2bc1e847eaa294bc1ca\"\u003e\u003ccode\u003e5674587\u003c/code\u003e\u003c/a\u003e feat(experimental): Add grpc client (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1533\"\u003e#1533\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/dc3756d00c75438a8e7097b2f9160dc47ca73e03\"\u003e\u003ccode\u003edc3756d\u003c/code\u003e\u003c/a\u003e chore: Update gapic-generator-python to 1.26.2 (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1540\"\u003e#1540\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/c80d8207a8661b84c56cd66bb34de7b5704675b8\"\u003e\u003ccode\u003ec80d820\u003c/code\u003e\u003c/a\u003e fix: GAPIC generation failed with 'Directory not empty' (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1542\"\u003e#1542\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/b4ce8dad8fc08be8d4c67fa3dc33c7867d7df822\"\u003e\u003ccode\u003eb4ce8da\u003c/code\u003e\u003c/a\u003e chore: add argparse to run samples as script (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1538\"\u003e#1538\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/87f71961d6a498e8bf74c4f995b4c0f98190892d\"\u003e\u003ccode\u003e87f7196\u003c/code\u003e\u003c/a\u003e chore: update Python generator version to 1.25.1 (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1535\"\u003e#1535\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/67326df83ced2678987f98f1daa926c6849ab925\"\u003e\u003ccode\u003e67326df\u003c/code\u003e\u003c/a\u003e chore: fix the gapic unit tests (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1536\"\u003e#1536\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/python-storage/compare/v3.3.1...v3.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `grpcio` from 1.74.0 to 1.75.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/grpc/grpc/releases\"\u003egrpcio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v1.75.1\u003c/h2\u003e\n\u003cp\u003eThis is release gRPC Core 1.75.1 (gemini).\u003c/p\u003e\n\u003cp\u003eFor gRPC documentation, see \u003ca href=\"https://grpc.io/\"\u003egrpc.io\u003c/a\u003e. For previous releases, see \u003ca href=\"https://github.com/grpc/grpc/releases\"\u003eReleases\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis release contains refinements, improvements, and bug fixes.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003ePython\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRelease grpcio wheels with Python 3.14 support (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40403\"\u003e#40403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAsyncio: fixes grpc shutdown race condition occurring during python interpreter finalizations. (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40447\"\u003e#40447\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eThis also addresses previously reported issues with empty error message on Python interpreter exit (\u003ccode\u003eError in sys.excepthook:\u003c/code\u003e/\u003ccode\u003eOriginal exception was:\u003c/code\u003e empty): \u003ca href=\"https://redirect.github.com/grpc/grpc/issues/36655\"\u003e#36655\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/grpc/grpc/issues/38679\"\u003e#38679\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/grpc/grpc/issues/33342\"\u003e#33342\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003ePython 3.14: preserve current behavior when using grpc.aio async methods outside of a running event loop. (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40750\"\u003e#40750\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eNote: using async methods outside of a running event loop is \u003ca href=\"https://docs.python.org/3.14/library/asyncio-policy.html#asyncio-policies\"\u003ediscouraged\u003c/a\u003e by Python, and \u003cstrong\u003ewill be deprecated in future gRPC releases\u003c/strong\u003e. Please use the \u003ca href=\"https://docs.python.org/3.14/library/asyncio-runner.html#asyncio.run\"\u003easyncio.run()\u003c/a\u003e function (or \u003ca href=\"https://docs.python.org/3.14/library/asyncio-runner.html#asyncio.Runner\"\u003easyncio.Runner\u003c/a\u003e for custom loop factories). For interactive mode, use dedicated \u003ca href=\"https://docs.python.org/3/library/asyncio.html#asyncio-cli\"\u003easyncio REPL\u003c/a\u003e: \u003ccode\u003epython -m asyncio\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/grpc/grpc/compare/v1.75.0...v1.75.1\"\u003ehttps://github.com/grpc/grpc/compare/v1.75.0...v1.75.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eRelease v1.75.0\u003c/h2\u003e\n\u003cp\u003eThis is release 1.75.0 (\u003ca href=\"https://github.com/grpc/grpc/blob/master/doc/g_stands_for.md\"\u003egemini\u003c/a\u003e) of gRPC Core.\u003c/p\u003e\n\u003cp\u003eFor gRPC documentation, see \u003ca href=\"https://grpc.io/\"\u003egrpc.io\u003c/a\u003e. For previous releases, see \u003ca href=\"https://github.com/grpc/grpc/releases\"\u003eReleases\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis release contains refinements, improvements, and bug fixes, with highlights listed below.\u003c/p\u003e\n\u003ch2\u003eCore\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[Security] Cherry Pick Spiffe Verification. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/40515\"\u003e#40515\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Python][Typeguard] Part 3 - Add Typeguard to AIO stack in tests. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/40217\"\u003e#40217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[c-ares] update version to 1.34.5. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/39508\"\u003e#39508\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[pick_first] fix bug that caused us to stop attempting to connect. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/40162\"\u003e#40162\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eC++\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[OTel C++] Implement retry metrics. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/39195\"\u003e#39195\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eObjective-C\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix data race by adding custom getter for \u003ccode\u003estate\u003c/code\u003e property with \u003ccode\u003e@synchronized\u003c/code\u003e locking. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/40146\"\u003e#40146\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePython\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003egRPC Python (grpcio) now depends on \u003ccode\u003etyping-extensions~=4.13\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40137\"\u003e#40137\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate musllinux wheels from \u003ccode\u003emusllinux_1_1\u003c/code\u003e to \u003ccode\u003emusllinux_1_2\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40317\"\u003e#40317\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eDropping \u003ccode\u003emusllinux_1_1\u003c/code\u003e because it reached EOL in November 2024\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/grpc/grpc/commit/9b63ce0d513672c5daad4f28342f03863c5589e5\"\u003e\u003ccode\u003e9b63ce0\u003c/code\u003e\u003c/a\u003e [Backport][v1.75.x][Fix] PHP macOS build: composer sha sum update, harden ins...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/3ab7404867bcb4d8515839ddf6ff7f2134b3d3ec\"\u003e\u003ccode\u003e3ab7404\u003c/code\u003e\u003c/a\u003e [Release] Bump version to 1.75.1 (on v1.75.x branch) (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40773\"\u003e#40773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/876e1d1c8bb8dca840fba61d7950ac2e2d459df7\"\u003e\u003ccode\u003e876e1d1\u003c/code\u003e\u003c/a\u003e [Backport][v1.75.x][Python] Handle python3.14 get_event_loop behavior changes...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/74ec067e2839a4625a74b966880737a5085a13cc\"\u003e\u003ccode\u003e74ec067\u003c/code\u003e\u003c/a\u003e [Backport][v1.75.x][Python][Support 3.14] Enable 3.14 supported wheels (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40726\"\u003e#40726\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/ff24d38a8115dbf1ab95337a348cda878de18ecf\"\u003e\u003ccode\u003eff24d38\u003c/code\u003e\u003c/a\u003e [Backport][v1.75.x][Python] aio: skip grpc/aio shutdown if py interpreter is ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/093085cc925e0d5aa6e92bc29e917f9bdc00add2\"\u003e\u003ccode\u003e093085c\u003c/code\u003e\u003c/a\u003e [build] Fix objc boringssl build backport (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40689\"\u003e#40689\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/8c4561390682661cc8cb374ec734bc1d742ad88f\"\u003e\u003ccode\u003e8c45613\u003c/code\u003e\u003c/a\u003e [release] Bump release version on v1.75.x branch to v1.75.0 (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40644\"\u003e#40644\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/d382f40fc0f6cb522cb81f2e9ac111621687c598\"\u003e\u003ccode\u003ed382f40\u003c/code\u003e\u003c/a\u003e [Backport][v1.75.x][Python][Support 3.14] Enable Python 3.14 interpreters for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/e6db4753b460db05f69883ca73191587a4732976\"\u003e\u003ccode\u003ee6db475\u003c/code\u003e\u003c/a\u003e [Backport][v1.75.x][Python] Build manylinux aarch64 without cross-compilation...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/77dc9c8c2595b2d4c031dfa58a4174ea33105908\"\u003e\u003ccode\u003e77dc9c8\u003c/code\u003e\u003c/a\u003e [Backport][v1.75.x][Python] Updating rules_python to 1.5.4 (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40607\"\u003e#40607\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/grpc/grpc/compare/v1.74.0...v1.75.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `grpcio-status` from 1.74.0 to 1.75.1\n\nUpdates `httplib2` from 0.30.0 to 0.31.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/httplib2/httplib2/blob/master/CHANGELOG\"\u003ehttplib2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.31.0\u003c/p\u003e\n\u003cp\u003ehttps: avoid costly load_verify_locations when SSL certificate validation is disabled\n\u003ca href=\"https://redirect.github.com/httplib2/httplib2/pull/249\"\u003ehttplib2/httplib2#249\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e0.30.2\u003c/p\u003e\n\u003cp\u003eNo changes in library. Fix automatic pypi release from CI.\u003c/p\u003e\n\u003cp\u003e0.30.1\u003c/p\u003e\n\u003cp\u003erestore socks proxy support, was broken in 0.30.0\n\u003ca href=\"https://redirect.github.com/httplib2/httplib2/issues/251\"\u003ehttplib2/httplib2#251\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/httplib2/httplib2/commit/26cfea5d07a5817cf214d9978c856c91abf4e078\"\u003e\u003ccode\u003e26cfea5\u003c/code\u003e\u003c/a\u003e v0.31.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/httplib2/httplib2/commit/cbd3d21004374997167d9b8ab36b4ec211881a57\"\u003e\u003ccode\u003ecbd3d21\u003c/code\u003e\u003c/a\u003e chore: CI use trusted publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/httplib2/httplib2/commit/147d7d5d00b4cd383dbdda839089237aa0c2a836\"\u003e\u003ccode\u003e147d7d5\u003c/code\u003e\u003c/a\u003e https: avoid costly load_verify_locations when SSL certificate validation is ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/httplib2/httplib2/commit/d9278ceafb7a05be9998a7a4b1cb7d6d3f689ee5\"\u003e\u003ccode\u003ed9278ce\u003c/code\u003e\u003c/a\u003e v0.30.2 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/httplib2/httplib2/commit/c4b740552037dfec4cfb0592720fe8cfb2089b6b\"\u003e\u003ccode\u003ec4b7405\u003c/code\u003e\u003c/a\u003e chore: CI cache update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/httplib2/httplib2/commit/6cfe2e6b5aff994f07fa0dcddfacf6d3a7999b1b\"\u003e\u003ccode\u003e6cfe2e6\u003c/code\u003e\u003c/a\u003e v0.30.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/httplib2/httplib2/commit/4b8777f88d958b2540d9d0622f98a4df64bd20d3\"\u003e\u003ccode\u003e4b8777f\u003c/code\u003e\u003c/a\u003e chore: update pytest plugins\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/httplib2/httplib2/commit/2a97a860b5beb78b86438de519216a2455394dd4\"\u003e\u003ccode\u003e2a97a86\u003c/code\u003e\u003c/a\u003e restore socks proxy support, was broken in py2/3 merge\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/httplib2/httplib2/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 `identify` from 2.6.13 to 2.6.14\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/6667ae3392c3e2178469779352012d4518c8cdc0\"\u003e\u003ccode\u003e6667ae3\u003c/code\u003e\u003c/a\u003e v2.6.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/0ce88278a87decaf8a7b266074a0044a8fb8dd5c\"\u003e\u003ccode\u003e0ce8827\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/identify/issues/537\"\u003e#537\u003c/a\u003e from LNSD/add-meson-options-support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/29d1fcc8d1dafe99cf82e4c3a6200acdd17490fd\"\u003e\u003ccode\u003e29d1fcc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/identify/issues/536\"\u003e#536\u003c/a\u003e from mike325/fix/add_robot_filetype\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/daf602344d904fd56a85ae76f0a2594ddcebc479\"\u003e\u003ccode\u003edaf6023\u003c/code\u003e\u003c/a\u003e Add support for \u003ccode\u003emeson.options\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/6d493646beb1b740c4b871dd7692b5ab453c1beb\"\u003e\u003ccode\u003e6d49364\u003c/code\u003e\u003c/a\u003e fix: add robot filetype\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/53fdb98ef92dc697d7b84cf07dbb3e6e5d7493f6\"\u003e\u003ccode\u003e53fdb98\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/identify/issues/531\"\u003e#531\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/ffc2322be9c429f69761a777a2f9f1adc87680d0\"\u003e\u003ccode\u003effc2322\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pre-commit/identify/compare/v2.6.13...v2.6.14\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `libcst` from 1.8.2 to 1.8.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://gi...\n\n_Description has been truncated_","html_url":"https://github.com/GoogleCloudPlatform/cluster-toolkit/pull/4712","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/GoogleCloudPlatform%2Fcluster-toolkit/issues/4712","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/4712/packages"},{"uuid":"3465891736","node_id":"PR_kwDOPaG6oc6rJm2y","number":8119,"state":"open","title":"Bump libcst from 0.4.1 to 1.8.5","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-29T17:17:07.000Z","updated_at":"2025-09-29T17:17:08.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"libcst","old_version":"0.4.1","new_version":"1.8.5","repository_url":"https://github.com/Instagram/LibCST"}],"path":null,"ecosystem":"pip"},"body":"Bumps [libcst](https://github.com/Instagram/LibCST) from 0.4.1 to 1.8.5.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/releases\"\u003elibcst's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.8.5\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: circular import error by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1406\"\u003eInstagram/LibCST#1406\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.4...v1.8.5\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.4...v1.8.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.8.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efixed: generate Attribute nodes when applying type annotations by \u003ca href=\"https://github.com/tungol\"\u003e\u003ccode\u003e@​tungol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1396\"\u003eInstagram/LibCST#1396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded:Support parsing of t-strings \u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1374\"\u003e#1374\u003c/a\u003e  by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1398\"\u003eInstagram/LibCST#1398\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded: add support for PEP758 by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1401\"\u003eInstagram/LibCST#1401\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tungol\"\u003e\u003ccode\u003e@​tungol\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1396\"\u003eInstagram/LibCST#1396\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.4\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.8.2\u003c/h2\u003e\n\u003ch1\u003eFixed\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix(dependency): add back typing-extensions for 3.9 by \u003ca href=\"https://github.com/Lee-W\"\u003e\u003ccode\u003e@​Lee-W\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1358\"\u003eInstagram/LibCST#1358\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Lee-W\"\u003e\u003ccode\u003e@​Lee-W\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1358\"\u003eInstagram/LibCST#1358\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.1...v1.8.2\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.1...v1.8.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.8.1\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd helper to convert nodes to matchers by \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1351\"\u003eInstagram/LibCST#1351\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eUpdated\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid raising bare Exception by \u003ca href=\"https://github.com/zaicruvoir1rominet\"\u003e\u003ccode\u003e@​zaicruvoir1rominet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1168\"\u003eInstagram/LibCST#1168\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade PyYAML-ft version and use new module name by \u003ca href=\"https://github.com/lysnikolaou\"\u003e\u003ccode\u003e@​lysnikolaou\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1353\"\u003eInstagram/LibCST#1353\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lysnikolaou\"\u003e\u003ccode\u003e@​lysnikolaou\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1353\"\u003eInstagram/LibCST#1353\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.0...v1.8.1\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.0...v1.8.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.8.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow configuring empty formatter lists in codemod CLI by \u003ca href=\"https://github.com/ngoldbaum\"\u003e\u003ccode\u003e@​ngoldbaum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1319\"\u003eInstagram/LibCST#1319\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePublish several new binary wheels\n\u003cul\u003e\n\u003cli\u003emacos intel by \u003ca href=\"https://github.com/hadialqattan\"\u003e\u003ccode\u003e@​hadialqattan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1316\"\u003eInstagram/LibCST#1316\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ewindows arm64 by \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1304\"\u003eInstagram/LibCST#1304\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e3.13 CPython free-threaded by \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1333\"\u003eInstagram/LibCST#1333\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(only on \u003ca href=\"https://test.pypi.org/project/libcst/#history\"\u003etest.pypi.org\u003c/a\u003e) 3.14 and 3.14 CPython free-threaded by \u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1345\"\u003eInstagram/LibCST#1345\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1331\"\u003eInstagram/LibCST#1331\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eEnable support for free-threaded CPython by \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1295\"\u003eInstagram/LibCST#1295\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1335\"\u003eInstagram/LibCST#1335\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/blob/main/CHANGELOG.md\"\u003elibcst's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.8.5 - 2025-09-25\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efixed: circular import error by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1406\"\u003eInstagram/LibCST#1406\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.8.4 - 2025-09-09\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efixed: generate Attribute nodes when applying type annotations by \u003ca href=\"https://github.com/tungol\"\u003e\u003ccode\u003e@​tungol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1396\"\u003eInstagram/LibCST#1396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded: Support parsing of t-strings \u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1374\"\u003e#1374\u003c/a\u003e  by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1398\"\u003eInstagram/LibCST#1398\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded: add support for PEP758 by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1401\"\u003eInstagram/LibCST#1401\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tungol\"\u003e\u003ccode\u003e@​tungol\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1396\"\u003eInstagram/LibCST#1396\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.4\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.4\u003c/a\u003e\u003c/p\u003e\n\u003ch1\u003e1.8.3 - 2025-08-29\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eremoved: remove entry points to pure parser by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1375\"\u003eInstagram/LibCST#1375\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixed: fixes match statements to work with PositionProvider by \u003ca href=\"https://github.com/imsut\"\u003e\u003ccode\u003e@​imsut\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1389\"\u003eInstagram/LibCST#1389\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hunterhogan\"\u003e\u003ccode\u003e@​hunterhogan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1378\"\u003eInstagram/LibCST#1378\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thomas-serre-sonarsource\"\u003e\u003ccode\u003e@​thomas-serre-sonarsource\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1379\"\u003eInstagram/LibCST#1379\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/imsut\"\u003e\u003ccode\u003e@​imsut\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1389\"\u003eInstagram/LibCST#1389\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.3\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.3\u003c/a\u003e\u003c/p\u003e\n\u003ch1\u003e1.8.2 - 2025-06-13\u003c/h1\u003e\n\u003ch1\u003eFixed\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix(dependency): add back typing-extensions for 3.9 by \u003ca href=\"https://github.com/Lee-W\"\u003e\u003ccode\u003e@​Lee-W\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1358\"\u003eInstagram/LibCST#1358\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Lee-W\"\u003e\u003ccode\u003e@​Lee-W\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1358\"\u003eInstagram/LibCST#1358\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.1...v1.8.2\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.1...v1.8.2\u003c/a\u003e\u003c/p\u003e\n\u003ch1\u003e1.8.1 - 2025-06-10\u003c/h1\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd helper to convert nodes to matchers by \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1351\"\u003eInstagram/LibCST#1351\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eUpdated\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid raising bare Exception by \u003ca href=\"https://github.com/zaicruvoir1rominet\"\u003e\u003ccode\u003e@​zaicruvoir1rominet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1168\"\u003eInstagram/LibCST#1168\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade PyYAML-ft version and use new module name by \u003ca href=\"https://github.com/lysnikolaou\"\u003e\u003ccode\u003e@​lysnikolaou\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1353\"\u003eInstagram/LibCST#1353\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/7c906eb47c02dca8d5b4273a032805516361c8cb\"\u003e\u003ccode\u003e7c906eb\u003c/code\u003e\u003c/a\u003e bump version to 1.8.5 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1407\"\u003e#1407\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/de5635394b5627cb86656147ba2f96e835ed3d44\"\u003e\u003ccode\u003ede56353\u003c/code\u003e\u003c/a\u003e fix: circular import error (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1406\"\u003e#1406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/47cacb69a32520be52975527e0cc87a4b4d5cd77\"\u003e\u003ccode\u003e47cacb6\u003c/code\u003e\u003c/a\u003e bump version to 1.8.4 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1402\"\u003e#1402\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/3b5329aa2022d97972d2f58eefe61b759b8e56c1\"\u003e\u003ccode\u003e3b5329a\u003c/code\u003e\u003c/a\u003e feat: add support for PEP758 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1401\"\u003e#1401\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/48668dfabb25e4bbdd35f81407498f5f5e47bf88\"\u003e\u003ccode\u003e48668df\u003c/code\u003e\u003c/a\u003e Support parsing of t-strings \u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1374\"\u003e#1374\u003c/a\u003e  (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1398\"\u003e#1398\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/0c82bfa76166ed38409a97de8974f9aaf3e7e572\"\u003e\u003ccode\u003e0c82bfa\u003c/code\u003e\u003c/a\u003e build(deps): bump regex from 1.11.1 to 1.11.2 in /native (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1399\"\u003e#1399\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/f40d8351450ca9adfe5270bd86ec7951e83221f4\"\u003e\u003ccode\u003ef40d835\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1400\"\u003e#1400\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/d721a06c3fc3ab9210acd180cec5aaca856e1bc7\"\u003e\u003ccode\u003ed721a06\u003c/code\u003e\u003c/a\u003e generate Attribute nodes when applying type annotations (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1396\"\u003e#1396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/e064729b4c04b834754c7be7f43a4dfb38972570\"\u003e\u003ccode\u003ee064729\u003c/code\u003e\u003c/a\u003e build(deps): bump pypa/cibuildwheel from 3.0.1 to 3.1.4 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1395\"\u003e#1395\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/f746afd537910d99bd8226a1c1edbf5bc69630eb\"\u003e\u003ccode\u003ef746afd\u003c/code\u003e\u003c/a\u003e build(deps): bump rayon from 1.10.0 to 1.11.0 in /native (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1394\"\u003e#1394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Instagram/LibCST/compare/v0.4.1...v1.8.5\"\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=libcst\u0026package-manager=pip\u0026previous-version=0.4.1\u0026new-version=1.8.5)](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/GSM2017PMK-OSV/main-trunk/pull/8119","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/GSM2017PMK-OSV%2Fmain-trunk/issues/8119","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/8119/packages"},{"uuid":"2870583836","node_id":"PR_kwDOOuPJ9s6rGaIc","number":76,"state":"closed","title":"Bump libcst from 1.8.4 to 1.8.5","user":"dependabot[bot]","labels":["CLA Signed","dependencies","python"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":"2025-09-29T18:07:51.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-29T13:08:32.000Z","updated_at":"2025-09-29T18:07:51.000Z","time_to_close":17959,"merged_at":"2025-09-29T18:07:51.000Z","merged_by":"luccabb","closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"libcst","old_version":"1.8.4","new_version":"1.8.5","repository_url":"https://github.com/Instagram/LibCST"}],"path":null,"ecosystem":"pip"},"body":"Bumps [libcst](https://github.com/Instagram/LibCST) from 1.8.4 to 1.8.5.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/releases\"\u003elibcst's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.8.5\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: circular import error by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1406\"\u003eInstagram/LibCST#1406\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.4...v1.8.5\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.4...v1.8.5\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/blob/main/CHANGELOG.md\"\u003elibcst's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.8.5 - 2025-09-25\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efixed: circular import error by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1406\"\u003eInstagram/LibCST#1406\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/7c906eb47c02dca8d5b4273a032805516361c8cb\"\u003e\u003ccode\u003e7c906eb\u003c/code\u003e\u003c/a\u003e bump version to 1.8.5 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1407\"\u003e#1407\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/de5635394b5627cb86656147ba2f96e835ed3d44\"\u003e\u003ccode\u003ede56353\u003c/code\u003e\u003c/a\u003e fix: circular import error (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1406\"\u003e#1406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.4...v1.8.5\"\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=libcst\u0026package-manager=pip\u0026previous-version=1.8.4\u0026new-version=1.8.5)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nYou can trigger a rebase of this PR 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/facebookresearch/clusterscope/pull/76","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/facebookresearch%2Fclusterscope/issues/76","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/76/packages"},{"uuid":"2868963653","node_id":"PR_kwDOAjat186rAOlF","number":7527,"state":"closed","title":"Bump libcst from 1.8.4 to 1.8.5","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-09-29T08:21:45.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-29T04:17:32.000Z","updated_at":"2025-09-29T08:21:46.000Z","time_to_close":14653,"merged_at":"2025-09-29T08:21:45.000Z","merged_by":"jenshnielsen","closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"libcst","old_version":"1.8.4","new_version":"1.8.5","repository_url":"https://github.com/Instagram/LibCST"}],"path":null,"ecosystem":"pip"},"body":"Bumps [libcst](https://github.com/Instagram/LibCST) from 1.8.4 to 1.8.5.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/releases\"\u003elibcst's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.8.5\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: circular import error by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1406\"\u003eInstagram/LibCST#1406\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.4...v1.8.5\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.4...v1.8.5\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/blob/main/CHANGELOG.md\"\u003elibcst's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.8.5 - 2025-09-25\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efixed: circular import error by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1406\"\u003eInstagram/LibCST#1406\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/7c906eb47c02dca8d5b4273a032805516361c8cb\"\u003e\u003ccode\u003e7c906eb\u003c/code\u003e\u003c/a\u003e bump version to 1.8.5 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1407\"\u003e#1407\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/de5635394b5627cb86656147ba2f96e835ed3d44\"\u003e\u003ccode\u003ede56353\u003c/code\u003e\u003c/a\u003e fix: circular import error (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1406\"\u003e#1406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.4...v1.8.5\"\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=libcst\u0026package-manager=pip\u0026previous-version=1.8.4\u0026new-version=1.8.5)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nYou can trigger a rebase of this PR 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/microsoft/Qcodes/pull/7527","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/microsoft%2FQcodes/issues/7527","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/7527/packages"},{"uuid":"2865628362","node_id":"PR_kwDOKghJ_s6qzgTK","number":185,"state":"open","title":"build(deps-dev): bump libcst from 1.8.4 to 1.8.5","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"NONE","state_reason":null,"created_at":"2025-09-26T22:10:30.000Z","updated_at":"2025-09-26T22:10:31.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps-dev)","packages":[{"name":"libcst","old_version":"1.8.4","new_version":"1.8.5","repository_url":"https://github.com/Instagram/LibCST"}],"path":null,"ecosystem":"pip"},"body":"Bumps [libcst](https://github.com/Instagram/LibCST) from 1.8.4 to 1.8.5.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/releases\"\u003elibcst's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.8.5\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: circular import error by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1406\"\u003eInstagram/LibCST#1406\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.4...v1.8.5\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.4...v1.8.5\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/blob/main/CHANGELOG.md\"\u003elibcst's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.8.5 - 2025-09-25\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efixed: circular import error by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1406\"\u003eInstagram/LibCST#1406\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/7c906eb47c02dca8d5b4273a032805516361c8cb\"\u003e\u003ccode\u003e7c906eb\u003c/code\u003e\u003c/a\u003e bump version to 1.8.5 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1407\"\u003e#1407\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/de5635394b5627cb86656147ba2f96e835ed3d44\"\u003e\u003ccode\u003ede56353\u003c/code\u003e\u003c/a\u003e fix: circular import error (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1406\"\u003e#1406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.4...v1.8.5\"\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=libcst\u0026package-manager=pip\u0026previous-version=1.8.4\u0026new-version=1.8.5)](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/YisusChrist/AnimeSnap/pull/185","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/YisusChrist%2FAnimeSnap/issues/185","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/185/packages"},{"uuid":"2865086370","node_id":"PR_kwDOKUysK86qxb-i","number":208,"state":"closed","title":"build(deps-dev): bump libcst from 1.8.4 to 1.8.5","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":"2025-09-26T18:09:10.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-26T18:08:57.000Z","updated_at":"2025-09-26T18:09:10.000Z","time_to_close":13,"merged_at":"2025-09-26T18:09:10.000Z","merged_by":"github-actions[bot]","closed_by":null,"dependency_metadata":{"prefix":"build(deps-dev)","packages":[{"name":"libcst","old_version":"1.8.4","new_version":"1.8.5","repository_url":"https://github.com/Instagram/LibCST"}],"path":null,"ecosystem":"pip"},"body":"Bumps [libcst](https://github.com/Instagram/LibCST) from 1.8.4 to 1.8.5.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/releases\"\u003elibcst's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.8.5\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: circular import error by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1406\"\u003eInstagram/LibCST#1406\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.4...v1.8.5\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.4...v1.8.5\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/blob/main/CHANGELOG.md\"\u003elibcst's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.8.5 - 2025-09-25\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efixed: circular import error by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1406\"\u003eInstagram/LibCST#1406\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/7c906eb47c02dca8d5b4273a032805516361c8cb\"\u003e\u003ccode\u003e7c906eb\u003c/code\u003e\u003c/a\u003e bump version to 1.8.5 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1407\"\u003e#1407\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/de5635394b5627cb86656147ba2f96e835ed3d44\"\u003e\u003ccode\u003ede56353\u003c/code\u003e\u003c/a\u003e fix: circular import error (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1406\"\u003e#1406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.4...v1.8.5\"\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=libcst\u0026package-manager=pip\u0026previous-version=1.8.4\u0026new-version=1.8.5)](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/YisusChrist/iltransfer/pull/208","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/YisusChrist%2Filtransfer/issues/208","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/208/packages"}],"issue_packages":[{"old_version":"1.8.5","new_version":"1.8.6","update_type":"patch","path":null,"pr_created_at":"2026-02-10T18:49:44.000Z","version_change":"1.8.5 → 1.8.6","issue":{"uuid":"3923033552","node_id":"PR_kwDOAG4Ac87C0rcw","number":23091,"state":"closed","title":"Bump the python-version-updates group across 1 directory with 17 updates","user":"dependabot[bot]","labels":["dependencies","category:internal","release-notes:not-required"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-02-22T02:14:02.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-10T18:49:44.000Z","updated_at":"2026-02-22T02:14:04.000Z","time_to_close":977058,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-version-updates","update_count":17,"packages":[{"name":"libcst","old_version":"1.8.5","new_version":"1.8.6","repository_url":"https://github.com/Instagram/LibCST"},{"name":"packaging","old_version":"25.0","new_version":"26.0","repository_url":"https://github.com/pypa/packaging"},{"name":"psutil","old_version":"5.9.8","new_version":"7.2.2","repository_url":"https://github.com/giampaolo/psutil"},{"name":"pytest","old_version":"8.4.1","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"types-requests","old_version":"2.32.4.20250913","new_version":"2.32.4.20260107","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"types-setuptools","old_version":"80.9.0.20250822","new_version":"82.0.0.20260210","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"debugpy","old_version":"1.8.16","new_version":"1.8.20","repository_url":"https://github.com/microsoft/debugpy"},{"name":"pydevd-pycharm","old_version":"251.23536.40","new_version":"261.20362.36","repository_url":"https://github.com/JetBrains/intellij-community"},{"name":"fastapi","old_version":"0.120.1","new_version":"0.128.7","repository_url":"https://github.com/fastapi/fastapi"},{"name":"starlette","old_version":"0.49.1","new_version":"0.52.1","repository_url":"https://github.com/Kludex/starlette"},{"name":"strawberry-graphql","old_version":"0.284.1","new_version":"0.291.3"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [libcst](https://github.com/Instagram/LibCST), [packaging](https://github.com/pypa/packaging), [psutil](https://github.com/giampaolo/psutil), [pytest](https://github.com/pytest-dev/pytest), [setuptools](https://github.com/pypa/setuptools), [types-requests](https://github.com/typeshed-internal/stub_uploader), [types-setuptools](https://github.com/typeshed-internal/stub_uploader), [debugpy](https://github.com/microsoft/debugpy), [pydevd-pycharm](https://github.com/JetBrains/intellij-community), [fastapi](https://github.com/fastapi/fastapi), [starlette](https://github.com/Kludex/starlette), [strawberry-graphql[fastapi]](https://github.com/strawberry-graphql/strawberry), [uvicorn[standard]](https://github.com/Kludex/uvicorn), [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/), [python-gnupg](https://github.com/vsajip/python-gnupg), [pytest-cov](https://github.com/pytest-dev/pytest-cov) and [flake8](https://github.com/pycqa/flake8) to permit the latest version.\nUpdates `libcst` from 1.8.5 to 1.8.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/releases\"\u003elibcst's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.8.6\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate pyproject.toml for 3.14t by \u003ca href=\"https://github.com/itamaro\"\u003e\u003ccode\u003e@​itamaro\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1417\"\u003eInstagram/LibCST#1417\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate PyO3 to 0.26 by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1413\"\u003eInstagram/LibCST#1413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake CodemodCommand's supported_transforms order deterministic by \u003ca href=\"https://github.com/frvnkliu\"\u003e\u003ccode\u003e@​frvnkliu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1424\"\u003eInstagram/LibCST#1424\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/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1413\"\u003eInstagram/LibCST#1413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frvnkliu\"\u003e\u003ccode\u003e@​frvnkliu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1424\"\u003eInstagram/LibCST#1424\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.5...v1.8.6\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.5...v1.8.6\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/blob/main/CHANGELOG.md\"\u003elibcst's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.8.6 - 2025-11-03\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate pyproject.toml for 3.14t by \u003ca href=\"https://github.com/itamaro\"\u003e\u003ccode\u003e@​itamaro\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1417\"\u003eInstagram/LibCST#1417\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate PyO3 to 0.26 by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1413\"\u003eInstagram/LibCST#1413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake CodemodCommand's supported_transforms order deterministic by \u003ca href=\"https://github.com/frvnkliu\"\u003e\u003ccode\u003e@​frvnkliu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1424\"\u003eInstagram/LibCST#1424\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/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1413\"\u003eInstagram/LibCST#1413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frvnkliu\"\u003e\u003ccode\u003e@​frvnkliu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1424\"\u003eInstagram/LibCST#1424\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.5...v1.8.6\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.5...v1.8.6\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/Instagram/LibCST/commit/9275a8bf7875d08659ce7b266860138bba633410\"\u003e\u003ccode\u003e9275a8b\u003c/code\u003e\u003c/a\u003e bump version to 1.8.6 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1425\"\u003e#1425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/b66c0e28229fd91ac145f1a56d7d884e6f8587b4\"\u003e\u003ccode\u003eb66c0e2\u003c/code\u003e\u003c/a\u003e [CodemodCommand] Make \u003ccode\u003etransform_module\u003c/code\u003e \u003ccode\u003esupported_transforms\u003c/code\u003e order determi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/c2169d240b5011ea820dc18d7a2452f182c2c5d3\"\u003e\u003ccode\u003ec2169d2\u003c/code\u003e\u003c/a\u003e Update PyO3 to 0.26 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1413\"\u003e#1413\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/73b17d8449034b520e7128c8a4bd100674d1e78c\"\u003e\u003ccode\u003e73b17d8\u003c/code\u003e\u003c/a\u003e Update pyproject.toml for 3.14t (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1417\"\u003e#1417\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/421f7d34004de18391014319ec6a818322637a8d\"\u003e\u003ccode\u003e421f7d3\u003c/code\u003e\u003c/a\u003e build(deps): bump pypa/cibuildwheel from 3.1.4 to 3.2.1 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1414\"\u003e#1414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/129b20f4769a2b26b41b262fb88f9aaf8754930b\"\u003e\u003ccode\u003e129b20f\u003c/code\u003e\u003c/a\u003e build(deps): bump github/codeql-action from 3 to 4 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1415\"\u003e#1415\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/6f5da5f99873e4c17e32ca221a3ddde3fb1ea354\"\u003e\u003ccode\u003e6f5da5f\u003c/code\u003e\u003c/a\u003e build(deps): bump astral-sh/setup-uv from 6 to 7 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1416\"\u003e#1416\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.5...v1.8.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `packaging` from 25.0 to 26.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/releases\"\u003epackaging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.0\u003c/h2\u003e\n\u003cp\u003eRead about the performance improvements here: \u003ca href=\"https://iscinumpy.dev/post/packaging-faster\"\u003ehttps://iscinumpy.dev/post/packaging-faster\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePEP 751: support pylock by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/900\"\u003epypa/packaging#900\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePEP 794: import name metadata by \u003ca href=\"https://github.com/brettcannon\"\u003e\u003ccode\u003e@​brettcannon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/948\"\u003epypa/packaging#948\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport writing metadata by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/846\"\u003epypa/packaging#846\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e__replace__\u003c/code\u003e for \u003ccode\u003eVersion\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1003\"\u003epypa/packaging#1003\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport positional pattern matching for \u003ccode\u003eVersion\u003c/code\u003e and \u003ccode\u003eSpecifier\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1004\"\u003epypa/packaging#1004\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePEP 440 handling of prereleases for \u003ccode\u003eSpecifier.contains\u003c/code\u003e, \u003ccode\u003eSpecifierSet.contains\u003c/code\u003e, and \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/897\"\u003epypa/packaging#897\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle PEP 440 edge case in \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/942\"\u003epypa/packaging#942\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdjust arbitrary equality intersection preservation in \u003ccode\u003eSpecifierSet\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/951\"\u003epypa/packaging#951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReturn \u003ccode\u003eFalse\u003c/code\u003e instead of raising for \u003ccode\u003e.contains\u003c/code\u003e with invalid version by \u003ca href=\"https://github.com/Liam-DeVoe\"\u003e\u003ccode\u003e@​Liam-DeVoe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/932\"\u003epypa/packaging#932\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport arbitrary equality on arbitrary strings for \u003ccode\u003eSpecifier\u003c/code\u003e and \u003ccode\u003eSpecifierSet\u003c/code\u003e's \u003ccode\u003efilter\u003c/code\u003e and \u003ccode\u003econtains\u003c/code\u003e method. by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/954\"\u003epypa/packaging#954\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly try to parse as \u003ccode\u003eVersion\u003c/code\u003e on certain marker keys, return \u003ccode\u003eFalse\u003c/code\u003e on unequal ordered comparsions by \u003ca href=\"https://github.com/JP-Ellis\"\u003e\u003ccode\u003e@​JP-Ellis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/939\"\u003epypa/packaging#939\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003e_hash\u003c/code\u003e when unpickling \u003ccode\u003eTag()\u003c/code\u003e by \u003ca href=\"https://github.com/dholth\"\u003e\u003ccode\u003e@​dholth\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/860\"\u003epypa/packaging#860\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrect comment and simplify implicit prerelease handling in \u003ccode\u003eSpecifier.prereleases\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/896\"\u003epypa/packaging#896\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse explicit \u003ccode\u003e_GLibCVersion\u003c/code\u003e \u003ccode\u003eNamedTuple\u003c/code\u003e in \u003ccode\u003e_manylinux\u003c/code\u003e by \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/868\"\u003epypa/packaging#868\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDetect invalid license expressions containing \u003ccode\u003e()\u003c/code\u003e by \u003ca href=\"https://github.com/bwoodsend\"\u003e\u003ccode\u003e@​bwoodsend\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/879\"\u003epypa/packaging#879\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrect regex for metadata \u003ccode\u003e'name'\u003c/code\u003e format by \u003ca href=\"https://github.com/di\"\u003e\u003ccode\u003e@​di\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/925\"\u003epypa/packaging#925\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove the message around expecting a semicolon by \u003ca href=\"https://github.com/pradyunsg\"\u003e\u003ccode\u003e@​pradyunsg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/833\"\u003epypa/packaging#833\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport nested parens in license expressions by \u003ca href=\"https://github.com/Liam-DeVoe\"\u003e\u003ccode\u003e@​Liam-DeVoe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/931\"\u003epypa/packaging#931\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd space before at symbol in \u003ccode\u003eRequirements\u003c/code\u003e string by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/953\"\u003epypa/packaging#953\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eA root logger use found by ruff LOG, use \u003ccode\u003epackaging\u003c/code\u003e logger instead by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/965\"\u003epypa/packaging#965\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter support for subclassing \u003ccode\u003eMarker\u003c/code\u003e and \u003ccode\u003eRequirement\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1022\"\u003epypa/packaging#1022\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize all extras, not just if it comes first by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1024\"\u003epypa/packaging#1024\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't produce a broken repr if \u003ccode\u003eMarker\u003c/code\u003e fails to construct by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1033\"\u003epypa/packaging#1033\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePerformance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid recompiling regexes in the tokenizer for a 3x speedup by \u003ca href=\"https://github.com/hauntsaninja\"\u003e\u003ccode\u003e@​hauntsaninja\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1019\"\u003epypa/packaging#1019\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove performance in \u003ccode\u003e_manylinux.py\u003c/code\u003e by \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/869\"\u003epypa/packaging#869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMinor cleanups to \u003ccode\u003eVersion\u003c/code\u003e by \u003ca href=\"https://github.com/bearomorphism\"\u003e\u003ccode\u003e@​bearomorphism\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/913\"\u003epypa/packaging#913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip redundant creation of \u003ccode\u003eVersion\u003c/code\u003es in specifier comparison by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/986\"\u003epypa/packaging#986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCache \u003ccode\u003eSpecifier\u003c/code\u003e's Version by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/985\"\u003epypa/packaging#985\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eVersion\u003c/code\u003e a little faster by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/987\"\u003epypa/packaging#987\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMinor \u003ccode\u003eVersion\u003c/code\u003e regex cleanup by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/990\"\u003epypa/packaging#990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFaster regex on Python 3.11.5+ by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/988\"\u003epypa/packaging#988\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1055\"\u003epypa/packaging#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLazily calculate \u003ccode\u003e_key\u003c/code\u003e in \u003ccode\u003eVersion\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/989\"\u003epypa/packaging#989\u003c/a\u003e and regression for \u003ccode\u003epackaging_legacy\u003c/code\u003e fixed by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1048\"\u003epypa/packaging#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFaster \u003ccode\u003ecanonicalize_version\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/993\"\u003epypa/packaging#993\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003efullmatch\u003c/code\u003e in a couple more places by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/992\"\u003epypa/packaging#992\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/blob/main/CHANGELOG.rst\"\u003epackaging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e26.0 - 2026-01-20\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nFeatures:\n\u003cul\u003e\n\u003cli\u003ePEP 751: support pylock (:pull:\u003ccode\u003e900\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePEP 794: import name metadata (:pull:\u003ccode\u003e948\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport for writing metadata to a file (:pull:\u003ccode\u003e846\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e__replace__\u003c/code\u003e on Version (:pull:\u003ccode\u003e1003\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport positional pattern matching for \u003ccode\u003eVersion\u003c/code\u003e and \u003ccode\u003eSpecifierSet\u003c/code\u003e (:pull:\u003ccode\u003e1004\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePEP 440 handling of prereleases for \u003ccode\u003eSpecifier.contains\u003c/code\u003e, \u003ccode\u003eSpecifierSet.contains\u003c/code\u003e, and \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e (:pull:\u003ccode\u003e897\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eHandle PEP 440 edge case in \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e (:pull:\u003ccode\u003e942\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdjust arbitrary equality intersection preservation in \u003ccode\u003eSpecifierSet\u003c/code\u003e (:pull:\u003ccode\u003e951\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eReturn \u003ccode\u003eFalse\u003c/code\u003e instead of raising for \u003ccode\u003e.contains\u003c/code\u003e with invalid version (:pull:\u003ccode\u003e932\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport arbitrary equality on arbitrary strings for \u003ccode\u003eSpecifier\u003c/code\u003e and \u003ccode\u003eSpecifierSet\u003c/code\u003e's \u003ccode\u003efilter\u003c/code\u003e and \u003ccode\u003econtains\u003c/code\u003e method. (:pull:\u003ccode\u003e954\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eOnly try to parse as \u003ccode\u003eVersion\u003c/code\u003e on certain marker keys, return \u003ccode\u003eFalse\u003c/code\u003e on unequal ordered comparisons (:pull:\u003ccode\u003e939\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003e_hash\u003c/code\u003e when unpickling \u003ccode\u003eTag()\u003c/code\u003e (:pull:\u003ccode\u003e860\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect comment and simplify implicit prerelease handling in \u003ccode\u003eSpecifier.prereleases\u003c/code\u003e (:pull:\u003ccode\u003e896\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse explicit \u003ccode\u003e_GLibCVersion\u003c/code\u003e \u003ccode\u003eNamedTuple\u003c/code\u003e in \u003ccode\u003e_manylinux\u003c/code\u003e (:pull:\u003ccode\u003e868\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDetect invalid license expressions containing \u003ccode\u003e()\u003c/code\u003e (:pull:\u003ccode\u003e879\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect regex for metadata \u003ccode\u003e'name'\u003c/code\u003e format (:pull:\u003ccode\u003e925\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eImprove the message around expecting a semicolon (:pull:\u003ccode\u003e833\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport nested parens in license expressions (:pull:\u003ccode\u003e931\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd space before at symbol in \u003ccode\u003eRequirements\u003c/code\u003e string (:pull:\u003ccode\u003e953\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eA root logger use found, use a \u003ccode\u003epackaging\u003c/code\u003e logger instead (:pull:\u003ccode\u003e965\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eBetter support for subclassing \u003ccode\u003eMarker\u003c/code\u003e and \u003ccode\u003eRequirement\u003c/code\u003e (:pull:\u003ccode\u003e1022\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eNormalize all extras, not just if it comes first (:pull:\u003ccode\u003e1024\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDon't produce a broken repr if \u003ccode\u003eMarker\u003c/code\u003e fails to construct (:pull:\u003ccode\u003e1033\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePerformance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid recompiling regexes in the tokenizer for a 3x speedup (:pull:\u003ccode\u003e1019\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eImprove performance in \u003ccode\u003e_manylinux.py\u003c/code\u003e (:pull:\u003ccode\u003e869\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMinor cleanups to \u003ccode\u003eVersion\u003c/code\u003e (:pull:\u003ccode\u003e913\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSkip redundant creation of \u003ccode\u003eVersion\u003c/code\u003e's in specifier comparison (:pull:\u003ccode\u003e986\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCache the \u003ccode\u003eSpecifier\u003c/code\u003e's \u003ccode\u003eVersion\u003c/code\u003e (:pull:\u003ccode\u003e985\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eVersion\u003c/code\u003e a little faster (:pull:\u003ccode\u003e987\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMinor \u003ccode\u003eVersion\u003c/code\u003e regex cleanup (:pull:\u003ccode\u003e990\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFaster regex on Python 3.11.5+ for \u003ccode\u003eVersion\u003c/code\u003e (:pull:\u003ccode\u003e988\u003c/code\u003e, :pull:\u003ccode\u003e1055\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eLazily calculate \u003ccode\u003e_key\u003c/code\u003e in \u003ccode\u003eVersion\u003c/code\u003e (:pull:\u003ccode\u003e989\u003c/code\u003e, :pull:\u003ccode\u003e1048\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFaster \u003ccode\u003ecanonicalize_version\u003c/code\u003e (:pull:\u003ccode\u003e993\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003ere.fullmatch\u003c/code\u003e in a couple more places (:pull:\u003ccode\u003e992\u003c/code\u003e, :pull:\u003ccode\u003e1029\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003emap\u003c/code\u003e instead of generator (:pull:\u003ccode\u003e996\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDeprecate \u003ccode\u003e._version\u003c/code\u003e (\u003ccode\u003e_Version\u003c/code\u003e, a \u003ccode\u003eNamedTuple\u003c/code\u003e) (:pull:\u003ccode\u003e995\u003c/code\u003e, :pull:\u003ccode\u003e1062\u003c/code\u003e)\u003cbr /\u003e\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/3b77a26f5a27473ad3b08194d773f325d018a2d0\"\u003e\u003ccode\u003e3b77a26\u003c/code\u003e\u003c/a\u003e Bump for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/31371cce593d2bde0dd8c436ecfb7d53cb91cfb6\"\u003e\u003ccode\u003e31371cc\u003c/code\u003e\u003c/a\u003e docs: prepare for 26.0 final (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1063\"\u003e#1063\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/9627a8821f09e4c55cd6e9daadb617b67c4741c2\"\u003e\u003ccode\u003e9627a88\u003c/code\u003e\u003c/a\u003e perf: dual replace (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1064\"\u003e#1064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/d5398b8bc19f3fad7b035ceb83023caf06d6e2da\"\u003e\u003ccode\u003ed5398b8\u003c/code\u003e\u003c/a\u003e fix: restore ._version as a compat shim (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1062\"\u003e#1062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/3a7b600a126d237b2ad3cd7e25d2cb5c176276af\"\u003e\u003ccode\u003e3a7b600\u003c/code\u003e\u003c/a\u003e Bump for development\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/d4eefdccf992e963c48011875301d93df6a7f2cc\"\u003e\u003ccode\u003ed4eefdc\u003c/code\u003e\u003c/a\u003e Bump for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/46189124fb43d8989d370902c80ab156eb83a45d\"\u003e\u003ccode\u003e4618912\u003c/code\u003e\u003c/a\u003e docs: prepare for 26.0rc3 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1060\"\u003e#1060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/0cf1b41b4b321ae08cad7d3e49cfaff5578fe813\"\u003e\u003ccode\u003e0cf1b41\u003c/code\u003e\u003c/a\u003e ci: test on first public release of CPythons (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1056\"\u003e#1056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/716beb1c0a5d7a398bf57fbd80bc2501811e616b\"\u003e\u003ccode\u003e716beb1\u003c/code\u003e\u003c/a\u003e perf:  10% faster stripping zeros (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1058\"\u003e#1058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/350a2306700b738f487f251efa278f532b263dee\"\u003e\u003ccode\u003e350a230\u003c/code\u003e\u003c/a\u003e fix: support CPython 3.11.0-3.11.4 and older PyPy3.11 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/packaging/compare/25.0...26.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psutil` from 5.9.8 to 7.2.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/giampaolo/psutil/blob/master/HISTORY.rst\"\u003epsutil's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e7.2.2\u003c/h1\u003e\n\u003cp\u003e2026-01-28\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2705_: [Linux]: \u003ccode\u003eProcess.wait()\u003c/code\u003e_ now uses \u003ccode\u003epidfd_open()\u003c/code\u003e + \u003ccode\u003epoll()\u003c/code\u003e for\nwaiting, resulting in no busy loop and faster response times. Requires\nLinux \u0026gt;= 5.3 and Python \u0026gt;= 3.9. Falls back to traditional polling if\nunavailable.\u003c/li\u003e\n\u003cli\u003e2705_: [macOS], [BSD]: \u003ccode\u003eProcess.wait()\u003c/code\u003e_ now uses \u003ccode\u003ekqueue()\u003c/code\u003e for waiting,\nresulting in no busy loop and faster response times.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2701_, [macOS]: fix compilation error on macOS \u0026lt; 10.7.  (patch by Sergey\nFedorov)\u003c/li\u003e\n\u003cli\u003e2707_, [macOS]: fix potential memory leaks in error paths of\n\u003ccode\u003eProcess.memory_full_info()\u003c/code\u003e and \u003ccode\u003eProcess.threads()\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e2708_, [macOS]: Process.cmdline()\u003ccode\u003e_ and \u003c/code\u003eProcess.environ()\u003ccode\u003e_ may fail with ``OSError: [Errno 0] Undefined error`` (from ``sysctl(KERN_PROCARGS2)``). They now raise \u003c/code\u003eAccessDenied`_ instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e7.2.1\u003c/h1\u003e\n\u003cp\u003e2025-12-29\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2699_, [FreeBSD], [NetBSD]: \u003ccode\u003eheap_info()\u003c/code\u003e_ does not detect small allocations\n(\u0026lt;= 1K). In order to fix that, we now flush internal jemalloc cache before\nfetching the metrics.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e7.2.0\u003c/h1\u003e\n\u003cp\u003e2025-12-23\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e1275_: new \u003ccode\u003eheap_info()\u003c/code\u003e_ and \u003ccode\u003eheap_trim()\u003c/code\u003e_ functions, providing direct\naccess to the platform's native C heap allocator (glibc, mimalloc,\nlibmalloc). Useful to create tools to detect memory leaks.\u003c/li\u003e\n\u003cli\u003e2403_, [Linux]: publish wheels for Linux musl.\u003c/li\u003e\n\u003cli\u003e2680_: unit tests are no longer installed / part of the distribution. They\nnow live under \u003ccode\u003etests/\u003c/code\u003e instead of \u003ccode\u003epsutil/tests\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/9eea97dd6f1d16ea33f5144c8925f1ce7a0688e1\"\u003e\u003ccode\u003e9eea97d\u003c/code\u003e\u003c/a\u003e Pre-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/938ac647418f09e4e610b2c755741316713c5592\"\u003e\u003ccode\u003e938ac64\u003c/code\u003e\u003c/a\u003e Rm sphinxcontrib.googleanalytics; override layout.html\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/9dcbb7e60e650f0ab0cb52154b0a12c70f6a1e4c\"\u003e\u003ccode\u003e9dcbb7e\u003c/code\u003e\u003c/a\u003e Add sphinxcontrib-googleanalytics to requirements.txt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/76eaf9ae0f2868569c14b46f4165310885a40a15\"\u003e\u003ccode\u003e76eaf9a\u003c/code\u003e\u003c/a\u003e Try to add google analytics to doc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/de1cafa56f54e97ca557993155e76dd98877e136\"\u003e\u003ccode\u003ede1cafa\u003c/code\u003e\u003c/a\u003e Update doc mentioning Process.wait() internal details\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/bb30943b0336a16f28437ec549c15a8ad2830cca\"\u003e\u003ccode\u003ebb30943\u003c/code\u003e\u003c/a\u003e Refact can_use_pidfd_open() and can_use_kqueue()\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/a571717d6520d436273c8cb34ca871db4bfa508a\"\u003e\u003ccode\u003ea571717\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2708\"\u003e#2708\u003c/a\u003e, macos / cmdline / environ; raise AD instead of OSError(0) (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/8b98c3effc20dcc4ed08c8f3d33e11ec0f5445b1\"\u003e\u003ccode\u003e8b98c3e\u003c/code\u003e\u003c/a\u003e Pre-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/700b7e6a4171ae7c775679217205f1d97568ae00\"\u003e\u003ccode\u003e700b7e6\u003c/code\u003e\u003c/a\u003e [macOS] fix potential leaks in error paths (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/7cc7923a1479fb1d32bb25d3e78b465e2695fbf7\"\u003e\u003ccode\u003e7cc7923\u003c/code\u003e\u003c/a\u003e Windows / cmdline(): be more defensive in free()ing in case of error\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/giampaolo/psutil/compare/release-5.9.8...release-7.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.4.1 to 9.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13965\"\u003e#13965\u003c/a\u003e: Fixed quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/4492\"\u003e#4492\u003c/a\u003e: The API Reference now contains cross-reference-able documentation of \u003ccode\u003epytest's command-line flags \u0026lt;command-line-flags\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e9.0.1\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.1 (2025-11-12)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13895\"\u003e#13895\u003c/a\u003e: Restore support for skipping tests via \u003ccode\u003eraise unittest.SkipTest\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress plugin added in pytest 9.0 is now automatically disabled when iTerm2 is detected, it generated desktop notifications instead of the desired functionality.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the verbosity settings in the API reference from number to string.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13910\"\u003e#13910\u003c/a\u003e: Fixed \u003c!-- raw HTML omitted --\u003eUserWarning: Do not expect file_or_dir\u003c!-- raw HTML omitted --\u003e on some earlier Python 3.12 and 3.13 point versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePackaging updates and notes for downstreams\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13891\"\u003e#13891\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13942\"\u003e#13942\u003c/a\u003e: The CI/CD part of the release automation is now capable of\ncreating GitHub Releases without having a Git checkout on\ndisk -- by \u003ccode\u003ebluetech\u003c/code\u003e and \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/3d10b5148e03eb82b3ee29181dbdc73cf82699e2\"\u003e\u003ccode\u003e3d10b51\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/188750b725add8c3400eee6fbb6b80559c296d69\"\u003e\u003ccode\u003e188750b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14030\"\u003e#14030\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/1e4b01d1f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7d7bef90cb9a6db8ac1d3dd5b9ae0eb9abd6c58\"\u003e\u003ccode\u003eb7d7bef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14014\"\u003e#14014\u003c/a\u003e from bluetech/compat-note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bd08e85ac76614ff5ca9ae338aee8d8b06c8fae0\"\u003e\u003ccode\u003ebd08e85\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14013\"\u003e#14013\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/922b60377...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bc783862991241c442c9f9c068e51737ec15ea10\"\u003e\u003ccode\u003ebc78386\u003c/code\u003e\u003c/a\u003e Add CLI options reference documentation (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13930\"\u003e#13930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/5a4e398ce89bc23d2cf3fd98c042fdffb6fa8afa\"\u003e\u003ccode\u003e5a4e398\u003c/code\u003e\u003c/a\u003e Fix docs typo (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14005\"\u003e#14005\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14008\"\u003e#14008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/d7ae6df394398168bf9d926f803c26849c8f07ee\"\u003e\u003ccode\u003ed7ae6df\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14006\"\u003e#14006\u003c/a\u003e from pytest-dev/maintenance/update-plugin-list-tmpl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/556f6a22e12d13d1ffeceaf64424eb95d5e0fb87\"\u003e\u003ccode\u003e556f6a2\u003c/code\u003e\u003c/a\u003e pre-commit: fix rst-lint after new release (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13999\"\u003e#13999\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14001\"\u003e#14001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c60fbe63a26f64a42738e3f3527a8f79024fdf50\"\u003e\u003ccode\u003ec60fbe6\u003c/code\u003e\u003c/a\u003e Fix quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10 ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/73d9b011183d9a1c4a7007c1119d97a6e627788e\"\u003e\u003ccode\u003e73d9b01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13995\"\u003e#13995\u003c/a\u003e from nicoddemus/patchback/backports/9.0.x/1b5200c0f...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.4.1...9.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `setuptools` to 82.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/setuptools/blob/main/NEWS.rst\"\u003esetuptools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev82.0.0\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epkg_resources\u003c/code\u003e has been removed from Setuptools. Most common uses of \u003ccode\u003epkg_resources\u003c/code\u003e have been superseded by the \u003ccode\u003eimportlib.resources \u0026lt;https://docs.python.org/3/library/importlib.resources.html\u0026gt;\u003c/code\u003e_ and \u003ccode\u003eimportlib.metadata \u0026lt;https://docs.python.org/3/library/importlib.metadata.html\u0026gt;\u003c/code\u003e_ projects. Projects and environments relying on \u003ccode\u003epkg_resources\u003c/code\u003e for namespace packages or other behavior should depend on older versions of \u003ccode\u003esetuptools\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/3085\"\u003e#3085\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev81.0.0\u003c/h1\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved support for the --dry-run parameter to setup.py. This one feature by its nature threads through lots of core and ancillary functionality, adding complexity and friction. Removal of this parameter will help decouple the compiler functionality from distutils and thus the eventual full integration of distutils. These changes do affect some class and function signatures, so any derivative functionality may require some compatibility shims to support their expected interface. Please report any issues to the Setuptools project for investigation. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev80.10.2\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate vendored dependencies. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5159\"\u003e#5159\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5115\"\u003e#5115\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5128\"\u003e#5128\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev80.10.1\u003c/h1\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5152\"\u003e#5152\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev80.10.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove post-release tags on setuptools' own build. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4530\"\u003e#4530\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefreshed vendored dependencies. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5139\"\u003e#5139\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/03f3615362c4eb19c770b71be5bd58e38f235528\"\u003e\u003ccode\u003e03f3615\u003c/code\u003e\u003c/a\u003e Bump version: 81.0.0 → 82.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/530d11498af526c4210d8eeaa1ed6c63f44a390f\"\u003e\u003ccode\u003e530d114\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5007\"\u003e#5007\u003c/a\u003e from pypa/feature/remove-more-pkg_resources\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/11efe9f552290bf536515d458aa85752a0606aa8\"\u003e\u003ccode\u003e11efe9f\u003c/code\u003e\u003c/a\u003e Merge branch 'maint/75.3'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/118f129dd0fb319058bd05f382c50188fd60a60e\"\u003e\u003ccode\u003e118f129\u003c/code\u003e\u003c/a\u003e Bump version: 75.3.3 → 75.3.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/90561ffde1220a590b7644745f48b5837b1a130d\"\u003e\u003ccode\u003e90561ff\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5150\"\u003e#5150\u003c/a\u003e from UladzimirTrehubenka/backport_cve_47273\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/4595034db8aab4ea33035a47a068b04fd8aa00cc\"\u003e\u003ccode\u003e4595034\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/fc008006fc072af02eb7e0b601172c67eba395e3\"\u003e\u003ccode\u003efc00800\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/5171\"\u003e#5171\u003c/a\u003e from cclauss/ruff-v0.15.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/127e561362a2b4e560faabe9e979ed848106b62d\"\u003e\u003ccode\u003e127e561\u003c/code\u003e\u003c/a\u003e Remove tests reliant on pkg_resources, rather than xfailing them.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/64bc21e10b5d749b1b75fa334caedb67cc7414c4\"\u003e\u003ccode\u003e64bc21e\u003c/code\u003e\u003c/a\u003e Reference the superseding libraries.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/cf1ff459ea997b615a75d99304f6c9aa1fc94c06\"\u003e\u003ccode\u003ecf1ff45\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into debt/pbr-without-pkg_resources\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/setuptools/compare/v63.1.0...v82.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `types-requests` from 2.32.4.20250913 to 2.32.4.20260107\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.20250822 to 82.0.0.20260210\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/typeshed-internal/stub_uploader/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `debugpy` from 1.8.16 to 1.8.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/microsoft/debugpy/releases\"\u003edebugpy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003edebugpy v1.8.20\u003c/h2\u003e\n\u003cp\u003eFixes for:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eannotate in 3.14 causing exceptions: \u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1971\"\u003emicrosoft/debugpy#1971\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eEnhancements:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse remote_exec if available: \u003ca href=\"https://github.com/microsoft/debugpy/commit/c7e86a1954381ceadb2ea398fc60079deef91358\"\u003ehttps://github.com/microsoft/debugpy/commit/c7e86a1954381ceadb2ea398fc60079deef91358\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport more architectures: \u003ca href=\"https://github.com/microsoft/debugpy/commit/1bbecdf366016c58e62a076b46d4f3c00aea097f\"\u003ehttps://github.com/microsoft/debugpy/commit/1bbecdf366016c58e62a076b46d4f3c00aea097f\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInfrastructure work:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport devcontainers for development: \u003ca href=\"https://github.com/microsoft/debugpy/commit/7dbc2292b1a23e5ae80db67a1b25f002bd104776\"\u003ehttps://github.com/microsoft/debugpy/commit/7dbc2292b1a23e5ae80db67a1b25f002bd104776\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/rameshvarun\"\u003e\u003ccode\u003e@​rameshvarun\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/Xeonacid\"\u003e\u003ccode\u003e@​Xeonacid\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/pdepetro\"\u003e\u003ccode\u003e@​pdepetro\u003c/code\u003e\u003c/a\u003e for the commits\u003c/p\u003e\n\u003ch2\u003edebugpy v1.8.19\u003c/h2\u003e\n\u003cp\u003eMore fixes for \u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1980\"\u003emicrosoft/debugpy#1980\u003c/a\u003e. Spaces in python files are handled now too.\u003c/p\u003e\n\u003ch2\u003edebugpy v1.8.18\u003c/h2\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1980\"\u003eSpaces in python interpreter cause debug launch failure\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003edebugpy v1.8.17\u003c/h2\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/6cbdf8767e4c88dfaedf3db7b09ce2781496fc51\"\u003eDebug attach for 3.14\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/microsoft/debugpy/commit/7ac3d1f2c65ccf6b2e62a762863093f0242179f0\"\u003e\u003ccode\u003e7ac3d1f\u003c/code\u003e\u003c/a\u003e Try 6 on this file (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1995\"\u003e#1995\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/e1646137a8346292a528b2899c7c8a8fe8d60224\"\u003e\u003ccode\u003ee164613\u003c/code\u003e\u003c/a\u003e O365 new advice (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1994\"\u003e#1994\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/4cbf8b1ce99a856b032470c19c3261195e137ca2\"\u003e\u003ccode\u003e4cbf8b1\u003c/code\u003e\u003c/a\u003e Try another suppression (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1993\"\u003e#1993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/ea9fcaeb59482ad97c51cbe584247f30a0c7ae2d\"\u003e\u003ccode\u003eea9fcae\u003c/code\u003e\u003c/a\u003e Try a different way to suppress binskim problems (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1992\"\u003e#1992\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/ea2746aafcd830a96a2144c3f636ba587f90a15d\"\u003e\u003ccode\u003eea2746a\u003c/code\u003e\u003c/a\u003e Add LTCG flags to compile_windows.bat for BinSkim BA6006 compliance (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1991\"\u003e#1991\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/7dbc2292b1a23e5ae80db67a1b25f002bd104776\"\u003e\u003ccode\u003e7dbc229\u003c/code\u003e\u003c/a\u003e Added devcontainer specification (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1989\"\u003e#1989\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/bb450fc27202cdf0676343dc0150be962b627233\"\u003e\u003ccode\u003ebb450fc\u003c/code\u003e\u003c/a\u003e Fix: Treat \u003cstrong\u003eannotate\u003c/strong\u003e functions as library code in Python 3.14+ (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1988\"\u003e#1988\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/1bbecdf366016c58e62a076b46d4f3c00aea097f\"\u003e\u003ccode\u003e1bbecdf\u003c/code\u003e\u003c/a\u003e Better experience for unsupported arch (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1984\"\u003e#1984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/c7e86a1954381ceadb2ea398fc60079deef91358\"\u003e\u003ccode\u003ec7e86a1\u003c/code\u003e\u003c/a\u003e Use sys.remote_exec() to attach to pid, if available (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1986\"\u003e#1986\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/698499e9ec6cd6edcf0311bb3a0b0d57ad1198ad\"\u003e\u003ccode\u003e698499e\u003c/code\u003e\u003c/a\u003e Add support for space in the python file (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1982\"\u003e#1982\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/microsoft/debugpy/compare/v1.8.16...v1.8.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydevd-pycharm` from 251.23536.40 to 261.20362.36\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/ca93da78e8096770a352bc3ab305bab6dab28660\"\u003e\u003ccode\u003eca93da7\u003c/code\u003e\u003c/a\u003e PY-87340 AIOOBE: PyExpectedTypeJudgement.getElementTypeAtTupleIndex()\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/15bde2c45d07e0e0ecc89e92e281d91b3c5463de\"\u003e\u003ccode\u003e15bde2c\u003c/code\u003e\u003c/a\u003e IJPL-223873 Extract \u003ccode\u003eTestVisibilityServiceImpl\u003c/code\u003e to separate file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/17f3a25caf6298fb5b26a1819690ed7169bde218\"\u003e\u003ccode\u003e17f3a25\u003c/code\u003e\u003c/a\u003e [java] IDEA-385505 Tests in third-party plugins fail after debugger.impl migr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/1503eb9bd8ed1af9f069c91235bfd3abfdc18c66\"\u003e\u003ccode\u003e1503eb9\u003c/code\u003e\u003c/a\u003e platform: base build number set to 261.20362.SNAPSHOT\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/a8751b29d8954cabfaa7014e79040412d83cd7e4\"\u003e\u003ccode\u003ea8751b2\u003c/code\u003e\u003c/a\u003e [build] Switch to JUnit5TestSessionListener.FirstAndLastInSuiteTestExecutionL...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/96728011dc80e728ab94abf24e02f0db870554b1\"\u003e\u003ccode\u003e9672801\u003c/code\u003e\u003c/a\u003e refactor [lsp]: add tests for the read line func\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/b212bdd7acde0a61033575d8f956f47c7229956d\"\u003e\u003ccode\u003eb212bdd\u003c/code\u003e\u003c/a\u003e [air] lsp: add file system watcher impl\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/4a2ee0758fbf129658849c9ec21b61c856cd70cc\"\u003e\u003ccode\u003e4a2ee07\u003c/code\u003e\u003c/a\u003e cleanup [python]:  remove unused methods from \u003ccode\u003ePythonSdkType\u003c/code\u003e, mark legacy me...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/2d70c0bb5a1d0423e0711ef6f5af7d644f6bc9f0\"\u003e\u003ccode\u003e2d70c0b\u003c/code\u003e\u003c/a\u003e [terminal] IJPL-219717 rename EP to \u003ccode\u003eshellCustomizer\u003c/code\u003e to align with `ShellCus...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/0b691da8501cca1826c7604162d49289c011d56e\"\u003e\u003ccode\u003e0b691da\u003c/code\u003e\u003c/a\u003e IJPL-233120 MCP Server: avoid double-quoting Codex TOML keys\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/intellij-community/compare/pycharm/251.23536.40...pycharm/261.20362.36\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi` from 0.120.1 to 0.128.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.128.7\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Show a clear error on attempt to include router into itself. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14258\"\u003e#14258\u003c/a\u003e by \u003ca href=\"https://github.com/JavierSanchezCastro\"\u003e\u003ccode\u003e@​JavierSanchezCastro\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✨ Replace \u003ccode\u003edict\u003c/code\u003e by \u003ccode\u003eMapping\u003c/code\u003e on \u003ccode\u003eHTTPException.headers\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/12997\"\u003e#12997\u003c/a\u003e by \u003ca href=\"https://github.com/rijenkii\"\u003e\u003ccode\u003e@​rijenkii\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Simplify reading files in memory, do it sequentially instead of (fake) parallel. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14884\"\u003e#14884\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Use \u003ccode\u003edfn\u003c/code\u003e tag for definitions instead of \u003ccode\u003eabbr\u003c/code\u003e in docs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14744\"\u003e#14744\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✅ Tweak comment in test to reference PR. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14885\"\u003e#14885\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Update LLM-prompt for \u003ccode\u003eabbr\u003c/code\u003e and \u003ccode\u003edfn\u003c/code\u003e tags. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14747\"\u003e#14747\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✅ Test order for the submitted byte Files. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14828\"\u003e#14828\u003c/a\u003e by \u003ca href=\"https://github.com/valentinDruzhinin\"\u003e\u003ccode\u003e@​valentinDruzhinin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Configure \u003ccode\u003etest\u003c/code\u003e workflow to run tests with \u003ccode\u003einline-snapshot=review\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14876\"\u003e#14876\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.128.6\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix \u003ccode\u003eon_startup\u003c/code\u003e and \u003ccode\u003eon_shutdown\u003c/code\u003e parameters of \u003ccode\u003eAPIRouter\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14873\"\u003e#14873\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🌐 Update translations for zh (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14843\"\u003e#14843\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✅ Fix parameterized tests with snapshots. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14875\"\u003e#14875\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.128.5\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Refactor and simplify Pydantic v2 (and v1) compatibility internal utils. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14862\"\u003e#14862\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✅ Add inline snapshot tests for OpenAPI before changes from Pydantic v2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14864\"\u003e#14864\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.128.4\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Refactor internals, simplify Pydantic v2/v1 utils, \u003ccode\u003ecreate_model_field\u003c/code\u003e, better types for \u003ccode\u003elenient_issubclass\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14860\"\u003e#14860\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e♻️ Simplify internals, remove Pydantic v1 only logic, no longer needed. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14857\"\u003e#14857\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e♻️ Refactor internals, cleanup unneeded Pydantic v1 specific logic. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14856\"\u003e#14856\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\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/fastapi/fastapi/commit/8f82c94de0ff641a239db59e58dfdc6010a4b26a\"\u003e\u003ccode\u003e8f82c94\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.128.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/5bb3423205daf98f88f14d696d104fea2221028a\"\u003e\u003ccode\u003e5bb3423\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/6ce5e3e961876c39d8a60a3a2cb4147a6748d116\"\u003e\u003ccode\u003e6ce5e3e\u003c/code\u003e\u003c/a\u003e ✅ Tweak comment in test to reference PR (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14885\"\u003e#14885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/65da3dde120c7efee7868890ff3e6e788a860ed6\"\u003e\u003ccode\u003e65da3dd\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/81f82fd9558b077017e80adc448fe5f7807d3732\"\u003e\u003ccode\u003e81f82fd\u003c/code\u003e\u003c/a\u003e 🔧 Update LLM-prompt for \u003ccode\u003eabbr\u003c/code\u003e and \u003ccode\u003edfn\u003c/code\u003e tags (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14747\"\u003e#14747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ff721017df331de1357270f03f1f03382a50477f\"\u003e\u003ccode\u003eff72101\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ca76a4eba9bb9ddd082b6d16f14d8b0d7977235b\"\u003e\u003ccode\u003eca76a4e\u003c/code\u003e\u003c/a\u003e 📝 Use \u003ccode\u003edfn\u003c/code\u003e tag for definitions instead of \u003ccode\u003eabbr\u003c/code\u003e in docs (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14744\"\u003e#14744\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/1133a4594d96cd4c26d734f74444110ec9260405\"\u003e\u003ccode\u003e1133a45\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/38f965985e3111162070136acf92b0843c1d48b8\"\u003e\u003ccode\u003e38f9659\u003c/code\u003e\u003c/a\u003e ✅ Test order for the submitted byte Files (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14828\"\u003e#14828\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/3f1cc8f8f5fabaf85a0c3d9428004001af2486a4\"\u003e\u003ccode\u003e3f1cc8f\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.120.1...0.128.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `starlette` from 0.49.1 to 0.52.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/releases\"\u003estarlette's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.52.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOnly use \u003ccode\u003etyping_extensions\u003c/code\u003e in older Python versions by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3109\"\u003eKludex/starlette#3109\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.52.0...0.52.1\"\u003ehttps://github.com/Kludex/starlette/compare/0.52.0...0.52.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.52.0\u003c/h2\u003e\n\u003cp\u003eIn this release, \u003ccode\u003eState\u003c/code\u003e can be accessed using dictionary-style syntax for improved type safety (\u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3036\"\u003e#3036\u003c/a\u003e).\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003efrom collections.abc import AsyncIterator\nfrom contextlib import asynccontextmanager\nfrom typing import TypedDict\n\u003cp\u003eimport httpx\u003c/p\u003e\n\u003cp\u003efrom starlette.applications import Starlette\nfrom starlette.requests import Request\u003c/p\u003e\n\u003cp\u003eclass State(TypedDict):\nhttp_client: httpx.AsyncClient\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/asynccontextmanager\"\u003e\u003ccode\u003e@​asynccontextmanager\u003c/code\u003e\u003c/a\u003e\nasync def lifespan(app: Starlette) -\u0026gt; AsyncIterator[State]:\nasync with httpx.AsyncClient() as client:\nyield {\u0026quot;http_client\u0026quot;: client}\u003c/p\u003e\n\u003cp\u003easync def homepage(request: Request[State]):\nclient = request.state[\u0026quot;http_client\u0026quot;]\n# If you run the below line with mypy or pyright, it will reveal the correct type.\nreveal_type(client)  # Revealed type is 'httpx.AsyncClient'\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/Kludex/starlette/blob/HEAD/lifespan.md#accessing-state\"\u003eAccessing State\u003c/a\u003e for more details.\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.51.0...0.52.0\"\u003ehttps://github.com/Kludex/starlette/compare/0.51.0...0.52.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.51.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eallow_private_network\u003c/code\u003e in \u003ccode\u003eCORSMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3065\"\u003e#3065\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/blob/main/docs/release-notes.md\"\u003estarlette's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.52.1 (January 18, 2026)\u003c/h2\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eOnly use \u003ccode\u003etyping_extensions\u003c/code\u003e in older Python versions \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3109\"\u003e#3109\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.52.0 (January 18, 2026)\u003c/h2\u003e\n\u003cp\u003eIn this release, \u003ccode\u003eState\u003c/code\u003e can be accessed using dictionary-style syntax for improved type\nsafety (\u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3036\"\u003e#3036\u003c/a\u003e).\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003efrom collections.abc import AsyncIterator\nfrom contextlib import asynccontextmanager\nfrom typing import TypedDict\n\u003cp\u003eimport httpx\u003c/p\u003e\n\u003cp\u003efrom starlette.applications import Starlette\nfrom starlette.requests import Request\u003c/p\u003e\n\u003cp\u003eclass State(TypedDict):\nhttp_client: httpx.AsyncClient\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/asynccontextmanager\"\u003e\u003ccode\u003e@​asynccontextmanager\u003c/code\u003e\u003c/a\u003e\nasync def lifespan(app: Starlette) -\u0026gt; AsyncIterator[State]:\nasync with httpx.AsyncClient() as client:\nyield {\u0026quot;http_client\u0026quot;: client}\u003c/p\u003e\n\u003cp\u003easync def homepage(request: Request[State]):\nclient = request.state[\u0026quot;http_client\u0026quot;]\n# If you run the below line with mypy or pyright, it will reveal the correct type.\nreveal_type(client)  # Revealed type is 'httpx.AsyncClient'\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/Kludex/starlette/blob/main/docs/lifespan.md#accessing-state\"\u003eAccessing State\u003c/a\u003e for more details.\u003c/p\u003e\n\u003ch2\u003e0.51.0 (January 10, 2026)\u003c/h2\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eallow_private_network\u003c/code\u003e in \u003ccode\u003eCORSMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3065\"\u003e#3065\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanged\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eIncrease warning stacklevel on \u003ccode\u003eDeprecationWarning\u003c/code\u003e for wsgi module \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3082\"\u003e#3082\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/Kludex/starlette/commit/e5b8a5d200504a2608bed11fe6f66b1d20b9ae2c\"\u003e\u003ccode\u003ee5b8a5d\u003c/code\u003e\u003c/a\u003e Version 0.52.1 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3110\"\u003e#3110\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/d02eadecb5409e9553922081ac123757849335e7\"\u003e\u003ccode\u003ed02eade\u003c/code\u003e\u003c/a\u003e Only use \u003ccode\u003etyping_extensions\u003c/code\u003e in older Python versions (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3109\"\u003e#3109\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/f490b42f5fa0808ead53115a45d907c6d8e16a47\"\u003e\u003ccode\u003ef490b42\u003c/code\u003e\u003c/a\u003e Version 0.52.0 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3107\"\u003e#3107\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/d8c7cf9aca95b31c7a70473d03c26bc8ce33cd74\"\u003e\u003ccode\u003ed8c7cf9\u003c/code\u003e\u003c/a\u003e Turn \u003ccode\u003eState\u003c/code\u003e into a \u003ccode\u003eMapping\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3036\"\u003e#3036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/cfce146611f7cc2b14c524b26d7e1d6cf0ddcd9f\"\u003e\u003ccode\u003ecfce146\u003c/code\u003e\u003c/a\u003e chore: bump coverage (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3103\"\u003e#3103\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/9138e5597285c6120821a6ad862880d479f329f3\"\u003e\u003ccode\u003e9138e55\u003c/code\u003e\u003c/a\u003e fix: setup github pages for deployment (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3102\"\u003e#3102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/aff6df756b231c42ca088788db4bf4b193f7cc5b\"\u003e\u003ccode\u003eaff6df7\u003c/code\u003e\u003c/a\u003e docs: add environment for github docs (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3101\"\u003e#3101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/434bab94749b8522b08bbef3eff5fb742629d4fd\"\u003e\u003ccode\u003e434bab9\u003c/code\u003e\u003c/a\u003e docS: fix gh pages deploy (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3100\"\u003e#3100\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/03426be1d41fc3963cd2dab5f10992e137eaf5f4\"\u003e\u003ccode\u003e03426be\u003c/code\u003e\u003c/a\u003e docs: replace mkdocs by zensical (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3098\"\u003e#3098\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/df2ee22bc072dc19962120a7559f8fc0de7a094e\"\u003e\u003ccode\u003edf2ee22\u003c/code\u003e\u003c/a\u003e Version 0.51.0 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3097\"\u003e#3097\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/starlette/compare/0.49.1...0.52.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `strawberry-graphql[fastapi]` from 0.284.1 to 0.291.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/strawberry-graphql/strawberry/releases\"\u003estrawberry-graphql[fastapi]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e🍓 0.291.3\u003c/h2\u003e\n\u003cp\u003eThis release fixes a bug where the async \u003ccode\u003eexecute\u003c/code\u003e method was creating\nnew extension instances on every request (via \u003ccode\u003eget_extensions()\u003c/code\u003e),\ninstead of reusing cached instances like the sync \u003ccode\u003eexecute_sync\u003c/code\u003e method\nalready did. This caused extensions that accumulate state across the\nexecution lifecycle (such as \u003ccode\u003eApolloTracingExtension\u003c/code\u003e) to lose their\nstate between requests when using async execution.\u003c/p\u003e\n\u003cp\u003eReleases contributed by \u003ca href=\"https://github.com/bellini666\"\u003e\u003ccode\u003e@​bellini666\u003c/code\u003e\u003c/a\u003e via \u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4181\"\u003e#4181\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e🍓 0.291.2\u003c/h2\u003e\n\u003cp\u003eUpdate type annotations for \u003ccode\u003eResponse.data\u003c/code\u003e and \u003ccode\u003eResponse.extensions\u003c/code\u003e in the test client to \u003ccode\u003eAny\u003c/code\u003e, instead of \u003ccode\u003eJsonValue\u003c/code\u003e, to allow nested subscript access in test assertions without type errors.\u003c/p\u003e\n\u003cp\u003eReleases contributed by \u003ca href=\"https://github.com/millar\"\u003e\u003ccode\u003e@​millar\u003c/code\u003e\u003c/a\u003e via \u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4195\"\u003e#4195\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e🍓 0.291.1\u003c/h2\u003e\n\u003cp\u003eThis update relaxes type annotations for \u003ccode\u003eResponse.data\u003c/code\u003e and \u003ccode\u003eResponse.extensions\u003c/code\u003e from \u003ccode\u003edict[str, JsonValue]\u003c/code\u003e to \u003ccode\u003edict[str, JsonValue]\u003c/code\u003e in the test client, making assertions in tests easier to write.\u003c/p\u003e\n\u003cp\u003eReleases contributed by \u003ca href=\"https://github.com/millar\"\u003e\u003ccode\u003e@​millar\u003c/code\u003e\u003c/a\u003e via \u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4186\"\u003e#4186\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e🍓 0.291.0\u003c/h2\u003e\n\u003cp\u003eAdds a \u003ccode\u003egraphql_type\u003c/code\u003e parameter to \u003ccode\u003estrawberry.argument\u003c/code\u003e that allows you\nto explicitly override the GraphQL type of an argument, useful for static typing\nwhen the Python type differs from the desired GraphQL type.\u003c/p\u003e\n\u003cp\u003eFor example:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eBigInt = strawberry.scalar(\n    int, name=\u0026quot;BigInt\u0026quot;, serialize=lambda v: str(v), parse_value=lambda v: int(v)\n)\n\u003cp\u003e\u003ca href=\"https://github.com/strawberry\"\u003e\u003ccode\u003e@​strawberry\u003c/code\u003e\u003c/a\u003e.type\nclass Query:\n\u003ca href=\"https://github.com/strawberry\"\u003e\u003ccode\u003e@​strawberry\u003c/code\u003e\u003c/a\u003e.field()\ndef username(\nself, user_id: Annotated[int, strawberry.argument(graphql_type=BigInt)]\n) -\u0026gt; str:\nreturn \u0026quot;foobar\u0026quot;\u003c/p\u003e\n\u003cp\u003eschema = strawberry.Schema(Query)\u003c/p\u003e\n\u003cp\u003estr(\nschema\n) == \u0026quot;\u0026quot;\u0026quot;\nscalar BigInt\u003c/p\u003e\n\u003cp\u003etype Query {\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/strawberry-graphql/strawberry/blob/main/CHANGELOG.md\"\u003estrawberry-graphql[fastapi]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.291.3 - 2026-02-07\u003c/h2\u003e\n\u003cp\u003eThis release fixes a bug where the async \u003ccode\u003eexecute\u003c/code\u003e method was creating\nnew extension instances on every request (via \u003ccode\u003eget_extensions()\u003c/code\u003e),\ninstead of reusing cached instances like the sync \u003ccode\u003eexecute_sync\u003c/code\u003e method\nalready did. This caused extensions that accumulate state across the\nexecution lifecycle (such as \u003ccode\u003eApolloTracingExtension\u003c/code\u003e) to lose their\nstate between requests when using async execution.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/bellini666\"\u003eThiago Bellini Ribeiro\u003c/a\u003e via [PR \u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4181\"\u003e#4181\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/pull/4181/\"\u003estrawberry-graphql/strawberry#4181\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003e0.291.2 - 2026-02-06\u003c/h2\u003e\n\u003cp\u003eUpdate type annotations for \u003ccode\u003eResponse.data\u003c/code\u003e and \u003ccode\u003eResponse.extensions\u003c/code\u003e in the test client to \u003ccode\u003eAny\u003c/code\u003e, instead of \u003ccode\u003eJsonValue\u003c/code\u003e, to allow nested subscript access in test assertions without type errors.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/millar\"\u003eSam Millar\u003c/a\u003e via [PR \u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4195\"\u003e#4195\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/pull/4195/\"\u003estrawberry-graphql/strawberry#4195\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003e0.291.1 - 2026-02-06\u003c/h2\u003e\n\u003cp\u003eThis update relaxes type annotations for \u003ccode\u003eResponse.data\u003c/code\u003e and \u003ccode\u003eResponse.extensions\u003c/code\u003e from \u003ccode\u003edict[str, JsonValue]\u003c/code\u003e to \u003ccode\u003edict[str, JsonValue]\u003c/code\u003e in the test client, making assertions in tests easier to write.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/millar\"\u003eSam Millar\u003c/a\u003e via [PR \u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4186\"\u003e#4186\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/pull/4186/\"\u003estrawberry-graphql/strawberry#4186\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003e0.291.0 - 2026-02-01\u003c/h2\u003e\n\u003cp\u003eAdds a \u003ccode\u003egraphql_type\u003c/code\u003e parameter to \u003ccode\u003estrawberry.argument\u003c/code\u003e that allows you\nto explicitly override the GraphQL type of an argument, useful for static typing\nwhen the Python type differs from the desired GraphQL type.\u003c/p\u003e\n\u003cp\u003eFor example:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eBigInt = strawberry.scalar(\n    int, name=\u0026quot;BigInt\u0026quot;, serialize=lambda v: str(v), parse_value=lambda v: int(v)\n)\n\u003cp\u003e\u003ca href=\"https://github.com/strawberry\"\u003e\u003ccode\u003e@​strawberry\u003c/code\u003e\u003c/a\u003e.type\nclass Query:\n\u003ca href=\"https://github.com/strawberry\"\u003e\u003ccode\u003e@​strawberry\u003c/code\u003e\u003c/a\u003e.field()\ndef username(\nself, user_id: Annotated[int, strawberry.argument(graphql_type=BigInt)]\n) -\u0026gt; str:\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/strawberry-graphql/strawberry/commit/756f2141920f0a3412113e53afa534744c2132f3\"\u003e\u003ccode\u003e756f214\u003c/code\u003e\u003c/a\u003e Release 🍓 0.291.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/4c29e399f237269125eb8b71f33dd90a706bae19\"\u003e\u003ccode\u003e4c29e39\u003c/code\u003e\u003c/a\u003e fix: ApolloTracingExtension resolvers field not populated on subsequent reque...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/d68f4aa198269b87738468afd974762b47395f04\"\u003e\u003ccode\u003ed68f4aa\u003c/code\u003e\u003c/a\u003e Release 🍓 0.291.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/1f6e519e9b868545b2f728d83faca734e9651661\"\u003e\u003ccode\u003e1f6e519\u003c/code\u003e\u003c/a\u003e fix(test): use Any as client response data/extension return type (\u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4195\"\u003e#4195\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/5c236d810518d5b573db9b843f0f242da206acbf\"\u003e\u003ccode\u003e5c236d8\u003c/code\u003e\u003c/a\u003e fix: fix broken typing tests on main and make e2e less flaky (\u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4194\"\u003e#4194\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/ed455a96ff6a9faad6a2fb5b2ef8f2c689eaae6e\"\u003e\u003ccode\u003eed455a9\u003c/code\u003e\u003c/a\u003e Release 🍓 0.291.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/cc1e5a691162270127f3c90c831f4d09caa2ae92\"\u003e\u003ccode\u003ecc1e5a6\u003c/code\u003e\u003c/a\u003e chore(test): looser types for test client responses (\u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4186\"\u003e#4186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/c2cfe0f4c697820612274931758b56813590d6f0\"\u003e\u003ccode\u003ec2cfe0f\u003c/co...\n\n_Description has been truncated_","html_url":"https://github.com/pantsbuild/pants/pull/23091","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/pantsbuild%2Fpants/issues/23091","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/23091/packages"}},{"old_version":"1.8.5","new_version":"1.8.6","update_type":"patch","path":"/3rdparty/python","pr_created_at":"2026-02-03T22:07:41.000Z","version_change":"1.8.5 → 1.8.6","issue":{"uuid":"3893465953","node_id":"PR_kwDOGj6ySc7BTrhp","number":123,"state":"open","title":"Bump the python-version-updates group in /3rdparty/python with 17 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-02-03T22:07:41.000Z","updated_at":"2026-02-03T22:07:42.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-version-updates","update_count":17,"packages":[{"name":"libcst","old_version":"1.8.5","new_version":"1.8.6","repository_url":"https://github.com/Instagram/LibCST"},{"name":"packaging","old_version":"25.0","new_version":"26.0","repository_url":"https://github.com/pypa/packaging"},{"name":"psutil","old_version":"5.9.8","new_version":"7.2.2","repository_url":"https://github.com/giampaolo/psutil"},{"name":"pytest","old_version":"8.4.1","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"types-requests","old_version":"2.32.4.20250913","new_version":"2.32.4.20260107","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"types-setuptools","old_version":"80.9.0.20250822","new_version":"80.10.0.20260124","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"debugpy","old_version":"1.8.16","new_version":"1.8.20","repository_url":"https://github.com/microsoft/debugpy"},{"name":"pydevd-pycharm","old_version":"251.23536.40","new_version":"261.19799.40","repository_url":"https://github.com/JetBrains/intellij-community"},{"name":"fastapi","old_version":"0.120.1","new_version":"0.128.0","repository_url":"https://github.com/fastapi/fastapi"},{"name":"starlette","old_version":"0.49.1","new_version":"0.52.1","repository_url":"https://github.com/Kludex/starlette"},{"name":"strawberry-graphql","old_version":"0.284.1","new_version":"0.291.0"},{"name":"uvicorn","old_version":"0.38.0","new_version":"0.40.0"},{"name":"beautifulsoup4","old_version":"4.11.1","new_version":"4.14.3"},{"name":"python-gnupg","old_version":"0.5.5","new_version":"0.5.6","repository_url":"https://github.com/vsajip/python-gnupg"}],"path":"/3rdparty/python","ecosystem":"pip"},"body":"Updates the requirements on [libcst](https://github.com/Instagram/LibCST), [packaging](https://github.com/pypa/packaging), [psutil](https://github.com/giampaolo/psutil), [pytest](https://github.com/pytest-dev/pytest), [types-requests](https://github.com/typeshed-internal/stub_uploader), [types-setuptools](https://github.com/typeshed-internal/stub_uploader), [debugpy](https://github.com/microsoft/debugpy), [pydevd-pycharm](https://github.com/JetBrains/intellij-community), [fastapi](https://github.com/fastapi/fastapi), [starlette](https://github.com/Kludex/starlette), [strawberry-graphql[fastapi]](https://github.com/strawberry-graphql/strawberry), [uvicorn[standard]](https://github.com/Kludex/uvicorn), [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/), [python-gnupg](https://github.com/vsajip/python-gnupg), [mypy](https://github.com/python/mypy), [pytest-cov](https://github.com/pytest-dev/pytest-cov) and [flake8](https://github.com/pycqa/flake8) to permit the latest version.\nUpdates `libcst` from 1.8.5 to 1.8.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/releases\"\u003elibcst's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.8.6\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate pyproject.toml for 3.14t by \u003ca href=\"https://github.com/itamaro\"\u003e\u003ccode\u003e@​itamaro\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1417\"\u003eInstagram/LibCST#1417\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate PyO3 to 0.26 by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1413\"\u003eInstagram/LibCST#1413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake CodemodCommand's supported_transforms order deterministic by \u003ca href=\"https://github.com/frvnkliu\"\u003e\u003ccode\u003e@​frvnkliu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1424\"\u003eInstagram/LibCST#1424\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/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1413\"\u003eInstagram/LibCST#1413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frvnkliu\"\u003e\u003ccode\u003e@​frvnkliu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1424\"\u003eInstagram/LibCST#1424\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.5...v1.8.6\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.5...v1.8.6\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/blob/main/CHANGELOG.md\"\u003elibcst's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.8.6 - 2025-11-03\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate pyproject.toml for 3.14t by \u003ca href=\"https://github.com/itamaro\"\u003e\u003ccode\u003e@​itamaro\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1417\"\u003eInstagram/LibCST#1417\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate PyO3 to 0.26 by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1413\"\u003eInstagram/LibCST#1413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake CodemodCommand's supported_transforms order deterministic by \u003ca href=\"https://github.com/frvnkliu\"\u003e\u003ccode\u003e@​frvnkliu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1424\"\u003eInstagram/LibCST#1424\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/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1413\"\u003eInstagram/LibCST#1413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frvnkliu\"\u003e\u003ccode\u003e@​frvnkliu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1424\"\u003eInstagram/LibCST#1424\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.5...v1.8.6\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.5...v1.8.6\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/Instagram/LibCST/commit/9275a8bf7875d08659ce7b266860138bba633410\"\u003e\u003ccode\u003e9275a8b\u003c/code\u003e\u003c/a\u003e bump version to 1.8.6 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1425\"\u003e#1425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/b66c0e28229fd91ac145f1a56d7d884e6f8587b4\"\u003e\u003ccode\u003eb66c0e2\u003c/code\u003e\u003c/a\u003e [CodemodCommand] Make \u003ccode\u003etransform_module\u003c/code\u003e \u003ccode\u003esupported_transforms\u003c/code\u003e order determi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/c2169d240b5011ea820dc18d7a2452f182c2c5d3\"\u003e\u003ccode\u003ec2169d2\u003c/code\u003e\u003c/a\u003e Update PyO3 to 0.26 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1413\"\u003e#1413\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/73b17d8449034b520e7128c8a4bd100674d1e78c\"\u003e\u003ccode\u003e73b17d8\u003c/code\u003e\u003c/a\u003e Update pyproject.toml for 3.14t (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1417\"\u003e#1417\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/421f7d34004de18391014319ec6a818322637a8d\"\u003e\u003ccode\u003e421f7d3\u003c/code\u003e\u003c/a\u003e build(deps): bump pypa/cibuildwheel from 3.1.4 to 3.2.1 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1414\"\u003e#1414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/129b20f4769a2b26b41b262fb88f9aaf8754930b\"\u003e\u003ccode\u003e129b20f\u003c/code\u003e\u003c/a\u003e build(deps): bump github/codeql-action from 3 to 4 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1415\"\u003e#1415\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/6f5da5f99873e4c17e32ca221a3ddde3fb1ea354\"\u003e\u003ccode\u003e6f5da5f\u003c/code\u003e\u003c/a\u003e build(deps): bump astral-sh/setup-uv from 6 to 7 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1416\"\u003e#1416\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.5...v1.8.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `packaging` from 25.0 to 26.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/releases\"\u003epackaging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.0\u003c/h2\u003e\n\u003cp\u003eRead about the performance improvements here: \u003ca href=\"https://iscinumpy.dev/post/packaging-faster\"\u003ehttps://iscinumpy.dev/post/packaging-faster\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePEP 751: support pylock by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/900\"\u003epypa/packaging#900\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePEP 794: import name metadata by \u003ca href=\"https://github.com/brettcannon\"\u003e\u003ccode\u003e@​brettcannon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/948\"\u003epypa/packaging#948\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport writing metadata by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/846\"\u003epypa/packaging#846\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e__replace__\u003c/code\u003e for \u003ccode\u003eVersion\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1003\"\u003epypa/packaging#1003\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport positional pattern matching for \u003ccode\u003eVersion\u003c/code\u003e and \u003ccode\u003eSpecifier\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1004\"\u003epypa/packaging#1004\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePEP 440 handling of prereleases for \u003ccode\u003eSpecifier.contains\u003c/code\u003e, \u003ccode\u003eSpecifierSet.contains\u003c/code\u003e, and \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/897\"\u003epypa/packaging#897\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle PEP 440 edge case in \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/942\"\u003epypa/packaging#942\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdjust arbitrary equality intersection preservation in \u003ccode\u003eSpecifierSet\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/951\"\u003epypa/packaging#951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReturn \u003ccode\u003eFalse\u003c/code\u003e instead of raising for \u003ccode\u003e.contains\u003c/code\u003e with invalid version by \u003ca href=\"https://github.com/Liam-DeVoe\"\u003e\u003ccode\u003e@​Liam-DeVoe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/932\"\u003epypa/packaging#932\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport arbitrary equality on arbitrary strings for \u003ccode\u003eSpecifier\u003c/code\u003e and \u003ccode\u003eSpecifierSet\u003c/code\u003e's \u003ccode\u003efilter\u003c/code\u003e and \u003ccode\u003econtains\u003c/code\u003e method. by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/954\"\u003epypa/packaging#954\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly try to parse as \u003ccode\u003eVersion\u003c/code\u003e on certain marker keys, return \u003ccode\u003eFalse\u003c/code\u003e on unequal ordered comparsions by \u003ca href=\"https://github.com/JP-Ellis\"\u003e\u003ccode\u003e@​JP-Ellis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/939\"\u003epypa/packaging#939\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003e_hash\u003c/code\u003e when unpickling \u003ccode\u003eTag()\u003c/code\u003e by \u003ca href=\"https://github.com/dholth\"\u003e\u003ccode\u003e@​dholth\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/860\"\u003epypa/packaging#860\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrect comment and simplify implicit prerelease handling in \u003ccode\u003eSpecifier.prereleases\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/896\"\u003epypa/packaging#896\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse explicit \u003ccode\u003e_GLibCVersion\u003c/code\u003e \u003ccode\u003eNamedTuple\u003c/code\u003e in \u003ccode\u003e_manylinux\u003c/code\u003e by \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/868\"\u003epypa/packaging#868\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDetect invalid license expressions containing \u003ccode\u003e()\u003c/code\u003e by \u003ca href=\"https://github.com/bwoodsend\"\u003e\u003ccode\u003e@​bwoodsend\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/879\"\u003epypa/packaging#879\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrect regex for metadata \u003ccode\u003e'name'\u003c/code\u003e format by \u003ca href=\"https://github.com/di\"\u003e\u003ccode\u003e@​di\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/925\"\u003epypa/packaging#925\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove the message around expecting a semicolon by \u003ca href=\"https://github.com/pradyunsg\"\u003e\u003ccode\u003e@​pradyunsg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/833\"\u003epypa/packaging#833\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport nested parens in license expressions by \u003ca href=\"https://github.com/Liam-DeVoe\"\u003e\u003ccode\u003e@​Liam-DeVoe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/931\"\u003epypa/packaging#931\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd space before at symbol in \u003ccode\u003eRequirements\u003c/code\u003e string by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/953\"\u003epypa/packaging#953\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eA root logger use found by ruff LOG, use \u003ccode\u003epackaging\u003c/code\u003e logger instead by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/965\"\u003epypa/packaging#965\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter support for subclassing \u003ccode\u003eMarker\u003c/code\u003e and \u003ccode\u003eRequirement\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1022\"\u003epypa/packaging#1022\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize all extras, not just if it comes first by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1024\"\u003epypa/packaging#1024\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't produce a broken repr if \u003ccode\u003eMarker\u003c/code\u003e fails to construct by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1033\"\u003epypa/packaging#1033\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePerformance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid recompiling regexes in the tokenizer for a 3x speedup by \u003ca href=\"https://github.com/hauntsaninja\"\u003e\u003ccode\u003e@​hauntsaninja\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1019\"\u003epypa/packaging#1019\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove performance in \u003ccode\u003e_manylinux.py\u003c/code\u003e by \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/869\"\u003epypa/packaging#869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMinor cleanups to \u003ccode\u003eVersion\u003c/code\u003e by \u003ca href=\"https://github.com/bearomorphism\"\u003e\u003ccode\u003e@​bearomorphism\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/913\"\u003epypa/packaging#913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip redundant creation of \u003ccode\u003eVersion\u003c/code\u003es in specifier comparison by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/986\"\u003epypa/packaging#986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCache \u003ccode\u003eSpecifier\u003c/code\u003e's Version by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/985\"\u003epypa/packaging#985\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eVersion\u003c/code\u003e a little faster by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/987\"\u003epypa/packaging#987\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMinor \u003ccode\u003eVersion\u003c/code\u003e regex cleanup by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/990\"\u003epypa/packaging#990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFaster regex on Python 3.11.5+ by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/988\"\u003epypa/packaging#988\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1055\"\u003epypa/packaging#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLazily calculate \u003ccode\u003e_key\u003c/code\u003e in \u003ccode\u003eVersion\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/989\"\u003epypa/packaging#989\u003c/a\u003e and regression for \u003ccode\u003epackaging_legacy\u003c/code\u003e fixed by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1048\"\u003epypa/packaging#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFaster \u003ccode\u003ecanonicalize_version\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/993\"\u003epypa/packaging#993\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003efullmatch\u003c/code\u003e in a couple more places by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/992\"\u003epypa/packaging#992\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/blob/main/CHANGELOG.rst\"\u003epackaging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e26.0 - 2026-01-20\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nFeatures:\n\u003cul\u003e\n\u003cli\u003ePEP 751: support pylock (:pull:\u003ccode\u003e900\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePEP 794: import name metadata (:pull:\u003ccode\u003e948\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport for writing metadata to a file (:pull:\u003ccode\u003e846\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e__replace__\u003c/code\u003e on Version (:pull:\u003ccode\u003e1003\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport positional pattern matching for \u003ccode\u003eVersion\u003c/code\u003e and \u003ccode\u003eSpecifierSet\u003c/code\u003e (:pull:\u003ccode\u003e1004\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePEP 440 handling of prereleases for \u003ccode\u003eSpecifier.contains\u003c/code\u003e, \u003ccode\u003eSpecifierSet.contains\u003c/code\u003e, and \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e (:pull:\u003ccode\u003e897\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eHandle PEP 440 edge case in \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e (:pull:\u003ccode\u003e942\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdjust arbitrary equality intersection preservation in \u003ccode\u003eSpecifierSet\u003c/code\u003e (:pull:\u003ccode\u003e951\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eReturn \u003ccode\u003eFalse\u003c/code\u003e instead of raising for \u003ccode\u003e.contains\u003c/code\u003e with invalid version (:pull:\u003ccode\u003e932\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport arbitrary equality on arbitrary strings for \u003ccode\u003eSpecifier\u003c/code\u003e and \u003ccode\u003eSpecifierSet\u003c/code\u003e's \u003ccode\u003efilter\u003c/code\u003e and \u003ccode\u003econtains\u003c/code\u003e method. (:pull:\u003ccode\u003e954\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eOnly try to parse as \u003ccode\u003eVersion\u003c/code\u003e on certain marker keys, return \u003ccode\u003eFalse\u003c/code\u003e on unequal ordered comparisons (:pull:\u003ccode\u003e939\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003e_hash\u003c/code\u003e when unpickling \u003ccode\u003eTag()\u003c/code\u003e (:pull:\u003ccode\u003e860\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect comment and simplify implicit prerelease handling in \u003ccode\u003eSpecifier.prereleases\u003c/code\u003e (:pull:\u003ccode\u003e896\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse explicit \u003ccode\u003e_GLibCVersion\u003c/code\u003e \u003ccode\u003eNamedTuple\u003c/code\u003e in \u003ccode\u003e_manylinux\u003c/code\u003e (:pull:\u003ccode\u003e868\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDetect invalid license expressions containing \u003ccode\u003e()\u003c/code\u003e (:pull:\u003ccode\u003e879\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect regex for metadata \u003ccode\u003e'name'\u003c/code\u003e format (:pull:\u003ccode\u003e925\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eImprove the message around expecting a semicolon (:pull:\u003ccode\u003e833\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport nested parens in license expressions (:pull:\u003ccode\u003e931\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd space before at symbol in \u003ccode\u003eRequirements\u003c/code\u003e string (:pull:\u003ccode\u003e953\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eA root logger use found, use a \u003ccode\u003epackaging\u003c/code\u003e logger instead (:pull:\u003ccode\u003e965\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eBetter support for subclassing \u003ccode\u003eMarker\u003c/code\u003e and \u003ccode\u003eRequirement\u003c/code\u003e (:pull:\u003ccode\u003e1022\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eNormalize all extras, not just if it comes first (:pull:\u003ccode\u003e1024\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDon't produce a broken repr if \u003ccode\u003eMarker\u003c/code\u003e fails to construct (:pull:\u003ccode\u003e1033\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePerformance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid recompiling regexes in the tokenizer for a 3x speedup (:pull:\u003ccode\u003e1019\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eImprove performance in \u003ccode\u003e_manylinux.py\u003c/code\u003e (:pull:\u003ccode\u003e869\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMinor cleanups to \u003ccode\u003eVersion\u003c/code\u003e (:pull:\u003ccode\u003e913\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSkip redundant creation of \u003ccode\u003eVersion\u003c/code\u003e's in specifier comparison (:pull:\u003ccode\u003e986\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCache the \u003ccode\u003eSpecifier\u003c/code\u003e's \u003ccode\u003eVersion\u003c/code\u003e (:pull:\u003ccode\u003e985\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eVersion\u003c/code\u003e a little faster (:pull:\u003ccode\u003e987\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMinor \u003ccode\u003eVersion\u003c/code\u003e regex cleanup (:pull:\u003ccode\u003e990\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFaster regex on Python 3.11.5+ for \u003ccode\u003eVersion\u003c/code\u003e (:pull:\u003ccode\u003e988\u003c/code\u003e, :pull:\u003ccode\u003e1055\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eLazily calculate \u003ccode\u003e_key\u003c/code\u003e in \u003ccode\u003eVersion\u003c/code\u003e (:pull:\u003ccode\u003e989\u003c/code\u003e, :pull:\u003ccode\u003e1048\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFaster \u003ccode\u003ecanonicalize_version\u003c/code\u003e (:pull:\u003ccode\u003e993\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003ere.fullmatch\u003c/code\u003e in a couple more places (:pull:\u003ccode\u003e992\u003c/code\u003e, :pull:\u003ccode\u003e1029\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003emap\u003c/code\u003e instead of generator (:pull:\u003ccode\u003e996\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDeprecate \u003ccode\u003e._version\u003c/code\u003e (\u003ccode\u003e_Version\u003c/code\u003e, a \u003ccode\u003eNamedTuple\u003c/code\u003e) (:pull:\u003ccode\u003e995\u003c/code\u003e, :pull:\u003ccode\u003e1062\u003c/code\u003e)\u003cbr /\u003e\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/3b77a26f5a27473ad3b08194d773f325d018a2d0\"\u003e\u003ccode\u003e3b77a26\u003c/code\u003e\u003c/a\u003e Bump for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/31371cce593d2bde0dd8c436ecfb7d53cb91cfb6\"\u003e\u003ccode\u003e31371cc\u003c/code\u003e\u003c/a\u003e docs: prepare for 26.0 final (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1063\"\u003e#1063\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/9627a8821f09e4c55cd6e9daadb617b67c4741c2\"\u003e\u003ccode\u003e9627a88\u003c/code\u003e\u003c/a\u003e perf: dual replace (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1064\"\u003e#1064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/d5398b8bc19f3fad7b035ceb83023caf06d6e2da\"\u003e\u003ccode\u003ed5398b8\u003c/code\u003e\u003c/a\u003e fix: restore ._version as a compat shim (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1062\"\u003e#1062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/3a7b600a126d237b2ad3cd7e25d2cb5c176276af\"\u003e\u003ccode\u003e3a7b600\u003c/code\u003e\u003c/a\u003e Bump for development\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/d4eefdccf992e963c48011875301d93df6a7f2cc\"\u003e\u003ccode\u003ed4eefdc\u003c/code\u003e\u003c/a\u003e Bump for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/46189124fb43d8989d370902c80ab156eb83a45d\"\u003e\u003ccode\u003e4618912\u003c/code\u003e\u003c/a\u003e docs: prepare for 26.0rc3 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1060\"\u003e#1060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/0cf1b41b4b321ae08cad7d3e49cfaff5578fe813\"\u003e\u003ccode\u003e0cf1b41\u003c/code\u003e\u003c/a\u003e ci: test on first public release of CPythons (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1056\"\u003e#1056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/716beb1c0a5d7a398bf57fbd80bc2501811e616b\"\u003e\u003ccode\u003e716beb1\u003c/code\u003e\u003c/a\u003e perf:  10% faster stripping zeros (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1058\"\u003e#1058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/350a2306700b738f487f251efa278f532b263dee\"\u003e\u003ccode\u003e350a230\u003c/code\u003e\u003c/a\u003e fix: support CPython 3.11.0-3.11.4 and older PyPy3.11 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1055\"\u003e#1055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/packaging/compare/25.0...26.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psutil` from 5.9.8 to 7.2.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/giampaolo/psutil/blob/master/HISTORY.rst\"\u003epsutil's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e7.2.2\u003c/h1\u003e\n\u003cp\u003e2026-01-28\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2705_: [Linux]: \u003ccode\u003eProcess.wait()\u003c/code\u003e_ now uses \u003ccode\u003epidfd_open()\u003c/code\u003e + \u003ccode\u003epoll()\u003c/code\u003e for\nwaiting, resulting in no busy loop and faster response times. Requires\nLinux \u0026gt;= 5.3 and Python \u0026gt;= 3.9. Falls back to traditional polling if\nunavailable.\u003c/li\u003e\n\u003cli\u003e2705_: [macOS], [BSD]: \u003ccode\u003eProcess.wait()\u003c/code\u003e_ now uses \u003ccode\u003ekqueue()\u003c/code\u003e for waiting,\nresulting in no busy loop and faster response times.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2701_, [macOS]: fix compilation error on macOS \u0026lt; 10.7.  (patch by Sergey\nFedorov)\u003c/li\u003e\n\u003cli\u003e2707_, [macOS]: fix potential memory leaks in error paths of\n\u003ccode\u003eProcess.memory_full_info()\u003c/code\u003e and \u003ccode\u003eProcess.threads()\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e2708_, [macOS]: Process.cmdline()\u003ccode\u003e_ and \u003c/code\u003eProcess.environ()\u003ccode\u003e_ may fail with ``OSError: [Errno 0] Undefined error`` (from ``sysctl(KERN_PROCARGS2)``). They now raise \u003c/code\u003eAccessDenied`_ instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e7.2.1\u003c/h1\u003e\n\u003cp\u003e2025-12-29\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2699_, [FreeBSD], [NetBSD]: \u003ccode\u003eheap_info()\u003c/code\u003e_ does not detect small allocations\n(\u0026lt;= 1K). In order to fix that, we now flush internal jemalloc cache before\nfetching the metrics.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e7.2.0\u003c/h1\u003e\n\u003cp\u003e2025-12-23\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e1275_: new \u003ccode\u003eheap_info()\u003c/code\u003e_ and \u003ccode\u003eheap_trim()\u003c/code\u003e_ functions, providing direct\naccess to the platform's native C heap allocator (glibc, mimalloc,\nlibmalloc). Useful to create tools to detect memory leaks.\u003c/li\u003e\n\u003cli\u003e2403_, [Linux]: publish wheels for Linux musl.\u003c/li\u003e\n\u003cli\u003e2680_: unit tests are no longer installed / part of the distribution. They\nnow live under \u003ccode\u003etests/\u003c/code\u003e instead of \u003ccode\u003epsutil/tests\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/9eea97dd6f1d16ea33f5144c8925f1ce7a0688e1\"\u003e\u003ccode\u003e9eea97d\u003c/code\u003e\u003c/a\u003e Pre-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/938ac647418f09e4e610b2c755741316713c5592\"\u003e\u003ccode\u003e938ac64\u003c/code\u003e\u003c/a\u003e Rm sphinxcontrib.googleanalytics; override layout.html\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/9dcbb7e60e650f0ab0cb52154b0a12c70f6a1e4c\"\u003e\u003ccode\u003e9dcbb7e\u003c/code\u003e\u003c/a\u003e Add sphinxcontrib-googleanalytics to requirements.txt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/76eaf9ae0f2868569c14b46f4165310885a40a15\"\u003e\u003ccode\u003e76eaf9a\u003c/code\u003e\u003c/a\u003e Try to add google analytics to doc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/de1cafa56f54e97ca557993155e76dd98877e136\"\u003e\u003ccode\u003ede1cafa\u003c/code\u003e\u003c/a\u003e Update doc mentioning Process.wait() internal details\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/bb30943b0336a16f28437ec549c15a8ad2830cca\"\u003e\u003ccode\u003ebb30943\u003c/code\u003e\u003c/a\u003e Refact can_use_pidfd_open() and can_use_kqueue()\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/a571717d6520d436273c8cb34ca871db4bfa508a\"\u003e\u003ccode\u003ea571717\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2708\"\u003e#2708\u003c/a\u003e, macos / cmdline / environ; raise AD instead of OSError(0) (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/8b98c3effc20dcc4ed08c8f3d33e11ec0f5445b1\"\u003e\u003ccode\u003e8b98c3e\u003c/code\u003e\u003c/a\u003e Pre-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/700b7e6a4171ae7c775679217205f1d97568ae00\"\u003e\u003ccode\u003e700b7e6\u003c/code\u003e\u003c/a\u003e [macOS] fix potential leaks in error paths (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/7cc7923a1479fb1d32bb25d3e78b465e2695fbf7\"\u003e\u003ccode\u003e7cc7923\u003c/code\u003e\u003c/a\u003e Windows / cmdline(): be more defensive in free()ing in case of error\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/giampaolo/psutil/compare/release-5.9.8...release-7.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.4.1 to 9.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13965\"\u003e#13965\u003c/a\u003e: Fixed quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/4492\"\u003e#4492\u003c/a\u003e: The API Reference now contains cross-reference-able documentation of \u003ccode\u003epytest's command-line flags \u0026lt;command-line-flags\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e9.0.1\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.1 (2025-11-12)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13895\"\u003e#13895\u003c/a\u003e: Restore support for skipping tests via \u003ccode\u003eraise unittest.SkipTest\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress plugin added in pytest 9.0 is now automatically disabled when iTerm2 is detected, it generated desktop notifications instead of the desired functionality.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the verbosity settings in the API reference from number to string.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13910\"\u003e#13910\u003c/a\u003e: Fixed \u003c!-- raw HTML omitted --\u003eUserWarning: Do not expect file_or_dir\u003c!-- raw HTML omitted --\u003e on some earlier Python 3.12 and 3.13 point versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePackaging updates and notes for downstreams\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13891\"\u003e#13891\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13942\"\u003e#13942\u003c/a\u003e: The CI/CD part of the release automation is now capable of\ncreating GitHub Releases without having a Git checkout on\ndisk -- by \u003ccode\u003ebluetech\u003c/code\u003e and \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/3d10b5148e03eb82b3ee29181dbdc73cf82699e2\"\u003e\u003ccode\u003e3d10b51\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/188750b725add8c3400eee6fbb6b80559c296d69\"\u003e\u003ccode\u003e188750b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14030\"\u003e#14030\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/1e4b01d1f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7d7bef90cb9a6db8ac1d3dd5b9ae0eb9abd6c58\"\u003e\u003ccode\u003eb7d7bef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14014\"\u003e#14014\u003c/a\u003e from bluetech/compat-note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bd08e85ac76614ff5ca9ae338aee8d8b06c8fae0\"\u003e\u003ccode\u003ebd08e85\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14013\"\u003e#14013\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/922b60377...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bc783862991241c442c9f9c068e51737ec15ea10\"\u003e\u003ccode\u003ebc78386\u003c/code\u003e\u003c/a\u003e Add CLI options reference documentation (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13930\"\u003e#13930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/5a4e398ce89bc23d2cf3fd98c042fdffb6fa8afa\"\u003e\u003ccode\u003e5a4e398\u003c/code\u003e\u003c/a\u003e Fix docs typo (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14005\"\u003e#14005\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14008\"\u003e#14008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/d7ae6df394398168bf9d926f803c26849c8f07ee\"\u003e\u003ccode\u003ed7ae6df\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14006\"\u003e#14006\u003c/a\u003e from pytest-dev/maintenance/update-plugin-list-tmpl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/556f6a22e12d13d1ffeceaf64424eb95d5e0fb87\"\u003e\u003ccode\u003e556f6a2\u003c/code\u003e\u003c/a\u003e pre-commit: fix rst-lint after new release (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13999\"\u003e#13999\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14001\"\u003e#14001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c60fbe63a26f64a42738e3f3527a8f79024fdf50\"\u003e\u003ccode\u003ec60fbe6\u003c/code\u003e\u003c/a\u003e Fix quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10 ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/73d9b011183d9a1c4a7007c1119d97a6e627788e\"\u003e\u003ccode\u003e73d9b01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13995\"\u003e#13995\u003c/a\u003e from nicoddemus/patchback/backports/9.0.x/1b5200c0f...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.4.1...9.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `types-requests` from 2.32.4.20250913 to 2.32.4.20260107\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.20250822 to 80.10.0.20260124\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 `debugpy` from 1.8.16 to 1.8.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/microsoft/debugpy/releases\"\u003edebugpy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003edebugpy v1.8.20\u003c/h2\u003e\n\u003cp\u003eFixes for:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eannotate in 3.14 causing exceptions: \u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1971\"\u003emicrosoft/debugpy#1971\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eEnhancements:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse remote_exec if available: \u003ca href=\"https://github.com/microsoft/debugpy/commit/c7e86a1954381ceadb2ea398fc60079deef91358\"\u003ehttps://github.com/microsoft/debugpy/commit/c7e86a1954381ceadb2ea398fc60079deef91358\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport more architectures: \u003ca href=\"https://github.com/microsoft/debugpy/commit/1bbecdf366016c58e62a076b46d4f3c00aea097f\"\u003ehttps://github.com/microsoft/debugpy/commit/1bbecdf366016c58e62a076b46d4f3c00aea097f\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInfrastructure work:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport devcontainers for development: \u003ca href=\"https://github.com/microsoft/debugpy/commit/7dbc2292b1a23e5ae80db67a1b25f002bd104776\"\u003ehttps://github.com/microsoft/debugpy/commit/7dbc2292b1a23e5ae80db67a1b25f002bd104776\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/rameshvarun\"\u003e\u003ccode\u003e@​rameshvarun\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/Xeonacid\"\u003e\u003ccode\u003e@​Xeonacid\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/pdepetro\"\u003e\u003ccode\u003e@​pdepetro\u003c/code\u003e\u003c/a\u003e for the commits\u003c/p\u003e\n\u003ch2\u003edebugpy v1.8.19\u003c/h2\u003e\n\u003cp\u003eMore fixes for \u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1980\"\u003emicrosoft/debugpy#1980\u003c/a\u003e. Spaces in python files are handled now too.\u003c/p\u003e\n\u003ch2\u003edebugpy v1.8.18\u003c/h2\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1980\"\u003eSpaces in python interpreter cause debug launch failure\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003edebugpy v1.8.17\u003c/h2\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/6cbdf8767e4c88dfaedf3db7b09ce2781496fc51\"\u003eDebug attach for 3.14\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/microsoft/debugpy/commit/7ac3d1f2c65ccf6b2e62a762863093f0242179f0\"\u003e\u003ccode\u003e7ac3d1f\u003c/code\u003e\u003c/a\u003e Try 6 on this file (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1995\"\u003e#1995\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/e1646137a8346292a528b2899c7c8a8fe8d60224\"\u003e\u003ccode\u003ee164613\u003c/code\u003e\u003c/a\u003e O365 new advice (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1994\"\u003e#1994\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/4cbf8b1ce99a856b032470c19c3261195e137ca2\"\u003e\u003ccode\u003e4cbf8b1\u003c/code\u003e\u003c/a\u003e Try another suppression (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1993\"\u003e#1993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/ea9fcaeb59482ad97c51cbe584247f30a0c7ae2d\"\u003e\u003ccode\u003eea9fcae\u003c/code\u003e\u003c/a\u003e Try a different way to suppress binskim problems (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1992\"\u003e#1992\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/ea2746aafcd830a96a2144c3f636ba587f90a15d\"\u003e\u003ccode\u003eea2746a\u003c/code\u003e\u003c/a\u003e Add LTCG flags to compile_windows.bat for BinSkim BA6006 compliance (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1991\"\u003e#1991\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/7dbc2292b1a23e5ae80db67a1b25f002bd104776\"\u003e\u003ccode\u003e7dbc229\u003c/code\u003e\u003c/a\u003e Added devcontainer specification (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1989\"\u003e#1989\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/bb450fc27202cdf0676343dc0150be962b627233\"\u003e\u003ccode\u003ebb450fc\u003c/code\u003e\u003c/a\u003e Fix: Treat \u003cstrong\u003eannotate\u003c/strong\u003e functions as library code in Python 3.14+ (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1988\"\u003e#1988\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/1bbecdf366016c58e62a076b46d4f3c00aea097f\"\u003e\u003ccode\u003e1bbecdf\u003c/code\u003e\u003c/a\u003e Better experience for unsupported arch (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1984\"\u003e#1984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/c7e86a1954381ceadb2ea398fc60079deef91358\"\u003e\u003ccode\u003ec7e86a1\u003c/code\u003e\u003c/a\u003e Use sys.remote_exec() to attach to pid, if available (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1986\"\u003e#1986\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/698499e9ec6cd6edcf0311bb3a0b0d57ad1198ad\"\u003e\u003ccode\u003e698499e\u003c/code\u003e\u003c/a\u003e Add support for space in the python file (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1982\"\u003e#1982\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/microsoft/debugpy/compare/v1.8.16...v1.8.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydevd-pycharm` from 251.23536.40 to 261.19799.40\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/bac7999789b191b75b12ab124e075cef8fcbebf6\"\u003e\u003ccode\u003ebac7999\u003c/code\u003e\u003c/a\u003e RELEASE-715: PyCharm 2026.1 artworks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/5458fd3abf9c9eb0101181d7172eb260919ab0a9\"\u003e\u003ccode\u003e5458fd3\u003c/code\u003e\u003c/a\u003e [UI, Wayland] IJPL-232339 Disable Wayland notification\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/fd8f8efdf71423ae5802fec751367ac3ff29ea2f\"\u003e\u003ccode\u003efd8f8ef\u003c/code\u003e\u003c/a\u003e platform: base build number set to 261.19799.SNAPSHOT\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/174dcdf31dce028b4c175196195c3e30e75234bd\"\u003e\u003ccode\u003e174dcdf\u003c/code\u003e\u003c/a\u003e KTNB-1097: Fix refactorings for injected context\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/03387d24a94631f697ccbfbd6bdbc51622771df9\"\u003e\u003ccode\u003e03387d2\u003c/code\u003e\u003c/a\u003e IJPL-6079: Migrate plugin advertisement install and enable task to coroutines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/2ecfa95a11d822d29e4c4bbd49e8831db82209e3\"\u003e\u003ccode\u003e2ecfa95\u003c/code\u003e\u003c/a\u003e IJPL-6079: Rename InstallAndEnableTask.java to kt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/2f50463836823519c1f37b128a408175cec5cd15\"\u003e\u003ccode\u003e2f50463\u003c/code\u003e\u003c/a\u003e IJPL-232192: warn about non-normalized paths in EEL process arguments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/cbebdb327f73bebcdc04cdb305c07016523f9d74\"\u003e\u003ccode\u003ecbebdb3\u003c/code\u003e\u003c/a\u003e IJPL-209592: TcpEelMachine state machine, remove TcpEelRegistry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/82341a6c6ceaed28e8e8fd9d2250dbec4fe013ba\"\u003e\u003ccode\u003e82341a6\u003c/code\u003e\u003c/a\u003e docs [eel]: remove \u0026quot;Environment Execution Layer\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/7afaa3d97d6f363f23b47a9b96f3d614e134913c\"\u003e\u003ccode\u003e7afaa3d\u003c/code\u003e\u003c/a\u003e PY-85194 use uv by default\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/intellij-community/compare/pycharm/251.23536.40...pycharm/261.19799.40\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi` from 0.120.1 to 0.128.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.128.0\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e➖ Drop support for \u003ccode\u003epydantic.v1\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14609\"\u003e#14609\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✅ Run performance tests only on Pydantic v2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14608\"\u003e#14608\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.127.1\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔊 Add a custom \u003ccode\u003eFastAPIDeprecationWarning\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14605\"\u003e#14605\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Add documentary to website. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14600\"\u003e#14600\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🌐 Update translations for de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14602\"\u003e#14602\u003c/a\u003e by \u003ca href=\"https://github.com/nilslindemann\"\u003e\u003ccode\u003e@​nilslindemann\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14581\"\u003e#14581\u003c/a\u003e by \u003ca href=\"https://github.com/nilslindemann\"\u003e\u003ccode\u003e@​nilslindemann\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 Update pre-commit to use local Ruff instead of hook. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14604\"\u003e#14604\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✅ Add missing tests for code examples. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14569\"\u003e#14569\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Remove \u003ccode\u003elint\u003c/code\u003e job from \u003ccode\u003etest\u003c/code\u003e CI workflow. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14593\"\u003e#14593\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Update secrets check. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14592\"\u003e#14592\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Run CodSpeed tests in parallel to other tests to speed up CI. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14586\"\u003e#14586\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔨 Update scripts and pre-commit to autofix files. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14585\"\u003e#14585\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.127.0\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔊 Add deprecation warnings when using \u003ccode\u003epydantic.v1\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14583\"\u003e#14583\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 Add LLM prompt file for Korean, generated from the existing translations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14546\"\u003e#14546\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Add LLM prompt file for Japanese, generated from the existing translations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14545\"\u003e#14545\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Upgrade OpenAI model for translations to gpt-5.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14579\"\u003e#14579\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.126.0\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e➖ Drop support for Pydantic v1, keeping short temporary support for Pydantic v2's \u003ccode\u003epydantic.v1\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14575\"\u003e#14575\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\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/fastapi/fastapi/commit/8322a4445a3b25acd9b26b61192571b2d92f9bcd\"\u003e\u003ccode\u003e8322a44\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.128.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4b2cfcfd34d0b2e158a05b377426e0c8376b94de\"\u003e\u003ccode\u003e4b2cfcf\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/e3006305518a56ea35f62a31748ad26fe4356fcc\"\u003e\u003ccode\u003ee300630\u003c/code\u003e\u003c/a\u003e ➖ Drop support for \u003ccode\u003epydantic.v1\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14609\"\u003e#14609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/1b3bea8b6be2220cc1544653ea785d2134fcb35b\"\u003e\u003ccode\u003e1b3bea8\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/34e884156f38dff4094a7764ff895c4d4b872060\"\u003e\u003ccode\u003e34e8841\u003c/code\u003e\u003c/a\u003e ✅ Run performance tests only on Pydantic v2 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14608\"\u003e#14608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cd90c78391f86f3fd06d5b327bffad9666b05b44\"\u003e\u003ccode\u003ecd90c78\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.127.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/93f4dfd88b7d62bda89eb521ebd9322e357e6fff\"\u003e\u003ccode\u003e93f4dfd\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/535b5daa317a9d1d1f9a1058e57650a7beefa861\"\u003e\u003ccode\u003e535b5da\u003c/code\u003e\u003c/a\u003e 🔊 Add a custom \u003ccode\u003eFastAPIDeprecationWarning\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14605\"\u003e#14605\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/6b53786f626db95a42fd0f66afd360bab161f4b1\"\u003e\u003ccode\u003e6b53786\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d98f4eb56eae3155034fe631d9639d95171fb9ab\"\u003e\u003ccode\u003ed98f4eb\u003c/code\u003e\u003c/a\u003e 🔧 Update pre-commit to use local Ruff instead of hook (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14604\"\u003e#14604\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.120.1...0.128.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `starlette` from 0.49.1 to 0.52.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/releases\"\u003estarlette's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.52.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOnly use \u003ccode\u003etyping_extensions\u003c/code\u003e in older Python versions by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3109\"\u003eKludex/starlette#3109\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.52.0...0.52.1\"\u003ehttps://github.com/Kludex/starlette/compare/0.52.0...0.52.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.52.0\u003c/h2\u003e\n\u003cp\u003eIn this release, \u003ccode\u003eState\u003c/code\u003e can be accessed using dictionary-style syntax for improved type safety (\u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3036\"\u003e#3036\u003c/a\u003e).\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003efrom collections.abc import AsyncIterator\nfrom contextlib import asynccontextmanager\nfrom typing import TypedDict\n\u003cp\u003eimport httpx\u003c/p\u003e\n\u003cp\u003efrom starlette.applications import Starlette\nfrom starlette.requests import Request\u003c/p\u003e\n\u003cp\u003eclass State(TypedDict):\nhttp_client: httpx.AsyncClient\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/asynccontextmanager\"\u003e\u003ccode\u003e@​asynccontextmanager\u003c/code\u003e\u003c/a\u003e\nasync def lifespan(app: Starlette) -\u0026gt; AsyncIterator[State]:\nasync with httpx.AsyncClient() as client:\nyield {\u0026quot;http_client\u0026quot;: client}\u003c/p\u003e\n\u003cp\u003easync def homepage(request: Request[State]):\nclient = request.state[\u0026quot;http_client\u0026quot;]\n# If you run the below line with mypy or pyright, it will reveal the correct type.\nreveal_type(client)  # Revealed type is 'httpx.AsyncClient'\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/Kludex/starlette/blob/HEAD/lifespan.md#accessing-state\"\u003eAccessing State\u003c/a\u003e for more details.\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.51.0...0.52.0\"\u003ehttps://github.com/Kludex/starlette/compare/0.51.0...0.52.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.51.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eallow_private_network\u003c/code\u003e in \u003ccode\u003eCORSMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3065\"\u003e#3065\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/blob/main/docs/release-notes.md\"\u003estarlette's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.52.1 (January 18, 2026)\u003c/h2\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eOnly use \u003ccode\u003etyping_extensions\u003c/code\u003e in older Python versions \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3109\"\u003e#3109\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.52.0 (January 18, 2026)\u003c/h2\u003e\n\u003cp\u003eIn this release, \u003ccode\u003eState\u003c/code\u003e can be accessed using dictionary-style syntax for improved type\nsafety (\u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3036\"\u003e#3036\u003c/a\u003e).\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003efrom collections.abc import AsyncIterator\nfrom contextlib import asynccontextmanager\nfrom typing import TypedDict\n\u003cp\u003eimport httpx\u003c/p\u003e\n\u003cp\u003efrom starlette.applications import Starlette\nfrom starlette.requests import Request\u003c/p\u003e\n\u003cp\u003eclass State(TypedDict):\nhttp_client: httpx.AsyncClient\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/asynccontextmanager\"\u003e\u003ccode\u003e@​asynccontextmanager\u003c/code\u003e\u003c/a\u003e\nasync def lifespan(app: Starlette) -\u0026gt; AsyncIterator[State]:\nasync with httpx.AsyncClient() as client:\nyield {\u0026quot;http_client\u0026quot;: client}\u003c/p\u003e\n\u003cp\u003easync def homepage(request: Request[State]):\nclient = request.state[\u0026quot;http_client\u0026quot;]\n# If you run the below line with mypy or pyright, it will reveal the correct type.\nreveal_type(client)  # Revealed type is 'httpx.AsyncClient'\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/Kludex/starlette/blob/main/docs/lifespan.md#accessing-state\"\u003eAccessing State\u003c/a\u003e for more details.\u003c/p\u003e\n\u003ch2\u003e0.51.0 (January 10, 2026)\u003c/h2\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eallow_private_network\u003c/code\u003e in \u003ccode\u003eCORSMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3065\"\u003e#3065\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanged\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eIncrease warning stacklevel on \u003ccode\u003eDeprecationWarning\u003c/code\u003e for wsgi module \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3082\"\u003e#3082\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/Kludex/starlette/commit/e5b8a5d200504a2608bed11fe6f66b1d20b9ae2c\"\u003e\u003ccode\u003ee5b8a5d\u003c/code\u003e\u003c/a\u003e Version 0.52.1 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3110\"\u003e#3110\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/d02eadecb5409e9553922081ac123757849335e7\"\u003e\u003ccode\u003ed02eade\u003c/code\u003e\u003c/a\u003e Only use \u003ccode\u003etyping_extensions\u003c/code\u003e in older Python versions (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3109\"\u003e#3109\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/f490b42f5fa0808ead53115a45d907c6d8e16a47\"\u003e\u003ccode\u003ef490b42\u003c/code\u003e\u003c/a\u003e Version 0.52.0 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3107\"\u003e#3107\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/d8c7cf9aca95b31c7a70473d03c26bc8ce33cd74\"\u003e\u003ccode\u003ed8c7cf9\u003c/code\u003e\u003c/a\u003e Turn \u003ccode\u003eState\u003c/code\u003e into a \u003ccode\u003eMapping\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3036\"\u003e#3036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/cfce146611f7cc2b14c524b26d7e1d6cf0ddcd9f\"\u003e\u003ccode\u003ecfce146\u003c/code\u003e\u003c/a\u003e chore: bump coverage (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3103\"\u003e#3103\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/9138e5597285c6120821a6ad862880d479f329f3\"\u003e\u003ccode\u003e9138e55\u003c/code\u003e\u003c/a\u003e fix: setup github pages for deployment (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3102\"\u003e#3102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/aff6df756b231c42ca088788db4bf4b193f7cc5b\"\u003e\u003ccode\u003eaff6df7\u003c/code\u003e\u003c/a\u003e docs: add environment for github docs (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3101\"\u003e#3101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/434bab94749b8522b08bbef3eff5fb742629d4fd\"\u003e\u003ccode\u003e434bab9\u003c/code\u003e\u003c/a\u003e docS: fix gh pages deploy (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3100\"\u003e#3100\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/03426be1d41fc3963cd2dab5f10992e137eaf5f4\"\u003e\u003ccode\u003e03426be\u003c/code\u003e\u003c/a\u003e docs: replace mkdocs by zensical (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3098\"\u003e#3098\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/df2ee22bc072dc19962120a7559f8fc0de7a094e\"\u003e\u003ccode\u003edf2ee22\u003c/code\u003e\u003c/a\u003e Version 0.51.0 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3097\"\u003e#3097\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/starlette/compare/0.49.1...0.52.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `strawberry-graphql[fastapi]` from 0.284.1 to 0.291.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/strawberry-graphql/strawberry/releases\"\u003estrawberry-graphql[fastapi]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e🍓 0.291.0\u003c/h2\u003e\n\u003cp\u003eAdds a \u003ccode\u003egraphql_type\u003c/code\u003e parameter to \u003ccode\u003estrawberry.argument\u003c/code\u003e that allows you\nto explicitly override the GraphQL type of an argument, useful for static typing\nwhen the Python type differs from the desired GraphQL type.\u003c/p\u003e\n\u003cp\u003eFor example:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eBigInt = strawberry.scalar(\n    int, name=\u0026quot;BigInt\u0026quot;, serialize=lambda v: str(v), parse_value=lambda v: int(v)\n)\n\u003cp\u003e\u003ca href=\"https://github.com/strawberry\"\u003e\u003ccode\u003e@​strawberry\u003c/code\u003e\u003c/a\u003e.type\nclass Query:\n\u003ca href=\"https://github.com/strawberry\"\u003e\u003ccode\u003e@​strawberry\u003c/code\u003e\u003c/a\u003e.field()\ndef username(\nself, user_id: Annotated[int, strawberry.argument(graphql_type=BigInt)]\n) -\u0026gt; str:\nreturn \u0026quot;foobar\u0026quot;\u003c/p\u003e\n\u003cp\u003eschema = strawberry.Schema(Query)\u003c/p\u003e\n\u003cp\u003estr(\nschema\n) == \u0026quot;\u0026quot;\u0026quot;\nscalar BigInt\u003c/p\u003e\n\u003cp\u003etype Query {\nusername(userId: BigInt!): String!\n}\n\u0026quot;\u0026quot;\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eReleases contributed by \u003ca href=\"https://github.com/thearchitector\"\u003e\u003ccode\u003e@​thearchitector\u003c/code\u003e\u003c/a\u003e via \u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4067\"\u003e#4067\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e🍓 0.290.0\u003c/h2\u003e\n\u003cp\u003eThis release improves \u003ccode\u003eschema-codegen\u003c/code\u003e for input types in two ways:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\n\u003cp\u003eNullable input fields now use \u003ccode\u003estrawberry.Maybe[T | None]\u003c/code\u003e, allowing them to\nbe omitted when constructing the input type.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eGraphQL default values on input fields are now generated as Python defaults.\nSupported value types: integers, floats, strings, booleans, null, enums, and\nlists. When a field also has a description (or other metadata), the default is\npassed via \u003ccode\u003estrawberry.field(description=..., default=...)\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eBefore:\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/strawberry-graphql/strawberry/blob/main/CHANGELOG.md\"\u003estrawberry-graphql[fastapi]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.291.0 - 2026-02-01\u003c/h2\u003e\n\u003cp\u003eAdds a \u003ccode\u003egraphql_type\u003c/code\u003e parameter to \u003ccode\u003estrawberry.argument\u003c/code\u003e that allows you\nto explicitly override the GraphQL type of an argument, useful for static typing\nwhen the Python type differs from the desired GraphQL type.\u003c/p\u003e\n\u003cp\u003eFor example:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eBigInt = strawberry.scalar(\n    int, name=\u0026quot;BigInt\u0026quot;, serialize=lambda v: str(v), parse_value=lambda v: int(v)\n)\n\u003cp\u003e\u003ca href=\"https://github.com/strawberry\"\u003e\u003ccode\u003e@​strawberry\u003c/code\u003e\u003c/a\u003e.type\nclass Query:\n\u003ca href=\"https://github.com/strawberry\"\u003e\u003ccode\u003e@​strawberry\u003c/code\u003e\u003c/a\u003e.field()\ndef username(\nself, user_id: Annotated[int, strawberry.argument(graphql_type=BigInt)]\n) -\u0026gt; str:\nreturn \u0026quot;foobar\u0026quot;\u003c/p\u003e\n\u003cp\u003eschema = strawberry.Schema(Query)\u003c/p\u003e\n\u003cp\u003estr(\nschema\n) == \u0026quot;\u0026quot;\u0026quot;\nscalar BigInt\u003c/p\u003e\n\u003cp\u003etype Query {\nusername(userId: BigInt!): String!\n}\n\u0026quot;\u0026quot;\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/thearchitector\"\u003eElias Gabriel\u003c/a\u003e via [PR \u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4067\"\u003e#4067\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/pull/4067/\"\u003estrawberry-graphql/strawberry#4067\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003e0.290.0 - 2026-01-31\u003c/h2\u003e\n\u003cp\u003eThis release improves \u003ccode\u003eschema-codegen\u003c/code\u003e for input types in two ways:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\n\u003cp\u003eNullable input fields now use \u003ccode\u003estrawberry.Maybe[T | None]\u003c/code\u003e, allowing them to\nbe omitted when constructing the input type.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eGraphQL default values on input fields are now generated as Python defaults.\nSupported value types: integers, floats, strings, booleans, null, enums, and\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/4b1a55c631feeff1aa4b579698fed8d2d721c05d\"\u003e\u003ccode\u003e4b1a55c\u003c/code\u003e\u003c/a\u003e Release 🍓 0.291.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/5f668c0f19e2f0fdc5e1b5b029d369c977e577b5\"\u003e\u003ccode\u003e5f668c0\u003c/code\u003e\u003c/a\u003e feat: support graphql type override on resolver arguments (\u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4067\"\u003e#4067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/11484e4edd341681eba05fa825010e4faf0f0e5f\"\u003e\u003ccode\u003e11484e4\u003c/code\u003e\u003c/a\u003e Release 🍓 0.290.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/c2f733a444046bb144c2d4b49f42171abed5b24b\"\u003e\u003ccode\u003ec2f733a\u003c/code\u003e\u003c/a\u003e Add support for nullable inputs and default values in schema codegen (\u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4178\"\u003e#4178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/358a308d463fb997ac5b8ec5a59fe5434c1ba031\"\u003e\u003ccode\u003e358a308\u003c/code\u003e\u003c/a\u003e Release 🍓 0.289.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/e4f341726b9566a6a1cda06075e18477ed5ef066\"\u003e\u003ccode\u003ee4f3417\u003c/code\u003e\u003c/a\u003e Export UploadDefinition for proper type checking with file uploads (\u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4175\"\u003e#4175\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/565166786991eec23160a51a4e0856146b2378db\"\u003e\u003ccode\u003e5651667\u003c/code\u003e\u003c/a\u003e docs: clarify authorization guide (\u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4174\"\u003e#4174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/3ea6135fded40d4312e61ae9805c31d57c4bc24b\"\u003e\u003ccode\u003e3ea6135\u003c/code\u003e\u003c/a\u003e chore(deps): bump python-multipart from 0.0.21 to 0.0.22 (\u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4173\"\u003e#4173\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/4acf049a0b3fbb4d85f1d8504e3063c354557155\"\u003e\u003ccode\u003e4acf049\u003c/code\u003e\u003c/a\u003e Release 🍓 0.289.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/861f07c728ff73865b0f1f8dddd30d71ae6f0d77\"\u003e\u003ccode\u003e861f07c\u003c/code\u003e\u003c/a\u003e fix: consider field annotations for generic detection (\u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4162\"\u003e#4162\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/strawberry-graphql/strawberry/compare/0.284.1...0.291.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn[standard]` from 0.38.0 to 0.40.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/releases\"\u003euvicorn[standard]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.40.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2772\"\u003eKludex/uvicorn#2772\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.39.0...0.40.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.39.0...0.40.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.39.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eexplicitly start ASGI run with empty context by \u003ca href=\"https://github.com/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2742\"\u003eKludex/uvicorn#2742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(websockets): Send close frame on ASGI return by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2769\"\u003eKludex/uvicorn#2769\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/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2742\"\u003eKludex/uvicorn#2742\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.38.0...0.39.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.38.0...0.39.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/blob/main/docs/release-notes.md\"\u003euvicorn[standard]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.40.0 (December 21, 2025)\u003c/h2\u003e\n\u003ch3\u003eRemove\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2772\"\u003e#2772\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.39.0 (December 21, 2025)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSend close frame on ASGI return for WebSockets (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2769\"\u003e#2769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExplicitly start ASGI run with empty context (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2742\"\u003e#2742\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/9ff60042a53cd1bbfd5580ab0a91ea2d1d8f2f8c\"\u003e\u003ccode\u003e9ff6004\u003c/code\u003e\u003c/a\u003e Version 0.40.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2773\"\u003e#2773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/19df042c54c1562f058daf021d6f7bd1d5ed621c\"\u003e\u003ccode\u003e19df042\u003c/code\u003e\u003c/a\u003e Drop Python 3.9 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2772\"\u003e#2772\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/865ce7c0b4329a384273a6628eceb8d597989521\"\u003e\u003ccode\u003e865ce7c\u003c/code\u003e\u003c/a\u003e Run strict mypy on test suite (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2771\"\u003e#2771\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/4f40b8495772eb3a1ab3613ffd7be5156f8e1389\"\u003e\u003ccode\u003e4f40b84\u003c/code\u003e\u003c/a\u003e Version 0.39.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2770\"\u003e#2770\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/5692dfc416f9e65aee5028e55d119313d8d3ab0f\"\u003e\u003ccode\u003e5692dfc\u003c/code\u003e\u003c/a\u003e fix(websockets): Send close frame on ASGI return (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2769\"\u003e#2769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/4194764a26824e5d8ddd1fa673df78dff82966e0\"\u003e\u003ccode\u003e4194764\u003c/code\u003e\u003c/a\u003e chore(deps): bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2763\"\u003e#2763\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/d94bf28743de545d2d4b150f022203a5178cb705\"\u003e\u003ccode\u003ed94bf28\u003c/code\u003e\u003c/a\u003e explicitly start ASGI run with empty context (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2742\"\u003e#2742\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/8ae0bcbecb0a655789abf0c2dd4200848fc68a30\"\u003e\u003ccode\u003e8ae0bcb\u003c/code\u003e\u003c/a\u003e chore(deps): bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2748\"\u003e#2748\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/4744ff9a1a4888c76ea160328cc9dcc2680c2c71\"\u003e\u003ccode\u003e4744ff9\u003c/code\u003e\u003c/a\u003e Add groups configuration for GitHub Actions (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2747\"\u003e#2747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/0391372376c264604a0475b0864bcbf3a8705352\"\u003e\u003ccode\u003e0391372\u003c/code\u003e\u003c/a\u003e chore(deps): bump astral-sh/setup-uv from 6.8.0 to 7.1.2 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2746\"\u003e#2746\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.38.0...0.40.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `beautifulsoup4` from 4.11.1 to 4.14.3\n\nUpdates `python-gnupg` from 0.5.5 to 0.5.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/vsajip/python-gnupg/releases\"\u003epython-gnupg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eEnhancement and bug-fix release 0.5.6\u003c/h2\u003e\n\u003cp\u003eThis is an enhancement and bug-fix release, and all users are encouraged to upgrade.\u003c/p\u003e\n\u003cp\u003eBrief summary:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/vsajip/python-gnupg/issues/261\"\u003e#261\u003c/a\u003e: Ensure capability, fingerprint and keygrip are added to subkey_info.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSet username in the result when Verify uses a signing key that has expired or been revoked. Thanks to Steven Galgano for the patch.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThis release has been signed with my code signing key:\u003c/p\u003e\n\u003cp\u003eVi...\n\n_Description has been truncated_","html_url":"https://github.com/alonsodomin/pants/pull/123","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/alonsodomin%2Fpants/issues/123","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/123/packages"}},{"old_version":"1.8.5","new_version":"1.8.6","update_type":"patch","path":null,"pr_created_at":"2026-01-08T16:22:20.000Z","version_change":"1.8.5 → 1.8.6","issue":{"uuid":"3793540180","node_id":"PR_kwDOAG4Ac868J62A","number":22985,"state":"closed","title":"Bump the python-version-updates group across 1 directory with 16 updates","user":"dependabot[bot]","labels":["dependencies","category:internal","release-notes:not-required"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-02-01T04:49:13.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-08T16:22:20.000Z","updated_at":"2026-02-01T04:49:14.000Z","time_to_close":2032013,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-version-updates","update_count":16,"packages":[{"name":"libcst","old_version":"1.8.5","new_version":"1.8.6","repository_url":"https://github.com/Instagram/LibCST"},{"name":"psutil","old_version":"5.9.8","new_version":"7.2.1","repository_url":"https://github.com/giampaolo/psutil"},{"name":"pytest","old_version":"8.4.1","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"types-requests","old_version":"2.32.4.20250913","new_version":"2.32.4.20260107","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"types-setuptools","old_version":"80.9.0.20250822","new_version":"80.9.0.20251223","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"debugpy","old_version":"1.8.16","new_version":"1.8.19","repository_url":"https://github.com/microsoft/debugpy"},{"name":"pydevd-pycharm","old_version":"251.23536.40","new_version":"253.29346.142","repository_url":"https://github.com/JetBrains/intellij-community"},{"name":"fastapi","old_version":"0.120.1","new_version":"0.128.0","repository_url":"https://github.com/fastapi/fastapi"},{"name":"starlette","old_version":"0.49.1","new_version":"0.50.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"strawberry-graphql","old_version":"0.284.1","new_version":"0.288.2"},{"name":"uvicorn","old_version":"0.38.0","new_version":"0.40.0"},{"name":"beautifulsoup4","old_version":"4.11.1","new_version":"4.14.3"},{"name":"python-gnupg","old_version":"0.5.5","new_version":"0.5.6","repository_url":"https://github.com/vsajip/python-gnupg"},{"name":"mypy","old_version":"1.18.2","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"pytest-cov","old_version":"6.2.1","new_version":"7.0.0","repository_url":"https://github.com/pytest-dev/pytest-cov"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [libcst](https://github.com/Instagram/LibCST), [psutil](https://github.com/giampaolo/psutil), [pytest](https://github.com/pytest-dev/pytest), [types-requests](https://github.com/typeshed-internal/stub_uploader), [types-setuptools](https://github.com/typeshed-internal/stub_uploader), [debugpy](https://github.com/microsoft/debugpy), [pydevd-pycharm](https://github.com/JetBrains/intellij-community), [fastapi](https://github.com/fastapi/fastapi), [starlette](https://github.com/Kludex/starlette), [strawberry-graphql[fastapi]](https://github.com/strawberry-graphql/strawberry), [uvicorn[standard]](https://github.com/Kludex/uvicorn), [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/), [python-gnupg](https://github.com/vsajip/python-gnupg), [mypy](https://github.com/python/mypy), [pytest-cov](https://github.com/pytest-dev/pytest-cov) and [flake8](https://github.com/pycqa/flake8) to permit the latest version.\nUpdates `libcst` from 1.8.5 to 1.8.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/releases\"\u003elibcst's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.8.6\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate pyproject.toml for 3.14t by \u003ca href=\"https://github.com/itamaro\"\u003e\u003ccode\u003e@​itamaro\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1417\"\u003eInstagram/LibCST#1417\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate PyO3 to 0.26 by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1413\"\u003eInstagram/LibCST#1413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake CodemodCommand's supported_transforms order deterministic by \u003ca href=\"https://github.com/frvnkliu\"\u003e\u003ccode\u003e@​frvnkliu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1424\"\u003eInstagram/LibCST#1424\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/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1413\"\u003eInstagram/LibCST#1413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frvnkliu\"\u003e\u003ccode\u003e@​frvnkliu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1424\"\u003eInstagram/LibCST#1424\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.5...v1.8.6\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.5...v1.8.6\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/blob/main/CHANGELOG.md\"\u003elibcst's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.8.6 - 2025-11-03\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate pyproject.toml for 3.14t by \u003ca href=\"https://github.com/itamaro\"\u003e\u003ccode\u003e@​itamaro\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1417\"\u003eInstagram/LibCST#1417\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate PyO3 to 0.26 by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1413\"\u003eInstagram/LibCST#1413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake CodemodCommand's supported_transforms order deterministic by \u003ca href=\"https://github.com/frvnkliu\"\u003e\u003ccode\u003e@​frvnkliu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1424\"\u003eInstagram/LibCST#1424\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/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1413\"\u003eInstagram/LibCST#1413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frvnkliu\"\u003e\u003ccode\u003e@​frvnkliu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1424\"\u003eInstagram/LibCST#1424\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.5...v1.8.6\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.5...v1.8.6\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/Instagram/LibCST/commit/9275a8bf7875d08659ce7b266860138bba633410\"\u003e\u003ccode\u003e9275a8b\u003c/code\u003e\u003c/a\u003e bump version to 1.8.6 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1425\"\u003e#1425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/b66c0e28229fd91ac145f1a56d7d884e6f8587b4\"\u003e\u003ccode\u003eb66c0e2\u003c/code\u003e\u003c/a\u003e [CodemodCommand] Make \u003ccode\u003etransform_module\u003c/code\u003e \u003ccode\u003esupported_transforms\u003c/code\u003e order determi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/c2169d240b5011ea820dc18d7a2452f182c2c5d3\"\u003e\u003ccode\u003ec2169d2\u003c/code\u003e\u003c/a\u003e Update PyO3 to 0.26 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1413\"\u003e#1413\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/73b17d8449034b520e7128c8a4bd100674d1e78c\"\u003e\u003ccode\u003e73b17d8\u003c/code\u003e\u003c/a\u003e Update pyproject.toml for 3.14t (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1417\"\u003e#1417\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/421f7d34004de18391014319ec6a818322637a8d\"\u003e\u003ccode\u003e421f7d3\u003c/code\u003e\u003c/a\u003e build(deps): bump pypa/cibuildwheel from 3.1.4 to 3.2.1 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1414\"\u003e#1414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/129b20f4769a2b26b41b262fb88f9aaf8754930b\"\u003e\u003ccode\u003e129b20f\u003c/code\u003e\u003c/a\u003e build(deps): bump github/codeql-action from 3 to 4 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1415\"\u003e#1415\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/6f5da5f99873e4c17e32ca221a3ddde3fb1ea354\"\u003e\u003ccode\u003e6f5da5f\u003c/code\u003e\u003c/a\u003e build(deps): bump astral-sh/setup-uv from 6 to 7 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1416\"\u003e#1416\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.5...v1.8.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psutil` from 5.9.8 to 7.2.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/giampaolo/psutil/blob/master/HISTORY.rst\"\u003epsutil's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e7.2.1\u003c/h1\u003e\n\u003cp\u003e2025-12-29\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2699_, [FreeBSD], [NetBSD]: \u003ccode\u003eheap_info()\u003c/code\u003e_ does not detect small allocations\n(\u0026lt;= 1K). In order to fix that, we now flush internal jemalloc cache before\nfetching the metrics.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e7.2.0\u003c/h1\u003e\n\u003cp\u003e2025-12-23\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e1275_: new \u003ccode\u003eheap_info()\u003c/code\u003e_ and \u003ccode\u003eheap_trim()\u003c/code\u003e_ functions, providing direct\naccess to the platform's native C heap allocator (glibc, mimalloc,\nlibmalloc). Useful to create tools to detect memory leaks.\u003c/li\u003e\n\u003cli\u003e2403_, [Linux]: publish wheels for Linux musl.\u003c/li\u003e\n\u003cli\u003e2680_: unit tests are no longer installed / part of the distribution. They\nnow live under \u003ccode\u003etests/\u003c/code\u003e instead of \u003ccode\u003epsutil/tests\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2684_, [FreeBSD], [critical]: compilation fails on FreeBSD 14 due to missing\ninclude.\u003c/li\u003e\n\u003cli\u003e2691_, [Windows]: fix memory leak in \u003ccode\u003enet_if_stats()\u003c/code\u003e_ due to missing\n\u003ccode\u003ePy_CLEAR\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eCompatibility notes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2680_: \u003ccode\u003eimport psutil.tests\u003c/code\u003e no longer works (but it was never documented to\nbegin with).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e7.1.3\u003c/h1\u003e\n\u003cp\u003e2025-11-02\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2667_: enforce \u003ccode\u003eclang-format\u003c/code\u003e on all C and header files. It is now the\nmandatory formatting style for all C sources.\u003c/li\u003e\n\u003cli\u003e2672_, [macOS], [BSD]: increase the chances to recognize zombie processes and\nraise the appropriate exception (\u003ccode\u003eZombieProcess\u003c/code\u003e_).\u003c/li\u003e\n\u003cli\u003e2676_, 2678_: replace unsafe \u003ccode\u003esprintf\u003c/code\u003e / \u003ccode\u003esnprintf\u003c/code\u003e / \u003ccode\u003esprintf_s\u003c/code\u003e calls with\n\u003ccode\u003estr_format()\u003c/code\u003e. Replace \u003ccode\u003estrlcat\u003c/code\u003e / \u003ccode\u003estrlcpy\u003c/code\u003e with safe \u003ccode\u003estr_copy\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/giampaolo/psutil/commit/6130c19da2d01383befa0dfca2371a792f8881af\"\u003e\u003ccode\u003e6130c19\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2699\"\u003e#2699\u003c/a\u003e / BSD: flush internal jemalloc cache before returning metrics.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/899ee4efa9c1943de14a5818853b6dc9c019eb4f\"\u003e\u003ccode\u003e899ee4e\u003c/code\u003e\u003c/a\u003e Mention psleak\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/704e218db7da14e98a54f2aa9f93372d5900e0b4\"\u003e\u003ccode\u003e704e218\u003c/code\u003e\u003c/a\u003e Pre-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/1a946cfe738045cecf031222cd5078da21946af4\"\u003e\u003ccode\u003e1a946cf\u003c/code\u003e\u003c/a\u003e Take psleak from PYPI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/5085421cabed317d5e2f7164e6072b0be05ba4f1\"\u003e\u003ccode\u003e5085421\u003c/code\u003e\u003c/a\u003e Use external psleak module for memleak tests (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2698\"\u003e#2698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/ac56e6ad0b7c08755a5542afdacb668ad164fd09\"\u003e\u003ccode\u003eac56e6a\u003c/code\u003e\u003c/a\u003e CI: don't cancel CI in progress on 1st failure\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/10fe3d5e9372a504167b0a4df440ab949c0410fe\"\u003e\u003ccode\u003e10fe3d5\u003c/code\u003e\u003c/a\u003e Merge branch 'master' of github.com:giampaolo/psutil\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/ba507bd26bbfe5d1bdc45d606c8979f9e6f632cb\"\u003e\u003ccode\u003eba507bd\u003c/code\u003e\u003c/a\u003e Fix various CI errors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/d5a1398f0860c04883ef881c4760f32d14ef4abf\"\u003e\u003ccode\u003ed5a1398\u003c/code\u003e\u003c/a\u003e Update cpu_count docs: clarify differences from os.cpu_count (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2696\"\u003e#2696\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/556158f55fc3b2f1271b48c66c46912323cf8bec\"\u003e\u003ccode\u003e556158f\u003c/code\u003e\u003c/a\u003e Refact memleak.py\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/giampaolo/psutil/compare/release-5.9.8...release-7.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.4.1 to 9.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13965\"\u003e#13965\u003c/a\u003e: Fixed quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/4492\"\u003e#4492\u003c/a\u003e: The API Reference now contains cross-reference-able documentation of \u003ccode\u003epytest's command-line flags \u0026lt;command-line-flags\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e9.0.1\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.1 (2025-11-12)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13895\"\u003e#13895\u003c/a\u003e: Restore support for skipping tests via \u003ccode\u003eraise unittest.SkipTest\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress plugin added in pytest 9.0 is now automatically disabled when iTerm2 is detected, it generated desktop notifications instead of the desired functionality.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the verbosity settings in the API reference from number to string.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13910\"\u003e#13910\u003c/a\u003e: Fixed \u003c!-- raw HTML omitted --\u003eUserWarning: Do not expect file_or_dir\u003c!-- raw HTML omitted --\u003e on some earlier Python 3.12 and 3.13 point versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePackaging updates and notes for downstreams\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13891\"\u003e#13891\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13942\"\u003e#13942\u003c/a\u003e: The CI/CD part of the release automation is now capable of\ncreating GitHub Releases without having a Git checkout on\ndisk -- by \u003ccode\u003ebluetech\u003c/code\u003e and \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/3d10b5148e03eb82b3ee29181dbdc73cf82699e2\"\u003e\u003ccode\u003e3d10b51\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/188750b725add8c3400eee6fbb6b80559c296d69\"\u003e\u003ccode\u003e188750b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14030\"\u003e#14030\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/1e4b01d1f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7d7bef90cb9a6db8ac1d3dd5b9ae0eb9abd6c58\"\u003e\u003ccode\u003eb7d7bef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14014\"\u003e#14014\u003c/a\u003e from bluetech/compat-note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bd08e85ac76614ff5ca9ae338aee8d8b06c8fae0\"\u003e\u003ccode\u003ebd08e85\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14013\"\u003e#14013\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/922b60377...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bc783862991241c442c9f9c068e51737ec15ea10\"\u003e\u003ccode\u003ebc78386\u003c/code\u003e\u003c/a\u003e Add CLI options reference documentation (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13930\"\u003e#13930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/5a4e398ce89bc23d2cf3fd98c042fdffb6fa8afa\"\u003e\u003ccode\u003e5a4e398\u003c/code\u003e\u003c/a\u003e Fix docs typo (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14005\"\u003e#14005\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14008\"\u003e#14008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/d7ae6df394398168bf9d926f803c26849c8f07ee\"\u003e\u003ccode\u003ed7ae6df\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14006\"\u003e#14006\u003c/a\u003e from pytest-dev/maintenance/update-plugin-list-tmpl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/556f6a22e12d13d1ffeceaf64424eb95d5e0fb87\"\u003e\u003ccode\u003e556f6a2\u003c/code\u003e\u003c/a\u003e pre-commit: fix rst-lint after new release (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13999\"\u003e#13999\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14001\"\u003e#14001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c60fbe63a26f64a42738e3f3527a8f79024fdf50\"\u003e\u003ccode\u003ec60fbe6\u003c/code\u003e\u003c/a\u003e Fix quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10 ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/73d9b011183d9a1c4a7007c1119d97a6e627788e\"\u003e\u003ccode\u003e73d9b01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13995\"\u003e#13995\u003c/a\u003e from nicoddemus/patchback/backports/9.0.x/1b5200c0f...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.4.1...9.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `types-requests` from 2.32.4.20250913 to 2.32.4.20260107\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.20250822 to 80.9.0.20251223\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 `debugpy` from 1.8.16 to 1.8.19\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/microsoft/debugpy/releases\"\u003edebugpy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003edebugpy v1.8.19\u003c/h2\u003e\n\u003cp\u003eMore fixes for \u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1980\"\u003emicrosoft/debugpy#1980\u003c/a\u003e. Spaces in python files are handled now too.\u003c/p\u003e\n\u003ch2\u003edebugpy v1.8.18\u003c/h2\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1980\"\u003eSpaces in python interpreter cause debug launch failure\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003edebugpy v1.8.17\u003c/h2\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/6cbdf8767e4c88dfaedf3db7b09ce2781496fc51\"\u003eDebug attach for 3.14\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/microsoft/debugpy/commit/698499e9ec6cd6edcf0311bb3a0b0d57ad1198ad\"\u003e\u003ccode\u003e698499e\u003c/code\u003e\u003c/a\u003e Add support for space in the python file (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1982\"\u003e#1982\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/e5017d736052d8d84484cdfe05750bd61cc7c50f\"\u003e\u003ccode\u003ee5017d7\u003c/code\u003e\u003c/a\u003e Fix arq quoting to work in runInTerminal (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1981\"\u003e#1981\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/1e3fd91306e507a1b88a1a01c586eef4a1d6791b\"\u003e\u003ccode\u003e1e3fd91\u003c/code\u003e\u003c/a\u003e fix the link to Python extension in \u003ccode\u003eCONTRIBUTING.md\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1934\"\u003e#1934\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/378339a3a84ecd49761bba31a1685862e207d881\"\u003e\u003ccode\u003e378339a\u003c/code\u003e\u003c/a\u003e Update team rotation list in round-robin workflow (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1978\"\u003e#1978\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/93d93f2d6c2c640fd72113d2bb4a14557584b382\"\u003e\u003ccode\u003e93d93f2\u003c/code\u003e\u003c/a\u003e Update CODEOWNERS to remove a reviewer (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1979\"\u003e#1979\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/8f13145a2358ad0f28ef6316fcfa318822789793\"\u003e\u003ccode\u003e8f13145\u003c/code\u003e\u003c/a\u003e Add pyrx-admins as code owners (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1976\"\u003e#1976\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/275caca690ed67c0e94959fe0963e6ef6b14d6b5\"\u003e\u003ccode\u003e275caca\u003c/code\u003e\u003c/a\u003e Add gcc flags (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1947\"\u003e#1947\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/82e409e88311aced08885fc9ec19f8e077e5b00e\"\u003e\u003ccode\u003e82e409e\u003c/code\u003e\u003c/a\u003e include py.typed in the distributed package (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1960\"\u003e#1960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/6cbdf8767e4c88dfaedf3db7b09ce2781496fc51\"\u003e\u003ccode\u003e6cbdf87\u003c/code\u003e\u003c/a\u003e update testing for python 3.14 (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1955\"\u003e#1955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/2eb3afede0dd5b3c6229a2b8849efbfa18b3e078\"\u003e\u003ccode\u003e2eb3afe\u003c/code\u003e\u003c/a\u003e Check if \u003ccode\u003eos.__file__\u003c/code\u003e is available before using it (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1944\"\u003e#1944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/microsoft/debugpy/compare/v1.8.16...v1.8.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydevd-pycharm` from 251.23536.40 to 253.29346.142\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/813b6b8735276d4a4d3ff6ecd2eb3f8fe9db76e3\"\u003e\u003ccode\u003e813b6b8\u003c/code\u003e\u003c/a\u003e [python] RELEASE-647: PyCharm 2025.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/1f54021b7adaef09f33721b4748abaa0515d0f5d\"\u003e\u003ccode\u003e1f54021\u003c/code\u003e\u003c/a\u003e [vcs]: Switch to EDT to show confirmation dialog in FileDocumentManagerListen...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/e3846c490b7e9b073d8a3a1dfca440359486b23a\"\u003e\u003ccode\u003ee3846c4\u003c/code\u003e\u003c/a\u003e [ACP] LLM-21248 Reuse private MCP server across several parallel sessions.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/5852d20e94d0b691a2d97fffe0989cbf1982f9ca\"\u003e\u003ccode\u003e5852d20\u003c/code\u003e\u003c/a\u003e [MCP Server] IJPL-221739 Update MCP SDK to 0.8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/1bbf5d67090f041fd632ee8b7908bb2328395701\"\u003e\u003ccode\u003e1bbf5d6\u003c/code\u003e\u003c/a\u003e [MCP Server] IJPL-221739 Update MCP SDK to 0.8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/cdb962ec6d8b4ad937c12806244401a3b6cc1bb7\"\u003e\u003ccode\u003ecdb962e\u003c/code\u003e\u003c/a\u003e PY-86367 Avoid showing errors dialog with no messages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/f64f3037bf5755ad33b2e13b97b203fbfdb40a4b\"\u003e\u003ccode\u003ef64f303\u003c/code\u003e\u003c/a\u003e IJPL-223262 Gradient for tool window stripes is missing when dragging tool wi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/4c97dbfbf92e9e529c572ad0ef40f8cba53504d3\"\u003e\u003ccode\u003e4c97dbf\u003c/code\u003e\u003c/a\u003e CPP-47813 CPP-47828: fix missing environment in compiler info collection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/85f150f0054d50e3d1be1b55fa35289a558b8c8d\"\u003e\u003ccode\u003e85f150f\u003c/code\u003e\u003c/a\u003e [sql] DBE-23582 Disable Database plugin in PyCharm without active subscription\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/4662be8f84d14d9529dbc2f8fa317f0c9302dd09\"\u003e\u003ccode\u003e4662be8\u003c/code\u003e\u003c/a\u003e [terminal] IJPL-219664 Apply hacky fix for missing tool window actions\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/intellij-community/compare/pycharm/251.23536.40...pycharm/253.29346.142\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi` from 0.120.1 to 0.128.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.128.0\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e➖ Drop support for \u003ccode\u003epydantic.v1\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14609\"\u003e#14609\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✅ Run performance tests only on Pydantic v2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14608\"\u003e#14608\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.127.1\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔊 Add a custom \u003ccode\u003eFastAPIDeprecationWarning\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14605\"\u003e#14605\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Add documentary to website. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14600\"\u003e#14600\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🌐 Update translations for de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14602\"\u003e#14602\u003c/a\u003e by \u003ca href=\"https://github.com/nilslindemann\"\u003e\u003ccode\u003e@​nilslindemann\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14581\"\u003e#14581\u003c/a\u003e by \u003ca href=\"https://github.com/nilslindemann\"\u003e\u003ccode\u003e@​nilslindemann\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 Update pre-commit to use local Ruff instead of hook. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14604\"\u003e#14604\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✅ Add missing tests for code examples. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14569\"\u003e#14569\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Remove \u003ccode\u003elint\u003c/code\u003e job from \u003ccode\u003etest\u003c/code\u003e CI workflow. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14593\"\u003e#14593\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Update secrets check. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14592\"\u003e#14592\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Run CodSpeed tests in parallel to other tests to speed up CI. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14586\"\u003e#14586\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔨 Update scripts and pre-commit to autofix files. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14585\"\u003e#14585\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.127.0\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔊 Add deprecation warnings when using \u003ccode\u003epydantic.v1\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14583\"\u003e#14583\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 Add LLM prompt file for Korean, generated from the existing translations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14546\"\u003e#14546\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Add LLM prompt file for Japanese, generated from the existing translations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14545\"\u003e#14545\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Upgrade OpenAI model for translations to gpt-5.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14579\"\u003e#14579\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.126.0\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e➖ Drop support for Pydantic v1, keeping short temporary support for Pydantic v2's \u003ccode\u003epydantic.v1\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14575\"\u003e#14575\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\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/fastapi/fastapi/commit/8322a4445a3b25acd9b26b61192571b2d92f9bcd\"\u003e\u003ccode\u003e8322a44\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.128.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4b2cfcfd34d0b2e158a05b377426e0c8376b94de\"\u003e\u003ccode\u003e4b2cfcf\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/e3006305518a56ea35f62a31748ad26fe4356fcc\"\u003e\u003ccode\u003ee300630\u003c/code\u003e\u003c/a\u003e ➖ Drop support for \u003ccode\u003epydantic.v1\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14609\"\u003e#14609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/1b3bea8b6be2220cc1544653ea785d2134fcb35b\"\u003e\u003ccode\u003e1b3bea8\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/34e884156f38dff4094a7764ff895c4d4b872060\"\u003e\u003ccode\u003e34e8841\u003c/code\u003e\u003c/a\u003e ✅ Run performance tests only on Pydantic v2 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14608\"\u003e#14608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cd90c78391f86f3fd06d5b327bffad9666b05b44\"\u003e\u003ccode\u003ecd90c78\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.127.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/93f4dfd88b7d62bda89eb521ebd9322e357e6fff\"\u003e\u003ccode\u003e93f4dfd\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/535b5daa317a9d1d1f9a1058e57650a7beefa861\"\u003e\u003ccode\u003e535b5da\u003c/code\u003e\u003c/a\u003e 🔊 Add a custom \u003ccode\u003eFastAPIDeprecationWarning\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14605\"\u003e#14605\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/6b53786f626db95a42fd0f66afd360bab161f4b1\"\u003e\u003ccode\u003e6b53786\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d98f4eb56eae3155034fe631d9639d95171fb9ab\"\u003e\u003ccode\u003ed98f4eb\u003c/code\u003e\u003c/a\u003e 🔧 Update pre-commit to use local Ruff instead of hook (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14604\"\u003e#14604\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.120.1...0.128.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `starlette` from 0.49.1 to 0.50.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/releases\"\u003estarlette's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.50.0\u003c/h2\u003e\n\u003ch2\u003eRemoved\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3061\"\u003e#3061\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.49.3...0.50.0\"\u003ehttps://github.com/Kludex/starlette/compare/0.49.3...0.50.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.49.3\u003c/h2\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRelax strictness on \u003ccode\u003eMiddleware\u003c/code\u003e type \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3059\"\u003e#3059\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.49.2...0.49.3\"\u003ehttps://github.com/Kludex/starlette/compare/0.49.2...0.49.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.49.2\u003c/h2\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore \u003ccode\u003eif-modified-since\u003c/code\u003e header if \u003ccode\u003eif-none-match\u003c/code\u003e is present in \u003ccode\u003eStaticFiles\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3044\"\u003e#3044\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.49.1...0.49.2\"\u003ehttps://github.com/Kludex/starlette/compare/0.49.1...0.49.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/blob/main/docs/release-notes.md\"\u003estarlette's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.50.0 (November 1, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3061\"\u003e#3061\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.49.3 (November 1, 2025)\u003c/h2\u003e\n\u003cp\u003eThis is the last release that supports Python 3.9, which will be dropped in the next minor release.\u003c/p\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eRelax strictness on \u003ccode\u003eMiddleware\u003c/code\u003e type \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3059\"\u003e#3059\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.49.2 (November 1, 2025)\u003c/h2\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore \u003ccode\u003eif-modified-since\u003c/code\u003e header if \u003ccode\u003eif-none-match\u003c/code\u003e is present in \u003ccode\u003eStaticFiles\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3044\"\u003e#3044\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/4941b4a04993d087dea66e9287fe9472babee879\"\u003e\u003ccode\u003e4941b4a\u003c/code\u003e\u003c/a\u003e Version 0.50.0 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3063\"\u003e#3063\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/a0499f60a6f13b8b42381d70bafc076b6ece4eee\"\u003e\u003ccode\u003ea0499f6\u003c/code\u003e\u003c/a\u003e Drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3061\"\u003e#3061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/de3ffecaeadd34612f71495374f5853edbda1bf2\"\u003e\u003ccode\u003ede3ffec\u003c/code\u003e\u003c/a\u003e Version 0.49.3 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3062\"\u003e#3062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/c4433960ccc07289e0963df94dc5c2746f07ca1a\"\u003e\u003ccode\u003ec443396\u003c/code\u003e\u003c/a\u003e Relax strictness on \u003ccode\u003eMiddleware\u003c/code\u003e type (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3059\"\u003e#3059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/85bf0275fbf26f5a7fef539a03bebfeb125b9ea3\"\u003e\u003ccode\u003e85bf027\u003c/code\u003e\u003c/a\u003e Version 0.49.2 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3058\"\u003e#3058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/3d480dd7d5adf474d0736c67a2a3064e88226837\"\u003e\u003ccode\u003e3d480dd\u003c/code\u003e\u003c/a\u003e Ignore \u003ccode\u003eif-modified-since\u003c/code\u003e if \u003ccode\u003eif-none-match\u003c/code\u003e is present (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3057\"\u003e#3057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/da0605243010715356be69693a524f2300011948\"\u003e\u003ccode\u003eda06052\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3056\"\u003e#3056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/34caa9900f47b9ab5afffa5f4ee148a00940f622\"\u003e\u003ccode\u003e34caa99\u003c/code\u003e\u003c/a\u003e Add groups configuration for GitHub Actions (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3055\"\u003e#3055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Kludex/starlette/compare/0.49.1...0.50.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `strawberry-graphql[fastapi]` from 0.284.1 to 0.288.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/strawberry-graphql/strawberry/releases\"\u003estrawberry-graphql[fastapi]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e🍓 0.288.2\u003c/h2\u003e\n\u003cp\u003eFixed two bugs where using \u003ccode\u003estrawberry.Maybe\u003c/code\u003e wrapped in \u003ccode\u003eAnnotated\u003c/code\u003e or using an explicit field definition would raise a \u003ccode\u003eTypeError\u003c/code\u003e about \u0026quot;missing 1 required keyword-only argument\u0026quot;, even though a \u003ccode\u003eMaybe\u003c/code\u003e field should allow \u003ccode\u003eNone\u003c/code\u003e in all cases.\u003c/p\u003e\n\u003cp\u003eThis fix addresses this via custom handling for annotations wrapped with \u003ccode\u003eAnnotated\u003c/code\u003e and handling custom \u003ccode\u003efield\u003c/code\u003e with no \u003ccode\u003edefault\u003c/code\u003e and no \u003ccode\u003edefault_factory\u003c/code\u003e as possible to be \u003ccode\u003eNone\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eReleases contributed by \u003ca href=\"https://github.com/Birdi7\"\u003e\u003ccode\u003e@​Birdi7\u003c/code\u003e\u003c/a\u003e via \u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4084\"\u003e#4084\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e🍓 0.288.1\u003c/h2\u003e\n\u003cp\u003eFixed a bug where using \u003ccode\u003erelay.node()\u003c/code\u003e or \u003ccode\u003erelay.connection()\u003c/code\u003e would raise a\n\u003ccode\u003eDeprecationWarning\u003c/code\u003e about \u0026quot;Argument name-based matching of 'info'\u0026quot;, even though\nthe \u003ccode\u003einfo\u003c/code\u003e parameter was correctly annotated.\u003c/p\u003e\n\u003cp\u003eThis also fixes the same warning when using Python 3.12+ type alias syntax for\n\u003ccode\u003eInfo\u003c/code\u003e, such as \u003ccode\u003etype MyInfo = strawberry.Info[Context, None]\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThe fix recognizes \u003ccode\u003estrawberry.Info\u003c/code\u003e and \u003ccode\u003estrawberry.Parent\u003c/code\u003e annotations (with\nor without generic parameters) when they appear as string forward references.\nOnly fully qualified names are matched to avoid confusion with user-defined types.\u003c/p\u003e\n\u003cp\u003eReleases contributed by \u003ca href=\"https://github.com/bellini666\"\u003e\u003ccode\u003e@​bellini666\u003c/code\u003e\u003c/a\u003e via \u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4081\"\u003e#4081\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e🍓 0.288.0\u003c/h2\u003e\n\u003cp\u003eDeprecate passing a class to \u003ccode\u003estrawberry.scalar()\u003c/code\u003e. Use \u003ccode\u003escalar_map\u003c/code\u003e in\n\u003ccode\u003eStrawberryConfig\u003c/code\u003e instead for better type checking support.\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e# Before (deprecated)\nBase64 = strawberry.scalar(\n    NewType(\u0026quot;Base64\u0026quot;, bytes),\n    serialize=lambda v: base64.b64encode(v).decode(),\n    parse_value=lambda v: base64.b64decode(v),\n)\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eInstead, use \u003ccode\u003escalar_map\u003c/code\u003e in \u003ccode\u003eStrawberryConfig\u003c/code\u003e:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e# Recommended\nBase64 = NewType(\u0026quot;Base64\u0026quot;, bytes)\n\u003cp\u003eschema = strawberry.Schema(\nquery=Query,\nconfig=StrawberryConfig(\nscalar_map={\nBase64: strawberry.scalar(\nname=\u0026quot;Base64\u0026quot;,\nserialize=lambda v: base64.b64encode(v).decode(),\nparse_value=lambda v: base64.b64decode(v),\n)\n}\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/strawberry-graphql/strawberry/blob/main/CHANGELOG.md\"\u003estrawberry-graphql[fastapi]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.288.2 - 2026-01-01\u003c/h2\u003e\n\u003cp\u003eFixed two bugs where using \u003ccode\u003estrawberry.Maybe\u003c/code\u003e wrapped in \u003ccode\u003eAnnotated\u003c/code\u003e or using an explicit field definition would raise a \u003ccode\u003eTypeError\u003c/code\u003e about \u0026quot;missing 1 required keyword-only argument\u0026quot;, even though a \u003ccode\u003eMaybe\u003c/code\u003e field should allow \u003ccode\u003eNone\u003c/code\u003e in all cases.\u003c/p\u003e\n\u003cp\u003eThis fix addresses this via custom handling for annotations wrapped with \u003ccode\u003eAnnotated\u003c/code\u003e and handling custom \u003ccode\u003efield\u003c/code\u003e with no \u003ccode\u003edefault\u003c/code\u003e and no \u003ccode\u003edefault_factory\u003c/code\u003e as possible to be \u003ccode\u003eNone\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/Birdi7\"\u003eEgor\u003c/a\u003e via [PR \u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4084\"\u003e#4084\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/pull/4084/\"\u003estrawberry-graphql/strawberry#4084\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003e0.288.1 - 2025-12-28\u003c/h2\u003e\n\u003cp\u003eFixed a bug where using \u003ccode\u003erelay.node()\u003c/code\u003e or \u003ccode\u003erelay.connection()\u003c/code\u003e would raise a\n\u003ccode\u003eDeprecationWarning\u003c/code\u003e about \u0026quot;Argument name-based matching of 'info'\u0026quot;, even though\nthe \u003ccode\u003einfo\u003c/code\u003e parameter was correctly annotated.\u003c/p\u003e\n\u003cp\u003eThis also fixes the same warning when using Python 3.12+ type alias syntax for\n\u003ccode\u003eInfo\u003c/code\u003e, such as \u003ccode\u003etype MyInfo = strawberry.Info[Context, None]\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThe fix recognizes \u003ccode\u003estrawberry.Info\u003c/code\u003e and \u003ccode\u003estrawberry.Parent\u003c/code\u003e annotations (with\nor without generic parameters) when they appear as string forward references.\nOnly fully qualified names are matched to avoid confusion with user-defined types.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/bellini666\"\u003eThiago Bellini Ribeiro\u003c/a\u003e via [PR \u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4081\"\u003e#4081\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/pull/4081/\"\u003estrawberry-graphql/strawberry#4081\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003e0.288.0 - 2025-12-28\u003c/h2\u003e\n\u003cp\u003eDeprecate passing a class to \u003ccode\u003estrawberry.scalar()\u003c/code\u003e. Use \u003ccode\u003escalar_map\u003c/code\u003e in\n\u003ccode\u003eStrawberryConfig\u003c/code\u003e instead for better type checking support.\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e# Before (deprecated)\nBase64 = strawberry.scalar(\n    NewType(\u0026quot;Base64\u0026quot;, bytes),\n    serialize=lambda v: base64.b64encode(v).decode(),\n    parse_value=lambda v: base64.b64decode(v),\n)\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eInstead, use \u003ccode\u003escalar_map\u003c/code\u003e in \u003ccode\u003eStrawberryConfig\u003c/code\u003e:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e# Recommended\nBase64 = NewType(\u0026quot;Base64\u0026quot;, bytes)\n\u003cp\u003eschema = strawberry.Schema(\nquery=Query,\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/strawberry-graphql/strawberry/commit/4d2881b9f502acfea5e3dbba0f4d5e1921c3a7bc\"\u003e\u003ccode\u003e4d2881b\u003c/code\u003e\u003c/a\u003e Release 🍓 0.288.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/95daebf00285795bdc27a4e55755027261cfa899\"\u003e\u003ccode\u003e95daebf\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eMaybe\u003c/code\u003e usage with \u003ccode\u003eAnnotated\u003c/code\u003e and explicit field definition (\u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4084\"\u003e#4084\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/3bde027227c0b77724170ee13cca34f284cc7109\"\u003e\u003ccode\u003e3bde027\u003c/code\u003e\u003c/a\u003e Release 🍓 0.288.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/5e519b62c77d16e45b527e1b93fec8dbb854dba1\"\u003e\u003ccode\u003e5e519b6\u003c/code\u003e\u003c/a\u003e fix: resolve Info type recognition for TYPE_CHECKING imports and TypeAliasTyp...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/9b7701fe32c7d10a41803ceb40f0b84166112b3f\"\u003e\u003ccode\u003e9b7701f\u003c/code\u003e\u003c/a\u003e docs: extend Maybe documentation and add a new page about UNSET (\u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4080\"\u003e#4080\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/1d0d962e6946e9d19f439c510e8c148f2c7c080f\"\u003e\u003ccode\u003e1d0d962\u003c/code\u003e\u003c/a\u003e Release 🍓 0.288.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/503916cceb5289a2880294dba18fd11c37e4b693\"\u003e\u003ccode\u003e503916c\u003c/code\u003e\u003c/a\u003e refactor: Use a more type-friendly way to define scalars (\u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4076\"\u003e#4076\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/d96fed56466ea8dba360abfd85f0d42dc22061b6\"\u003e\u003ccode\u003ed96fed5\u003c/code\u003e\u003c/a\u003e Release 🍓 0.287.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/43c84b4dc7e94c7c34dfec0af2a455362dc18a88\"\u003e\u003ccode\u003e43c84b4\u003c/code\u003e\u003c/a\u003e Switch from lia-web to cross-web (\u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4079\"\u003e#4079\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/d273e4e7db9dce8b585b51414fb29f8011078f0e\"\u003e\u003ccode\u003ed273e4e\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4077\"\u003e#4077\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/strawberry-graphql/strawberry/compare/0.284.1...0.288.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn[standard]` from 0.38.0 to 0.40.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/releases\"\u003euvicorn[standard]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.40.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2772\"\u003eKludex/uvicorn#2772\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.39.0...0.40.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.39.0...0.40.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.39.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eexplicitly start ASGI run with empty context by \u003ca href=\"https://github.com/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2742\"\u003eKludex/uvicorn#2742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(websockets): Send close frame on ASGI return by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2769\"\u003eKludex/uvicorn#2769\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/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2742\"\u003eKludex/uvicorn#2742\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.38.0...0.39.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.38.0...0.39.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/blob/main/docs/release-notes.md\"\u003euvicorn[standard]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.40.0 (December 21, 2025)\u003c/h2\u003e\n\u003ch3\u003eRemove\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2772\"\u003e#2772\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.39.0 (December 21, 2025)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSend close frame on ASGI return for WebSockets (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2769\"\u003e#2769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExplicitly start ASGI run with empty context (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2742\"\u003e#2742\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/9ff60042a53cd1bbfd5580ab0a91ea2d1d8f2f8c\"\u003e\u003ccode\u003e9ff6004\u003c/code\u003e\u003c/a\u003e Version 0.40.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2773\"\u003e#2773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/19df042c54c1562f058daf021d6f7bd1d5ed621c\"\u003e\u003ccode\u003e19df042\u003c/code\u003e\u003c/a\u003e Drop Python 3.9 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2772\"\u003e#2772\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/865ce7c0b4329a384273a6628eceb8d597989521\"\u003e\u003ccode\u003e865ce7c\u003c/code\u003e\u003c/a\u003e Run strict mypy on test suite (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2771\"\u003e#2771\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/4f40b8495772eb3a1ab3613ffd7be5156f8e1389\"\u003e\u003ccode\u003e4f40b84\u003c/code\u003e\u003c/a\u003e Version 0.39.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2770\"\u003e#2770\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/5692dfc416f9e65aee5028e55d119313d8d3ab0f\"\u003e\u003ccode\u003e5692dfc\u003c/code\u003e\u003c/a\u003e fix(websockets): Send close frame on ASGI return (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2769\"\u003e#2769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/4194764a26824e5d8ddd1fa673df78dff82966e0\"\u003e\u003ccode\u003e4194764\u003c/code\u003e\u003c/a\u003e chore(deps): bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2763\"\u003e#2763\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/d94bf28743de545d2d4b150f022203a5178cb705\"\u003e\u003ccode\u003ed94bf28\u003c/code\u003e\u003c/a\u003e explicitly start ASGI run with empty context (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2742\"\u003e#2742\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/8ae0bcbecb0a655789abf0c2dd4200848fc68a30\"\u003e\u003ccode\u003e8ae0bcb\u003c/code\u003e\u003c/a\u003e chore(deps): bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2748\"\u003e#2748\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/4744ff9a1a4888c76ea160328cc9dcc2680c2c71\"\u003e\u003ccode\u003e4744ff9\u003c/code\u003e\u003c/a\u003e Add groups configuration for GitHub Actions (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2747\"\u003e#2747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/0391372376c264604a0475b0864bcbf3a8705352\"\u003e\u003ccode\u003e0391372\u003c/code\u003e\u003c/a\u003e chore(deps): bump astral-sh/setup-uv from 6.8.0 to 7.1.2 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2746\"\u003e#2746\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.38.0...0.40.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `beautifulsoup4` from 4.11.1 to 4.14.3\n\nUpdates `python-gnupg` from 0.5.5 to 0.5.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/vsajip/python-gnupg/releases\"\u003epython-gnupg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eEnhancement and bug-fix release 0.5.6\u003c/h2\u003e\n\u003cp\u003eThis is an enhancement and bug-fix release, and all users are encouraged to upgrade.\u003c/p\u003e\n\u003cp\u003eBrief summary:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/vsajip/python-gnupg/issues/261\"\u003e#261\u003c/a\u003e: Ensure capability, fingerprint and keygrip are added to subkey_info.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSet username in the result when Verify uses a signing key that has expired or been revoked. Thanks to Steven Galgano for the patch.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThis release has been signed with my code signing key:\u003c/p\u003e\n\u003cp\u003eVinay Sajip (CODE SIGNING KEY) \u0026lt;vinay_sajip at yahoo.co.uk\u0026gt;\nFingerprint: CA74 9061 914E AC13 8E66 EADB 9147 B477 339A 9B86\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/vsajip/python-gnupg/commit/54e9ca0f80f5a0d0b4252e13d5c431f3f5f40c71\"\u003e\u003ccode\u003e54e9ca0\u003c/code\u003e\u003c/a\u003e Changes for 0.5.6.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vsajip/python-gnupg/commit/8825037344b03473595e694e01a1e0fa5e74023f\"\u003e\u003ccode\u003e8825037\u003c/code\u003e\u003c/a\u003e Add support for Python 3.14 (\u003ca href=\"https://redirect.github.com/vsajip/python-gnupg/issues/268\"\u003e#268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vsajip/python-gnupg/commit/909cf606f07097feb5316c265f0108a4c753f9a5\"\u003e\u003ccode\u003e909cf60\u003c/code\u003e\u003c/a\u003e Remove Travis CI and AppVeyor config (\u003ca href=\"https://redirect.github.com/vsajip/python-gnupg/issues/269\"\u003e#269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vsajip/python-gnupg/commit/f0bfa1acb7000cfff3bfdec5d9bff15299c364d3\"\u003e\u003ccode\u003ef0bfa1a\u003c/code\u003e\u003c/a\u003e Drop redundant \u003ccode\u003ewheel\u003c/code\u003e from PEP 517 build deps (\u003ca href=\"https://redirect.github.com/vsajip/python-gnupg/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vsajip/python-gnupg/commit/9b0399b4684a1f8d9e763c99c94cd9baed5ebc34\"\u003e\u003ccode\u003e9b0399b\u003c/code\u003e\u003c/a\u003e Fix typo: spell decrypted_data correctly in the documentation. (\u003ca href=\"https://redirect.github.com/vsajip/python-gnupg/issues/263\"\u003e#263\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vsajip/python-gnupg/commit/fcedea7ac922cf5113c28beff16e59340fa4731c\"\u003e\u003ccode\u003efcedea7\u003c/code\u003e\u003c/a\u003e Added capability to subkey_info, reformatted code.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vsajip/python-gnupg/commit/eca04eb5c9f5d251bb32a183427acb8fbe564102\"\u003e\u003ccode\u003eeca04eb\u003c/code\u003e\u003c/a\u003e Set username when Verify uses a signing key that has expired or been (\u003ca href=\"https://redirect.github.com/vsajip/python-gnupg/issues/262\"\u003e#262\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vsajip/python-gnupg/commit/acfa89869940b81a96c6eb1e475c1c4f645ae879\"\u003e\u003ccode\u003eacfa898\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/vsajip/python-gnupg/issues/261\"\u003e#261\u003c/a\u003e: Ensure fingerprint and keygrip are added to subkey_info.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vsajip/python-gnupg/commit/8148db43edf62ca8310000f0aaae138784c0e51b\"\u003e\u003ccode\u003e8148db4\u003c/code\u003e\u003c/a\u003e Bump version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vsajip/python-gnupg/commit/2e829849129d4789b8877fe621349b09ca5b29cd\"\u003e\u003ccode\u003e2e82984\u003c/code\u003e\u003c/a\u003e Added tag 0.5.5 for changeset 1b77f5b12ad7\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/vsajip/python-gnupg/compare/0.5.5...0.5.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.18.2 to 1.19.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.19.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix noncommutative joins with bounded TypeVars (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20345\"\u003e20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect output format for cached runs by serializing raw errors in cache metas (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20372\"\u003e20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (A5rocks, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20383\"\u003e20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mypyc generator regression with empty tuple (BobTheBuidler, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20371\"\u003e20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash involving Unpack-ed TypeVarTuple (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20323\"\u003e20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on star import of redefinition (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20333\"\u003e20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on typevar with forward ref used in other module (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20334\"\u003e20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFail with an explicit error on PyPy (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20389\"\u003e20389\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChainfire\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eDavid Foster\u003c/li\u003e\n\u003cli\u003eFrank Dana\u003c/li\u003e\n\u003cli\u003eGuo Ci\u003c/li\u003e\n\u003cli\u003eiap\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilton-Balfe\u003c/li\u003e\n\u003cli\u003ejhance\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eJukka Lehtosalo\u003c/li\u003e\n\u003cli\u003eKarelKenens\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael Carlstrom\u003c/li\u003e\n\u003cli\u003eMichael J. Sullivan\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003cli\u003eRandolf Scholz\u003c/li\u003e\n\u003cli\u003eShantanu\u003c/li\u003e\n\u003cli\u003eSigve Sebastian Farstad\u003c/li\u003e\n\u003cli\u003esobolevn\u003c/li\u003e\n\u003cli\u003eStanislav Terliakov\u003c/li\u003e\n\u003cli\u003eStephen Morton\u003c/li\u003e\n\u003cli\u003eTheodore Ando\u003c/li\u003e\n\u003cli\u003eThiago J. Barbalho\u003c/li\u003e\n\u003cli\u003ewyattscarpenter\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI’d also like to thank my employer, Dropbox, for supporting mypy development.\u003c/p\u003e\n\u003ch2\u003eMypy 1.18\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.18.1 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/412c19a6bde31e7afa7f41afdf8356664689ae80\"\u003e\u003ccode\u003e412c19a\u003c/code\u003e\u003c/a\u003e Bump version to 1.19.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/20aea0a6ca0710f5427239bdd2fd8e8bf1caf634\"\u003e\u003ccode\u003e20aea0a\u003c/code\u003e\u003c/a\u003e Update changelog for 1.19.1 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20414\"\u003e#20414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2b23b507524bf1bd7513eea6f2a16fb91e072cb6\"\u003e\u003ccode\u003e2b23b50\u003c/code\u003e\u003c/a\u003e Serialize raw errors in cache metas (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20372\"\u003e#20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f60f90fb8872bf722e32aefd548daaf6d8560e05\"\u003e\u003ccode\u003ef60f90f\u003c/code\u003e\u003c/a\u003e Fail on PyPy in main instead of setup.py (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20389\"\u003e#20389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/58d485b4ea4776e0b9d4045b306cb0818ecc2aa6\"\u003e\u003ccode\u003e58d485b\u003c/code\u003e\u003c/a\u003e Fail with an explicit error on PyPy (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20384\"\u003e#20384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4b31a26788b70c4a2a19adbafa2bbda43dc2e8b\"\u003e\u003ccode\u003ea4b31a2\u003c/code\u003e\u003c/a\u003e Allow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20383\"\u003e#20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8a6eff478416cd3ed3931a6ed77ce61c88ab69e9\"\u003e\u003ccode\u003e8a6eff4\u003c/code\u003e\u003c/a\u003e [mypyc] fix generator regression with empty tuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20371\"\u003e#20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/70eceea682c041c0d8e8462dffef9c7bb252e014\"\u003e\u003ccode\u003e70eceea\u003c/code\u003e\u003c/a\u003e Fix noncommutative joins with bounded TypeVars (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20345\"\u003e#20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/3890fc49bf7cc02db04b1e63eb2540aaacdeecc0\"\u003e\u003ccode\u003e3890fc4\u003c/code\u003e\u003c/a\u003e Fix crash involving Unpack-ed TypeVarTuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20323\"\u003e#20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c93d917a86993e06dcc88e508f28f4f5199ce1c8\"\u003e\u003ccode\u003ec93d917\u003c/code\u003e\u003c/a\u003e Fix crash on star import of redefinition (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20333\"\u003e#20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.18.2...v1.19.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-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 `flake8` to 7.3.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/c48217e1fc006c2dddd14df54e83b67da15de5cd\"\u003e\u003ccode\u003ec48217e\u003c/code\u003e\u003c/a\u003e Release 7.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/f9e0f33281d5bb892cae2c674ac398439d99c732\"\u003e\u003ccode\u003ef9e0f33\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1986\"\u003e#1986\u003c/a\u003e from PyCQA/document-f542\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/6bcdb628597fa2d03494965089ff87a492ffc1e9\"\u003e\u003ccode\u003e6bcdb62\u003c/code\u003e\u003c/a\u003e document F542\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/70a15b8890d5bdf8c449ebb1b5259bd0140cc16b\"\u003e\u003ccode\u003e70a15b8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1985\"\u003e#1985\u003c/a\u003e from PyCQA/upgrade-deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/4941a3e32e54488698ecbc23993bfeb2a60c0fc5\"\u003e\u003ccode\u003e4941a3e\u003c/code\u003e\u003c/a\u003e upgrade pyflakes / pycodestyle\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/23e4005c5501999c29e1e3774de7ed18d1e4e22d\"\u003e\u003ccode\u003e23e4005\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1983\"\u003e#1983\u003c/a\u003e from PyCQA/py314\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/019424b80d3d7d5d8a2a1638f5877080546e3f46\"\u003e\u003ccode\u003e019424b\u003c/code\u003e\u003c/a\u003e add support for t-strings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/6b6f3d5fefecc994a06f425c18c3cddc9b71e4a4\"\u003e\u003ccode\u003e6b6f3d5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1980\"\u003e#1980\u003c/a\u003e from PyCQA/asottile-patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/8dfa6695b4fb1e1401b357367a0a71037d29f6aa\"\u003e\u003ccode\u003e8dfa669\u003c/code\u003e\u003c/a\u003e add rtd sphinx config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/ce3411118382d9332feb2749c8f417d10bfa2584\"\u003e\u003ccode\u003ece34111\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1976\"\u003e#1976\u003c/a\u003e from PyCQA/document-f824\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pycqa/flake8/compare/5.0.4...7.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/pantsbuild/pants/pull/22985","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/pantsbuild%2Fpants/issues/22985","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/22985/packages"}},{"old_version":"1.8.5","new_version":"1.8.6","update_type":"patch","path":"/community/front-end/ofe","pr_created_at":"2026-01-01T11:08:12.000Z","version_change":"1.8.5 → 1.8.6","issue":{"uuid":"3774480575","node_id":"PR_kwDOHZgEBs67MS0_","number":80,"state":"open","title":"Bump the ofe-minor-and-patch-updates group in /community/front-end/ofe with 47 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-01-01T11:08:12.000Z","updated_at":"2026-02-01T12:06:02.463Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"ofe-minor-and-patch-updates","update_count":47,"packages":[{"name":"altgraph","old_version":"0.17.4","new_version":"0.17.5","repository_url":"https://github.com/ronaldoussoren/altgraph"},{"name":"argcomplete","old_version":"3.6.2","new_version":"3.6.3","repository_url":"https://github.com/kislyuk/argcomplete"},{"name":"asgiref","old_version":"3.10.0","new_version":"3.11.0","repository_url":"https://github.com/django/asgiref"},{"name":"attrs","old_version":"25.3.0","new_version":"25.4.0","repository_url":"https://github.com/sponsors/hynek"},{"name":"certifi","old_version":"2025.10.5","new_version":"2025.11.12","repository_url":"https://github.com/certifi/python-certifi"},{"name":"cfgv","old_version":"3.4.0","new_version":"3.5.0","repository_url":"https://github.com/asottile/cfgv"},{"name":"charset-normalizer","old_version":"3.4.3","new_version":"3.4.4","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.3.0","new_version":"8.3.1","repository_url":"https://github.com/pallets/click"},{"name":"cryptography","old_version":"46.0.2","new_version":"46.0.3","repository_url":"https://github.com/pyca/cryptography"},{"name":"django-allauth","old_version":"65.12.0","new_version":"65.13.1","repository_url":"https://github.com/sponsors/pennersr"},{"name":"django-crispy-forms","old_version":"2.4","new_version":"2.5","repository_url":"https://github.com/django-crispy-forms/django-crispy-forms"},{"name":"filelock","old_version":"3.19.1","new_version":"3.20.1","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"google-api-core","old_version":"2.25.2","new_version":"2.28.1","repository_url":"https://github.com/googleapis/python-api-core"},{"name":"google-api-python-client","old_version":"2.184.0","new_version":"2.187.0","repository_url":"https://github.com/googleapis/google-api-python-client"},{"name":"google-auth","old_version":"2.41.1","new_version":"2.45.0","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"google-auth-httplib2","old_version":"0.2.0","new_version":"0.3.0","repository_url":"https://github.com/GoogleCloudPlatform/google-auth-library-python-httplib2"},{"name":"google-cloud-artifact-registry","old_version":"1.16.1","new_version":"1.18.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-secret-manager","old_version":"2.24.0","new_version":"2.26.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-build","old_version":"3.32.0","new_version":"3.34.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-billing","old_version":"1.16.3","new_version":"1.17.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-core","old_version":"2.4.3","new_version":"2.5.0","repository_url":"https://github.com/googleapis/python-cloud-core"},{"name":"google-cloud-pubsub","old_version":"2.31.1","new_version":"2.34.0","repository_url":"https://github.com/googleapis/python-pubsub"},{"name":"google-cloud-compute","old_version":"1.38.0","new_version":"1.40.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-storage","old_version":"3.4.0","new_version":"3.7.0","repository_url":"https://github.com/googleapis/python-storage"},{"name":"google-crc32c","old_version":"1.7.1","new_version":"1.8.0","repository_url":"https://github.com/googleapis/python-crc32c"},{"name":"google-resumable-media","old_version":"2.7.2","new_version":"2.8.0","repository_url":"https://github.com/googleapis/google-resumable-media-python"},{"name":"googleapis-common-protos","old_version":"1.70.0","new_version":"1.72.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"grpc-google-iam-v1","old_version":"0.14.2","new_version":"0.14.3","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"grpcio","old_version":"1.75.1","new_version":"1.76.0","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-status","old_version":"1.75.1","new_version":"1.76.0"},{"name":"idna","old_version":"3.10","new_version":"3.11","repository_url":"https://github.com/kjd/idna"},{"name":"libcst","old_version":"1.8.5","new_version":"1.8.6","repository_url":"https://github.com/Instagram/LibCST"},{"name":"macholib","old_version":"1.16.3","new_version":"1.16.4","repository_url":"https://github.com/ronaldoussoren/macholib"},{"name":"nodeenv","old_version":"1.9.1","new_version":"1.10.0","repository_url":"https://github.com/ekalinin/nodeenv"},{"name":"platformdirs","old_version":"4.4.0","new_version":"4.5.1","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"proto-plus","old_version":"1.26.1","new_version":"1.27.0","repository_url":"https://github.com/googleapis/proto-plus-python"},{"name":"pyparsing","old_version":"3.2.5","new_version":"3.3.1","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"referencing","old_version":"0.36.2","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"rpds-py","old_version":"0.27.1","new_version":"0.30.0","repository_url":"https://github.com/crate-py/rpds"},{"name":"ruamel-yaml","old_version":"0.18.15","new_version":"0.19.0"},{"name":"ruamel-yaml-clib","old_version":"0.2.14","new_version":"0.2.15"},{"name":"sqlparse","old_version":"0.5.3","new_version":"0.5.5","repository_url":"https://github.com/andialbrecht/sqlparse"},{"name":"tomli","old_version":"2.2.1","new_version":"2.3.0","repository_url":"https://github.com/hukkin/tomli"},{"name":"urllib3","old_version":"2.5.0","new_version":"2.6.2","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.37.0","new_version":"0.40.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"virtualenv","old_version":"20.34.0","new_version":"20.35.4","repository_url":"https://github.com/pypa/virtualenv"}],"path":"/community/front-end/ofe","ecosystem":"pip"},"body":"Bumps the ofe-minor-and-patch-updates group in /community/front-end/ofe with 47 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [altgraph](https://github.com/ronaldoussoren/altgraph) | `0.17.4` | `0.17.5` |\n| [argcomplete](https://github.com/kislyuk/argcomplete) | `3.6.2` | `3.6.3` |\n| [asgiref](https://github.com/django/asgiref) | `3.10.0` | `3.11.0` |\n| [attrs](https://github.com/sponsors/hynek) | `25.3.0` | `25.4.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.10.5` | `2025.11.12` |\n| [cfgv](https://github.com/asottile/cfgv) | `3.4.0` | `3.5.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.3` | `3.4.4` |\n| [click](https://github.com/pallets/click) | `8.3.0` | `8.3.1` |\n| [cryptography](https://github.com/pyca/cryptography) | `46.0.2` | `46.0.3` |\n| [django-allauth](https://github.com/sponsors/pennersr) | `65.12.0` | `65.13.1` |\n| [django-crispy-forms](https://github.com/django-crispy-forms/django-crispy-forms) | `2.4` | `2.5` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.19.1` | `3.20.1` |\n| [google-api-core](https://github.com/googleapis/python-api-core) | `2.25.2` | `2.28.1` |\n| [google-api-python-client](https://github.com/googleapis/google-api-python-client) | `2.184.0` | `2.187.0` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.41.1` | `2.45.0` |\n| [google-auth-httplib2](https://github.com/GoogleCloudPlatform/google-auth-library-python-httplib2) | `0.2.0` | `0.3.0` |\n| [google-cloud-artifact-registry](https://github.com/googleapis/google-cloud-python) | `1.16.1` | `1.18.0` |\n| [google-cloud-secret-manager](https://github.com/googleapis/google-cloud-python) | `2.24.0` | `2.26.0` |\n| [google-cloud-build](https://github.com/googleapis/google-cloud-python) | `3.32.0` | `3.34.0` |\n| [google-cloud-billing](https://github.com/googleapis/google-cloud-python) | `1.16.3` | `1.17.0` |\n| [google-cloud-core](https://github.com/googleapis/python-cloud-core) | `2.4.3` | `2.5.0` |\n| [google-cloud-pubsub](https://github.com/googleapis/python-pubsub) | `2.31.1` | `2.34.0` |\n| [google-cloud-compute](https://github.com/googleapis/google-cloud-python) | `1.38.0` | `1.40.0` |\n| [google-cloud-storage](https://github.com/googleapis/python-storage) | `3.4.0` | `3.7.0` |\n| [google-crc32c](https://github.com/googleapis/python-crc32c) | `1.7.1` | `1.8.0` |\n| [google-resumable-media](https://github.com/googleapis/google-resumable-media-python) | `2.7.2` | `2.8.0` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.70.0` | `1.72.0` |\n| [grpc-google-iam-v1](https://github.com/googleapis/google-cloud-python) | `0.14.2` | `0.14.3` |\n| [grpcio](https://github.com/grpc/grpc) | `1.75.1` | `1.76.0` |\n| [grpcio-status](https://grpc.io) | `1.75.1` | `1.76.0` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.11` |\n| [libcst](https://github.com/Instagram/LibCST) | `1.8.5` | `1.8.6` |\n| [macholib](https://github.com/ronaldoussoren/macholib) | `1.16.3` | `1.16.4` |\n| [nodeenv](https://github.com/ekalinin/nodeenv) | `1.9.1` | `1.10.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.4.0` | `4.5.1` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.5.1` |\n| [proto-plus](https://github.com/googleapis/proto-plus-python) | `1.26.1` | `1.27.0` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.5` | `3.3.1` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.36.2` | `0.37.0` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.27.1` | `0.30.0` |\n| ruamel-yaml | `0.18.15` | `0.19.0` |\n| ruamel-yaml-clib | `0.2.14` | `0.2.15` |\n| [sqlparse](https://github.com/andialbrecht/sqlparse) | `0.5.3` | `0.5.5` |\n| [tomli](https://github.com/hukkin/tomli) | `2.2.1` | `2.3.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.5.0` | `2.6.2` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.37.0` | `0.40.0` |\n| [virtualenv](https://github.com/pypa/virtualenv) | `20.34.0` | `20.35.4` |\n\nUpdates `altgraph` from 0.17.4 to 0.17.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ronaldoussoren/altgraph/releases\"\u003ealtgraph's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.17.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for python3.13 and 3.14\u003c/li\u003e\n\u003cli\u003eDon't use pkg_resources at runtime\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/ronaldoussoren/altgraph/blob/master/doc/changelog.rst\"\u003ealtgraph's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.17.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate classifiers for Python 3.13 and 3.14\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrop dependency on \u0026quot;pkg_resources\u0026quot;\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/ronaldoussoren/altgraph/commit/3719ef2991e982c5d13c8ab76693a41fd8c183a3\"\u003e\u003ccode\u003e3719ef2\u003c/code\u003e\u003c/a\u003e Claim support for Python 3.13 and 3.14 and drop usage of pkg_resources\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ronaldoussoren/altgraph/compare/v0.17.4...v0.17.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `argcomplete` from 3.6.2 to 3.6.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kislyuk/argcomplete/releases\"\u003eargcomplete's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.6.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMake RE PCRE compatible. Fixes \u003ca href=\"https://redirect.github.com/kislyuk/argcomplete/issues/539\"\u003e#539\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eOnly execute Python interpreters (\u003ca href=\"https://redirect.github.com/kislyuk/argcomplete/issues/536\"\u003e#536\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efish: set variable scope to local to avoid clobbering global or universal variables (\u003ca href=\"https://redirect.github.com/kislyuk/argcomplete/issues/534\"\u003e#534\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocumentation and help improvements\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kislyuk/argcomplete/blob/main/Changes.rst\"\u003eargcomplete's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChanges for v3.6.3 (2025-10-19)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMake RE PCRE compatible. Fixes \u003ca href=\"https://redirect.github.com/kislyuk/argcomplete/issues/539\"\u003e#539\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eOnly execute Python interpreters (\u003ca href=\"https://redirect.github.com/kislyuk/argcomplete/issues/536\"\u003e#536\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efish: set variable scope to local to avoid clobbering global or\nuniversal variables (\u003ca href=\"https://redirect.github.com/kislyuk/argcomplete/issues/534\"\u003e#534\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocumentation and help improvements\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/kislyuk/argcomplete/commit/fae5549ac1e89ec05de7d11ff33f540c74fc3b18\"\u003e\u003ccode\u003efae5549\u003c/code\u003e\u003c/a\u003e v3.6.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kislyuk/argcomplete/commit/2e88e24d3d7a8051b14fe2cffc86a1c0f5b70668\"\u003e\u003ccode\u003e2e88e24\u003c/code\u003e\u003c/a\u003e Update fish shell documentation (\u003ca href=\"https://redirect.github.com/kislyuk/argcomplete/issues/543\"\u003e#543\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kislyuk/argcomplete/commit/fc0d06dd72b542c88b9b4b58bc3ca15bd2e93bee\"\u003e\u003ccode\u003efc0d06d\u003c/code\u003e\u003c/a\u003e Make RE PCRE compatible. Fixes \u003ca href=\"https://redirect.github.com/kislyuk/argcomplete/issues/539\"\u003e#539\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kislyuk/argcomplete/commit/5ce24a975c4054d4285c6512a172330acf150ac9\"\u003e\u003ccode\u003e5ce24a9\u003c/code\u003e\u003c/a\u003e Fixup for a2b8bc6 (\u003ca href=\"https://redirect.github.com/kislyuk/argcomplete/issues/540\"\u003e#540\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kislyuk/argcomplete/commit/a2b8bc6461bcfc919bc3f4b3f83c7716bd078583\"\u003e\u003ccode\u003ea2b8bc6\u003c/code\u003e\u003c/a\u003e Format help placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kislyuk/argcomplete/commit/0f0797b11c480619f3063befeb0f144cf29a7ef7\"\u003e\u003ccode\u003e0f0797b\u003c/code\u003e\u003c/a\u003e Only execute Python interpreters (\u003ca href=\"https://redirect.github.com/kislyuk/argcomplete/issues/536\"\u003e#536\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kislyuk/argcomplete/commit/33448163d9b638606db3f09fa26e5d2b90d7e4ac\"\u003e\u003ccode\u003e3344816\u003c/code\u003e\u003c/a\u003e Add details to error message in activate_global_python_argcomplete.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kislyuk/argcomplete/commit/ab03e8a8dd9313083728eb980bb621df1c940f2c\"\u003e\u003ccode\u003eab03e8a\u003c/code\u003e\u003c/a\u003e Update README.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kislyuk/argcomplete/commit/a3d39d6424da9d3896e6ab87d4cb76c1073213f7\"\u003e\u003ccode\u003ea3d39d6\u003c/code\u003e\u003c/a\u003e fish: set variable scope to local to avoid clobbering global or universal var...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/kislyuk/argcomplete/compare/v3.6.2...v3.6.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `asgiref` from 3.10.0 to 3.11.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django/asgiref/blob/main/CHANGELOG.txt\"\u003easgiref's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.11.0 (2025-11-19)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003esync_to_async\u003c/code\u003e gains a \u003ccode\u003econtext\u003c/code\u003e parameter, similar to those for\n\u003ccode\u003easyncio.create_task\u003c/code\u003e, \u003ccode\u003eTaskGroup\u003c/code\u003e \u0026amp;co, that can be used on Python 3.11+ to\ncontrol the context used by the underlying task.\u003c/p\u003e\n\u003cp\u003eThe parent context is already propagated by default but the additional\ncontrol is useful if multiple \u003ccode\u003esync_to_async\u003c/code\u003e calls need to share the same\ncontext, e.g. when used with \u003ccode\u003easyncio.gather()\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/django/asgiref/commit/b7b15b20ddb51d1d8b6978165c0986686cd08c1d\"\u003e\u003ccode\u003eb7b15b2\u003c/code\u003e\u003c/a\u003e Releasing 3.11.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/901ee4f96db156f0b462690dd7c9f5aa99bcce03\"\u003e\u003ccode\u003e901ee4f\u003c/code\u003e\u003c/a\u003e Added a custom context parameter for the sync_to_async (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/536\"\u003e#536\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/2138f0317d79cedd065571447ae0a7571989550e\"\u003e\u003ccode\u003e2138f03\u003c/code\u003e\u003c/a\u003e Fixed typo in test file comment.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/django/asgiref/compare/3.10.0...3.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `attrs` from 25.3.0 to 25.4.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/hynek/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2025.10.5 to 2025.11.12\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/37ea150bee10958559f804f128de2fdd48e1ed45\"\u003e\u003ccode\u003e37ea150\u003c/code\u003e\u003c/a\u003e 2025.11.12 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/375\"\u003e#375\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/2fa50bb698145e2401e17b23f6969d3952a6f7c1\"\u003e\u003ccode\u003e2fa50bb\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 4.6.2 to 5.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/374\"\u003e#374\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/6cadb5304715523e57ea425f833aa3495a4e01e4\"\u003e\u003ccode\u003e6cadb53\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.10.05...2025.11.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cfgv` from 3.4.0 to 3.5.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/asottile/cfgv/commit/c7342120ec8513671fb8dd54d8a14399dc59cd47\"\u003e\u003ccode\u003ec734212\u003c/code\u003e\u003c/a\u003e v3.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/asottile/cfgv/commit/d64e0cc2ba77dff75a4c15fb6cf5e6ed315dc80b\"\u003e\u003ccode\u003ed64e0cc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/asottile/cfgv/issues/158\"\u003e#158\u003c/a\u003e from asottile/key-value-map\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/asottile/cfgv/commit/641559f162edff0c37277cd7c5ebd2b65292fad1\"\u003e\u003ccode\u003e641559f\u003c/code\u003e\u003c/a\u003e add KeyValueMap\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/asottile/cfgv/commit/82e2f93a1554805a8938a6a3a588efe982e03019\"\u003e\u003ccode\u003e82e2f93\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/asottile/cfgv/issues/157\"\u003e#157\u003c/a\u003e from asottile/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/asottile/cfgv/commit/69cd02016f6a69de3a19a9741f16aa6d40120164\"\u003e\u003ccode\u003e69cd020\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/asottile/cfgv/commit/5ccc4d404d9a6a83bd3b12c1a24437db7ce8a081\"\u003e\u003ccode\u003e5ccc4d4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/asottile/cfgv/issues/156\"\u003e#156\u003c/a\u003e from asottile/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/asottile/cfgv/commit/2e7ffe560a5de38906821304378fe26ceb7a536c\"\u003e\u003ccode\u003e2e7ffe5\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/asottile/cfgv/commit/ef7849933897d28727e453646a5a632202724d41\"\u003e\u003ccode\u003eef78499\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/asottile/cfgv/issues/155\"\u003e#155\u003c/a\u003e from asottile/all-repos_autofix_all-repos-manual\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/asottile/cfgv/commit/b34b882bba1f683e9e3da7b3ab97e3ee1607977f\"\u003e\u003ccode\u003eb34b882\u003c/code\u003e\u003c/a\u003e py310+\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/asottile/cfgv/commit/724a279ea352c1883761e34e3f261c11be28f374\"\u003e\u003ccode\u003e724a279\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/asottile/cfgv/issues/154\"\u003e#154\u003c/a\u003e from asottile/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/asottile/cfgv/compare/v3.4.0...v3.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.4.3 to 3.4.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.4.4\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.3...3.4.4\"\u003e3.4.4\u003c/a\u003e (2025-10-13)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBound \u003ccode\u003esetuptools\u003c/code\u003e to a specific constraint \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;=81\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRaised upper bound of mypyc for the optional pre-built extension to v1.18.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esetuptools-scm\u003c/code\u003e as a build dependency.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnforced hashes in \u003ccode\u003edev-requirements.txt\u003c/code\u003e and created \u003ccode\u003eci-requirements.txt\u003c/code\u003e for security purposes.\u003c/li\u003e\n\u003cli\u003eAdditional pre-built wheels for riscv64, s390x, and armv7l architectures.\u003c/li\u003e\n\u003cli\u003eRestore \u003ccode\u003emultiple.intoto.jsonl\u003c/code\u003e in GitHub releases in addition to individual attestation file per wheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.4\"\u003e3.4.4\u003c/a\u003e (2025-10-13)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBound \u003ccode\u003esetuptools\u003c/code\u003e to a specific constraint \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;=81\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRaised upper bound of mypyc for the optional pre-built extension to v1.18.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esetuptools-scm\u003c/code\u003e as a build dependency.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnforced hashes in \u003ccode\u003edev-requirements.txt\u003c/code\u003e and created \u003ccode\u003eci-requirements.txt\u003c/code\u003e for security purposes.\u003c/li\u003e\n\u003cli\u003eAdditional pre-built wheels for riscv64, s390x, and armv7l architectures.\u003c/li\u003e\n\u003cli\u003eRestore \u003ccode\u003e multiple.intoto.jsonl\u003c/code\u003e in GitHub releases in addition to individual attestation file per wheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/b30ffdcc2f11043c0d34e60fe66d3815cd49b32b\"\u003e\u003ccode\u003eb30ffdc\u003c/code\u003e\u003c/a\u003e :wrench: fix checksum step in cd.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/d3fbfcfad7dfe3c640886f1a6a6351da527f6634\"\u003e\u003ccode\u003ed3fbfcf\u003c/code\u003e\u003c/a\u003e :wrench: fix cd.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/dafbb95f8c00d3cc8b99158caa63006ffab98749\"\u003e\u003ccode\u003edafbb95\u003c/code\u003e\u003c/a\u003e Release 3.4.4 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/658\"\u003e#658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/1f18ffaa69d2c84fea7abedb8840197ba9c14562\"\u003e\u003ccode\u003e1f18ffa\u003c/code\u003e\u003c/a\u003e :arrow_up: raise mypy upper bound to 1.18.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/ef4ac69ad203891f24e26b2422ab3a08053044fa\"\u003e\u003ccode\u003eef4ac69\u003c/code\u003e\u003c/a\u003e Merge branch 'release-3.4.4' of github.com:jawah/charset_normalizer into rele...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/4b35dda053db5e2e60a247e80a116e4ef04f439b\"\u003e\u003ccode\u003e4b35dda\u003c/code\u003e\u003c/a\u003e :pencil: write changelog for 3.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/0ec6452f1a34cbc77a55b237c4118807b44c2a33\"\u003e\u003ccode\u003e0ec6452\u003c/code\u003e\u003c/a\u003e :wrench: update cd.yml workflow (add riscv64, s390x and armv7l)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f341edec8a828dda394abfa011b1ded8b4b102e2\"\u003e\u003ccode\u003ef341ede\u003c/code\u003e\u003c/a\u003e :arrow_up: upgrade dependencies (dev, ci)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/a308841e660a4d61ea6c448e7b8bf97415ecdc4a\"\u003e\u003ccode\u003ea308841\u003c/code\u003e\u003c/a\u003e :pencil: write changelog for 3.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/9c906da611d5ca5ef076d6bf7f60e629f661d0b0\"\u003e\u003ccode\u003e9c906da\u003c/code\u003e\u003c/a\u003e :wrench: update cd.yml workflow (add riscv64, s390x and armv7l)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.3...3.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.3.0 to 8.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.3.1\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.1 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.3.1/\"\u003ehttps://pypi.org/project/click/8.3.1/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-1\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-1\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/28\"\u003ehttps://github.com/pallets/click/milestone/28\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDon't discard pager arguments by correctly using \u003ccode\u003esubprocess.Popen\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3039\"\u003e#3039\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3055\"\u003e#3055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace \u003ccode\u003eSentinel.UNSET\u003c/code\u003e default values by \u003ccode\u003eNone\u003c/code\u003e as they're passed through the \u003ccode\u003eContext.invoke()\u003c/code\u003e method. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3066\"\u003e#3066\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3065\"\u003e#3065\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3068\"\u003e#3068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix conversion of \u003ccode\u003eSentinel.UNSET\u003c/code\u003e happening too early, which caused incorrect behavior for multiple parameters using the same name. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3071\"\u003e#3071\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3079\"\u003e#3079\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix rendering when \u003ccode\u003eprompt\u003c/code\u003e and \u003ccode\u003econfirm\u003c/code\u003e parameter \u003ccode\u003eprompt_suffix\u003c/code\u003e is empty. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3019\"\u003e#3019\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3021\"\u003e#3021\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen \u003ccode\u003eSentinel.UNSET\u003c/code\u003e is found during parsing, it will skip calls to \u003ccode\u003etype_cast_value\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3069\"\u003e#3069\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3090\"\u003e#3090\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHide \u003ccode\u003eSentinel.UNSET\u003c/code\u003e values as \u003ccode\u003eNone\u003c/code\u003e when looking up for other parameters through the context inside parameter callbacks. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3136\"\u003e#3136\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3137\"\u003e#3137\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/blob/main/CHANGES.rst\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.3.1\u003c/h2\u003e\n\u003cp\u003eReleased 2025-11-15\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDon't discard pager arguments by correctly using \u003ccode\u003esubprocess.Popen\u003c/code\u003e. :issue:\u003ccode\u003e3039\u003c/code\u003e\n:pr:\u003ccode\u003e3055\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eReplace \u003ccode\u003eSentinel.UNSET\u003c/code\u003e default values by \u003ccode\u003eNone\u003c/code\u003e as they're passed through\nthe \u003ccode\u003eContext.invoke()\u003c/code\u003e method. :issue:\u003ccode\u003e3066\u003c/code\u003e :issue:\u003ccode\u003e3065\u003c/code\u003e :pr:\u003ccode\u003e3068\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix conversion of \u003ccode\u003eSentinel.UNSET\u003c/code\u003e happening too early, which caused incorrect\nbehavior for multiple parameters using the same name. :issue:\u003ccode\u003e3071\u003c/code\u003e :pr:\u003ccode\u003e3079\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eHide \u003ccode\u003eSentinel.UNSET\u003c/code\u003e values as \u003ccode\u003eNone\u003c/code\u003e when looking up for other parameters\nthrough the context inside parameter callbacks. :issue:\u003ccode\u003e3136\u003c/code\u003e :pr:\u003ccode\u003e3137\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix rendering when \u003ccode\u003eprompt\u003c/code\u003e and \u003ccode\u003econfirm\u003c/code\u003e parameter \u003ccode\u003eprompt_suffix\u003c/code\u003e is\nempty. :issue:\u003ccode\u003e3019\u003c/code\u003e :pr:\u003ccode\u003e3021\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eWhen \u003ccode\u003eSentinel.UNSET\u003c/code\u003e is found during parsing, it will skip calls to\n\u003ccode\u003etype_cast_value\u003c/code\u003e. :issue:\u003ccode\u003e3069\u003c/code\u003e :pr:\u003ccode\u003e3090\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/1d038f270701498433cb432f54db89f95f07a845\"\u003e\u003ccode\u003e1d038f2\u003c/code\u003e\u003c/a\u003e release version 8.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/03f3889f505d0c9ca4f9d6810f9e4ba2799f2a66\"\u003e\u003ccode\u003e03f3889\u003c/code\u003e\u003c/a\u003e Fix Ruff UP038 warning (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3141\"\u003e#3141\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/3867781222cb63693ca67df94352d29d8e6e2770\"\u003e\u003ccode\u003e3867781\u003c/code\u003e\u003c/a\u003e Fix Ruff UP038 warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/b91bb9548a5617b1197add95e084d569f57149c3\"\u003e\u003ccode\u003eb91bb95\u003c/code\u003e\u003c/a\u003e Provide altered context to callbacks to hide \u003ccode\u003eUNSET\u003c/code\u003e values as \u003ccode\u003eNone\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3137\"\u003e#3137\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/437e1e3295c7ec979fc1bf285bb402ca20d847e7\"\u003e\u003ccode\u003e437e1e3\u003c/code\u003e\u003c/a\u003e Temporarily provide a fake context to the callback to hide \u003ccode\u003eUNSET\u003c/code\u003e values as ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/ea70da487b05d6bb758d472a3a9ffab4a5b7fcd5\"\u003e\u003ccode\u003eea70da4\u003c/code\u003e\u003c/a\u003e Don't test using a file in docs/ (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3102\"\u003e#3102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/e27b307462b725722f620c69dd1d5509c032d18a\"\u003e\u003ccode\u003ee27b307\u003c/code\u003e\u003c/a\u003e Make \u003ccode\u003euv run --all-extras pyright --verifytypes click\u003c/code\u003e pass (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/a92c573f3195c9da3058eadf1735d38af186d22c\"\u003e\u003ccode\u003ea92c573\u003c/code\u003e\u003c/a\u003e Fix test_edit to work with BSD sed (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3129\"\u003e#3129\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/bd131e1ab63da2281d6dd9b8205ad2eb5a085468\"\u003e\u003ccode\u003ebd131e1\u003c/code\u003e\u003c/a\u003e Fix test_edit to work with BSD sed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/0b5c6b75f617e6ee2f9f6dcd071b8a4bf183d1ed\"\u003e\u003ccode\u003e0b5c6b7\u003c/code\u003e\u003c/a\u003e Add Best practices section  (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3127\"\u003e#3127\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.3.0...8.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 46.0.2 to 46.0.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e46.0.3 - 2025-10-15\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Fixed compilation when using LibreSSL 4.2.0.\n\u003cp\u003e.. _v46-0-2:\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/c0af4dd7b75921bbe9f1d41a03dbd4b64a9e3403\"\u003e\u003ccode\u003ec0af4dd\u003c/code\u003e\u003c/a\u003e release 46.0.3 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13681\"\u003e#13681\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pyca/cryptography/compare/46.0.2...46.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-allauth` from 65.12.0 to 65.13.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/pennersr/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-crispy-forms` from 2.4 to 2.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/releases\"\u003edjango-crispy-forms's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eConfirmed support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eConfirmed support for Django 6.0.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8.\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/django-crispy-forms/django-crispy-forms/blob/main/CHANGELOG.md\"\u003edjango-crispy-forms's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.5 (2025-11-06)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eConfirmed support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eConfirmed support for Django 6.0.\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/65fa8ae065638da101851807937bb89ae1b5687e\"\u003e\u003ccode\u003e65fa8ae\u003c/code\u003e\u003c/a\u003e 2.5 Release. (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1424\"\u003e#1424\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/ca4ca14da2aeac3ce934b83861f1b2a558b736fd\"\u003e\u003ccode\u003eca4ca14\u003c/code\u003e\u003c/a\u003e PEP 639 licenses  (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1413\"\u003e#1413\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/aaabe68c0d5a2eee98101ff661b2c5cab28a0777\"\u003e\u003ccode\u003eaaabe68\u003c/code\u003e\u003c/a\u003e Updated pre-commit hook versions.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/125dd1632a460b4dd7b1c8ab0738863d0470c2cb\"\u003e\u003ccode\u003e125dd16\u003c/code\u003e\u003c/a\u003e Pyupgrade 3.9+\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/1f9c8ecc24a3159c86219403ae26e7d0c67e15b7\"\u003e\u003ccode\u003e1f9c8ec\u003c/code\u003e\u003c/a\u003e Confirmed support for Python 3.14, Django. Drop support for Python 3.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/93cb8c8e817870e19a6c426a3e5716ae748a6535\"\u003e\u003ccode\u003e93cb8c8\u003c/code\u003e\u003c/a\u003e Correct names in special thanks section (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1421\"\u003e#1421\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/e327548f80a531bba5ac1049b73108a0681eebf4\"\u003e\u003ccode\u003ee327548\u003c/code\u003e\u003c/a\u003e Added security policy. (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1419\"\u003e#1419\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/64813429d54b39c10d7bb7ad2db4ab0e0e2c418f\"\u003e\u003ccode\u003e6481342\u003c/code\u003e\u003c/a\u003e Enabled GitHub code of conduct (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1416\"\u003e#1416\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/dabd719113c8e7e43fa8d5e254bfa938d169e6e8\"\u003e\u003ccode\u003edabd719\u003c/code\u003e\u003c/a\u003e Add Project Logo. (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1415\"\u003e#1415\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/compare/2.4...2.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `filelock` from 3.19.1 to 3.20.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/py-filelock/releases\"\u003efilelock's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.20.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2025-68146: Fix TOCTOU symlink vulnerability in lock file creation by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/461\"\u003etox-dev/filelock#461\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.20.0...3.20.1\"\u003ehttps://github.com/tox-dev/filelock/compare/3.20.0...3.20.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.20.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd tox.toml to sdist by \u003ca href=\"https://github.com/mtelka\"\u003e\u003ccode\u003e@​mtelka\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/436\"\u003etox-dev/filelock#436\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate docs with example by \u003ca href=\"https://github.com/znichollscr\"\u003e\u003ccode\u003e@​znichollscr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/438\"\u003etox-dev/filelock#438\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd 3.14 support and drop 3.9 by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/448\"\u003etox-dev/filelock#448\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/mtelka\"\u003e\u003ccode\u003e@​mtelka\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/436\"\u003etox-dev/filelock#436\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/znichollscr\"\u003e\u003ccode\u003e@​znichollscr\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/438\"\u003etox-dev/filelock#438\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.19.1...3.20.0\"\u003ehttps://github.com/tox-dev/filelock/compare/3.19.1...3.20.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/377f62251d7cdf30768cc9ee1eb31cea1551c71b\"\u003e\u003ccode\u003e377f622\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/460\"\u003e#460\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/4724d7f8c3393ec1f048c93933e6e3e6ec321f0e\"\u003e\u003ccode\u003e4724d7f\u003c/code\u003e\u003c/a\u003e Fix TOCTOU symlink vulnerability in lock file creation (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/461\"\u003e#461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/cb69414a2327cf0a9887e12054d1dc112ee700af\"\u003e\u003ccode\u003ecb69414\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 5 to 6 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/459\"\u003e#459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/0769294f14a6c62eea64741722f7acef5386b4cd\"\u003e\u003ccode\u003e0769294\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6 to 7 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/458\"\u003e#458\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/414193a188892bd376eb5c56eb45a9cf8ecc9284\"\u003e\u003ccode\u003e414193a\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/457\"\u003e#457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/1456797beb94ad59e5627462ad29f7ed3a966626\"\u003e\u003ccode\u003e1456797\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/456\"\u003e#456\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/8d6bf90af313ac7fd6e41ef2b715d91dd6858f5c\"\u003e\u003ccode\u003e8d6bf90\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/455\"\u003e#455\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/f7edeebddf79c210db2a6af145d33849e93c5550\"\u003e\u003ccode\u003ef7edeeb\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/454\"\u003e#454\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/fb0923562189078b524ad3bd978e5e743dea9b2f\"\u003e\u003ccode\u003efb09235\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/453\"\u003e#453\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/f5825d867707b432e1c93f85833ce8d3766c986c\"\u003e\u003ccode\u003ef5825d8\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/452\"\u003e#452\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/py-filelock/compare/3.19.1...3.20.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-api-core` from 2.25.2 to 2.28.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-api-core/releases\"\u003egoogle-api-core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.28.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/compare/v2.28.0...v2.28.1\"\u003e2.28.1\u003c/a\u003e (2025-10-28)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove dependency on packaging and pkg_resources (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/852\"\u003e#852\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-api-core/commit/ca59a863b08a79c2bf0607f9085de1417422820b\"\u003eca59a86\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.28.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/compare/v2.27.0...v2.28.0\"\u003e2.28.0\u003c/a\u003e (2025-10-24)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eProvide and use Python version support check (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/832\"\u003e#832\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-api-core/commit/d36e896f98a2371c4d58ce1a7a3bc1a77a081836\"\u003ed36e896\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.27.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/compare/v2.26.0...v2.27.0\"\u003e2.27.0\u003c/a\u003e (2025-10-22)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for async bidi streaming apis (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/836\"\u003e#836\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-api-core/commit/95305480d234b6dd0903960db020e55125a997e0\"\u003e9530548\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.26.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/compare/v2.25.2...v2.26.0\"\u003e2.26.0\u003c/a\u003e (2025-10-08)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd trove classifier for Python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/842\"\u003e#842\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-api-core/commit/43690de33a23321d52ab856e2bf253590e1a9357\"\u003e43690de\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-api-core/blob/main/CHANGELOG.md\"\u003egoogle-api-core's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/compare/v2.28.0...v2.28.1\"\u003e2.28.1\u003c/a\u003e (2025-10-28)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove dependency on packaging and pkg_resources (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/852\"\u003e#852\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-api-core/commit/ca59a863b08a79c2bf0607f9085de1417422820b\"\u003eca59a86\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/compare/v2.27.0...v2.28.0\"\u003e2.28.0\u003c/a\u003e (2025-10-24)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eProvide and use Python version support check (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/832\"\u003e#832\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-api-core/commit/d36e896f98a2371c4d58ce1a7a3bc1a77a081836\"\u003ed36e896\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/compare/v2.26.0...v2.27.0\"\u003e2.27.0\u003c/a\u003e (2025-10-22)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for async bidi streaming apis (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/836\"\u003e#836\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-api-core/commit/95305480d234b6dd0903960db020e55125a997e0\"\u003e9530548\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/compare/v2.25.2...v2.26.0\"\u003e2.26.0\u003c/a\u003e (2025-10-08)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd trove classifier for Python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/842\"\u003e#842\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-api-core/commit/43690de33a23321d52ab856e2bf253590e1a9357\"\u003e43690de\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/commit/b8b9a29e062fa0344f5f84c363b0e1b7cf7f1ffd\"\u003e\u003ccode\u003eb8b9a29\u003c/code\u003e\u003c/a\u003e chore(main): release 2.28.1 (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/854\"\u003e#854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/commit/ca59a863b08a79c2bf0607f9085de1417422820b\"\u003e\u003ccode\u003eca59a86\u003c/code\u003e\u003c/a\u003e fix: remove dependency on packaging and pkg_resources (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/852\"\u003e#852\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/commit/6206ce08e019fff0b8599d51c45b9abd2c7a754c\"\u003e\u003ccode\u003e6206ce0\u003c/code\u003e\u003c/a\u003e chore(main): release 2.28.0 (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/847\"\u003e#847\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/commit/d36e896f98a2371c4d58ce1a7a3bc1a77a081836\"\u003e\u003ccode\u003ed36e896\u003c/code\u003e\u003c/a\u003e feat: provide and use Python version support check (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/832\"\u003e#832\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/commit/6c16e96e3e1ec983571f5e35d1e11b2cf125a11b\"\u003e\u003ccode\u003e6c16e96\u003c/code\u003e\u003c/a\u003e chore(main): release 2.27.0 (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/845\"\u003e#845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/commit/1df063f8891518b32ebeefb157ee7bf112d49230\"\u003e\u003ccode\u003e1df063f\u003c/code\u003e\u003c/a\u003e chore(python): Add Python 3.14 to python post processor image (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/844\"\u003e#844\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/commit/95305480d234b6dd0903960db020e55125a997e0\"\u003e\u003ccode\u003e9530548\u003c/code\u003e\u003c/a\u003e feat: support for async bidi streaming apis (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/836\"\u003e#836\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/commit/8168988306b5fdd55be4de26d4bcd0c8f953c74f\"\u003e\u003ccode\u003e8168988\u003c/code\u003e\u003c/a\u003e chore(main): release 2.26.0 (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/843\"\u003e#843\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/commit/43690de33a23321d52ab856e2bf253590e1a9357\"\u003e\u003ccode\u003e43690de\u003c/code\u003e\u003c/a\u003e feat: add trove classifier for Python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/842\"\u003e#842\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/python-api-core/compare/v2.25.2...v2.28.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-api-python-client` from 2.184.0 to 2.187.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-api-python-client/releases\"\u003egoogle-api-python-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.187.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/compare/v2.186.0...v2.187.0\"\u003e2.187.0\u003c/a\u003e (2025-11-04)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eadmin:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/4ae6f5bc3f1a35cd69cb589c432c299df559dacf\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/4ae6f5bc3f1a35cd69cb589c432c299df559dacf\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eaiplatform:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/131f59d6003dfbce3abfa00730dba9f90b9ca2ab\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/131f59d6003dfbce3abfa00730dba9f90b9ca2ab\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ealloydb:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/8c341070f77639ef47f010d9410a814d65f0ed1e\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/8c341070f77639ef47f010d9410a814d65f0ed1e\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eanalyticshub:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/9ba4beb4e61873283345d197c2909259948c5488\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/9ba4beb4e61873283345d197c2909259948c5488\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eandroidpublisher:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/3db77266c2abb44ab149d0f83f58f87727280274\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/3db77266c2abb44ab149d0f83f58f87727280274\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapigee:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/a0411b6f5cc087f24e7ffb2c3e55b75e68f7d3c7\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/a0411b6f5cc087f24e7ffb2c3e55b75e68f7d3c7\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapihub:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/f820a3b6cd6fdcb90a02f0635cc53b231fd340f3\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/f820a3b6cd6fdcb90a02f0635cc53b231fd340f3\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapphub:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/0cde10dd690e2ca303b8dddd26baee762b12e103\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/0cde10dd690e2ca303b8dddd26baee762b12e103\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eartifactregistry:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/c5e5cbd48fac599f541b4bb0671f73504bd95331\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/c5e5cbd48fac599f541b4bb0671f73504bd95331\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eauthorizedbuyersmarketplace:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/4b1a58e965c744981d87598ff4d1d9caeb5ad442\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/4b1a58e965c744981d87598ff4d1d9caeb5ad442\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebackupdr:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/9ea2eb7f2c1bea7de204c1641ad2b2fa232cfad8\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/9ea2eb7f2c1bea7de204c1641ad2b2fa232cfad8\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebiglake:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/f598d38025c1515b5e615f8437a64cbd43fed135\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/f598d38025c1515b5e615f8437a64cbd43fed135\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebigquerydatatransfer:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/8dd81b0b258535afa8a6da984cd62f53892f7754\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/8dd81b0b258535afa8a6da984cd62f53892f7754\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebigquery:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/cee5b00a8ea42682301ccd82abb987ca985520b1\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/cee5b00a8ea42682301ccd82abb987ca985520b1\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003echat:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/c0b2205c2dbc816c783d5d9da64aa8f01ac64976\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/c0b2205c2dbc816c783d5d9da64aa8f01ac64976\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecloudfunctions:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/c40d929e0a719ba2f756c5e076edaafe97f0ade8\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/c40d929e0a719ba2f756c5e076edaafe97f0ade8\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecloudidentity:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/d55d33d3d82ed3045a20a6372368c06060aa7afe\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/d55d33d3d82ed3045a20a6372368c06060aa7afe\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecloudkms:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/aa4d8af269309a77657799795233644c83f41156\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/aa4d8af269309a77657799795233644c83f41156\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecloudscheduler:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/68574b08de677e92f6b4ef73c9aa8981480fd244\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/68574b08de677e92f6b4ef73c9aa8981480fd244\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecompute:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/385aad3a9db1c1e964dfabe2aec63510e495f929\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/385aad3a9db1c1e964dfabe2aec63510e495f929\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003econtactcenterinsights:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/abf00d5720427fc630a1b261b37bddf881d4aed8\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/abf00d5720427fc630a1b261b37bddf881d4aed8\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003econtainer:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/1fa286c4cf3c068ad7389a9f0c9d2672023d0a9a\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/1fa286c4cf3c068ad7389a9f0c9d2672023d0a9a\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edataplex:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/b082bcdea218f8eda4e3167f0d91086067f54326\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/b082bcdea218f8eda4e3167f0d91086067f54326\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edataproc:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/46ecc1b97aee590e952a455f36a17ee57edc4878\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/46ecc1b97aee590e952a455f36a17ee57edc4878\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edatastream:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/94712425b6c1a43eac2f609efa2bbe0130c1d157\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/94712425b6c1a43eac2f609efa2bbe0130c1d157\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeveloperconnect:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/b5dbb37c9de1093601e5258e3390dbcba29090ab\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/b5dbb37c9de1093601e5258e3390dbcba29090ab\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edfareporting:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/eb29fdfc7d374ca0fa8a4521dfd03adf5f9d2aaa\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/eb29fdfc7d374ca0fa8a4521dfd03adf5f9d2aaa\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edialogflow:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/0d073639ba2dd3cf64711a0b2e765c69cf40f301\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/0d073639ba2dd3cf64711a0b2e765c69cf40f301\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ediscoveryengine:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/0a0ffefd477c00e649e2449de4e978e97c7cb77e\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/0a0ffefd477c00e649e2449de4e978e97c7cb77e\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edisplayvideo:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/b952757151bf40ee3e8a29b4ba97723e839d564f\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/b952757151bf40ee3e8a29b4ba97723e839d564f\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edlp:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/c44af38454081885ad41f8e11e39e6d2b8be9250\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/c44af38454081885ad41f8e11e39e6d2b8be9250\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edocumentai:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/892d8591315553114022645b20b312d8f0b0e142\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/892d8591315553114022645b20b312d8f0b0e142\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edrive:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/d0d23365f047c5bc095d500fbfb6364fea5b829f\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/d0d23365f047c5bc095d500fbfb6364fea5b829f\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003efile:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/33cc60f6da2e139c26e4037a0b2bd26a688b956f\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/33cc60f6da2e139c26e4037a0b2bd26a688b956f\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003efirebaseappdistribution:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/d228cb515590e17fdbb2732f667db09940ff65f0\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/d228cb515590e17fdbb2732f667db09940ff65f0\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003efirebaseapphosting:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/62fab0552fa333a8a79c0c433c515b029d743e3f\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/62fab0552fa333a8a79c0c433c515b029d743e3f\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003efirebasedataconnect:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/5fc2c543b13bc466fccd2e89fef36fd6da5a905c\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/5fc2c543b13bc466fccd2e89fef36fd6da5a905c\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003egkeonprem:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/aacb9659d60bed0a38c05936c788d6c96eb30599\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/aacb9659d60bed0a38c05936c788d6c96eb30599\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ehealthcare:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/ac074ed9332b6ebaa776c9ef7123d708fea89b8b\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/ac074ed9332b6ebaa776c9ef7123d708fea89b8b\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eiamcredentials:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/a668b6ab59c1c913ed455c94e722cd0747850c9f\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/a668b6ab59c1c913ed455c94e722cd0747850c9f\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eids:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/e03595989016a96400343dbaa03371a049656d50\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/e03595989016a96400343dbaa03371a049656d50\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elogging:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/652fd598fcd529c3da0563990bf7f4941b172f55\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/652fd598fcd529c3da0563990bf7f4941b172f55\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elooker:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/483cba2bbcd375f8c6808e6ad386f8279b622fb6\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/483cba2bbcd375f8c6808e6ad386f8279b622fb6\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emanagedkafka:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/94e3bc173770528969b1abd935ac393934f6fda4\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/94e3bc173770528969b1abd935ac393934f6fda4\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e8edf6d6\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/googleapis/google-api-python-client/commit/623c34ff35b2a4b44bbc0e013073199d5aea4f5a\"\u003e\u003ccode\u003e623c34f\u003c/code\u003e\u003c/a\u003e chore(main): release 2.187.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2682\"\u003e#2682\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8edf6d686daaa9763cae1c09749c77c8fcd0c10c\"\u003e\u003ccode\u003e8edf6d6\u003c/code\u003e\u003c/a\u003e chore: Update discovery artifacts (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2681\"\u003e#2681\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/98ba848a8b8dc3baac562122fc5fd115ee0cea1e\"\u003e\u003ccode\u003e98ba848\u003c/code\u003e\u003c/a\u003e chore(main): release 2.186.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2679\"\u003e#2679\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/86cb1335984094dad37bbf5e2148ef9b44dee5d9\"\u003e\u003ccode\u003e86cb133\u003c/code\u003e\u003c/a\u003e chore: Update discovery artifacts (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2678\"\u003e#2678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/33aee305b094e501517847552292a0f7e1ba8898\"\u003e\u003ccode\u003e33aee30\u003c/code\u003e\u003c/a\u003e chore(main): release 2.185.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2667\"\u003e#2667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8ee51c47a47db8e09997502f482e990b291cbb98\"\u003e\u003ccode\u003e8ee51c4\u003c/code\u003e\u003c/a\u003e chore: Update discovery artifacts (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2672\"\u003e#2672\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/bde091934f8392d920e9f96f44bc0af078fc6124\"\u003e\u003ccode\u003ebde0919\u003c/code\u003e\u003c/a\u003e chore(python): Add Python 3.14 to python post processor image (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2669\"\u003e#2669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/f32e6fa89eebee9b57d2fdd11c2e732a75bb7ffc\"\u003e\u003ccode\u003ef32e6fa\u003c/code\u003e\u003c/a\u003e chore: add googleapis/python-core-client-libraries as codeowner (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2670\"\u003e#2670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/0fb1cf3a3d292281a9ba0d378e3bc7c0a75ecc9c\"\u003e\u003ccode\u003e0fb1cf3\u003c/code\u003e\u003c/a\u003e feat: add support for 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2668\"\u003e#2668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/3850298de90deca18c5aac04f120fc15843fdc54\"\u003e\u003ccode\u003e3850298\u003c/code\u003e\u003c/a\u003e chore: Update discovery artifacts (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2666\"\u003e#2666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/google-api-python-client/compare/v2.184.0...v2.187.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-auth` from 2.41.1 to 2.45.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-auth-library-python/releases\"\u003egoogle-auth's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-auth 2.45.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.44.0...v2.45.0\"\u003e2.45.0\u003c/a\u003e (2025-12-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdding Agent Identity bound token support and handling certificate mismatches with retries (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1890\"\u003e#1890\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/b32c934e\"\u003eb32c934e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-auth 2.44.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.43.0...v2.44.0\"\u003e2.44.0\u003c/a\u003e (2025-12-12)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMDS connections use mTLS (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1856\"\u003e#1856\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0387bb95\"\u003e0387bb95\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003esupport Python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1822\"\u003e#1822\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0f7097e7\"\u003e0f7097e7\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eadd ecdsa p-384 support (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1872\"\u003e#1872\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/39c381a5\"\u003e39c381a5\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd shlex to correctly parse executable commands with spaces (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1855\"\u003e#1855\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/cf6fc3cc\"\u003ecf6fc3cc\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement token revocation in STS client and add revoke() metho… (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1849\"\u003e#1849\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/d5638986\"\u003ed5638986\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd temporary patch to workload cert logic to accomodate Cloud Run mis-configuration (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1880\"\u003e#1880\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/78de7907\"\u003e78de7907\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDelegate workload cert and key default lookup to helper function (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1877\"\u003e#1877\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/b0993c7e\"\u003eb0993c7e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse public refresh method for source credentials in ImpersonatedCredentials (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1884\"\u003e#1884\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/e0c3296f\"\u003ee0c3296f\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-auth 2.43.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.42.1...v2.43.0\"\u003e2.43.0\u003c/a\u003e (2025-11-05)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd public wrapper for _mtls_helper.check_use_client_cert which enables mTLS if GOOGLE_API_USE_CLIENT_CERTIFICATE is not set, when the MWID/X.509 cert sources detected (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1859\"\u003e#1859\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/1535eccb\"\u003e1535eccb\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eEnable mTLS if GOOGLE_API_USE_CLIENT_CERTIFICATE  is not set, if the MWID/X.509 cert sources detected (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1848\"\u003e#1848\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/395e405b\"\u003e395e405b\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eonboard \u003ccode\u003egoogle-auth\u003c/code\u003e to librarian (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1838\"\u003e#1838\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/c503eaa5\"\u003ec503eaa5\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.42.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.42.0...v2.42.1\"\u003e2.42.1\u003c/a\u003e (2025-10-30)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCatch ValueError for json.loads() (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1842\"\u003e#1842\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/b074cad460589633adfc6744c01726ae86f2aa2b\"\u003eb074cad\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.42.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-auth-library-python/blob/main/CHANGELOG...\n\n_Description has been truncated_","html_url":"https://github.com/cboneti/cluster-toolkit/pull/80","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/cboneti%2Fcluster-toolkit/issues/80","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/80/packages"}},{"old_version":"1.8.5","new_version":"1.8.6","update_type":"patch","path":null,"pr_created_at":"2025-12-02T23:05:27.000Z","version_change":"1.8.5 → 1.8.6","issue":{"uuid":"3687828622","node_id":"PR_kwDOAG4Ac862tSZe","number":22929,"state":"closed","title":"Bump the python-version-updates group across 1 directory with 12 updates","user":"dependabot[bot]","labels":["dependencies","category:internal","release-notes:not-required"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-01-01T04:20:27.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-02T23:05:27.000Z","updated_at":"2026-01-01T04:20:28.000Z","time_to_close":2524500,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-version-updates","update_count":12,"packages":[{"name":"libcst","old_version":"1.8.5","new_version":"1.8.6","repository_url":"https://github.com/Instagram/LibCST"},{"name":"psutil","old_version":"5.9.8","new_version":"7.1.3","repository_url":"https://github.com/giampaolo/psutil"},{"name":"pytest","old_version":"8.4.1","new_version":"9.0.1","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"debugpy","old_version":"1.8.16","new_version":"1.8.17","repository_url":"https://github.com/microsoft/debugpy"},{"name":"pydevd-pycharm","old_version":"251.23536.40","new_version":"253.28294.256","repository_url":"https://github.com/JetBrains/intellij-community"},{"name":"fastapi","old_version":"0.120.1","new_version":"0.123.5","repository_url":"https://github.com/fastapi/fastapi"},{"name":"starlette","old_version":"0.49.1","new_version":"0.50.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"strawberry-graphql","old_version":"0.284.1","new_version":"0.287.0"},{"name":"beautifulsoup4","old_version":"4.11.1","new_version":"4.14.3"},{"name":"mypy","old_version":"1.18.2","new_version":"1.19.0","repository_url":"https://github.com/python/mypy"},{"name":"pytest-cov","old_version":"6.2.1","new_version":"7.0.0","repository_url":"https://github.com/pytest-dev/pytest-cov"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [libcst](https://github.com/Instagram/LibCST), [psutil](https://github.com/giampaolo/psutil), [pytest](https://github.com/pytest-dev/pytest), [debugpy](https://github.com/microsoft/debugpy), [pydevd-pycharm](https://github.com/JetBrains/intellij-community), [fastapi](https://github.com/fastapi/fastapi), [starlette](https://github.com/Kludex/starlette), [strawberry-graphql[fastapi]](https://github.com/strawberry-graphql/strawberry), [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/), [mypy](https://github.com/python/mypy), [pytest-cov](https://github.com/pytest-dev/pytest-cov) and [flake8](https://github.com/pycqa/flake8) to permit the latest version.\nUpdates `libcst` from 1.8.5 to 1.8.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/releases\"\u003elibcst's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.8.6\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate pyproject.toml for 3.14t by \u003ca href=\"https://github.com/itamaro\"\u003e\u003ccode\u003e@​itamaro\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1417\"\u003eInstagram/LibCST#1417\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate PyO3 to 0.26 by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1413\"\u003eInstagram/LibCST#1413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake CodemodCommand's supported_transforms order deterministic by \u003ca href=\"https://github.com/frvnkliu\"\u003e\u003ccode\u003e@​frvnkliu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1424\"\u003eInstagram/LibCST#1424\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/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1413\"\u003eInstagram/LibCST#1413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frvnkliu\"\u003e\u003ccode\u003e@​frvnkliu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1424\"\u003eInstagram/LibCST#1424\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.5...v1.8.6\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.5...v1.8.6\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/blob/main/CHANGELOG.md\"\u003elibcst's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.8.6 - 2025-11-03\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate pyproject.toml for 3.14t by \u003ca href=\"https://github.com/itamaro\"\u003e\u003ccode\u003e@​itamaro\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1417\"\u003eInstagram/LibCST#1417\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate PyO3 to 0.26 by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1413\"\u003eInstagram/LibCST#1413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake CodemodCommand's supported_transforms order deterministic by \u003ca href=\"https://github.com/frvnkliu\"\u003e\u003ccode\u003e@​frvnkliu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1424\"\u003eInstagram/LibCST#1424\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/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1413\"\u003eInstagram/LibCST#1413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frvnkliu\"\u003e\u003ccode\u003e@​frvnkliu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1424\"\u003eInstagram/LibCST#1424\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.5...v1.8.6\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.5...v1.8.6\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/Instagram/LibCST/commit/9275a8bf7875d08659ce7b266860138bba633410\"\u003e\u003ccode\u003e9275a8b\u003c/code\u003e\u003c/a\u003e bump version to 1.8.6 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1425\"\u003e#1425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/b66c0e28229fd91ac145f1a56d7d884e6f8587b4\"\u003e\u003ccode\u003eb66c0e2\u003c/code\u003e\u003c/a\u003e [CodemodCommand] Make \u003ccode\u003etransform_module\u003c/code\u003e \u003ccode\u003esupported_transforms\u003c/code\u003e order determi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/c2169d240b5011ea820dc18d7a2452f182c2c5d3\"\u003e\u003ccode\u003ec2169d2\u003c/code\u003e\u003c/a\u003e Update PyO3 to 0.26 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1413\"\u003e#1413\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/73b17d8449034b520e7128c8a4bd100674d1e78c\"\u003e\u003ccode\u003e73b17d8\u003c/code\u003e\u003c/a\u003e Update pyproject.toml for 3.14t (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1417\"\u003e#1417\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/421f7d34004de18391014319ec6a818322637a8d\"\u003e\u003ccode\u003e421f7d3\u003c/code\u003e\u003c/a\u003e build(deps): bump pypa/cibuildwheel from 3.1.4 to 3.2.1 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1414\"\u003e#1414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/129b20f4769a2b26b41b262fb88f9aaf8754930b\"\u003e\u003ccode\u003e129b20f\u003c/code\u003e\u003c/a\u003e build(deps): bump github/codeql-action from 3 to 4 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1415\"\u003e#1415\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/6f5da5f99873e4c17e32ca221a3ddde3fb1ea354\"\u003e\u003ccode\u003e6f5da5f\u003c/code\u003e\u003c/a\u003e build(deps): bump astral-sh/setup-uv from 6 to 7 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1416\"\u003e#1416\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.5...v1.8.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psutil` from 5.9.8 to 7.1.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/giampaolo/psutil/blob/master/HISTORY.rst\"\u003epsutil's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e7.1.3\u003c/h1\u003e\n\u003cp\u003e2025-11-02\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2667_: enforce \u003ccode\u003eclang-format\u003c/code\u003e on all C and header files. It is now the\nmandatory formatting style for all C sources.\u003c/li\u003e\n\u003cli\u003e2672_, [macOS], [BSD]: increase the chances to recognize zombie processes and\nraise the appropriate exception (\u003ccode\u003eZombieProcess\u003c/code\u003e_).\u003c/li\u003e\n\u003cli\u003e2676_, 2678_: replace unsafe \u003ccode\u003esprintf\u003c/code\u003e / \u003ccode\u003esnprintf\u003c/code\u003e / \u003ccode\u003esprintf_s\u003c/code\u003e calls with\n\u003ccode\u003estr_format()\u003c/code\u003e. Replace \u003ccode\u003estrlcat\u003c/code\u003e / \u003ccode\u003estrlcpy\u003c/code\u003e with safe \u003ccode\u003estr_copy\u003c/code\u003e /\n\u003ccode\u003estr_append\u003c/code\u003e. This unifies string handling across platforms and reduces\nunsafe usage of standard string functions, improving robustness.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2674_, [Windows]: \u003ccode\u003edisk_usage()\u003c/code\u003e_ could truncate values on 32-bit platforms,\npotentially reporting incorrect total/free/used space for drives larger than\n4GB.\u003c/li\u003e\n\u003cli\u003e2675_, [macOS]: \u003ccode\u003eProcess.status()\u003c/code\u003e_ incorrectly returns \u0026quot;running\u0026quot; for 99%\nof the processes.\u003c/li\u003e\n\u003cli\u003e2677_, [Windows]: fix MAC address string construction in \u003ccode\u003enet_if_addrs()\u003c/code\u003e_.\nPreviously, the MAC address buffer was incorrectly updated using a fixed\nincrement and \u003ccode\u003esprintf_s\u003c/code\u003e, which could overflow or misformat the\nstring if the MAC length or formatting changed. Also, the final '\\n' was\ninserted unnecessarily.\u003c/li\u003e\n\u003cli\u003e2679_, [OpenBSD], [NetBSD], [critical]: can't build due to C syntax error.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e7.1.2\u003c/h1\u003e\n\u003cp\u003e2025-10-25\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2657_: stop publishing prebuilt Linux and Windows wheels for 32-bit Python.\n32-bit CPython is still supported, but psutil must now be built from source.\n2565_: produce wheels for free-thread cPython 3.13 and 3.14 (patch by\nLysandros Nikolaou)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2650_, [macOS]: \u003ccode\u003eProcess.cmdline()\u003c/code\u003e_ and \u003ccode\u003eProcess.environ()\u003c/code\u003e_ may incorrectly\nraise \u003ccode\u003eNoSuchProcess\u003c/code\u003e_ instead of \u003ccode\u003eZombieProcess\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003e2658_, [macOS]: double \u003ccode\u003efree()\u003c/code\u003e in \u003ccode\u003eProcess.environ()\u003c/code\u003e_ when it fails\ninternally. This posed a risk of segfault.\u003c/li\u003e\n\u003cli\u003e2662_, [macOS]: massive C code cleanup to guard against possible segfaults\nwhich were (not so) sporadically spotted on CI.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/5904ff94e3fd0fea3d0734a936834bef6e63369a\"\u003e\u003ccode\u003e5904ff9\u003c/code\u003e\u003c/a\u003e Pre-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/d42db80660b719c91b387b9c6400d43e7a7839bb\"\u003e\u003ccode\u003ed42db80\u003c/code\u003e\u003c/a\u003e Update DEVGUIDE.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/e4e100300c68c86b6bec4a28e5a0ed8035e7f647\"\u003e\u003ccode\u003ee4e1003\u003c/code\u003e\u003c/a\u003e psutil_kinfo_proc: return in case of badargs; also print to stderr in case of...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/bcdede485b346f65ee8109b18e0a03d1cd3fc462\"\u003e\u003ccode\u003ebcdede4\u003c/code\u003e\u003c/a\u003e Introduce PSUTIL_TESTING mode. Terminate execution if str_* funcs fail\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/6822ba73e56a9ff289dadc3cd6d804aa13c3e869\"\u003e\u003ccode\u003e6822ba7\u003c/code\u003e\u003c/a\u003e Replace \u003ccode\u003estrlcat/strlcpy\u003c/code\u003e with safe \u003ccode\u003estr_copy/str_append\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2678\"\u003e#2678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/0a7465c354688061847a44f17df182ccce14e362\"\u003e\u003ccode\u003e0a7465c\u003c/code\u003e\u003c/a\u003e Windows: use str_format() in psutil_users().\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/fd05690da26faedb7b01753fb56f6323b1bdda30\"\u003e\u003ccode\u003efd05690\u003c/code\u003e\u003c/a\u003e [Windows] fix MAC address string construction in \u003ccode\u003enet_if_addrs()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2677\"\u003e#2677\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/7d821358201eb39278fa604ea04745e9fbcae27e\"\u003e\u003ccode\u003e7d82135\u003c/code\u003e\u003c/a\u003e NetBSD: refact proc cwd()\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/262977f655037071ce0d0d884f8d8c7ec8f3ca16\"\u003e\u003ccode\u003e262977f\u003c/code\u003e\u003c/a\u003e Replace unsafe \u003ccode\u003esprintf/snprintf/sprintf_s\u003c/code\u003e calls with \u003ccode\u003estr_format()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2676\"\u003e#2676\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/1ba3cf53a89d0e097848933a4e751e7cbce40be7\"\u003e\u003ccode\u003e1ba3cf5\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2675\"\u003e#2675\u003c/a\u003e / macOS: convert process status() to a meaningful value\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/giampaolo/psutil/compare/release-5.9.8...release-7.1.3\"\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 9.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.1\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.1 (2025-11-12)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13895\"\u003e#13895\u003c/a\u003e: Restore support for skipping tests via \u003ccode\u003eraise unittest.SkipTest\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress plugin added in pytest 9.0 is now automatically disabled when iTerm2 is detected, it generated desktop notifications instead of the desired functionality.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the verbosity settings in the API reference from number to string.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13910\"\u003e#13910\u003c/a\u003e: Fixed \u003c!-- raw HTML omitted --\u003eUserWarning: Do not expect file_or_dir\u003c!-- raw HTML omitted --\u003e on some earlier Python 3.12 and 3.13 point versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePackaging updates and notes for downstreams\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13891\"\u003e#13891\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13942\"\u003e#13942\u003c/a\u003e: The CI/CD part of the release automation is now capable of\ncreating GitHub Releases without having a Git checkout on\ndisk -- by \u003ccode\u003ebluetech\u003c/code\u003e and \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e9.0.0\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.0 (2025-11-05)\u003c/h1\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/1367\"\u003e#1367\u003c/a\u003e: \u003cstrong\u003eSupport for subtests\u003c/strong\u003e has been added.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003esubtests \u0026lt;subtests\u0026gt;\u003c/code\u003e are an alternative to parametrization, useful in situations where the parametrization values are not all known at collection time.\u003c/p\u003e\n\u003cp\u003eExample:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003edef contains_docstring(p: Path) -\u0026gt; bool:\n    \u0026quot;\u0026quot;\u0026quot;Return True if the given Python file contains a top-level docstring.\u0026quot;\u0026quot;\u0026quot;\n    ...\n\u003cp\u003edef test_py_files_contain_docstring(subtests: pytest.Subtests) -\u0026gt; None:\u003cbr /\u003e\nfor path in Path.cwd().glob(\u0026quot;*.py\u0026quot;):\u003cbr /\u003e\nwith subtests.test(path=str(path)):\u003cbr /\u003e\nassert contains_docstring(path)\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/d1b64aa60b9e1a0fcfaf03af7ebeb185f1024a87\"\u003e\u003ccode\u003ed1b64aa\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/0a497c7b213ea950821319fd80dce219b0033f32\"\u003e\u003ccode\u003e0a497c7\u003c/code\u003e\u003c/a\u003e regendoc: remove CI environment variables (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13950\"\u003e#13950\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13951\"\u003e#13951\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a9f7e6ed579b8844e302067b7f05122b82993355\"\u003e\u003ccode\u003ea9f7e6e\u003c/code\u003e\u003c/a\u003e 🧪 Run \u003ccode\u003egh release\u003c/code\u003e w/o Git in CI/CD (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13942\"\u003e#13942\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13947\"\u003e#13947\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/2682a6607304f1f5bb5a2140340003cdf5121bc4\"\u003e\u003ccode\u003e2682a66\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13944\"\u003e#13944\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/bef7d34f1...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a999997e36c53d189ecded3369bf35bfe2be96ad\"\u003e\u003ccode\u003ea999997\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13941\"\u003e#13941\u003c/a\u003e from nicoddemus/min-pre-commit-version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/4bd63a0ead81d740aa767a4384d3b0b4c18f2ef2\"\u003e\u003ccode\u003e4bd63a0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13935\"\u003e#13935\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/ce8b8a7b4...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/15f93b332c1c3ec9c200c0ad3d55af5a2158e0db\"\u003e\u003ccode\u003e15f93b3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e from webknjaz/maintenance/tox-pep517-env-setuptools...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/0fa11ae3f79d06dc9e2f1f7c81ade4a1126d9ef3\"\u003e\u003ccode\u003e0fa11ae\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13927\"\u003e#13927\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/3d8075743...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/fa454700133c7b2cc960cba3b1cd09cc048c25a0\"\u003e\u003ccode\u003efa45470\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13926\"\u003e#13926\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d587e0cf8...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b4e3973505a2b7a2caa17ccc392d91a6ad73e122\"\u003e\u003ccode\u003eb4e3973\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13922\"\u003e#13922\u003c/a\u003e from bluetech/fix-argparse-userwarning\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.4.1...9.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `debugpy` from 1.8.16 to 1.8.17\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/microsoft/debugpy/releases\"\u003edebugpy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003edebugpy v1.8.17\u003c/h2\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/6cbdf8767e4c88dfaedf3db7b09ce2781496fc51\"\u003eDebug attach for 3.14\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/microsoft/debugpy/commit/6cbdf8767e4c88dfaedf3db7b09ce2781496fc51\"\u003e\u003ccode\u003e6cbdf87\u003c/code\u003e\u003c/a\u003e update testing for python 3.14 (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1955\"\u003e#1955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/2eb3afede0dd5b3c6229a2b8849efbfa18b3e078\"\u003e\u003ccode\u003e2eb3afe\u003c/code\u003e\u003c/a\u003e Check if \u003ccode\u003eos.__file__\u003c/code\u003e is available before using it (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1944\"\u003e#1944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/microsoft/debugpy/compare/v1.8.16...v1.8.17\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydevd-pycharm` from 251.23536.40 to 253.28294.256\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/fae0e058c8f88a0be55bfc464af18e4f93e81752\"\u003e\u003ccode\u003efae0e05\u003c/code\u003e\u003c/a\u003e JEWEL-1160 Explicitly disable usage of a Compose Foundation new context menu ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/5f56c914563520ce207e44cd8b13a2d5ca851a5a\"\u003e\u003ccode\u003e5f56c91\u003c/code\u003e\u003c/a\u003e [JEWEL-1158, JEWEL-1159] Fix multiple issues with text context menus\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/464d56e0841dc5b6aa32e9e143184fe201ee043d\"\u003e\u003ccode\u003e464d56e\u003c/code\u003e\u003c/a\u003e IJPL-219405 [build scripts]: using an \u003ca href=\"https://github.com/arg\"\u003e\u003ccode\u003e@​arg\u003c/code\u003e\u003c/a\u003e file in the Windows script launche...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/09f748d06818af7faf4075d8726c2a12dce0a1b5\"\u003e\u003ccode\u003e09f748d\u003c/code\u003e\u003c/a\u003e Move \u003ccode\u003ewithImage\u003c/code\u003e method in GotItTooltip API to \u003ccode\u003eapi-dump-unreviewed\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/03394356707541956fceabe4096b70e90d51dbd5\"\u003e\u003ccode\u003e0339435\u003c/code\u003e\u003c/a\u003e IJPL-209376 light virtual files can have any context\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/00ff371a5cc8815cfdaaf5dfa4e14c3d4e77bc85\"\u003e\u003ccode\u003e00ff371\u003c/code\u003e\u003c/a\u003e PY-85473/PY-85475 black/lsp modal use of \u003ccode\u003eforSdk\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/f9fb715e80c3395d5e8c188f8e3ec06d7eab23fd\"\u003e\u003ccode\u003ef9fb715\u003c/code\u003e\u003c/a\u003e [python] RELEASE-578: PyCharm 2025.3 RC\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/9465c4b585c30f2bf1c0cd2a72ce15ff289eb1fd\"\u003e\u003ccode\u003e9465c4b\u003c/code\u003e\u003c/a\u003e PY-25989 PY-84544 Widen types during type parameters substitution\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/3e9fa8d2dd7bcecc88790568ca618a6de810211d\"\u003e\u003ccode\u003e3e9fa8d\u003c/code\u003e\u003c/a\u003e [python]: PY-85585 : Do not display vens as system pythons in \u0026quot;Add new interp...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/intellij-community/commit/f26e31b994d363b7485d9d3857616863ce4ea19b\"\u003e\u003ccode\u003ef26e31b\u003c/code\u003e\u003c/a\u003e [python]: PY-85585 : (WIP) Introduce method to map errors\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/intellij-community/compare/pycharm/251.23536.40...pycharm/253.28294.256\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi` from 0.120.1 to 0.123.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.123.5\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Allow using dependables with \u003ccode\u003efunctools.partial()\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/9753\"\u003e#9753\u003c/a\u003e by \u003ca href=\"https://github.com/lieryan\"\u003e\u003ccode\u003e@​lieryan\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✨ Add support for wrapped functions (e.g. \u003ccode\u003e@functools.wraps()\u003c/code\u003e) used with forward references. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/5077\"\u003e#5077\u003c/a\u003e by \u003ca href=\"https://github.com/lucaswiman\"\u003e\u003ccode\u003e@​lucaswiman\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✨ Handle wrapped dependencies. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/9555\"\u003e#9555\u003c/a\u003e by \u003ca href=\"https://github.com/phy1729\"\u003e\u003ccode\u003e@​phy1729\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix optional sequence handling with new union syntax from Python 3.10. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14430\"\u003e#14430\u003c/a\u003e 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\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔥 Remove dangling extra condiitonal no longer needed. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14435\"\u003e#14435\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e♻️ Refactor internals, update \u003ccode\u003eis_coroutine\u003c/code\u003e check to reuse internal supported variants (unwrap, check class). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14434\"\u003e#14434\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🌐 Sync German docs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14367\"\u003e#14367\u003c/a\u003e by \u003ca href=\"https://github.com/nilslindemann\"\u003e\u003ccode\u003e@​nilslindemann\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.123.4\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix OpenAPI schema support for computed fields when using \u003ccode\u003eseparate_input_output_schemas=False\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/13207\"\u003e#13207\u003c/a\u003e by \u003ca href=\"https://github.com/vgrafe\"\u003e\u003ccode\u003e@​vgrafe\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Fix docstring of \u003ccode\u003eservers\u003c/code\u003e parameter. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14405\"\u003e#14405\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.123.3\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix Query\\Header\\Cookie parameter model alias. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14360\"\u003e#14360\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🐛 Fix optional sequence handling in \u003ccode\u003eserialize sequence value\u003c/code\u003e with Pydantic V2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14297\"\u003e#14297\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.123.2\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix unformatted \u003ccode\u003e{type_}\u003c/code\u003e in FastAPIError. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14416\"\u003e#14416\u003c/a\u003e by \u003ca href=\"https://github.com/Just-Helpful\"\u003e\u003ccode\u003e@​Just-Helpful\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🐛 Fix parsing extra non-body parameter list. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14356\"\u003e#14356\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🐛 Fix parsing extra \u003ccode\u003eForm\u003c/code\u003e parameter list. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14303\"\u003e#14303\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🐛 Fix support for form values with empty strings interpreted as missing (\u003ccode\u003eNone\u003c/code\u003e if that's the default), for compatibility with HTML forms. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/13537\"\u003e#13537\u003c/a\u003e by \u003ca href=\"https://github.com/MarinPostma\"\u003e\u003ccode\u003e@​MarinPostma\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Add tip on how to install \u003ccode\u003epip\u003c/code\u003e in case of \u003ccode\u003eNo module named pip\u003c/code\u003e error in \u003ccode\u003evirtual-environments.md\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14211\"\u003e#14211\u003c/a\u003e by \u003ca href=\"https://github.com/zadevhub\"\u003e\u003ccode\u003e@​zadevhub\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update Primary Key notes for the SQL databases tutorial to avoid confusion. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14120\"\u003e#14120\u003c/a\u003e by \u003ca href=\"https://github.com/FlaviusRaducu\"\u003e\u003ccode\u003e@​FlaviusRaducu\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Clarify estimation note in documentation. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14070\"\u003e#14070\u003c/a\u003e by \u003ca href=\"https://github.com/SaisakthiM\"\u003e\u003ccode\u003e@​SaisakthiM\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.123.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/fastapi/fastapi/commit/c57ac7bdf3613798c94caceff562a41fa16d4a2d\"\u003e\u003ccode\u003ec57ac7b\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.123.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/3c440c762a8b49d13f54fb586467e7870f9604b3\"\u003e\u003ccode\u003e3c440c7\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/982448661630e2f412f18a192eed29d0da4a8fb1\"\u003e\u003ccode\u003e9824486\u003c/code\u003e\u003c/a\u003e ✨ Allow using dependables with \u003ccode\u003efunctools.partial()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/9753\"\u003e#9753\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/aee8e78078e8a7f2736d3cab7a1cb7197356951c\"\u003e\u003ccode\u003eaee8e78\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/f4a17b7568514092f8a65e1863a32d5c67a4d842\"\u003e\u003ccode\u003ef4a17b7\u003c/code\u003e\u003c/a\u003e 🌐 Sync German docs (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14367\"\u003e#14367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4ade6d62e2274e596e396dfde368d32879d935b6\"\u003e\u003ccode\u003e4ade6d6\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/1c1e584abd5cb98920bf22966f7a8b79d3ec64be\"\u003e\u003ccode\u003e1c1e584\u003c/code\u003e\u003c/a\u003e ✨ Add support for wrapped functions (e.g. \u003ccode\u003e@functools.wraps()\u003c/code\u003e) used with for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/930b27e5fa32ce150ddcea61f0c913435ae71c83\"\u003e\u003ccode\u003e930b27e\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/80d69ae0bb393c728c61c41086b770237b7b676c\"\u003e\u003ccode\u003e80d69ae\u003c/code\u003e\u003c/a\u003e 🐛 Fix optional sequence handling with new union syntax from Python 3.10 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14430\"\u003e#14430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cff2236dacb7aedcaf2d2de0873cfbc9bb2b897a\"\u003e\u003ccode\u003ecff2236\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.120.1...0.123.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `starlette` from 0.49.1 to 0.50.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/releases\"\u003estarlette's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.50.0\u003c/h2\u003e\n\u003ch2\u003eRemoved\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3061\"\u003e#3061\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.49.3...0.50.0\"\u003ehttps://github.com/Kludex/starlette/compare/0.49.3...0.50.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.49.3\u003c/h2\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRelax strictness on \u003ccode\u003eMiddleware\u003c/code\u003e type \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3059\"\u003e#3059\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.49.2...0.49.3\"\u003ehttps://github.com/Kludex/starlette/compare/0.49.2...0.49.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.49.2\u003c/h2\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore \u003ccode\u003eif-modified-since\u003c/code\u003e header if \u003ccode\u003eif-none-match\u003c/code\u003e is present in \u003ccode\u003eStaticFiles\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3044\"\u003e#3044\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.49.1...0.49.2\"\u003ehttps://github.com/Kludex/starlette/compare/0.49.1...0.49.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/blob/main/docs/release-notes.md\"\u003estarlette's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.50.0 (November 1, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 support \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3061\"\u003e#3061\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.49.3 (November 1, 2025)\u003c/h2\u003e\n\u003cp\u003eThis is the last release that supports Python 3.9, which will be dropped in the next minor release.\u003c/p\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eRelax strictness on \u003ccode\u003eMiddleware\u003c/code\u003e type \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3059\"\u003e#3059\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.49.2 (November 1, 2025)\u003c/h2\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore \u003ccode\u003eif-modified-since\u003c/code\u003e header if \u003ccode\u003eif-none-match\u003c/code\u003e is present in \u003ccode\u003eStaticFiles\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3044\"\u003e#3044\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/4941b4a04993d087dea66e9287fe9472babee879\"\u003e\u003ccode\u003e4941b4a\u003c/code\u003e\u003c/a\u003e Version 0.50.0 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3063\"\u003e#3063\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/a0499f60a6f13b8b42381d70bafc076b6ece4eee\"\u003e\u003ccode\u003ea0499f6\u003c/code\u003e\u003c/a\u003e Drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3061\"\u003e#3061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/de3ffecaeadd34612f71495374f5853edbda1bf2\"\u003e\u003ccode\u003ede3ffec\u003c/code\u003e\u003c/a\u003e Version 0.49.3 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3062\"\u003e#3062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/c4433960ccc07289e0963df94dc5c2746f07ca1a\"\u003e\u003ccode\u003ec443396\u003c/code\u003e\u003c/a\u003e Relax strictness on \u003ccode\u003eMiddleware\u003c/code\u003e type (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3059\"\u003e#3059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/85bf0275fbf26f5a7fef539a03bebfeb125b9ea3\"\u003e\u003ccode\u003e85bf027\u003c/code\u003e\u003c/a\u003e Version 0.49.2 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3058\"\u003e#3058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/3d480dd7d5adf474d0736c67a2a3064e88226837\"\u003e\u003ccode\u003e3d480dd\u003c/code\u003e\u003c/a\u003e Ignore \u003ccode\u003eif-modified-since\u003c/code\u003e if \u003ccode\u003eif-none-match\u003c/code\u003e is present (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3057\"\u003e#3057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/da0605243010715356be69693a524f2300011948\"\u003e\u003ccode\u003eda06052\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3056\"\u003e#3056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/34caa9900f47b9ab5afffa5f4ee148a00940f622\"\u003e\u003ccode\u003e34caa99\u003c/code\u003e\u003c/a\u003e Add groups configuration for GitHub Actions (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3055\"\u003e#3055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Kludex/starlette/compare/0.49.1...0.50.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `strawberry-graphql[fastapi]` from 0.284.1 to 0.287.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/strawberry-graphql/strawberry/releases\"\u003estrawberry-graphql[fastapi]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e🍓 0.287.0\u003c/h2\u003e\n\u003cp\u003eChange \u003ccode\u003estrawberry.http.base.BaseView.encode_json()\u003c/code\u003e type hint to \u003ccode\u003estr | bytes\u003c/code\u003e and adjust dependent code appropriately.\u003c/p\u003e\n\u003cp\u003eReleases contributed by \u003ca href=\"https://github.com/Brandieee\"\u003e\u003ccode\u003e@​Brandieee\u003c/code\u003e\u003c/a\u003e via \u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4054\"\u003e#4054\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e🍓 0.286.1\u003c/h2\u003e\n\u003cp\u003eSet Content-Type to \u003ccode\u003etext/plain\u003c/code\u003e for exceptions so that these are displayed\ncorrectly.\u003c/p\u003e\n\u003cp\u003eReleases contributed by \u003ca href=\"https://github.com/mgorven\"\u003e\u003ccode\u003e@​mgorven\u003c/code\u003e\u003c/a\u003e via \u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4037\"\u003e#4037\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e🍓 0.286.0\u003c/h2\u003e\n\u003cp\u003eThis release changes \u003ccode\u003e_enum_definition\u003c/code\u003e to \u003ccode\u003e__strawberry_definition__\u003c/code\u003e, this is a follow up to previous\ninternal changes. If you were relying on \u003ccode\u003e_enum_definition\u003c/code\u003e you should update your code to use \u003ccode\u003e__strawberry_definition__\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eWe also expose \u003ccode\u003ehas_enum_definition\u003c/code\u003e to check if a type is a strawberry enum definition.\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003efrom enum import Enum\nimport strawberry\nfrom strawberry.types.enum import StrawberryEnumDefinition, has_enum_definition\n\u003cp\u003e\u003ca href=\"https://github.com/strawberry\"\u003e\u003ccode\u003e@​strawberry\u003c/code\u003e\u003c/a\u003e.enum\nclass ExampleEnum(Enum):\npass\u003c/p\u003e\n\u003cp\u003ehas_enum_definition(ExampleEnum)  # True\u003c/p\u003e\n\u003ch1\u003eNow you can use ExampleEnum.\u003cstrong\u003estrawberry_definition\u003c/strong\u003e to access the enum definition\u003c/h1\u003e\n\u003cp\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eReleases contributed by \u003ca href=\"https://github.com/Ckk3\"\u003e\u003ccode\u003e@​Ckk3\u003c/code\u003e\u003c/a\u003e via \u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/3999\"\u003e#3999\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e🍓 0.285.0\u003c/h2\u003e\n\u003cp\u003eThis release removes support for Apollo Federation v1 and improves Federation v2 support with explicit version control and new directives.\u003c/p\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eRemoved support for Apollo Federation v1\u003c/strong\u003e: All schemas now use Federation v2\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRemoved \u003ccode\u003eenable_federation_2\u003c/code\u003e parameter\u003c/strong\u003e: Replaced with \u003ccode\u003efederation_version\u003c/code\u003e parameter\u003c/li\u003e\n\u003cli\u003eFederation v2 is now always enabled with version 2.11 as the default\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMigration\u003c/h2\u003e\n\u003ch3\u003eIf you were using \u003ccode\u003eenable_federation_2=True\u003c/code\u003e\u003c/h3\u003e\n\u003cp\u003eRemove the parameter:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt; \n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/strawberry-graphql/strawberry/blob/main/CHANGELOG.md\"\u003estrawberry-graphql[fastapi]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.287.0 - 2025-11-22\u003c/h2\u003e\n\u003cp\u003eChange \u003ccode\u003estrawberry.http.base.BaseView.encode_json()\u003c/code\u003e type hint to \u003ccode\u003estr | bytes\u003c/code\u003e and adjust dependent code appropriately.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/Brandieee\"\u003eDavid\u003c/a\u003e via [PR \u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4054\"\u003e#4054\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/pull/4054/\"\u003estrawberry-graphql/strawberry#4054\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003e0.286.1 - 2025-11-21\u003c/h2\u003e\n\u003cp\u003eSet Content-Type to \u003ccode\u003etext/plain\u003c/code\u003e for exceptions so that these are displayed\ncorrectly.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/mgorven\"\u003eMichael Gorven\u003c/a\u003e via [PR \u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4037\"\u003e#4037\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/pull/4037/\"\u003estrawberry-graphql/strawberry#4037\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003e0.286.0 - 2025-11-18\u003c/h2\u003e\n\u003cp\u003eThis release changes \u003ccode\u003e_enum_definition\u003c/code\u003e to \u003ccode\u003e__strawberry_definition__\u003c/code\u003e, this is a follow up to previous\ninternal changes. If you were relying on \u003ccode\u003e_enum_definition\u003c/code\u003e you should update your code to use \u003ccode\u003e__strawberry_definition__\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eWe also expose \u003ccode\u003ehas_enum_definition\u003c/code\u003e to check if a type is a strawberry enum definition.\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003efrom enum import Enum\nimport strawberry\nfrom strawberry.types.enum import StrawberryEnumDefinition, has_enum_definition\n\u003cp\u003e\u003ca href=\"https://github.com/strawberry\"\u003e\u003ccode\u003e@​strawberry\u003c/code\u003e\u003c/a\u003e.enum\nclass ExampleEnum(Enum):\npass\u003c/p\u003e\n\u003cp\u003ehas_enum_definition(ExampleEnum)  # True\u003c/p\u003e\n\u003ch1\u003eNow you can use ExampleEnum.\u003cstrong\u003estrawberry_definition\u003c/strong\u003e to access the enum definition\u003c/h1\u003e\n\u003cp\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/Ckk3\"\u003eLuis Gustavo\u003c/a\u003e via [PR \u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/3999\"\u003e#3999\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/pull/3999/\"\u003estrawberry-graphql/strawberry#3999\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003e0.285.0 - 2025-11-10\u003c/h2\u003e\n\u003cp\u003eThis release removes support for Apollo Federation v1 and improves Federation v2 support with explicit version control and new directives.\u003c/p\u003e\n\u003ch2\u003eBreaking Changes\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/strawberry-graphql/strawberry/commit/b58982ba8e771ea422126b9da0f801020ae8e05b\"\u003e\u003ccode\u003eb58982b\u003c/code\u003e\u003c/a\u003e Release 🍓 0.287.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/97d9b521b95aae590c3d8b83f37ae8e3c4713aca\"\u003e\u003ccode\u003e97d9b52\u003c/code\u003e\u003c/a\u003e Update encode_json type hint to str | bytes (\u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4054\"\u003e#4054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/bdb57b5e4b59e79c252f2ea7104bdf6fb1c0639a\"\u003e\u003ccode\u003ebdb57b5\u003c/code\u003e\u003c/a\u003e Release 🍓 0.286.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/2437857582b3678222d20ddc318c53d6783f120e\"\u003e\u003ccode\u003e2437857\u003c/code\u003e\u003c/a\u003e Fix Content-Type for HTTP exceptions (\u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4037\"\u003e#4037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/2865feac95b0fa915a2a517ff8cbee819626e97f\"\u003e\u003ccode\u003e2865fea\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4036\"\u003e#4036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/223970771dd682b21b19a4e16fbdc67d11d41ad0\"\u003e\u003ccode\u003e2239707\u003c/code\u003e\u003c/a\u003e Release 🍓 0.286.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/9baeb37e8016e7500047ca021474c833f0c6c04b\"\u003e\u003ccode\u003e9baeb37\u003c/code\u003e\u003c/a\u003e Replace EnumDefinition with StrawberryEnum (\u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/3999\"\u003e#3999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/043d68520e30afd8e6d8917e3b21e049459664e9\"\u003e\u003ccode\u003e043d685\u003c/code\u003e\u003c/a\u003e Release 🍓 0.285.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/211365aa087b5fb012270306f8c58bc01da034de\"\u003e\u003ccode\u003e211365a\u003c/code\u003e\u003c/a\u003e Improve support for Apollo Federation; Remove support for Federation 1 (\u003ca href=\"https://redirect.github.com/strawberry-graphql/strawberry/issues/4045\"\u003e#4045\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/strawberry-graphql/strawberry/commit/1a4768e9edb5ca6e65e88199bfd5a0c33021c2b1\"\u003e\u003ccode\u003e1a4768e\u003c/code\u003e\u003c/a\u003e Release 🍓 0.284.4\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/strawberry-graphql/strawberry/compare/0.284.1...0.287.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `beautifulsoup4` from 4.11.1 to 4.14.3\n\nUpdates `mypy` from 1.18.2 to 1.19.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\u003ch3\u003eDrop Support for Python 3.9\u003c/h3\u003e\n\u003cp\u003eMypy no longer supports running with Python 3.9, which has reached end-of-life.\nWhen running mypy with Python 3.10+, it is still possible to type check code\nthat needs to support Python 3.9 with the \u003ccode\u003e--python-version 3.9\u003c/code\u003e argument.\nSupport for this will be dropped in the first half of 2026!\u003c/p\u003e\n\u003cp\u003eContributed by Marc Mueller (PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20156\"\u003e20156\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003eMypy 1.19\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.19.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\u003ePython 3.9 Support Ending Soon\u003c/h3\u003e\n\u003cp\u003eThis is the last mypy feature release that supports Python 3.9, which reached\nend of life in October 2025.\u003c/p\u003e\n\u003ch3\u003ePerformance Improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch to a more dynamic SCC processing logic (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20053\"\u003e20053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSpeed up type aliases (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19810\"\u003e19810\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed‑Format Cache Improvements\u003c/h3\u003e\n\u003cp\u003eMypy uses a cache by default to speed up incremental runs by reusing partial results\nfrom earlier runs. Mypy 1.18 added a new binary fixed-format cache representation as\nan experimental feature. The feature is no longer experimental, and we are planning\nto enable it by default in a future mypy release (possibly 1.20), since it's faster\nand uses less space than the original, JSON-based cache format. Use\n\u003ccode\u003e--fixed-format-cache\u003c/code\u003e to enable the fixed-format cache.\u003c/p\u003e\n\u003cp\u003eMypy now has an extra dependency on the \u003ccode\u003elibrt\u003c/code\u003e PyPI package, as it's needed for\ncache serialization and deserialization.\u003c/p\u003e\n\u003cp\u003eMypy ships with a tool to convert fixed-format cache files to the old JSON format.\nExample of how to use this:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e$ python -m mypy.exportjson .mypy_cache/.../my_module.data.ff\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/0f068c9ec604daa09e69c92545b059f4b44f566e\"\u003e\u003ccode\u003e0f068c9\u003c/code\u003e\u003c/a\u003e Remove +dev\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/6d5cf52e67da306b62455cdce4ce9a9ccec35d02\"\u003e\u003ccode\u003e6d5cf52\u003c/code\u003e\u003c/a\u003e Various updates to 1.19 changelog (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20304\"\u003e#20304\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/3c813083b27c87cf3a32e7422191b02bf59fab6e\"\u003e\u003ccode\u003e3c81308\u003c/code\u003e\u003c/a\u003e Add draft version of 1.19 release notes (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20296\"\u003e#20296\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/1999a20e9898f673fa2f4c9a91790c075141ba71\"\u003e\u003ccode\u003e1999a20\u003c/code\u003e\u003c/a\u003e [mypyc] librt base64: use existing SIMD CPU dispatch by customizing build fla...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/1b94fbb9fbc581de7e057d71e9892e3acbf9a7d3\"\u003e\u003ccode\u003e1b94fbb\u003c/code\u003e\u003c/a\u003e [mypyc] Fix vtable pointer with inherited dunder new (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20302\"\u003e#20302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/13369cb25fe450f755f63e59156b86df84c08b3d\"\u003e\u003ccode\u003e13369cb\u003c/code\u003e\u003c/a\u003e [mypyc] Fix crash on super in generator (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20291\"\u003e#20291\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a087a5894935cfdbc2eba27a6d04ebca38fd6659\"\u003e\u003ccode\u003ea087a58\u003c/code\u003e\u003c/a\u003e Update import map when new modules added (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20271\"\u003e#20271\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/35e843cc38cedc1bdf87d9937c06d51189ad0e45\"\u003e\u003ccode\u003e35e843c\u003c/code\u003e\u003c/a\u003e [mypyc] Add efficient librt.base64.b64decode (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20263\"\u003e#20263\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/094f66dc742cec2d69add9296fb21cdef50624d0\"\u003e\u003ccode\u003e094f66d\u003c/code\u003e\u003c/a\u003e [mypyc] Add \u003cstrong\u003erepr\u003c/strong\u003e to AssignmentTarget subclasses (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20258\"\u003e#20258\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/0738db3f9d336622923c7ee143e1c3adf7600a31\"\u003e\u003ccode\u003e0738db3\u003c/code\u003e\u003c/a\u003e Do not push partial types to the binder (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20202\"\u003e#20202\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.18.2...v1.19.0\"\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 `flake8` to 7.3.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/c48217e1fc006c2dddd14df54e83b67da15de5cd\"\u003e\u003ccode\u003ec48217e\u003c/code\u003e\u003c/a\u003e Release 7.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/f9e0f33281d5bb892cae2c674ac398439d99c732\"\u003e\u003ccode\u003ef9e0f33\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1986\"\u003e#1986\u003c/a\u003e from PyCQA/document-f542\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/6bcdb628597fa2d03494965089ff87a492ffc1e9\"\u003e\u003ccode\u003e6bcdb62\u003c/code\u003e\u003c/a\u003e document F542\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/70a15b8890d5bdf8c449ebb1b5259bd0140cc16b\"\u003e\u003ccode\u003e70a15b8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1985\"\u003e#1985\u003c/a\u003e from PyCQA/upgrade-deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/4941a3e32e54488698ecbc23993bfeb2a60c0fc5\"\u003e\u003ccode\u003e4941a3e\u003c/code\u003e\u003c/a\u003e upgrade pyflakes / pycodestyle\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/23e4005c5501999c29e1e3774de7ed18d1e4e22d\"\u003e\u003ccode\u003e23e4005\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1983\"\u003e#1983\u003c/a\u003e from PyCQA/py314\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/019424b80d3d7d5d8a2a1638f5877080546e3f46\"\u003e\u003ccode\u003e019424b\u003c/code\u003e\u003c/a\u003e add support for t-strings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/6b6f3d5fefecc994a06f425c18c3cddc9b71e4a4\"\u003e\u003ccode\u003e6b6f3d5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1980\"\u003e#1980\u003c/a\u003e from PyCQA/asottile-patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/8dfa6695b4fb1e1401b357367a0a71037d29f6aa\"\u003e\u003ccode\u003e8dfa669\u003c/code\u003e\u003c/a\u003e add rtd sphinx config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/ce3411118382d9332feb2749c8f417d10bfa2584\"\u003e\u003ccode\u003ece34111\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1976\"\u003e#1976\u003c/a\u003e from PyCQA/document-f824\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pycqa/flake8/compare/5.0.4...7.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/pantsbuild/pants/pull/22929","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/pantsbuild%2Fpants/issues/22929","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/22929/packages"}},{"old_version":"1.7.0","new_version":"1.8.6","update_type":"minor","path":null,"pr_created_at":"2025-11-25T10:52:15.000Z","version_change":"1.7.0 → 1.8.6","issue":{"uuid":"3662533526","node_id":"PR_kwDOPF_5m861Y_wt","number":76,"state":"open","title":"chore(python)(deps): bump the python-dependencies group across 1 directory with 73 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-11-25T10:52:15.000Z","updated_at":"2025-11-25T13:02:22.164Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(python)(deps): bump","group_name":"python-dependencies","update_count":73,"packages":[{"name":"arrow","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/arrow-py/arrow"},{"name":"asttokens","old_version":"3.0.0","new_version":"3.0.1","repository_url":"https://github.com/gristlabs/asttokens"},{"name":"attrs","old_version":"25.3.0","new_version":"25.4.0","repository_url":"https://github.com/sponsors/hynek"},{"name":"bleach","old_version":"6.2.0","new_version":"6.3.0","repository_url":"https://github.com/mozilla/bleach"},{"name":"blinker","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/pallets-eco/blinker"},{"name":"build","old_version":"1.2.2.post1","new_version":"1.3.0","repository_url":"https://github.com/pypa/build"},{"name":"cachecontrol","old_version":"0.14.3","new_version":"0.14.4","repository_url":"https://github.com/psf/cachecontrol"},{"name":"cachetools","old_version":"6.2.0","new_version":"6.2.2","repository_url":"https://github.com/tkem/cachetools"},{"name":"charset-normalizer","old_version":"3.4.0","new_version":"3.4.4","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"cli-helpers","old_version":"2.3.1","new_version":"2.7.0","repository_url":"https://github.com/dbcli/cli_helpers"},{"name":"click","old_version":"8.1.7","new_version":"8.3.1","repository_url":"https://github.com/pallets/click"},{"name":"contourpy","old_version":"1.3.2","new_version":"1.3.3","repository_url":"https://github.com/contourpy/contourpy"},{"name":"coverage","old_version":"7.3.4","new_version":"7.12.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"deprecated","old_version":"1.2.18","new_version":"1.3.1","repository_url":"https://github.com/laurent-laporte-pro/deprecated"},{"name":"docutils","old_version":"0.18.1","new_version":"0.22.3","repository_url":"https://github.com/rtfd/recommonmark"},{"name":"fastapi","old_version":"0.121.2","new_version":"0.122.0","repository_url":"https://github.com/fastapi/fastapi"},{"name":"flask","old_version":"3.0.3","new_version":"3.1.2","repository_url":"https://github.com/pallets/flask"},{"name":"freezegun","old_version":"1.3.1","new_version":"1.5.5","repository_url":"https://github.com/spulec/freezegun"},{"name":"fsspec","old_version":"2025.9.0","new_version":"2025.10.0","repository_url":"https://github.com/fsspec/filesystem_spec"},{"name":"google-auth","old_version":"2.41.1","new_version":"2.43.0","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"google-auth-oauthlib","old_version":"1.2.2","new_version":"1.2.3","repository_url":"https://github.com/GoogleCloudPlatform/google-auth-library-python-oauthlib"},{"name":"grpcio","old_version":"1.75.1","new_version":"1.76.0","repository_url":"https://github.com/grpc/grpc"},{"name":"h5py","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/h5py/h5py"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"idna","old_version":"3.10","new_version":"3.11","repository_url":"https://github.com/kjd/idna"},{"name":"iniconfig","old_version":"2.1.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"ipython","old_version":"9.6.0","new_version":"9.7.0","repository_url":"https://github.com/ipython/ipython"},{"name":"ipywidgets","old_version":"8.1.7","new_version":"8.1.8","repository_url":"https://github.com/jupyter-widgets/ipywidgets"},{"name":"jiter","old_version":"0.11.0","new_version":"0.12.0","repository_url":"https://github.com/pydantic/jiter"},{"name":"jupyter","old_version":"1.0.0","new_version":"1.1.1"},{"name":"jupyter-core","old_version":"5.8.1","new_version":"5.9.1","repository_url":"https://github.com/jupyter/jupyter_core"},{"name":"jupyterlab-widgets","old_version":"3.0.15","new_version":"3.0.16","repository_url":"https://github.com/jupyter-widgets/ipywidgets"},{"name":"lark","old_version":"1.3.0","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"libcst","old_version":"1.7.0","new_version":"1.8.6","repository_url":"https://github.com/Instagram/LibCST"},{"name":"litecli","old_version":"1.12.3","new_version":"1.17.0","repository_url":"https://github.com/dbcli/litecli"},{"name":"markdown","old_version":"3.9","new_version":"3.10","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"matplotlib-inline","old_version":"0.1.7","new_version":"0.2.1","repository_url":"https://github.com/ipython/matplotlib-inline"},{"name":"ml-dtypes","old_version":"0.5.3","new_version":"0.5.4","repository_url":"https://github.com/jax-ml/ml_dtypes"},{"name":"mutmut","old_version":"3.3.1","new_version":"3.4.0","repository_url":"https://github.com/boxed/mutmut"},{"name":"mypy","old_version":"1.5.1","new_version":"1.18.2","repository_url":"https://github.com/python/mypy"},{"name":"networkx","old_version":"3.5","new_version":"3.6","repository_url":"https://github.com/networkx/networkx"},{"name":"numpy","old_version":"2.0.2","new_version":"2.3.5","repository_url":"https://github.com/numpy/numpy"},{"name":"objection","old_version":"1.11.0","new_version":"1.12.2","repository_url":"https://github.com/sensepost/objection"},{"name":"openai","old_version":"2.8.0","new_version":"2.8.1","repository_url":"https://github.com/openai/openai-python"},{"name":"optree","old_version":"0.17.0","new_version":"0.18.0","repository_url":"https://github.com/metaopt/optree"},{"name":"packageurl-python","old_version":"0.17.5","new_version":"0.17.6","repository_url":"https://github.com/package-url/packageurl-python"},{"name":"pep517","old_version":"0.13.0","new_version":"0.13.1","repository_url":"https://github.com/pypa/pep517"},{"name":"pexpect","old_version":"4.8.0","new_version":"4.9.0","repository_url":"https://github.com/pexpect/pexpect"},{"name":"prompt-toolkit","old_version":"3.0.48","new_version":"3.0.52","repository_url":"https://github.com/prompt-toolkit/python-prompt-toolkit"},{"name":"psutil","old_version":"7.1.0","new_version":"7.1.3","repository_url":"https://github.com/giampaolo/psutil"},{"name":"pycodestyle","old_version":"2.10.0","new_version":"2.14.0","repository_url":"https://github.com/PyCQA/pycodestyle"},{"name":"pyflakes","old_version":"3.0.1","new_version":"3.4.0","repository_url":"https://github.com/PyCQA/pyflakes"},{"name":"pyparsing","old_version":"3.0.9","new_version":"3.2.5","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pytest-mock","old_version":"3.12.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-timeout","old_version":"2.2.0","new_version":"2.4.0","repository_url":"https://github.com/pytest-dev/pytest-timeout"},{"name":"referencing","old_version":"0.36.2","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"rpds-py","old_version":"0.27.1","new_version":"0.29.0","repository_url":"https://github.com/crate-py/rpds"},{"name":"scipy","old_version":"1.15.3","new_version":"1.16.3","repository_url":"https://github.com/scipy/scipy"},{"name":"seaborn","old_version":"0.12.2","new_version":"0.13.2","repository_url":"https://github.com/mwaskom/seaborn"},{"name":"sqlparse","old_version":"0.5.1","new_version":"0.5.3","repository_url":"https://github.com/andialbrecht/sqlparse"},{"name":"starlette","old_version":"0.49.3","new_version":"0.50.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"termcolor","old_version":"3.1.0","new_version":"3.2.0","repository_url":"https://github.com/termcolor/termcolor"},{"name":"textual","old_version":"6.2.1","new_version":"6.6.0","repository_url":"https://github.com/Textualize/textual"},{"name":"tinycss2","old_version":"1.4.0","new_version":"1.5.1","repository_url":"https://github.com/Kozea/tinycss2"},{"name":"types-requests","old_version":"2.31.0.2","new_version":"2.32.4.20250913","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.2.14","repository_url":"https://github.com/jquast/wcwidth"},{"name":"websocket-client","old_version":"1.8.0","new_version":"1.9.0","repository_url":"https://github.com/websocket-client/websocket-client"},{"name":"werkzeug","old_version":"3.1.1","new_version":"3.1.3","repository_url":"https://github.com/pallets/werkzeug"},{"name":"widgetsnbextension","old_version":"4.0.14","new_version":"4.0.15"},{"name":"celery","old_version":"5.4.0","new_version":"5.5.3","repository_url":"https://github.com/celery/celery"},{"name":"celery","old_version":"5.4.0","new_version":"5.5.3","repository_url":"https://github.com/celery/celery"},{"name":"kombu","old_version":"5.4.2","new_version":"5.6.0","repository_url":"https://github.com/celery/kombu"},{"name":"amqp","old_version":"5.2.0","new_version":"5.3.1","repository_url":"https://github.com/celery/py-amqp"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-dependencies group with 73 updates in the /python-ai-service directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [arrow](https://github.com/arrow-py/arrow) | `1.3.0` | `1.4.0` |\n| [asttokens](https://github.com/gristlabs/asttokens) | `3.0.0` | `3.0.1` |\n| [attrs](https://github.com/sponsors/hynek) | `25.3.0` | `25.4.0` |\n| [bleach](https://github.com/mozilla/bleach) | `6.2.0` | `6.3.0` |\n| [blinker](https://github.com/pallets-eco/blinker) | `1.8.2` | `1.9.0` |\n| [build](https://github.com/pypa/build) | `1.2.2.post1` | `1.3.0` |\n| [cachecontrol](https://github.com/psf/cachecontrol) | `0.14.3` | `0.14.4` |\n| [cachetools](https://github.com/tkem/cachetools) | `6.2.0` | `6.2.2` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.0` | `3.4.4` |\n| [cli-helpers](https://github.com/dbcli/cli_helpers) | `2.3.1` | `2.7.0` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.3.1` |\n| [contourpy](https://github.com/contourpy/contourpy) | `1.3.2` | `1.3.3` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.3.4` | `7.12.0` |\n| [deprecated](https://github.com/laurent-laporte-pro/deprecated) | `1.2.18` | `1.3.1` |\n| [docutils](https://github.com/rtfd/recommonmark) | `0.18.1` | `0.22.3` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.121.2` | `0.122.0` |\n| [flask](https://github.com/pallets/flask) | `3.0.3` | `3.1.2` |\n| [freezegun](https://github.com/spulec/freezegun) | `1.3.1` | `1.5.5` |\n| [fsspec](https://github.com/fsspec/filesystem_spec) | `2025.9.0` | `2025.10.0` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.41.1` | `2.43.0` |\n| [google-auth-oauthlib](https://github.com/GoogleCloudPlatform/google-auth-library-python-oauthlib) | `1.2.2` | `1.2.3` |\n| [grpcio](https://github.com/grpc/grpc) | `1.75.1` | `1.76.0` |\n| [h5py](https://github.com/h5py/h5py) | `3.14.0` | `3.15.1` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.11` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.1.0` | `2.3.0` |\n| [ipython](https://github.com/ipython/ipython) | `9.6.0` | `9.7.0` |\n| [ipywidgets](https://github.com/jupyter-widgets/ipywidgets) | `8.1.7` | `8.1.8` |\n| [jiter](https://github.com/pydantic/jiter) | `0.11.0` | `0.12.0` |\n| [jupyter](https://jupyter.org) | `1.0.0` | `1.1.1` |\n| [jupyter-core](https://github.com/jupyter/jupyter_core) | `5.8.1` | `5.9.1` |\n| [jupyterlab-widgets](https://github.com/jupyter-widgets/ipywidgets) | `3.0.15` | `3.0.16` |\n| [lark](https://github.com/lark-parser/lark) | `1.3.0` | `1.3.1` |\n| [libcst](https://github.com/Instagram/LibCST) | `1.7.0` | `1.8.6` |\n| [litecli](https://github.com/dbcli/litecli) | `1.12.3` | `1.17.0` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.9` | `3.10` |\n| [matplotlib-inline](https://github.com/ipython/matplotlib-inline) | `0.1.7` | `0.2.1` |\n| [ml-dtypes](https://github.com/jax-ml/ml_dtypes) | `0.5.3` | `0.5.4` |\n| [mutmut](https://github.com/boxed/mutmut) | `3.3.1` | `3.4.0` |\n| [mypy](https://github.com/python/mypy) | `1.5.1` | `1.18.2` |\n| [networkx](https://github.com/networkx/networkx) | `3.5` | `3.6` |\n| [numpy](https://github.com/numpy/numpy) | `2.0.2` | `2.3.5` |\n| [objection](https://github.com/sensepost/objection) | `1.11.0` | `1.12.2` |\n| [openai](https://github.com/openai/openai-python) | `2.8.0` | `2.8.1` |\n| [optree](https://github.com/metaopt/optree) | `0.17.0` | `0.18.0` |\n| [packageurl-python](https://github.com/package-url/packageurl-python) | `0.17.5` | `0.17.6` |\n| [pep517](https://github.com/pypa/pep517) | `0.13.0` | `0.13.1` |\n| [pexpect](https://github.com/pexpect/pexpect) | `4.8.0` | `4.9.0` |\n| [prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) | `3.0.48` | `3.0.52` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.1.0` | `7.1.3` |\n| [pycodestyle](https://github.com/PyCQA/pycodestyle) | `2.10.0` | `2.14.0` |\n| [pyflakes](https://github.com/PyCQA/pyflakes) | `3.0.1` | `3.4.0` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.0.9` | `3.2.5` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.12.0` | `3.15.1` |\n| [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) | `2.2.0` | `2.4.0` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.36.2` | `0.37.0` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.27.1` | `0.29.0` |\n| [scipy](https://github.com/scipy/scipy) | `1.15.3` | `1.16.3` |\n| [seaborn](https://github.com/mwaskom/seaborn) | `0.12.2` | `0.13.2` |\n| [sqlparse](https://github.com/andialbrecht/sqlparse) | `0.5.1` | `0.5.3` |\n| [starlette](https://github.com/Kludex/starlette) | `0.49.3` | `0.50.0` |\n| [termcolor](https://github.com/termcolor/termcolor) | `3.1.0` | `3.2.0` |\n| [textual](https://github.com/Textualize/textual) | `6.2.1` | `6.6.0` |\n| [tinycss2](https://github.com/Kozea/tinycss2) | `1.4.0` | `1.5.1` |\n| [types-requests](https://github.com/typeshed-internal/stub_uploader) | `2.31.0.2` | `2.32.4.20250913` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.2.14` |\n| [websocket-client](https://github.com/websocket-client/websocket-client) | `1.8.0` | `1.9.0` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.1` | `3.1.3` |\n| [widgetsnbextension](http://jupyter.org) | `4.0.14` | `4.0.15` |\n| [celery](https://github.com/celery/celery) | `5.4.0` | `5.5.3` |\n| [celery[redis]](https://github.com/celery/celery) | `5.4.0` | `5.5.3` |\n| [kombu](https://github.com/celery/kombu) | `5.4.2` | `5.6.0` |\n| [amqp](https://github.com/celery/py-amqp) | `5.2.0` | `5.3.1` |\n\n\nUpdates `arrow` from 1.3.0 to 1.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/arrow-py/arrow/releases\"\u003earrow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.4.0\u003c/h2\u003e\n\u003ch2\u003eADDED\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eweek_start\u003c/code\u003e parameter to \u003ccode\u003efloor()\u003c/code\u003e and \u003ccode\u003eceil()\u003c/code\u003e methods. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1222\"\u003e#1222\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1222\"\u003earrow-py/arrow#1222\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eFORMAT_RFC3339_STRICT\u003c/code\u003e with a T separator. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1201\"\u003e#1201\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1201\"\u003earrow-py/arrow#1201\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded Macedonian in Latin locale support. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1200\"\u003e#1200\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1200\"\u003earrow-py/arrow#1200\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded Persian/Farsi locale support. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1190\"\u003e#1190\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1190\"\u003earrow-py/arrow#1190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded week and weeks to Thai locale timeframes. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1218\"\u003e#1218\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1218\"\u003earrow-py/arrow#1218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded weeks to Catalan locale. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1189\"\u003e#1189\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1189\"\u003earrow-py/arrow#1189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded Persian names of months, month-abbreviations and day-abbreviations in Gregorian calendar. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1172\"\u003e#1172\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1172\"\u003earrow-py/arrow#1172\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eCHANGED\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated Arrow to use ZoneInfo for timezones instead of pytz. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1217\"\u003e#1217\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1217\"\u003earrow-py/arrow#1217\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFIXED\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed humanize month limits. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1224\"\u003e#1224\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1224\"\u003earrow-py/arrow#1224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed type hint of \u003ccode\u003eArrow.__getattr__\u003c/code\u003e. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1171\"\u003e#1171\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1171\"\u003earrow-py/arrow#1171\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed spelling and removed poorly used expressions in Korean locale. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1181\"\u003e#1181\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1181\"\u003earrow-py/arrow#1181\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdated \u003ccode\u003eshift()\u003c/code\u003e method for issue \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1145\"\u003e#1145\u003c/a\u003e. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1194\"\u003e#1194\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1194\"\u003earrow-py/arrow#1194\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved Greek locale translations (seconds, days, \u0026quot;ago\u0026quot;, and month typo). [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1184\"\u003e#1184\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1184\"\u003earrow-py/arrow#1184\u003c/a\u003e), [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1186\"\u003e#1186\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1186\"\u003earrow-py/arrow#1186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAddressed \u003ccode\u003edatetime.utcnow\u003c/code\u003e deprecation warning. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1182\"\u003e#1182\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1182\"\u003earrow-py/arrow#1182\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eINTERNAL\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded codecov test results. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1223\"\u003e#1223\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1223\"\u003earrow-py/arrow#1223\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdated CI dependencies (actions/setup-python, actions/checkout, codecov/codecov-action, actions/cache).\u003c/li\u003e\n\u003cli\u003eAdded docstrings to parser.py. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1010\"\u003e#1010\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1010\"\u003earrow-py/arrow#1010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdated Python versions support and bumped CI dependencies. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1177\"\u003e#1177\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1177\"\u003earrow-py/arrow#1177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded dependabot for GitHub actions. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1193\"\u003e#1193\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1193\"\u003earrow-py/arrow#1193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMoved dateutil types to test requirements. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1183\"\u003e#1183\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1183\"\u003earrow-py/arrow#1183\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded documentation link for \u003ccode\u003earrow.format\u003c/code\u003e. [PR \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1180\"\u003e#1180\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/arrow-py/arrow/pull/1180\"\u003earrow-py/arrow#1180\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/arrow-py/arrow/blob/master/CHANGELOG.rst\"\u003earrow's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.0 (2025-10-18)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[ADDED] Added \u003ccode\u003eweek_start\u003c/code\u003e parameter to \u003ccode\u003efloor()\u003c/code\u003e and \u003ccode\u003eceil()\u003c/code\u003e methods. \u003ccode\u003ePR [#1222](https://github.com/arrow-py/arrow/issues/1222) \u0026lt;https://github.com/arrow-py/arrow/pull/1222\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[ADDED] Added \u003ccode\u003eFORMAT_RFC3339_STRICT\u003c/code\u003e with a T separator. \u003ccode\u003ePR [#1201](https://github.com/arrow-py/arrow/issues/1201) \u0026lt;https://github.com/arrow-py/arrow/pull/1201\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[ADDED] Added Macedonian in Latin locale support. \u003ccode\u003ePR [#1200](https://github.com/arrow-py/arrow/issues/1200) \u0026lt;https://github.com/arrow-py/arrow/pull/1200\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[ADDED] Added Persian/Farsi locale support. \u003ccode\u003ePR [#1190](https://github.com/arrow-py/arrow/issues/1190) \u0026lt;https://github.com/arrow-py/arrow/pull/1190\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[ADDED] Added week and weeks to Thai locale timeframes. \u003ccode\u003ePR [#1218](https://github.com/arrow-py/arrow/issues/1218) \u0026lt;https://github.com/arrow-py/arrow/pull/1218\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[ADDED] Added weeks to Catalan locale. \u003ccode\u003ePR [#1189](https://github.com/arrow-py/arrow/issues/1189) \u0026lt;https://github.com/arrow-py/arrow/pull/1189\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[ADDED] Added Persian names of months, month-abbreviations and day-abbreviations in Gregorian calendar. \u003ccode\u003ePR [#1172](https://github.com/arrow-py/arrow/issues/1172) \u0026lt;https://github.com/arrow-py/arrow/pull/1172\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[CHANGED] Migrated Arrow to use ZoneInfo for timezones instead of pytz. \u003ccode\u003ePR [#1217](https://github.com/arrow-py/arrow/issues/1217) \u0026lt;https://github.com/arrow-py/arrow/pull/1217\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[FIXED] Fixed humanize month limits. \u003ccode\u003ePR [#1224](https://github.com/arrow-py/arrow/issues/1224) \u0026lt;https://github.com/arrow-py/arrow/pull/1224\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[FIXED] Fixed type hint of \u003ccode\u003eArrow.__getattr__\u003c/code\u003e. \u003ccode\u003ePR [#1171](https://github.com/arrow-py/arrow/issues/1171) \u0026lt;https://github.com/arrow-py/arrow/pull/1171\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[FIXED] Fixed spelling and removed poorly used expressions in Korean locale. \u003ccode\u003ePR [#1181](https://github.com/arrow-py/arrow/issues/1181) \u0026lt;https://github.com/arrow-py/arrow/pull/1181\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[FIXED] Updated \u003ccode\u003eshift()\u003c/code\u003e method for issue \u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1145\"\u003e#1145\u003c/a\u003e. \u003ccode\u003ePR [#1194](https://github.com/arrow-py/arrow/issues/1194) \u0026lt;https://github.com/arrow-py/arrow/pull/1194\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[FIXED] Improved Greek locale translations (seconds, days, \u0026quot;ago\u0026quot;, and month typo). \u003ccode\u003ePR [#1184](https://github.com/arrow-py/arrow/issues/1184) \u0026lt;https://github.com/arrow-py/arrow/pull/1184\u0026gt;\u003c/code\u003e\u003cem\u003e, \u003ccode\u003ePR [#1186](https://github.com/arrow-py/arrow/issues/1186) \u0026lt;https://github.com/arrow-py/arrow/pull/1186\u0026gt;\u003c/code\u003e\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e[FIXED] Addressed \u003ccode\u003edatetime.utcnow\u003c/code\u003e deprecation warning. \u003ccode\u003ePR [#1182](https://github.com/arrow-py/arrow/issues/1182) \u0026lt;https://github.com/arrow-py/arrow/pull/1182\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[INTERNAL] Added codecov test results. \u003ccode\u003ePR [#1223](https://github.com/arrow-py/arrow/issues/1223) \u0026lt;https://github.com/arrow-py/arrow/pull/1223\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[INTERNAL] Updated CI dependencies (actions/setup-python, actions/checkout, codecov/codecov-action, actions/cache).\u003c/li\u003e\n\u003cli\u003e[INTERNAL] Added docstrings to parser.py. \u003ccode\u003ePR [#1010](https://github.com/arrow-py/arrow/issues/1010) \u0026lt;https://github.com/arrow-py/arrow/pull/1010\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[INTERNAL] Updated Python versions support and bumped CI dependencies. \u003ccode\u003ePR [#1177](https://github.com/arrow-py/arrow/issues/1177) \u0026lt;https://github.com/arrow-py/arrow/pull/1177\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[INTERNAL] Added dependabot for GitHub actions. \u003ccode\u003ePR [#1193](https://github.com/arrow-py/arrow/issues/1193) \u0026lt;https://github.com/arrow-py/arrow/pull/1193\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[INTERNAL] Moved dateutil types to test requirements. \u003ccode\u003ePR [#1183](https://github.com/arrow-py/arrow/issues/1183) \u0026lt;https://github.com/arrow-py/arrow/pull/1183\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003e[INTERNAL] Added documentation link for \u003ccode\u003earrow.format\u003c/code\u003e. \u003ccode\u003ePR [#1180](https://github.com/arrow-py/arrow/issues/1180) \u0026lt;https://github.com/arrow-py/arrow/pull/1180\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/arrow-py/arrow/commit/2c1f5185ad66bf3b1cf8c0812f4b4fe65ac46656\"\u003e\u003ccode\u003e2c1f518\u003c/code\u003e\u003c/a\u003e Bump release CI flow to use Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arrow-py/arrow/commit/2483bfea4ec8a4da609036aba3ce1b32cb571875\"\u003e\u003ccode\u003e2483bfe\u003c/code\u003e\u003c/a\u003e Bump changelog date\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arrow-py/arrow/commit/c61de9299733da6d4a7e8badabae43684a3f9da2\"\u003e\u003ccode\u003ec61de92\u003c/code\u003e\u003c/a\u003e Bump version and add changelog (\u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1228\"\u003e#1228\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arrow-py/arrow/commit/c3bb589536b283e3e3886d1d6bc01a6374c8e656\"\u003e\u003ccode\u003ec3bb589\u003c/code\u003e\u003c/a\u003e Update pypy CI version and update pre-commit dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arrow-py/arrow/commit/85cd905332d108303da1cbd0f2336fcae058147f\"\u003e\u003ccode\u003e85cd905\u003c/code\u003e\u003c/a\u003e Run tests on next Python release (\u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1227\"\u003e#1227\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arrow-py/arrow/commit/4c8c44aefc0e5504b9c3cbf0d6adbb0ec4aa4571\"\u003e\u003ccode\u003e4c8c44a\u003c/code\u003e\u003c/a\u003e Add week_start parameter to floor() and ceil() (\u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1222\"\u003e#1222\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arrow-py/arrow/commit/7ccbe66122ca53d90acf9c69c37aa95c81a1fe89\"\u003e\u003ccode\u003e7ccbe66\u003c/code\u003e\u003c/a\u003e add codecov test results (\u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1223\"\u003e#1223\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arrow-py/arrow/commit/05cd9b47d0db1c22b44cb739832f1b9701855313\"\u003e\u003ccode\u003e05cd9b4\u003c/code\u003e\u003c/a\u003e fix humanize month limits (\u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1224\"\u003e#1224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arrow-py/arrow/commit/ea756ea779468b0c6a9f45439dc05cfd5e71ee1e\"\u003e\u003ccode\u003eea756ea\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1220\"\u003e#1220\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arrow-py/arrow/commit/86f7520f15b2dd46f9c49f71ce5c15bbc537ed67\"\u003e\u003ccode\u003e86f7520\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/arrow-py/arrow/issues/1219\"\u003e#1219\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/arrow-py/arrow/compare/1.3.0...1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `asttokens` from 3.0.0 to 3.0.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/bdbf396fc0e006912ba82f1137dfd6b2d5aa9af2\"\u003e\u003ccode\u003ebdbf396\u003c/code\u003e\u003c/a\u003e Update mypy; add 3.14 to the CI; drop python 3.8 support (\u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/167\"\u003e#167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/f859c055e8453650e1987c5aefaaec36582d3a07\"\u003e\u003ccode\u003ef859c05\u003c/code\u003e\u003c/a\u003e Add tests for astroid v2, v3, and v4 to the CI (\u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/166\"\u003e#166\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/84ef059ba28d08816d3d881e363b9ed42bbeae3a\"\u003e\u003ccode\u003e84ef059\u003c/code\u003e\u003c/a\u003e Adapt asttokens for astroid 4.x (\u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/165\"\u003e#165\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/9db9335648659520c7c8453bc39550fa4f95d539\"\u003e\u003ccode\u003e9db9335\u003c/code\u003e\u003c/a\u003e Various links improvements (\u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/163\"\u003e#163\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/3371ebf7f48f6a731d409fffd6ba235e6a95d85b\"\u003e\u003ccode\u003e3371ebf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/161\"\u003e#161\u003c/a\u003e from gristlabs/dependabot/pip/docs/requests-2.32.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/3a60115d3efdb01efc8a6442b59fdd0071518e70\"\u003e\u003ccode\u003e3a60115\u003c/code\u003e\u003c/a\u003e Bump requests from 2.32.2 to 2.32.4 in /docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/584b51c6c084455ad4597886657783d1b661ddfa\"\u003e\u003ccode\u003e584b51c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/160\"\u003e#160\u003c/a\u003e from gristlabs/dependabot/pip/docs/urllib3-2.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/3e9d703323ce94987bf9e030bd010eae13fa15b4\"\u003e\u003ccode\u003e3e9d703\u003c/code\u003e\u003c/a\u003e Bump urllib3 from 2.2.2 to 2.5.0 in /docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/64d3f7c3637775fef832a9a9cdb78ec02da494e6\"\u003e\u003ccode\u003e64d3f7c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/158\"\u003e#158\u003c/a\u003e from gristlabs/dependabot/pip/docs/jinja2-3.1.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/9b5fb1abfb171cfb1f01c2d996cbd31e9d1f0660\"\u003e\u003ccode\u003e9b5fb1a\u003c/code\u003e\u003c/a\u003e Bump jinja2 from 3.1.4 to 3.1.6 in /docs\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/gristlabs/asttokens/compare/v3.0.0...v3.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `attrs` from 25.3.0 to 25.4.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/hynek/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bleach` from 6.2.0 to 6.3.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mozilla/bleach/blob/main/CHANGES\"\u003ebleach's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 6.3.0 (October 27th, 2025)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBackwards incompatible changes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/756\"\u003e#756\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eNone\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/758\"\u003e#758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix wbr handling. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/488\"\u003e#488\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/mozilla/bleach/commit/5546d5dbce60d08ccb99d981778d74044d646d4e\"\u003e\u003ccode\u003e5546d5d\u003c/code\u003e\u003c/a\u003e chore: prep for 6.3.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/88df3ff23fb2a43e174b3fdfe9191ef516de868a\"\u003e\u003ccode\u003e88df3ff\u003c/code\u003e\u003c/a\u003e chore: fix readthedocs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/d8b2fb45b2606515c58787c223d6605c6c70868f\"\u003e\u003ccode\u003ed8b2fb4\u003c/code\u003e\u003c/a\u003e fix: fix wbr handling (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/488\"\u003e#488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/55e48cedb20bda23940ab34753a1fb378d5d30b9\"\u003e\u003ccode\u003e55e48ce\u003c/code\u003e\u003c/a\u003e chore: add support for Python 3.14 (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/758\"\u003e#758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/a4d6cddac6e338c3d6f84c755a5fcb32e9e18fba\"\u003e\u003ccode\u003ea4d6cdd\u003c/code\u003e\u003c/a\u003e chore: drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/756\"\u003e#756\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/172d92faef543a83c6760c63c32749586cdd564b\"\u003e\u003ccode\u003e172d92f\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.6.0 to 6.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/df88612f2e9daf8f4ee23cf0e29b712d9d9147b6\"\u003e\u003ccode\u003edf88612\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.2.2 to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/cbcf6b18d19aeb7777699f9385013d0a04052b68\"\u003e\u003ccode\u003ecbcf6b1\u003c/code\u003e\u003c/a\u003e Bump actions/cache from 4.2.3 to 4.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/d9aa7ef592d57dda56e26ba31d06e1b279c58eca\"\u003e\u003ccode\u003ed9aa7ef\u003c/code\u003e\u003c/a\u003e Switch from dependabot reviewers to CODEOWNERS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/06f0f76cc68112bda3fa101d1730d5ba914d54a1\"\u003e\u003ccode\u003e06f0f76\u003c/code\u003e\u003c/a\u003e Update setuptools, wheel, and twine for devs\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mozilla/bleach/compare/v6.2.0...v6.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `blinker` from 1.8.2 to 1.9.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets-eco/blinker/releases\"\u003eblinker's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.9.0\u003c/h2\u003e\n\u003cp\u003eThis is the Blinker 1.9.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecations, or introduce potentially breaking changes. We encourage everyone to upgrade, and to use a tool such as \u003ca href=\"https://pypi.org/project/pip-tools/\"\u003epip-tools\u003c/a\u003e to pin all dependencies and control upgrades. Test with warnings treated as errors to be able to adapt to deprecation warnings early.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/blinker/1.9.0/\"\u003ehttps://pypi.org/project/blinker/1.9.0/\u003c/a\u003e\nChanges: \u003ca href=\"https://blinker.readthedocs.io/en/stable/#version-1-9-0\"\u003ehttps://blinker.readthedocs.io/en/stable/#version-1-9-0\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets-eco/blinker/milestone/1?closed=1\"\u003ehttps://github.com/pallets-eco/blinker/milestone/1?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/175\"\u003e#175\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove previously deprecated \u003ccode\u003e__version__\u003c/code\u003e, \u003ccode\u003ereceiver_connected\u003c/code\u003e, \u003ccode\u003eSignal.temporarily_connected_to\u003c/code\u003e and \u003ccode\u003eWeakNamespace\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/172\"\u003e#172\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip weakref signal cleanup if the interpreter is shutting down. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/173\"\u003e#173\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/pallets-eco/blinker/blob/main/CHANGES.rst\"\u003eblinker's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.9.0\u003c/h2\u003e\n\u003cp\u003eReleased 2024-11-08\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8. :pr:\u003ccode\u003e175\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove previously deprecated \u003ccode\u003e__version__\u003c/code\u003e, \u003ccode\u003ereceiver_connected\u003c/code\u003e,\n\u003ccode\u003eSignal.temporarily_connected_to\u003c/code\u003e and \u003ccode\u003eWeakNamespace\u003c/code\u003e. :pr:\u003ccode\u003e172\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eSkip weakref signal cleanup if the interpreter is shutting down.\n:issue:\u003ccode\u003e173\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/pallets-eco/blinker/commit/669f3a027828d19786e708b511277fabcd6b9532\"\u003e\u003ccode\u003e669f3a0\u003c/code\u003e\u003c/a\u003e release version 1.9.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/cfe116fa7912d8dcb0deee4907aa63d1efaadf5b\"\u003e\u003ccode\u003ecfe116f\u003c/code\u003e\u003c/a\u003e try disabling attestions on test pypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/16e4bd70a19353d9d7cf47e4df7de54936296377\"\u003e\u003ccode\u003e16e4bd7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/174\"\u003e#174\u003c/a\u003e from projectgus/bugfix/weakref_disconnect_shutdown\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/42561fdf065032f5c39aea04d8c3fb4db93f73f3\"\u003e\u003ccode\u003e42561fd\u003c/code\u003e\u003c/a\u003e Fix \u0026quot;Exception ignored\u0026quot; in weakref callback during interpreter shutdown.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/dcce3e97743494433025e0b68f742f3582b6ba6a\"\u003e\u003ccode\u003edcce3e9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/175\"\u003e#175\u003c/a\u003e from pallets-eco/drop-python3.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/efa95eaa080b0d4a8dcfc46ad1f387ea1ddebd97\"\u003e\u003ccode\u003eefa95ea\u003c/code\u003e\u003c/a\u003e drop support for python 3.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/82305185358d8ce21619ec0f324688a14a89c23b\"\u003e\u003ccode\u003e8230518\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/94f1202f08c6d00a9fe1ecf5c8cba9da84e4b22f\"\u003e\u003ccode\u003e94f1202\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/8c983ecd764e1d113d24522838c2a7312460b7eb\"\u003e\u003ccode\u003e8c983ec\u003c/code\u003e\u003c/a\u003e remove previously deprecated code (\u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/172\"\u003e#172\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/f5915f3bfcd9f9da0caf6cd4858bf68068c52963\"\u003e\u003ccode\u003ef5915f3\u003c/code\u003e\u003c/a\u003e set up pre-commit lite workflow\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets-eco/blinker/compare/1.8.2...1.9.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `build` from 1.2.2.post1 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/pypa/build/releases\"\u003ebuild's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--config-json\u003c/code\u003e (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/916\"\u003e#916\u003c/a\u003e, fixes issue \u003ca href=\"https://redirect.github.com/pypa/build/issues/900\"\u003e#900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8 (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/891\"\u003e#891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTest on Python 3.14, colorful help on 3.14+ (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/895\"\u003e#895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eModuleNotFoundError\u003c/code\u003e when \u003ccode\u003epip\u003c/code\u003e is not installed (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/898\"\u003e#898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDisable use of \u003ccode\u003epip install --python\u003c/code\u003e for debundled pip (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/861\"\u003e#861\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't pass no-wheel to virtualenv if it would warn (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/892\"\u003e#892\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOptimize our tests to run faster (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/871\"\u003e#871\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/872\"\u003e#872\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/738\"\u003e#738\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow running our tests without virtualenv (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/911\"\u003e#911\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix issues in our tests (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/824\"\u003e#824\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/918\"\u003e#918\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/870\"\u003e#870\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/915\"\u003e#915\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/862\"\u003e#862\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/863\"\u003e#863\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/899\"\u003e#899\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/896\"\u003e#896\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/854\"\u003e#854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse SPDX identifiers for our license metadata (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/914\"\u003e#914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse dependency-groups for our development (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/880\"\u003e#880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMention conda and update uv mention in README/docs (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/842\"\u003e#842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/816\"\u003e#816\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pypa/build/issues/917\"\u003e#917\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/build/blob/main/CHANGELOG.rst\"\u003ebuild's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.3.0 (2025-08-01)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--config-json\u003c/code\u003e\n(PR :pr:\u003ccode\u003e916\u003c/code\u003e, fixes issue :issue:\u003ccode\u003e900\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8\n(PR :pr:\u003ccode\u003e891\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eTest on Python 3.14, colorful help on 3.14+\n(PR :pr:\u003ccode\u003e895\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eModuleNotFoundError\u003c/code\u003e when \u003ccode\u003epip\u003c/code\u003e is not installed\n(PR :pr:\u003ccode\u003e898\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDisable use of \u003ccode\u003epip install --python\u003c/code\u003e for debundled pip\n(PR :pr:\u003ccode\u003e861\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDon't pass no-wheel to virtualenv if it would warn\n(PR :pr:\u003ccode\u003e892\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eOptimize our tests to run faster\n(PR :pr:\u003ccode\u003e871\u003c/code\u003e, :pr:\u003ccode\u003e872\u003c/code\u003e, :pr:\u003ccode\u003e738\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAllow running our tests without virtualenv\n(PR :pr:\u003ccode\u003e911\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix issues in our tests\n(PR :pr:\u003ccode\u003e824\u003c/code\u003e, :pr:\u003ccode\u003e918\u003c/code\u003e, :pr:\u003ccode\u003e870\u003c/code\u003e, :pr:\u003ccode\u003e915\u003c/code\u003e, :pr:\u003ccode\u003e862\u003c/code\u003e, :pr:\u003ccode\u003e863\u003c/code\u003e, :pr:\u003ccode\u003e899\u003c/code\u003e, :pr:\u003ccode\u003e896\u003c/code\u003e, :pr:\u003ccode\u003e854\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse SPDX identifiers for our license metadata\n(PR :pr:\u003ccode\u003e914\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse dependency-groups for our development\n(PR :pr:\u003ccode\u003e880\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMention conda and update uv mention in README/docs\n(PR :pr:\u003ccode\u003e842\u003c/code\u003e, :pr:\u003ccode\u003e816\u003c/code\u003e, :pr:\u003ccode\u003e917\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.2.2 (2024-09-06)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd editable to \u003ccode\u003ebuilder.get_requries_for_build\u003c/code\u003e's static types\n(PR :pr:\u003ccode\u003e764\u003c/code\u003e, fixes issue :issue:\u003ccode\u003e763\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eInclude artifact attestations in our release\n(PR :pr:\u003ccode\u003e782\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix typing compatibility with typed \u003ccode\u003epyproject-hooks\u003c/code\u003e\n(PR :pr:\u003ccode\u003e788\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMark more tests with \u003ccode\u003enetwork\u003c/code\u003e\n(PR :pr:\u003ccode\u003e808\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd more intersphinx links to docs\n(PR :pr:\u003ccode\u003e804\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003euv\u003c/code\u003e optional for tests\n(PR :pr:\u003ccode\u003e807\u003c/code\u003e and :pr:\u003ccode\u003e813\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.2.1 (2024-03-28)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid error when terminal width is undetectable on Python \u0026lt; 3.11\n(PR :pr:\u003ccode\u003e761\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/pypa/build/commit/60e8752f69178d2b2c3563e9c8fa17aa6e11b12c\"\u003e\u003ccode\u003e60e8752\u003c/code\u003e\u003c/a\u003e chore: bump to 1.3.0 (\u003ca href=\"https://redirect.github.com/pypa/build/issues/919\"\u003e#919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/807cfba618bc4f7b13e938ffa395fffd82494383\"\u003e\u003ccode\u003e807cfba\u003c/code\u003e\u003c/a\u003e feat: add --config-json (\u003ca href=\"https://redirect.github.com/pypa/build/issues/916\"\u003e#916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/bf54ad04ffe30e7f7847ea0bcbc081b550830950\"\u003e\u003ccode\u003ebf54ad0\u003c/code\u003e\u003c/a\u003e tests: fix issues with ignore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/53852df8d84d1d17afaa851d4e1cc3754676bb29\"\u003e\u003ccode\u003e53852df\u003c/code\u003e\u003c/a\u003e docs: uv example\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/b983371befe0547b312aba36083b859d923d9bfc\"\u003e\u003ccode\u003eb983371\u003c/code\u003e\u003c/a\u003e tests: optional virtualenv\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/6cd157ad0b614a76a13374032a4f56b65048c0be\"\u003e\u003ccode\u003e6cd157a\u003c/code\u003e\u003c/a\u003e Adopt PEP 639 \u0026quot;license\u0026quot; field (\u003ca href=\"https://redirect.github.com/pypa/build/issues/914\"\u003e#914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/bdaea367438b8e5ed3c26a7497eafc007084fbec\"\u003e\u003ccode\u003ebdaea36\u003c/code\u003e\u003c/a\u003e tests: fixes for errors in CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/14d6508679e2ddb4a511b4b41e972cb374e9dadb\"\u003e\u003ccode\u003e14d6508\u003c/code\u003e\u003c/a\u003e pre-commit: bump repositories\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/59ac60e78e0dc5164355bd29eb99fb1cb2d7a59c\"\u003e\u003ccode\u003e59ac60e\u003c/code\u003e\u003c/a\u003e pre-commit: bump repositories\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/48ebd63cd7049dff737093c462970262ae1ceed0\"\u003e\u003ccode\u003e48ebd63\u003c/code\u003e\u003c/a\u003e pre-commit: bump repositories\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/build/compare/1.2.2.post1...1.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachecontrol` from 0.14.3 to 0.14.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/cachecontrol/releases\"\u003ecachecontrol's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.14.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebuild(deps): bump github/codeql-action from 3.28.16 to 3.28.17 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/psf/cachecontrol/pull/382\"\u003epsf/cachecontrol#382\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump github/codeql-action from 3.28.17 to 3.28.18 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/psf/cachecontrol/pull/383\"\u003epsf/cachecontrol#383\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump astral-sh/setup-uv from 6.0.1 to 6.1.0 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/psf/cachecontrol/pull/385\"\u003epsf/cachecontrol#385\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(ci): cleanup, add Python 3.14 by \u003ca href=\"https://github.com/woodruffw\"\u003e\u003ccode\u003e@​woodruffw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/psf/cachecontrol/pull/392\"\u003epsf/cachecontrol#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix typo by \u003ca href=\"https://github.com/zackzack38\"\u003e\u003ccode\u003e@​zackzack38\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/psf/cachecontrol/pull/388\"\u003epsf/cachecontrol#388\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: prepare for 0.14.4 by \u003ca href=\"https://github.com/woodruffw\"\u003e\u003ccode\u003e@​woodruffw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/psf/cachecontrol/pull/394\"\u003epsf/cachecontrol#394\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/zackzack38\"\u003e\u003ccode\u003e@​zackzack38\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/cachecontrol/pull/388\"\u003epsf/cachecontrol#388\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/cachecontrol/compare/v0.14.3...v0.14.4\"\u003ehttps://github.com/psf/cachecontrol/compare/v0.14.3...v0.14.4\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/cachecontrol/blob/master/docs/release_notes.rst\"\u003ecachecontrol's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e0.14.4\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eExplicitly support Python 3.14.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/cachecontrol/commit/aba0315599d7d4200074ab3606384732be7bbc25\"\u003e\u003ccode\u003eaba0315\u003c/code\u003e\u003c/a\u003e chore: prepare for 0.14.4 (\u003ca href=\"https://redirect.github.com/psf/cachecontrol/issues/394\"\u003e#394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/cachecontrol/commit/e8a968302db0bab1d8016b1da07440803eb230c6\"\u003e\u003ccode\u003ee8a9683\u003c/code\u003e\u003c/a\u003e fix typo (\u003ca href=\"https://redirect.github.com/psf/cachecontrol/issues/388\"\u003e#388\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/cachecontrol/commit/02df424c36e1103c90131879949c12b8254b64dd\"\u003e\u003ccode\u003e02df424\u003c/code\u003e\u003c/a\u003e chore(ci): cleanup, add Python 3.14 (\u003ca href=\"https://redirect.github.com/psf/cachecontrol/issues/392\"\u003e#392\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/cachecontrol/commit/9af76f749721ef7ee27e692c5c62a19aedab7731\"\u003e\u003ccode\u003e9af76f7\u003c/code\u003e\u003c/a\u003e build(deps): bump astral-sh/setup-uv in the actions group (\u003ca href=\"https://redirect.github.com/psf/cachecontrol/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/cachecontrol/commit/3f169f69e3871340833535380306b43735b5b0a9\"\u003e\u003ccode\u003e3f169f6\u003c/code\u003e\u003c/a\u003e build(deps): bump github/codeql-action in the actions group (\u003ca href=\"https://redirect.github.com/psf/cachecontrol/issues/383\"\u003e#383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/cachecontrol/commit/3e0c8f2fbd85bc1d64ecaac7d6b0e838a8dae8f7\"\u003e\u003ccode\u003e3e0c8f2\u003c/code\u003e\u003c/a\u003e build(deps): bump github/codeql-action in the actions group (\u003ca href=\"https://redirect.github.com/psf/cachecontrol/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/psf/cachecontrol/compare/v0.14.3...v0.14.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachetools` from 6.2.0 to 6.2.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev6.2.2 (2025-11-13)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMinor improvements from GitHub Copilot code review.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove documentation.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.2.1 (2025-10-12)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd support for Python 3.14.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove documentation.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate CI environment.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/4ee2600ab09b109f79d4ef08103240bf9f239b2d\"\u003e\u003ccode\u003e4ee2600\u003c/code\u003e\u003c/a\u003e Release v6.2.2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/f1cec391fea1a1e407fe596b6e37b849adf7fce5\"\u003e\u003ccode\u003ef1cec39\u003c/code\u003e\u003c/a\u003e Minor improvements from GitHub Copilot code review.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/e9117dc1e18389341ce4836f171e23d89f306b65\"\u003e\u003ccode\u003ee9117dc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/371\"\u003e#371\u003c/a\u003e from RektPunk/master\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/6774af212c0c95c2179f2644023fac74317d0262\"\u003e\u003ccode\u003e6774af2\u003c/code\u003e\u003c/a\u003e fix typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/4d8fc20d9eac2cf93d0d938127f6dd3c30441c22\"\u003e\u003ccode\u003e4d8fc20\u003c/code\u003e\u003c/a\u003e docs: add cachetools-async to related projects in README (\u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/369\"\u003e#369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/ca7508fd56103a1b6d6f17c8e93e36c60b44ca25\"\u003e\u003ccode\u003eca7508f\u003c/code\u003e\u003c/a\u003e Release v6.2.1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/f7193077decbbeddbbb76677a1d8912a454886f2\"\u003e\u003ccode\u003ef719307\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/339\"\u003e#339\u003c/a\u003e: Improve documentation regarding funtion default arguments.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/b32d00b7d4ca95ba67edfa3167c81938761ae09a\"\u003e\u003ccode\u003eb32d00b\u003c/code\u003e\u003c/a\u003e Fix typos.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/a9a7e2cc8f2f6ab3403d5b967e3324cf237878c0\"\u003e\u003ccode\u003ea9a7e2c\u003c/code\u003e\u003c/a\u003e Move extended \u003ca href=\"https://github.com/ttl\"\u003e\u003ccode\u003e@​ttl\u003c/code\u003e\u003c/a\u003e_cache docs to proper place.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/072b7e1724b5f608e611ba6d40162722012c9149\"\u003e\u003ccode\u003e072b7e1\u003c/code\u003e\u003c/a\u003e docs: clarify what units the \u003ccode\u003ettl\u003c/code\u003e argument uses (i.e., seconds)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tkem/cachetools/compare/v6.2.0...v6.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.4.0 to 3.4.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.4.4\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.3...3.4.4\"\u003e3.4.4\u003c/a\u003e (2025-10-13)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBound \u003ccode\u003esetuptools\u003c/code\u003e to a specific constraint \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;=81\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRaised upper bound of mypyc for the optional pre-built extension to v1.18.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esetuptools-scm\u003c/code\u003e as a build dependency.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnforced hashes in \u003ccode\u003edev-requirements.txt\u003c/code\u003e and created \u003ccode\u003eci-requirements.txt\u003c/code\u003e for security purposes.\u003c/li\u003e\n\u003cli\u003eAdditional pre-built wheels for riscv64, s390x, and armv7l architectures.\u003c/li\u003e\n\u003cli\u003eRestore \u003ccode\u003emultiple.intoto.jsonl\u003c/code\u003e in GitHub releases in addition to individual attestation file per wheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.9\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.1\u003c/h2\u003e\n\u003ch2\u003e🚀 We're still raising awareness around HTTP/2, and HTTP/3!\u003c/h2\u003e\n\u003cp\u003eDid you know that Internet Explorer 11 shipped with an optional HTTP/2 support back in 2013? also libcurl did ship it in 2014[...]\nUsing Requests today is the rough equivalent of using EOL Windows 8!  We promptly invite Python developers to look at the first drop-in replacement for Requests, \u003ca href=\"https://github.com/jawah/niquests\"\u003enamely Niquests\u003c/a\u003e. Ship with native WebSocket, SSE, Happy Eyeballs, DNS over HTTPS, and so on[...] All of this while remaining compatible with all Requests prior plug-ins / add-ons.\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/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.4\"\u003e3.4.4\u003c/a\u003e (2025-10-13)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBound \u003ccode\u003esetuptools\u003c/code\u003e to a specific constraint \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;=81\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRaised upper bound of mypyc for the optional pre-built extension to v1.18.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esetuptools-scm\u003c/code\u003e as a build dependency.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnforced hashes in \u003ccode\u003edev-requirements.txt\u003c/code\u003e and created \u003ccode\u003eci-requirements.txt\u003c/code\u003e for security purposes.\u003c/li\u003e\n\u003cli\u003eAdditional pre-built wheels for riscv64, s390x, and armv7l architectures.\u003c/li\u003e\n\u003cli\u003eRestore \u003ccode\u003e multiple.intoto.jsonl\u003c/code\u003e in GitHub releases in addition to individual attestation file per wheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.0...3.4.1\"\u003e3.4.1\u003c/a\u003e (2024-12-24)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eProject metadata are now stored using \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e using setuptools as the build backend.\u003c/li\u003e\n\u003cli\u003eEnforce annotation delayed loading for a simpler and consistent types in the project.\u003c/li\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.14 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\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/jawah/charset_normalizer/commit/b30ffdcc2f11043c0d34e60fe66d3815cd49b32b\"\u003e\u003ccode\u003eb30ffdc\u003c/code\u003e\u003c/a\u003e :wrench: fix checksum step in cd.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/d3fbfcfad7dfe3c640886f1a6a6351da527f6634\"\u003e\u003ccode\u003ed3fbfcf\u003c/code\u003e\u003c/a\u003e :wrench: fix cd.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/dafbb95f8c00d3cc8b99158caa63006ffab98749\"\u003e\u003ccode\u003edafbb95\u003c/code\u003e\u003c/a\u003e Release 3.4.4 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/658\"\u003e#658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/1f18ffaa69d2c84fea7abedb8840197ba9c14562\"\u003e\u003ccode\u003e1f18ffa\u003c/code\u003e\u003c/a\u003e :arrow_up: raise mypy upper bound to 1.18.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/ef4ac69ad203891f24e26b2422ab3a08053044fa\"\u003e\u003ccode\u003eef4ac69\u003c/code\u003e\u003c/a\u003e Merge branch 'release-3.4.4' of github.com:jawah/charset_normalizer into rele...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/4b35dda053db5e2e60a247e80a116e4ef04f439b\"\u003e\u003ccode\u003e4b35dda\u003c/code\u003e\u003c/a\u003e :pencil: write changelog for 3.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/0ec6452f1a34cbc77a55b237c4118807b44c2a33\"\u003e\u003ccode\u003e0ec6452\u003c/code\u003e\u003c/a\u003e :wrench: update cd.yml workflow (add riscv64, s390x and armv7l)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f341edec8a828dda394abfa011b1ded8b4b102e2\"\u003e\u003ccode\u003ef341ede\u003c/code\u003e\u003c/a\u003e :arrow_up: upgrade dependencies (dev, ci)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/a308841e660a4d61ea6c448e7b8bf97415ecdc4a\"\u003e\u003ccode\u003ea308841\u003c/code\u003e\u003c/a\u003e :pencil: write changelog for 3.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/9c906da611d5ca5ef076d6bf7f60e629f661d0b0\"\u003e\u003ccode\u003e9c906da\u003c/code\u003e\u003c/a\u003e :wrench: update cd.yml workflow (add riscv64, s390x and armv7l)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.0...3.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cli-helpers` from 2.3.1 to 2.7.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/dbcli/cli_helpers/blob/main/CHANGELOG\"\u003ecli-helpers's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 2.7.0\u003c/h2\u003e\n\u003cp\u003e(released on 2025-07-28)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003emysql\u003c/code\u003e and \u003ccode\u003emysql_unicode\u003c/code\u003e output formats which right-align numbers.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 2.6.0\u003c/h2\u003e\n\u003cp\u003e(released on 2025-07-12)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRegister the JSON formats so they are actually usable.\u003c/li\u003e\n\u003cli\u003eMake JSON formats able to encode Decimals and None/NULLs.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 2.5.0\u003c/h2\u003e\n\u003cp\u003e(released on 2025-07-10)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded noheader CSV and TSV output formats.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003ejsonl\u003c/code\u003e and \u003ccode\u003ejsonl_escaped\u003c/code\u003e output formats.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 2.4.0\u003c/h2\u003e\n\u003cp\u003e(released on 2025-03-10)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded format_timestamps preprocessor for per-column date/time formatting.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dbcli/cli_helpers/commit/c34ae9fc68c4c8a74124c2cd416fc06148d71445\"\u003e\u003ccode\u003ec34ae9f\u003c/code\u003e\u003c/a\u003e Releasing version 2.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dbcli/cli_helpers/commit/c0d127c362583fe96ca1a49a6365187f9a03cffb\"\u003e\u003ccode\u003ec0d127c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/dbcli/cli_helpers/issues/96\"\u003e#96\u003c/a\u003e from dbcli/RW/add-mysql-output-formats\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dbcli/cli_helpers/commit/6f804e9636499f2c37154192e8d60c47670403cc\"\u003e\u003ccode\u003e6f804e9\u003c/code\u003e\u003c/a\u003e add mysql/mysql_unicode output formats\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dbcli/cli_helpers/commit/22881bb13b98f0fdf85faf61af3c5c92a2184044\"\u003e\u003ccode\u003e22881bb\u003c/code\u003e\u003c/a\u003e Releasing version 2.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dbcli/cli_helpers/commit/090a529385052852115f7274ce3a0915820610e4\"\u003e\u003ccode\u003e090a529\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/dbcli/cli_helpers/issues/95\"\u003e#95\u003c/a\u003e from dbcli/RW/changelog-v2-6-0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dbcli/cli_helpers/commit/a94997008b955647a4d0c5951b5d19b9105efc36\"\u003e\u003ccode\u003ea949970\u003c/code\u003e\u003c/a\u003e update changelog for release v2.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dbcli/cli_helpers/commit/789daf491d2945f23e2359f6a3ae93067cf31e7b\"\u003e\u003ccode\u003e789daf4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/dbcli/cli_helpers/issues/94\"\u003e#94\u003c/a\u003e from dbcli/RW/json-format-followups\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dbcli/cli_helpers/commit/49bfdb922915a9906ca6af23e1cab9216b055253\"\u003e\u003ccode\u003e49bfdb9\u003c/code\u003e\u003c/a\u003e followups for JSON output formats\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dbcli/cli_helpers/commit/0edf14eabfaaf556d75560ae2bfd674ed2276ba9\"\u003e\u003ccode\u003e0edf14e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/dbcli/cli_helpers/issues/93\"\u003e#93\u003c/a\u003e from dbcli/RW/prepare-v2-5-0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dbcli/cli_helpers/commit/24fb5fc2bdc561301c34e3e7e572a51352741ba2\"\u003e\u003ccode\u003e24fb5fc\u003c/code\u003e\u003c/a\u003e bump version for v2.5.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/dbcli/cli_helpers/compare/v2.3.1...v2.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.1.7 to 8.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.3.1\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.1 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.3.1/\"\u003ehttps://pypi.org/project/click/8.3.1/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-1\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-1\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/28\"\u003ehttps://github.com/pallets/click/milestone/28\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDon't discard pager arguments by correctly using \u003ccode\u003esubprocess.Popen\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3039\"\u003e#3039\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3055\"\u003e#3055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace \u003ccode\u003eSentinel.UNSET\u003c/code\u003e default values by \u003ccode\u003eNone\u003c/code\u003e as they're passed through the \u003ccode\u003eContext.invoke()\u003c/code\u003e method. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3066\"\u003e#3066\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3065\"\u003e#3065\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3068\"\u003e#3068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix conversion of \u003ccode\u003eSentinel.UNSET\u003c/code\u003e happening too early, which caused incorrect behavior for multiple parameters using the same name. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3071\"\u003e#3071\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3079\"\u003e#3079\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix rendering when \u003ccode\u003eprompt\u003c/code\u003e and \u003ccode\u003econfirm\u003c/code\u003e parameter \u003ccode\u003eprompt_suffix\u003c/code\u003e is empty. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3019\"\u003e#3019\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3021\"\u003e#3021\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen \u003ccode\u003eSentinel.UNSET\u003c/code\u003e is found during parsing, it will skip calls to \u003ccode\u003etype_cast_value\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3069\"\u003e#3069\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3090\"\u003e#3090\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHide \u003ccode\u003eSentinel.UNSET\u003c/code\u003e values as \u003ccode\u003eNone\u003c/code\u003e when looking up for other parameters through the context inside parameter callbacks. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3136\"\u003e#3136\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3137\"\u003e#3137\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.3.0\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecation, or introduce potentially breaking changes.\u003c/p\u003e\n\u003cp\u003eWe encourage everyone to upgrade. You can read more about our \u003ca href=\"https://palletsprojects.com/versions\"\u003eVersion Support Policy\u003c/a\u003e on our website.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.3.0/\"\u003ehttps://pypi.org/project/click/8.3.0/\u003c/a\u003e\nChanges:  \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-0\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-0\u003c/a\u003e\nMilestone \u003ca href=\"https://github.com/pallets/click/milestone/27\"\u003ehttps://github.com/pallets/click/milestone/27\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eImproved flag option handling\u003c/strong\u003e: Reworked the relationship between \u003ccode\u003eflag_value\u003c/code\u003e\nand \u003ccode\u003edefault\u003c/code\u003e parameters for better consistency:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter value is now preserved as-is and passed directly\nto CLI functions (no more unexpected transformations)\u003c/li\u003e\n\u003cli\u003eException: flag options with \u003ccode\u003edefault=True\u003c/code\u003e maintain backward compatibility\nby defaulting to their \u003ccode\u003eflag_value\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter can now be any type (\u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003eNone\u003c/code\u003e, etc.)\u003c/li\u003e\n\u003cli\u003eFixes inconsistencies reported in: \u003ca href=\"https://redirect.github.com/pallets/click/issues/1992\"\u003e#1992\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2514\"\u003e#2514\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2610\"\u003e#2610\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3024\"\u003e#3024\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003edefault\u003c/code\u003e to be set on \u003ccode\u003eArgument\u003c/code\u003e for \u003ccode\u003enargs = -1\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2164\"\u003e#2164\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for \u003ccode\u003enargs\u003c/code\u003e option in combination with flag\noption \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for nargs option in combination with flag option \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix handling of quoted and escaped parameters in Fish autocompletion. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2995\"\u003e#2995\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3013\"\u003e#3013\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLazily import \u003ccode\u003eshutil\u003c/code\u003e.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3023\"\u003e#3023\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProperly forward exception information to resources registered with\n\u003ccode\u003eclick.core.Context.with_resource()\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3058\"\u003e#3058\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression related to EOF handling in CliRunner.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2939\"\u003e#2939\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2940\"\u003e#2940\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.2.2\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.2.2 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.2.2/\"\u003ehttps://pypi.org/project/click/8.2.2/\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/blob/main/CHANGES.rst\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.3.1\u003c/h2\u003e\n\u003cp\u003eReleased 2025-11-15\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDon't discard pager arguments by correctly using \u003ccode\u003esubprocess.Popen\u003c/code\u003e. :issue:\u003ccode\u003e3039\u003c/code\u003e\n:pr:\u003ccode\u003e3055\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eReplace \u003ccode\u003eSentinel.UNSET\u003c/code\u003e default values by \u003ccode\u003eNone\u003c/code\u003e as they're passed through\nthe \u003ccode\u003eContext.invoke()\u003c/code\u003e method. :issue:\u003ccode\u003e3066\u003c/code\u003e :issue:\u003ccode\u003e3065\u003c/code\u003e :pr:\u003ccode\u003e3068\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix conversion of \u003ccode\u003eSentinel.UNSET\u003c/code\u003e happening too early, which caused incorrect\nbehavior for multiple parameters using the same name. :issue:\u003ccode\u003e3071\u003c/code\u003e :pr:\u003ccode\u003e3079\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eHide \u003ccode\u003eSentinel.UNSET\u003c/code\u003e values as \u003ccode\u003eNone\u003c/code\u003e when looking up for other parameters\nthrough the context inside parameter callbacks. :issue:\u003ccode\u003e3136\u003c/code\u003e :pr:\u003ccode\u003e3137\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix rendering when \u003ccode\u003eprompt\u003c/code\u003e and \u003ccode\u003econfirm\u003c/code\u003e parameter \u003ccode\u003eprompt_suffix\u003c/code\u003e is\nempty. :issue:\u003ccode\u003e3019\u003c/code\u003e :pr:\u003ccode\u003e3021\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eWhen \u003ccode\u003eSentinel.UNSET\u003c/code\u003e is found during parsing, it will skip calls to\n\u003ccode\u003etype_cast_value\u003c/code\u003e. :issue:\u003ccode\u003e3069\u003c/code\u003e :pr:\u003ccode\u003e3090\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.3.0\u003c/h2\u003e\n\u003cp\u003eReleased 2025-09-17\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eImproved flag option handling\u003c/strong\u003e: Reworked the relationship between \u003ccode\u003eflag_value\u003c/code\u003e\nand \u003ccode\u003edefault\u003c/code\u003e parameters for better consistency:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter value is now preserved as-is and passed directly\nto CLI functions (no more unexpected transformations)\u003c/li\u003e\n\u003cli\u003eException: flag options with \u003ccode\u003edefault=True\u003c/code\u003e maintain backward compatibility\nby defaulting to their \u003ccode\u003eflag_value\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter can now be any type (\u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003eNone\u003c/code\u003e, etc.)\u003c/li\u003e\n\u003cli\u003eFixes inconsistencies reported in: :issue:\u003ccode\u003e1992\u003c/code\u003e :issue:\u003ccode\u003e2514\u003c/code\u003e :issue:\u003ccode\u003e2610\u003c/code\u003e\n:issue:\u003ccode\u003e3024\u003c/code\u003e :pr:\u003ccode\u003e3030\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003edefault\u003c/code\u003e to be set on \u003ccode\u003eArgument\u003c/code\u003e for \u003ccode\u003enargs = -1\u003c/code\u003e. :issue:\u003ccode\u003e2164\u003c/code\u003e\n:pr:\u003ccode\u003e3030\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for \u003ccode\u003enargs\u003c/code\u003e option in combination with flag\noption :issue:\u003ccode\u003e2813\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix handling of quoted and escaped parameters in Fish autocompletion. :issue:\u003ccode\u003e2995\u003c/code\u003e :pr:\u003ccode\u003e3013\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLazily import \u003ccode\u003eshutil\u003c/code\u003e. :pr:\u003ccode\u003e3023\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProperly forward exception information to resources registered with\n\u003ccode\u003eclick.core.Context.with_resource()\u003c/code\u003e. :issue:\u003ccode\u003e2447\u003c/code\u003e :pr:\u003ccode\u003e3058\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression related to EOF handling in \u003ccode\u003eCliRunner\u003c/code\u003e. :issue:\u003ccode\u003e2939\u003c/code\u003e :pr:\u003ccode\u003e2940\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.2.2\u003c/h2\u003e\n\u003cp\u003eReleased 2025-07-31\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix reconciliation of \u003ccode\u003edefault\u003c/code\u003e, \u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003etype\u003c/code\u003e parameters for\nflag options, as well as parsing and normalization of environment variables.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/1d038f270701498433cb432f54db89f95f07a845\"\u003e\u003ccode\u003e1d038f2\u003c/code\u003e\u003c/a\u003e release version 8.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/03f3889f505d0c9ca4f9d6810f9e4ba2799f2a66\"\u003e\u003ccode\u003e03f3889\u003c/code\u003e\u003c/a\u003e Fix Ruff UP038 warning (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3141\"\u003e#3141\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/3867781222cb63693ca67df94352d29d8e6e2770\"\u003e\u003ccode\u003e3867781\u003c/code\u003e\u003c/a\u003e Fix Ruff UP038 warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/b91bb9548a5617b1197add95e084d569f57149c3\"\u003e\u003ccode\u003eb91bb95\u003c/code\u003e\u003c/a\u003e Provide altered context to callbacks to hide \u003ccode\u003eUNSET\u003c/code\u003e values as \u003ccode\u003eNone\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3137\"\u003e#3137\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/437e1e3295c7ec979fc1bf285bb402ca20d847e7\"\u003e\u003ccode\u003e437e1e3\u003c/code\u003e\u003c/a\u003e Temporarily provide a fake context to the callback to hide \u003ccode\u003eUNSET\u003c/code\u003e values as ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/ea70da487b05d6bb758d472a3a9ffab4a5b7fcd5\"\u003e\u003ccode\u003eea70da4\u003c/code\u003e\u003c/a\u003e Don't test using a file in docs/ (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3102\"\u003e#3102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/e27b307462b725722f620c69dd1d5509c032d18a\"\u003e\u003ccode\u003ee27b307\u003c/code\u003e\u003c/a\u003e Make \u003ccode\u003euv run --all-extras pyright --verifytypes click\u003c/code\u003e pass (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/a92c573f3195c9da3058eadf1735d38af186d22c\"\u003e\u003ccode\u003ea92c573\u003c/code\u003e\u003c/a\u003e Fix test_edit to work with BSD sed (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3129\"\u003e#3129\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/bd131e1ab63da2281d6dd9b8205ad2eb5...\n\n_Description has been truncated_","html_url":"https://github.com/magic-ai-trading-bot/bot-core/pull/76","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/magic-ai-trading-bot%2Fbot-core/issues/76","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/76/packages"}},{"old_version":"1.8.5","new_version":"1.8.6","update_type":"patch","path":null,"pr_created_at":"2025-11-11T17:07:44.000Z","version_change":"1.8.5 → 1.8.6","issue":{"uuid":"3613155385","node_id":"PR_kwDOIEpTDs6yzV-M","number":888,"state":"open","title":"build: bump libcst from 1.8.5 to 1.8.6","user":"dependabot[bot]","labels":["dependencies:pyproject"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-11-11T17:07:44.000Z","updated_at":"2025-11-11T19:31:42.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build","packages":[{"name":"libcst","old_version":"1.8.5","new_version":"1.8.6","repository_url":"https://github.com/Instagram/LibCST"}],"path":null,"ecosystem":"pip"},"body":"Bumps [libcst](https://github.com/Instagram/LibCST) from 1.8.5 to 1.8.6.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/releases\"\u003elibcst's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.8.6\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate pyproject.toml for 3.14t by \u003ca href=\"https://github.com/itamaro\"\u003e\u003ccode\u003e@​itamaro\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1417\"\u003eInstagram/LibCST#1417\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate PyO3 to 0.26 by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1413\"\u003eInstagram/LibCST#1413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake CodemodCommand's supported_transforms order deterministic by \u003ca href=\"https://github.com/frvnkliu\"\u003e\u003ccode\u003e@​frvnkliu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1424\"\u003eInstagram/LibCST#1424\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/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1413\"\u003eInstagram/LibCST#1413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frvnkliu\"\u003e\u003ccode\u003e@​frvnkliu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1424\"\u003eInstagram/LibCST#1424\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.5...v1.8.6\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.5...v1.8.6\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/blob/main/CHANGELOG.md\"\u003elibcst's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.8.6 - 2025-11-03\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate pyproject.toml for 3.14t by \u003ca href=\"https://github.com/itamaro\"\u003e\u003ccode\u003e@​itamaro\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1417\"\u003eInstagram/LibCST#1417\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate PyO3 to 0.26 by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1413\"\u003eInstagram/LibCST#1413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake CodemodCommand's supported_transforms order deterministic by \u003ca href=\"https://github.com/frvnkliu\"\u003e\u003ccode\u003e@​frvnkliu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1424\"\u003eInstagram/LibCST#1424\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/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1413\"\u003eInstagram/LibCST#1413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frvnkliu\"\u003e\u003ccode\u003e@​frvnkliu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1424\"\u003eInstagram/LibCST#1424\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.5...v1.8.6\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.5...v1.8.6\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/Instagram/LibCST/commit/9275a8bf7875d08659ce7b266860138bba633410\"\u003e\u003ccode\u003e9275a8b\u003c/code\u003e\u003c/a\u003e bump version to 1.8.6 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1425\"\u003e#1425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/b66c0e28229fd91ac145f1a56d7d884e6f8587b4\"\u003e\u003ccode\u003eb66c0e2\u003c/code\u003e\u003c/a\u003e [CodemodCommand] Make \u003ccode\u003etransform_module\u003c/code\u003e \u003ccode\u003esupported_transforms\u003c/code\u003e order determi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/c2169d240b5011ea820dc18d7a2452f182c2c5d3\"\u003e\u003ccode\u003ec2169d2\u003c/code\u003e\u003c/a\u003e Update PyO3 to 0.26 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1413\"\u003e#1413\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/73b17d8449034b520e7128c8a4bd100674d1e78c\"\u003e\u003ccode\u003e73b17d8\u003c/code\u003e\u003c/a\u003e Update pyproject.toml for 3.14t (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1417\"\u003e#1417\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/421f7d34004de18391014319ec6a818322637a8d\"\u003e\u003ccode\u003e421f7d3\u003c/code\u003e\u003c/a\u003e build(deps): bump pypa/cibuildwheel from 3.1.4 to 3.2.1 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1414\"\u003e#1414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/129b20f4769a2b26b41b262fb88f9aaf8754930b\"\u003e\u003ccode\u003e129b20f\u003c/code\u003e\u003c/a\u003e build(deps): bump github/codeql-action from 3 to 4 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1415\"\u003e#1415\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/6f5da5f99873e4c17e32ca221a3ddde3fb1ea354\"\u003e\u003ccode\u003e6f5da5f\u003c/code\u003e\u003c/a\u003e build(deps): bump astral-sh/setup-uv from 6 to 7 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1416\"\u003e#1416\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.5...v1.8.6\"\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=libcst\u0026package-manager=pip\u0026previous-version=1.8.5\u0026new-version=1.8.6)](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/ansys/pystk/pull/888","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ansys%2Fpystk/issues/888","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/888/packages"}},{"old_version":"1.7.0","new_version":"1.8.5","update_type":"minor","path":"/shared_requirements","pr_created_at":"2025-11-01T16:09:54.000Z","version_change":"1.7.0 → 1.8.5","issue":{"uuid":"3578154989","node_id":"PR_kwDOETt2Sc6w_svi","number":4529,"state":"open","title":"Bump the minor-python group in /shared_requirements with 16 updates","user":"dependabot[bot]","labels":["Python","dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-11-01T16:09:54.000Z","updated_at":"2025-11-01T16:11:10.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-python","update_count":16,"packages":[{"name":"click","old_version":"8.1.7","new_version":"8.3.0","repository_url":"https://github.com/pallets/click"},{"name":"google-auth","old_version":"2.39.0","new_version":"2.42.1","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"google-crc32c","old_version":"1.6.0","new_version":"1.7.1","repository_url":"https://github.com/googleapis/python-crc32c"},{"name":"googleapis-common-protos","old_version":"1.70.0","new_version":"1.71.0"},{"name":"grpcio-status","old_version":"1.70.0","new_version":"1.76.0"},{"name":"grpcio","old_version":"1.70.0","new_version":"1.76.0","repository_url":"https://github.com/grpc/grpc"},{"name":"iniconfig","old_version":"2.1.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"libcst","old_version":"1.7.0","new_version":"1.8.5","repository_url":"https://github.com/Instagram/LibCST"},{"name":"numpy","old_version":"2.2.0","new_version":"2.3.4","repository_url":"https://github.com/numpy/numpy"},{"name":"pandas","old_version":"2.2.3","new_version":"2.3.3","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.5.0","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"pycparser","old_version":"2.22","new_version":"2.23","repository_url":"https://github.com/eliben/pycparser"},{"name":"pytest","old_version":"8.3.4","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"typing-extensions","old_version":"4.13.2","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"zipp","old_version":"3.21.0","new_version":"3.23.0","repository_url":"https://github.com/jaraco/zipp"}],"path":"/shared_requirements","ecosystem":"pip"},"body":"Bumps the minor-python group in /shared_requirements with 16 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.3.0` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.39.0` | `2.42.1` |\n| [google-crc32c](https://github.com/googleapis/python-crc32c) | `1.6.0` | `1.7.1` |\n| [googleapis-common-protos[grpc]](https://github.com/googleapis/google-cloud-python) | `1.70.0` | `1.71.0` |\n| [grpcio-status](https://grpc.io) | `1.70.0` | `1.76.0` |\n| [grpcio](https://github.com/grpc/grpc) | `1.70.0` | `1.76.0` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.1.0` | `2.3.0` |\n| [libcst](https://github.com/Instagram/LibCST) | `1.7.0` | `1.8.5` |\n| [numpy](https://github.com/numpy/numpy) | `2.2.0` | `2.3.4` |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.2.3` | `2.3.3` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.5.0` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [pycparser](https://github.com/eliben/pycparser) | `2.22` | `2.23` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.4` | `8.4.2` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.13.2` | `4.15.0` |\n| [zipp](https://github.com/jaraco/zipp) | `3.21.0` | `3.23.0` |\n\nUpdates `click` from 8.1.7 to 8.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.3.0\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecation, or introduce potentially breaking changes.\u003c/p\u003e\n\u003cp\u003eWe encourage everyone to upgrade. You can read more about our \u003ca href=\"https://palletsprojects.com/versions\"\u003eVersion Support Policy\u003c/a\u003e on our website.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.3.0/\"\u003ehttps://pypi.org/project/click/8.3.0/\u003c/a\u003e\nChanges:  \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-0\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-0\u003c/a\u003e\nMilestone \u003ca href=\"https://github.com/pallets/click/milestone/27\"\u003ehttps://github.com/pallets/click/milestone/27\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eImproved flag option handling\u003c/strong\u003e: Reworked the relationship between \u003ccode\u003eflag_value\u003c/code\u003e\nand \u003ccode\u003edefault\u003c/code\u003e parameters for better consistency:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter value is now preserved as-is and passed directly\nto CLI functions (no more unexpected transformations)\u003c/li\u003e\n\u003cli\u003eException: flag options with \u003ccode\u003edefault=True\u003c/code\u003e maintain backward compatibility\nby defaulting to their \u003ccode\u003eflag_value\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter can now be any type (\u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003eNone\u003c/code\u003e, etc.)\u003c/li\u003e\n\u003cli\u003eFixes inconsistencies reported in: \u003ca href=\"https://redirect.github.com/pallets/click/issues/1992\"\u003e#1992\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2514\"\u003e#2514\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2610\"\u003e#2610\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3024\"\u003e#3024\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003edefault\u003c/code\u003e to be set on \u003ccode\u003eArgument\u003c/code\u003e for \u003ccode\u003enargs = -1\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2164\"\u003e#2164\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for \u003ccode\u003enargs\u003c/code\u003e option in combination with flag\noption \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for nargs option in combination with flag option \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix handling of quoted and escaped parameters in Fish autocompletion. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2995\"\u003e#2995\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3013\"\u003e#3013\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLazily import \u003ccode\u003eshutil\u003c/code\u003e.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3023\"\u003e#3023\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProperly forward exception information to resources registered with\n\u003ccode\u003eclick.core.Context.with_resource()\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3058\"\u003e#3058\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression related to EOF handling in CliRunner.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2939\"\u003e#2939\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2940\"\u003e#2940\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.2.2\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.2.2 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.2.2/\"\u003ehttps://pypi.org/project/click/8.2.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-2-2\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-2-2\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/25\"\u003ehttps://github.com/pallets/click/milestone/25\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix reconciliation of \u003ccode\u003edefault\u003c/code\u003e, \u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003etype\u003c/code\u003e parameters for\nflag options, as well as parsing and normalization of environment variables.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/2952\"\u003e#2952\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2956\"\u003e#2956\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typing issue in \u003ccode\u003eBadParameter\u003c/code\u003e and \u003ccode\u003eMissingParameter\u003c/code\u003e exceptions for the\nparameter \u003ccode\u003eparam_hint\u003c/code\u003e that did not allow for a sequence of string where the\nunderlying functino \u003ccode\u003e_join_param_hints\u003c/code\u003e allows for it. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2777\"\u003e#2777\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2990\"\u003e#2990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse the value of \u003ccode\u003eEnum\u003c/code\u003e choices to render their default value in help\nscreen. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2911\"\u003e#2911\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3004\"\u003e#3004\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix completion for the Z shell (\u003ccode\u003ezsh\u003c/code\u003e) for completion items containing\ncolons. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2703\"\u003e#2703\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2846\"\u003e#2846\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't include envvar in error hint when not configured. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2971\"\u003e#2971\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2972\"\u003e#2972\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/pallets/click/blob/main/CHANGES.rst\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.3.0\u003c/h2\u003e\n\u003cp\u003eReleased 2025-09-17\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eImproved flag option handling\u003c/strong\u003e: Reworked the relationship between \u003ccode\u003eflag_value\u003c/code\u003e\nand \u003ccode\u003edefault\u003c/code\u003e parameters for better consistency:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter value is now preserved as-is and passed directly\nto CLI functions (no more unexpected transformations)\u003c/li\u003e\n\u003cli\u003eException: flag options with \u003ccode\u003edefault=True\u003c/code\u003e maintain backward compatibility\nby defaulting to their \u003ccode\u003eflag_value\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter can now be any type (\u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003eNone\u003c/code\u003e, etc.)\u003c/li\u003e\n\u003cli\u003eFixes inconsistencies reported in: :issue:\u003ccode\u003e1992\u003c/code\u003e :issue:\u003ccode\u003e2514\u003c/code\u003e :issue:\u003ccode\u003e2610\u003c/code\u003e\n:issue:\u003ccode\u003e3024\u003c/code\u003e :pr:\u003ccode\u003e3030\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003edefault\u003c/code\u003e to be set on \u003ccode\u003eArgument\u003c/code\u003e for \u003ccode\u003enargs = -1\u003c/code\u003e. :issue:\u003ccode\u003e2164\u003c/code\u003e\n:pr:\u003ccode\u003e3030\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for \u003ccode\u003enargs\u003c/code\u003e option in combination with flag\noption :issue:\u003ccode\u003e2813\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix handling of quoted and escaped parameters in Fish autocompletion. :issue:\u003ccode\u003e2995\u003c/code\u003e :pr:\u003ccode\u003e3013\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLazily import \u003ccode\u003eshutil\u003c/code\u003e. :pr:\u003ccode\u003e3023\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProperly forward exception information to resources registered with\n\u003ccode\u003eclick.core.Context.with_resource()\u003c/code\u003e. :issue:\u003ccode\u003e2447\u003c/code\u003e :pr:\u003ccode\u003e3058\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression related to EOF handling in \u003ccode\u003eCliRunner\u003c/code\u003e. :issue:\u003ccode\u003e2939\u003c/code\u003e :pr:\u003ccode\u003e2940\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.2.2\u003c/h2\u003e\n\u003cp\u003eReleased 2025-07-31\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix reconciliation of \u003ccode\u003edefault\u003c/code\u003e, \u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003etype\u003c/code\u003e parameters for\nflag options, as well as parsing and normalization of environment variables.\n:issue:\u003ccode\u003e2952\u003c/code\u003e :pr:\u003ccode\u003e2956\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix typing issue in \u003ccode\u003eBadParameter\u003c/code\u003e and \u003ccode\u003eMissingParameter\u003c/code\u003e exceptions for the\nparameter \u003ccode\u003eparam_hint\u003c/code\u003e that did not allow for a sequence of string where the\nunderlying function \u003ccode\u003e_join_param_hints\u003c/code\u003e allows for it. :issue:\u003ccode\u003e2777\u003c/code\u003e :pr:\u003ccode\u003e2990\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUse the value of \u003ccode\u003eEnum\u003c/code\u003e choices to render their default value in help\nscreen. Refs :issue:\u003ccode\u003e2911\u003c/code\u003e :pr:\u003ccode\u003e3004\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix completion for the Z shell (\u003ccode\u003ezsh\u003c/code\u003e) for completion items containing\ncolons. :issue:\u003ccode\u003e2703\u003c/code\u003e :pr:\u003ccode\u003e2846\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDon't include envvar in error hint when not configured. :issue:\u003ccode\u003e2971\u003c/code\u003e :pr:\u003ccode\u003e2972\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix a rare race in \u003ccode\u003eclick.testing.StreamMixer\u003c/code\u003e's finalization that manifested\nas a \u003ccode\u003eValueError\u003c/code\u003e on close in a multi-threaded test session.\n:issue:\u003ccode\u003e2993\u003c/code\u003e :pr:\u003ccode\u003e2991\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.2.1\u003c/h2\u003e\n\u003cp\u003eReleased 2025-05-20\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/pallets/click/commit/00fadb8904387158ce6e9aa1573be770446895c1\"\u003e\u003ccode\u003e00fadb8\u003c/code\u003e\u003c/a\u003e Release version 8.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/2a0e3ba907927ade6951d5732b775f11b54cb766\"\u003e\u003ccode\u003e2a0e3ba\u003c/code\u003e\u003c/a\u003e testing/CliRunner: Fix regression related to EOF introduced in 262bdf0 (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/e11a1efc3395e998a1521a0dc35672a799e78d30\"\u003e\u003ccode\u003ee11a1ef\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into fix-cli-runner-prompt-eof-handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/36deba8a95a2585de1a2aa4475b7f054f52830ac\"\u003e\u003ccode\u003e36deba8\u003c/code\u003e\u003c/a\u003e Forward exception information to resources registered in a context (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3058\"\u003e#3058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/f2cae7ae997cd32311cab3dede4c2b89fe05e191\"\u003e\u003ccode\u003ef2cae7a\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Add summary of PR to changelog for 8.3.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/7c7ec36354f49d1a092cb077fa4881ea4d70ba01\"\u003e\u003ccode\u003e7c7ec36\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Split resource exception handling tests in single and nested\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/92129c552da88ac30b578132031efa4b003ecc46\"\u003e\u003ccode\u003e92129c5\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Added exception forwarding to context tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/555fa9bb37770a6845a98be60b0c84876775552e\"\u003e\u003ccode\u003e555fa9b\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Forward exception data to exit stack when calling \u003ccode\u003e__exit__\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/16fe802a3f96c4c8fa3cd382f1a7577fda0c5321\"\u003e\u003ccode\u003e16fe802\u003c/code\u003e\u003c/a\u003e Add more tests on \u003ccode\u003eEnum\u003c/code\u003e rendering (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3053\"\u003e#3053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/d36de6fc67882f23d7a7d61cd4c0e25e0f88b0ac\"\u003e\u003ccode\u003ed36de6f\u003c/code\u003e\u003c/a\u003e Add more tests on Enum rendering their item's names and not values\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.1.7...8.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-auth` from 2.39.0 to 2.42.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-auth-library-python/releases\"\u003egoogle-auth's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.42.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.42.0...v2.42.1\"\u003e2.42.1\u003c/a\u003e (2025-10-30)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCatch ValueError for json.loads() (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1842\"\u003e#1842\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/b074cad460589633adfc6744c01726ae86f2aa2b\"\u003eb074cad\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.42.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.41.1...v2.42.0\"\u003e2.42.0\u003c/a\u003e (2025-10-24)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd trust boundary support for external accounts. (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1809\"\u003e#1809\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/36ecb1d65883477d27faf9c2281fc289659b9903\"\u003e36ecb1d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRead scopes from ADC json for impersoanted cred (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1820\"\u003e#1820\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/62c0fc82a3625542381f85c698595446fc99ddae\"\u003e62c0fc8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.41.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.41.0...v2.41.1\"\u003e2.41.1\u003c/a\u003e (2025-09-30)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSuppress deprecation warning for ADC (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1815\"\u003e#1815\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/751ce3f625eb24029e9f0c59c081bdd3e18eb583\"\u003e751ce3f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.41.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.40.3...v2.41.0\"\u003e2.41.0\u003c/a\u003e (2025-09-29)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for cachetools 6.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1773\"\u003e#1773\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/af18060d521baf86c219d66a26631decb3b28e79\"\u003eaf18060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd trust boundary support for service accounts and impersonation. (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1778\"\u003e#1778\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/99be2ce19401296718f880c7a80cd2e841df78bf\"\u003e99be2ce\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecating \u003ca href=\"https://googleapis.dev/python/google-auth/latest/reference/google.auth.html#google.auth.load_credentials_from_dict\"\u003eload_credentials_from_dict\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/58b66ec8069bfe5304c7da512fe89a8e838ce1ca\"\u003e58b66ec\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeprecating \u003ca href=\"https://googleapis.dev/python/google-auth/latest/reference/google.auth.html#google.auth.load_credentials_from_file\"\u003eload_credentials_from_file\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/58b66ec8069bfe5304c7da512fe89a8e838ce1ca\"\u003e58b66ec\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix type error in credentials.py for python 3.7 and 3.8 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1805\"\u003e#1805\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/c30a6a781d3e385598a0ac28a370a7f4800010cc\"\u003ec30a6a7\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate user guide to include x509 feature. (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1802\"\u003e#1802\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/2d89ab4d85568564e1f462f5b463991ffd9b82b1\"\u003e2d89ab4\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/googleapis/google-auth-library-python/blob/main/CHANGELOG.md\"\u003egoogle-auth's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.42.0...v2.42.1\"\u003e2.42.1\u003c/a\u003e (2025-10-30)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCatch ValueError for json.loads() (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1842\"\u003e#1842\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/b074cad460589633adfc6744c01726ae86f2aa2b\"\u003eb074cad\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.41.1...v2.42.0\"\u003e2.42.0\u003c/a\u003e (2025-10-24)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd trust boundary support for external accounts. (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1809\"\u003e#1809\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/36ecb1d65883477d27faf9c2281fc289659b9903\"\u003e36ecb1d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRead scopes from ADC json for impersoanted cred (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1820\"\u003e#1820\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/62c0fc82a3625542381f85c698595446fc99ddae\"\u003e62c0fc8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.41.0...v2.41.1\"\u003e2.41.1\u003c/a\u003e (2025-09-30)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSuppress deprecation warning for ADC (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1815\"\u003e#1815\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/751ce3f625eb24029e9f0c59c081bdd3e18eb583\"\u003e751ce3f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.40.3...v2.41.0\"\u003e2.41.0\u003c/a\u003e (2025-09-29)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for cachetools 6.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1773\"\u003e#1773\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/af18060d521baf86c219d66a26631decb3b28e79\"\u003eaf18060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd trust boundary support for service accounts and impersonation. (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1778\"\u003e#1778\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/99be2ce19401296718f880c7a80cd2e841df78bf\"\u003e99be2ce\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecating \u003ca href=\"https://googleapis.dev/python/google-auth/latest/reference/google.auth.html#google.auth.load_credentials_from_dict\"\u003eload_credentials_from_dict\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/58b66ec8069bfe5304c7da512fe89a8e838ce1ca\"\u003e58b66ec\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeprecating \u003ca href=\"https://googleapis.dev/python/google-auth/latest/reference/google.auth.html#google.auth.load_credentials_from_file\"\u003eload_credentials_from_file\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/58b66ec8069bfe5304c7da512fe89a8e838ce1ca\"\u003e58b66ec\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix type error in credentials.py for python 3.7 and 3.8 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1805\"\u003e#1805\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/c30a6a781d3e385598a0ac28a370a7f4800010cc\"\u003ec30a6a7\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate user guide to include x509 feature. (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1802\"\u003e#1802\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/2d89ab4d85568564e1f462f5b463991ffd9b82b1\"\u003e2d89ab4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.40.2...v2.40.3\"\u003e2.40.3\u003c/a\u003e (2025-06-04)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/5d1b862db2b23b4b7ae7d243f6dbb23165636bd5\"\u003e\u003ccode\u003e5d1b862\u003c/code\u003e\u003c/a\u003e chore(main): release 2.42.1 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1853\"\u003e#1853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/b074cad460589633adfc6744c01726ae86f2aa2b\"\u003e\u003ccode\u003eb074cad\u003c/code\u003e\u003c/a\u003e fix: catch ValueError for json.loads() (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1842\"\u003e#1842\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/cb62f5727854965e108c4e1790c4f9f9306fe3ce\"\u003e\u003ccode\u003ecb62f57\u003c/code\u003e\u003c/a\u003e chore: secret update (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1851\"\u003e#1851\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/2f8826d3226a3df7dfdd5898c91ea15ee21d1bd0\"\u003e\u003ccode\u003e2f8826d\u003c/code\u003e\u003c/a\u003e chore(main): release 2.42.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1819\"\u003e#1819\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/aca34b5ca521398be7bb99543a32302bc40ca234\"\u003e\u003ccode\u003eaca34b5\u003c/code\u003e\u003c/a\u003e chore: secret update (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1847\"\u003e#1847\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/62c0fc82a3625542381f85c698595446fc99ddae\"\u003e\u003ccode\u003e62c0fc8\u003c/code\u003e\u003c/a\u003e fix: Read scopes from ADC json for impersoanted cred (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1820\"\u003e#1820\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/36ecb1d65883477d27faf9c2281fc289659b9903\"\u003e\u003ccode\u003e36ecb1d\u003c/code\u003e\u003c/a\u003e feat: Add trust boundary support for external accounts. (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1809\"\u003e#1809\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/10823c2feb700075cd9d2e895ca60a1fa0d4d912\"\u003e\u003ccode\u003e10823c2\u003c/code\u003e\u003c/a\u003e chore: secret update (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1818\"\u003e#1818\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/e16d70b750e469d59e89ebc8969b6a74a97ae365\"\u003e\u003ccode\u003ee16d70b\u003c/code\u003e\u003c/a\u003e test: Add tests to cover deprecation and suppression (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1817\"\u003e#1817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/ebf33636bc3e525de37f331b75fade6b61c950cb\"\u003e\u003ccode\u003eebf3363\u003c/code\u003e\u003c/a\u003e chore(main): release 2.41.1 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1816\"\u003e#1816\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.39.0...v2.42.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-crc32c` from 1.6.0 to 1.7.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-crc32c/releases\"\u003egoogle-crc32c's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.7.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-crc32c/compare/v1.7.0...v1.7.1\"\u003e1.7.1\u003c/a\u003e (2025-03-25)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.13 windows wheels (\u003ca href=\"https://github.com/googleapis/python-crc32c/commit/fbb0e26b576fb82b8677b14505e702313cbcfe4e\"\u003efbb0e26\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.7.1rc1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-crc32c/compare/v1.7.0...v1.7.1rc1\"\u003e1.7.1rc1\u003c/a\u003e (2025-03-24)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.13 windows wheels (\u003ca href=\"https://github.com/googleapis/python-crc32c/commit/fbb0e26b576fb82b8677b14505e702313cbcfe4e\"\u003efbb0e26\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.7.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-crc32c/compare/v1.6.0...v1.7.0\"\u003e1.7.0\u003c/a\u003e (2025-03-17)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.13 trove classifier (\u003ca href=\"https://redirect.github.com/googleapis/python-crc32c/issues/233\"\u003e#233\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-crc32c/commit/b1252575f21d0dde1e131f5251a989f56fb2c0d5\"\u003eb125257\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for python 3.13 (\u003ca href=\"https://redirect.github.com/googleapis/python-crc32c/issues/239\"\u003e#239\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-crc32c/commit/6b918f4b081daf3cbee0cbd778b27c98670fb3a4\"\u003e6b918f4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.7.0rc1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-crc32c/compare/v1.6.0...v1.7.0rc1\"\u003e1.7.0rc1\u003c/a\u003e (2025-03-17)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.13 trove classifier (\u003ca href=\"https://redirect.github.com/googleapis/python-crc32c/issues/233\"\u003e#233\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-crc32c/commit/b1252575f21d0dde1e131f5251a989f56fb2c0d5\"\u003eb125257\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for python 3.13 (\u003ca href=\"https://redirect.github.com/googleapis/python-crc32c/issues/239\"\u003e#239\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-crc32c/commit/6b918f4b081daf3cbee0cbd778b27c98670fb3a4\"\u003e6b918f4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-crc32c/blob/main/CHANGELOG.md\"\u003egoogle-crc32c's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-crc32c/compare/v1.7.0...v1.7.1\"\u003e1.7.1\u003c/a\u003e (2025-03-25)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.13 windows wheels (\u003ca href=\"https://github.com/googleapis/python-crc32c/commit/fbb0e26b576fb82b8677b14505e702313cbcfe4e\"\u003efbb0e26\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-crc32c/compare/v1.6.0...v1.7.0\"\u003e1.7.0\u003c/a\u003e (2025-03-17)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.13 trove classifier (\u003ca href=\"https://redirect.github.com/googleapis/python-crc32c/issues/233\"\u003e#233\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-crc32c/commit/b1252575f21d0dde1e131f5251a989f56fb2c0d5\"\u003eb125257\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for python 3.13 (\u003ca href=\"https://redirect.github.com/googleapis/python-crc32c/issues/239\"\u003e#239\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-crc32c/commit/6b918f4b081daf3cbee0cbd778b27c98670fb3a4\"\u003e6b918f4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-crc32c/commit/2f190af0e633056f73b69301233cd38c06a01355\"\u003e\u003ccode\u003e2f190af\u003c/code\u003e\u003c/a\u003e chore(main): release 1.7.1 (\u003ca href=\"https://redirect.github.com/googleapis/python-crc32c/issues/280\"\u003e#280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-crc32c/commit/f6f30afe19b76582ec42b648aadb1f7b36a93f5b\"\u003e\u003ccode\u003ef6f30af\u003c/code\u003e\u003c/a\u003e build: update dependencies in .kokoro/requirements.txt (\u003ca href=\"https://redirect.github.com/googleapis/python-crc32c/issues/283\"\u003e#283\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-crc32c/commit/e8dfb6272364e1bdee272d425021535150773f58\"\u003e\u003ccode\u003ee8dfb62\u003c/code\u003e\u003c/a\u003e build: update license identifiers in setup.cfg (\u003ca href=\"https://redirect.github.com/googleapis/python-crc32c/issues/281\"\u003e#281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-crc32c/commit/fbb0e26b576fb82b8677b14505e702313cbcfe4e\"\u003e\u003ccode\u003efbb0e26\u003c/code\u003e\u003c/a\u003e build: update windows build script to use trimmed python version (\u003ca href=\"https://redirect.github.com/googleapis/python-crc32c/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-crc32c/commit/9a26b14b22aea80d0eafbffa9cf4fc4c5af605d8\"\u003e\u003ccode\u003e9a26b14\u003c/code\u003e\u003c/a\u003e chore(deps): update all dependencies (\u003ca href=\"https://redirect.github.com/googleapis/python-crc32c/issues/273\"\u003e#273\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-crc32c/commit/02434cdefcaf93347aba26e6e2598866bcd6fbe7\"\u003e\u003ccode\u003e02434cd\u003c/code\u003e\u003c/a\u003e chore(python): remove unused docs scripts (\u003ca href=\"https://redirect.github.com/googleapis/python-crc32c/issues/271\"\u003e#271\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-crc32c/commit/a63ba5521430e728d96d7aec4797dccf9bea45b4\"\u003e\u003ccode\u003ea63ba55\u003c/code\u003e\u003c/a\u003e chore(main): release 1.7.0 (\u003ca href=\"https://redirect.github.com/googleapis/python-crc32c/issues/246\"\u003e#246\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-crc32c/commit/ffede4b1c793e77d7b0a8e954f68aceb4074c904\"\u003e\u003ccode\u003effede4b\u003c/code\u003e\u003c/a\u003e build: disable logging in publish_python_wheel.sh (\u003ca href=\"https://redirect.github.com/googleapis/python-crc32c/issues/276\"\u003e#276\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-crc32c/commit/45f4714785385ce310f8316012773fffda0f577d\"\u003e\u003ccode\u003e45f4714\u003c/code\u003e\u003c/a\u003e build: update build scripts to prepare for release (\u003ca href=\"https://redirect.github.com/googleapis/python-crc32c/issues/275\"\u003e#275\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-crc32c/commit/6b918f4b081daf3cbee0cbd778b27c98670fb3a4\"\u003e\u003ccode\u003e6b918f4\u003c/code\u003e\u003c/a\u003e feat: add support for python 3.13 (\u003ca href=\"https://redirect.github.com/googleapis/python-crc32c/issues/239\"\u003e#239\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/python-crc32c/compare/v1.6.0...v1.7.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `googleapis-common-protos[grpc]` from 1.70.0 to 1.71.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/releases\"\u003egoogleapis-common-protos[grpc]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogleapis-common-protos 1.71.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/googleapis-common-protos-v1.70.0...googleapis-common-protos-v1.71.0\"\u003e1.71.0\u003c/a\u003e (2025-10-20)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd support for Python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14699\"\u003e#14699\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/8b69540b\"\u003e8b69540b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/b46d2934515b3611ca35870fa6b034eb41af5eef\"\u003e\u003ccode\u003eb46d293\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20251020T120127Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14778\"\u003e#14778\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/295713f918bc121843bac0702e759471b06f1f5b\"\u003e\u003ccode\u003e295713f\u003c/code\u003e\u003c/a\u003e chore(librarian): onboard google-cloud-dialogflow-cx (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14768\"\u003e#14768\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/a925caeb1fffce7e8554fb6b5437c98fa5168754\"\u003e\u003ccode\u003ea925cae\u003c/code\u003e\u003c/a\u003e feat: Add support for Python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14764\"\u003e#14764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/84be9032eb7ba04bb305870160699d2bc12e0dac\"\u003e\u003ccode\u003e84be903\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20251017T151203Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14762\"\u003e#14762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1b6c82dedecc7f5cff09650ee204641577620751\"\u003e\u003ccode\u003e1b6c82d\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20251016T234720Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14754\"\u003e#14754\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/32b32eff99a3312711e116b75d12aabffa06a869\"\u003e\u003ccode\u003e32b32ef\u003c/code\u003e\u003c/a\u003e chore(librarian): Delete grpc-google-iam-v1/.OwlBot.yaml (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14747\"\u003e#14747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/d0ebbba25ce500e39e43635e4d55ca8f3226fa0e\"\u003e\u003ccode\u003ed0ebbba\u003c/code\u003e\u003c/a\u003e chore(librarian): onboard google-cloud-gke-hub (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14720\"\u003e#14720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/531a400efb37d16dba07a4b3c3481d99b35c5e2e\"\u003e\u003ccode\u003e531a400\u003c/code\u003e\u003c/a\u003e chore(librarian): onboard google-cloud-monitoring-dashboards (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14719\"\u003e#14719\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/3b6cd47e851ff66ee95dcf66dc37743cc9133c05\"\u003e\u003ccode\u003e3b6cd47\u003c/code\u003e\u003c/a\u003e chore(librarian): reduce diff in google-cloud-iam (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14718\"\u003e#14718\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/80ab8285f6ace1830fe2f44de55e5b6cded6e2de\"\u003e\u003ccode\u003e80ab828\u003c/code\u003e\u003c/a\u003e chore: update README for Python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14738\"\u003e#14738\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/googleapis-common-protos-v1.70.0...googleapis-common-protos-v1.71.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `grpcio-status` from 1.70.0 to 1.76.0\n\nUpdates `grpcio` from 1.70.0 to 1.76.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/grpc/grpc/releases\"\u003egrpcio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v1.76.0\u003c/h2\u003e\n\u003cp\u003eThis is release 1.76.0 (\u003ca href=\"https://github.com/grpc/grpc/blob/master/doc/g_stands_for.md\"\u003egenuine\u003c/a\u003e) of gRPC Core.\u003c/p\u003e\n\u003cp\u003eFor gRPC documentation, see \u003ca href=\"https://grpc.io/\"\u003egrpc.io\u003c/a\u003e. For previous releases, see \u003ca href=\"https://github.com/grpc/grpc/releases\"\u003eReleases\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis release contains refinements, improvements, and bug fixes, with highlights listed below.\u003c/p\u003e\n\u003ch2\u003eCore\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePrioritize system CA over bundled CA. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/40583\"\u003e#40583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[event_engine] Introduce a event_engine_poller_for_python experiment. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/40243\"\u003e#40243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[metrics] add grpc.lb.backend_service label. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/40486\"\u003e#40486\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eC#\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[csharp tools] \u003ca href=\"https://redirect.github.com/grpc/grpc/issues/39374\"\u003e#39374\u003c/a\u003e Grpc.Tools can't process file Suffix name with Upper character. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/40072\"\u003e#40072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePython\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[Python] gRPC AsyncIO: Improve CompletionQueue polling performance. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/39993\"\u003e#39993\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease v1.76.0-pre1\u003c/h2\u003e\n\u003cp\u003eThis is a prerelease of gRPC Core 1.76.0 (genuine).\u003c/p\u003e\n\u003cp\u003eFor gRPC documentation, see \u003ca href=\"https://grpc.io/\"\u003egrpc.io\u003c/a\u003e. For previous releases, see \u003ca href=\"https://github.com/grpc/grpc/releases\"\u003eReleases\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis prerelease contains refinements, improvements, and bug fixes.\u003c/p\u003e\n\u003ch2\u003eRelease v1.75.1\u003c/h2\u003e\n\u003cp\u003eThis is release gRPC Core 1.75.1 (gemini).\u003c/p\u003e\n\u003cp\u003eFor gRPC documentation, see \u003ca href=\"https://grpc.io/\"\u003egrpc.io\u003c/a\u003e. For previous releases, see \u003ca href=\"https://github.com/grpc/grpc/releases\"\u003eReleases\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis release contains refinements, improvements, and bug fixes.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003ePython\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRelease grpcio wheels with Python 3.14 support (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40403\"\u003e#40403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAsyncio: fixes grpc shutdown race condition occurring during python interpreter finalizations. (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40447\"\u003e#40447\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eThis also addresses previously reported issues with empty error message on Python interpreter exit (\u003ccode\u003eError in sys.excepthook:\u003c/code\u003e/\u003ccode\u003eOriginal exception was:\u003c/code\u003e empty): \u003ca href=\"https://redirect.github.com/grpc/grpc/issues/36655\"\u003e#36655\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/grpc/grpc/issues/38679\"\u003e#38679\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/grpc/grpc/issues/33342\"\u003e#33342\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003ePython 3.14: preserve current behavior when using grpc.aio async methods outside of a running event loop. (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40750\"\u003e#40750\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eNote: using async methods outside of a running event loop is \u003ca href=\"https://docs.python.org/3.14/library/asyncio-policy.html#asyncio-policies\"\u003ediscouraged\u003c/a\u003e by Python, and \u003cstrong\u003ewill be deprecated in future gRPC releases\u003c/strong\u003e. Please use the \u003ca href=\"https://docs.python.org/3.14/library/asyncio-runner.html#asyncio.run\"\u003easyncio.run()\u003c/a\u003e function (or \u003ca href=\"https://docs.python.org/3.14/library/asyncio-runner.html#asyncio.Runner\"\u003easyncio.Runner\u003c/a\u003e for custom loop factories). For interactive mode, use dedicated \u003ca href=\"https://docs.python.org/3/library/asyncio.html#asyncio-cli\"\u003easyncio REPL\u003c/a\u003e: \u003ccode\u003epython -m asyncio\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/grpc/grpc/compare/v1.75.0...v1.75.1\"\u003ehttps://github.com/grpc/grpc/compare/v1.75.0...v1.75.1\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/f5ffb68d8a2fd603dff16287e90a4ac571e1fec6\"\u003e\u003ccode\u003ef5ffb68\u003c/code\u003e\u003c/a\u003e [Release] Bump version to 1.76.0 (on v1.76.x branch) (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40925\"\u003e#40925\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/ffd83794b3804739c0789096155833e302ac1270\"\u003e\u003ccode\u003effd8379\u003c/code\u003e\u003c/a\u003e [Release] Bump version to 1.76.0-pre1 (on v1.76.x branch) (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40798\"\u003e#40798\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/835d394034060002262ab4e404e552ac0393a1a1\"\u003e\u003ccode\u003e835d394\u003c/code\u003e\u003c/a\u003e [Release] Bump core version to 51.0.0 for upcoming release (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40784\"\u003e#40784\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/de6ce7f32b1bf254d2b4c04e8872b63284632fd3\"\u003e\u003ccode\u003ede6ce7f\u003c/code\u003e\u003c/a\u003e [PH2] Add files for goaway support (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40786\"\u003e#40786\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/f7dd7f4b4186049d104aa2c88ad4432f58c19ede\"\u003e\u003ccode\u003ef7dd7f4\u003c/code\u003e\u003c/a\u003e [PH2][Trivial][CleanUp]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/2d40a376c7ea72602fa7bc62606324b1ff14c44f\"\u003e\u003ccode\u003e2d40a37\u003c/code\u003e\u003c/a\u003e [PH2][ChannelZ][ZTrace][Skeleton]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/83acb278bef565d8d46d6e19582eaacc86f737a3\"\u003e\u003ccode\u003e83acb27\u003c/code\u003e\u003c/a\u003e [build] Add Missing Dependencies for reflection_proto in Preparation for Enab...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/abfe8a29d31a8ab9ff6cdda11cdfa2813cb59632\"\u003e\u003ccode\u003eabfe8a2\u003c/code\u003e\u003c/a\u003e [PH2] Stream list represents streams open for reads.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/c65d8de800aaa907b45cee54ebcd29d5b556d3ca\"\u003e\u003ccode\u003ec65d8de\u003c/code\u003e\u003c/a\u003e [PH2][Expt] Fix the experiment expiry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/755d025f16d20641155e89ecc46777e94e9e172d\"\u003e\u003ccode\u003e755d025\u003c/code\u003e\u003c/a\u003e Fix latent_see_test flakiness\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/grpc/grpc/compare/v1.70.0...v1.76.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `iniconfig` from 2.1.0 to 2.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/iniconfig/releases\"\u003einiconfig's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 2.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd IniConfig.parse() with inline comment stripping and Unicode whitespace handling by \u003ca href=\"https://github.com/RonnyPfannschmidt\"\u003e\u003ccode\u003e@​RonnyPfannschmidt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/pull/70\"\u003epytest-dev/iniconfig#70\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pytest-dev/iniconfig/compare/v2.2.0...v2.3.0\"\u003ehttps://github.com/pytest-dev/iniconfig/compare/v2.2.0...v2.3.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 2.2.0\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/iniconfig/blob/main/CHANGELOG\"\u003einiconfig's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.3.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eadd IniConfig.parse() classmethod with strip_inline_comments parameter (fixes \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/55\"\u003e#55\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eby default (strip_inline_comments=True), inline comments are properly stripped from values\u003c/li\u003e\n\u003cli\u003eset strip_inline_comments=False to preserve old behavior if needed\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eIniConfig() constructor maintains backward compatibility (does not strip inline comments)\u003c/li\u003e\n\u003cli\u003eusers should migrate to IniConfig.parse() for correct comment handling\u003c/li\u003e\n\u003cli\u003eadd strip_section_whitespace parameter to IniConfig.parse() (regarding \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/4\"\u003e#4\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eopt-in parameter to strip Unicode whitespace from section names\u003c/li\u003e\n\u003cli\u003ewhen True, strips Unicode whitespace (U+00A0, U+2000, U+3000, etc.) from section names\u003c/li\u003e\n\u003cli\u003ewhen False (default), preserves existing behavior for backward compatibility\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eclarify Unicode whitespace handling (regarding \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/4\"\u003e#4\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003esince iniconfig 2.0.0 (Python 3 only), all strings are Unicode by default\u003c/li\u003e\n\u003cli\u003ePython 3's str.strip() has handled Unicode whitespace since Python 3.0 (2008)\u003c/li\u003e\n\u003cli\u003einiconfig automatically benefits from this in all supported versions (Python \u0026gt;= 3.10)\u003c/li\u003e\n\u003cli\u003ekey names and values have Unicode whitespace properly stripped using Python's built-in methods\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.2.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003edrop Python 3.8 and 3.9 support (now requires Python \u0026gt;= 3.10)\u003c/li\u003e\n\u003cli\u003eadd Python 3.14 classifier\u003c/li\u003e\n\u003cli\u003emigrate from hatchling to setuptools 77 with setuptools_scm\u003c/li\u003e\n\u003cli\u003eadopt PEP 639 license specifiers and PEP 740 build attestations\u003c/li\u003e\n\u003cli\u003emigrate from black + pyupgrade to ruff\u003c/li\u003e\n\u003cli\u003emigrate CI to uv and unified test workflow\u003c/li\u003e\n\u003cli\u003eautomate GitHub releases and PyPI publishing via Trusted Publishing\u003c/li\u003e\n\u003cli\u003einclude tests in sdist\u003c/li\u003e\n\u003cli\u003emodernize code for Python 3.10+ (remove \u003cstrong\u003efuture\u003c/strong\u003e annotations, TYPE_CHECKING guards)\u003c/li\u003e\n\u003cli\u003erename _ParsedLine to ParsedLine\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/7faed13ae50bad7c5da3f5782f254a8a7736bb84\"\u003e\u003ccode\u003e7faed13\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/70\"\u003e#70\u003c/a\u003e from RonnyPfannschmidt/comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/58c08691bbb86aee8efbf73e37293dd6d65b68b4\"\u003e\u003ccode\u003e58c0869\u003c/code\u003e\u003c/a\u003e Refactor: Simplify IniConfig constructor and parse() method\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/6d0af4529e4375e49dc871aa3d5ce17fe1791afe\"\u003e\u003ccode\u003e6d0af45\u003c/code\u003e\u003c/a\u003e Add strip_section_whitespace parameter to address issue \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/4\"\u003e#4\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/e2d89f5283cbeb4b4ca55fe88b1c353c343b4972\"\u003e\u003ccode\u003ee2d89f5\u003c/code\u003e\u003c/a\u003e Add IniConfig.parse() classmethod to fix inline comment handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/57b7ed9c7a5950f9c57b2cfbe641ff4cc04baf1c\"\u003e\u003ccode\u003e57b7ed9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/66\"\u003e#66\u003c/a\u003e from killiandesse/pep639\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/27ac49f56794db397ecb017414663a81e701dfdc\"\u003e\u003ccode\u003e27ac49f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/69\"\u003e#69\u003c/a\u003e from RonnyPfannschmidt/limit-attestation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/3402322097aa7b6eba9a68c96faddc780e04b085\"\u003e\u003ccode\u003e3402322\u003c/code\u003e\u003c/a\u003e Disable build attestations for PRs from forks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/27e6a7b4a7b24f7f8a5e5492b071ab16eff36f95\"\u003e\u003ccode\u003e27e6a7b\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into pep639\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/65228817674f099d48cab0f0974000ea0e3031c1\"\u003e\u003ccode\u003e6522881\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/iniconfig/issues/68\"\u003e#68\u003c/a\u003e from pytest-dev/fix-build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/iniconfig/commit/8b2bccb3b6be37c9bf70a4fbe0cda4c92c70355f\"\u003e\u003ccode\u003e8b2bccb\u003c/code\u003e\u003c/a\u003e Update CHANGELOG and automate releases\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/iniconfig/compare/v2.1.0...v2.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `libcst` from 1.7.0 to 1.8.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/releases\"\u003elibcst's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.8.5\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: circular import error by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1406\"\u003eInstagram/LibCST#1406\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.4...v1.8.5\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.4...v1.8.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.8.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efixed: generate Attribute nodes when applying type annotations by \u003ca href=\"https://github.com/tungol\"\u003e\u003ccode\u003e@​tungol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1396\"\u003eInstagram/LibCST#1396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded:Support parsing of t-strings \u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1374\"\u003e#1374\u003c/a\u003e  by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1398\"\u003eInstagram/LibCST#1398\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded: add support for PEP758 by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1401\"\u003eInstagram/LibCST#1401\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tungol\"\u003e\u003ccode\u003e@​tungol\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1396\"\u003eInstagram/LibCST#1396\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.4\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.8.2\u003c/h2\u003e\n\u003ch1\u003eFixed\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix(dependency): add back typing-extensions for 3.9 by \u003ca href=\"https://github.com/Lee-W\"\u003e\u003ccode\u003e@​Lee-W\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1358\"\u003eInstagram/LibCST#1358\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Lee-W\"\u003e\u003ccode\u003e@​Lee-W\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1358\"\u003eInstagram/LibCST#1358\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.1...v1.8.2\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.1...v1.8.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.8.1\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd helper to convert nodes to matchers by \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1351\"\u003eInstagram/LibCST#1351\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eUpdated\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid raising bare Exception by \u003ca href=\"https://github.com/zaicruvoir1rominet\"\u003e\u003ccode\u003e@​zaicruvoir1rominet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1168\"\u003eInstagram/LibCST#1168\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade PyYAML-ft version and use new module name by \u003ca href=\"https://github.com/lysnikolaou\"\u003e\u003ccode\u003e@​lysnikolaou\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1353\"\u003eInstagram/LibCST#1353\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lysnikolaou\"\u003e\u003ccode\u003e@​lysnikolaou\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1353\"\u003eInstagram/LibCST#1353\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.0...v1.8.1\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.0...v1.8.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.8.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow configuring empty formatter lists in codemod CLI by \u003ca href=\"https://github.com/ngoldbaum\"\u003e\u003ccode\u003e@​ngoldbaum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1319\"\u003eInstagram/LibCST#1319\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePublish several new binary wheels\n\u003cul\u003e\n\u003cli\u003emacos intel by \u003ca href=\"https://github.com/hadialqattan\"\u003e\u003ccode\u003e@​hadialqattan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1316\"\u003eInstagram/LibCST#1316\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ewindows arm64 by \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1304\"\u003eInstagram/LibCST#1304\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e3.13 CPython free-threaded by \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1333\"\u003eInstagram/LibCST#1333\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(only on \u003ca href=\"https://test.pypi.org/project/libcst/#history\"\u003etest.pypi.org\u003c/a\u003e) 3.14 and 3.14 CPython free-threaded by \u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1345\"\u003eInstagram/LibCST#1345\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1331\"\u003eInstagram/LibCST#1331\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eEnable support for free-threaded CPython by \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1295\"\u003eInstagram/LibCST#1295\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1335\"\u003eInstagram/LibCST#1335\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/blob/main/CHANGELOG.md\"\u003elibcst's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.8.5 - 2025-09-25\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efixed: circular import error by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1406\"\u003eInstagram/LibCST#1406\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.8.4 - 2025-09-09\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efixed: generate Attribute nodes when applying type annotations by \u003ca href=\"https://github.com/tungol\"\u003e\u003ccode\u003e@​tungol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1396\"\u003eInstagram/LibCST#1396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded: Support parsing of t-strings \u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1374\"\u003e#1374\u003c/a\u003e  by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1398\"\u003eInstagram/LibCST#1398\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded: add support for PEP758 by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1401\"\u003eInstagram/LibCST#1401\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tungol\"\u003e\u003ccode\u003e@​tungol\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1396\"\u003eInstagram/LibCST#1396\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.4\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.4\u003c/a\u003e\u003c/p\u003e\n\u003ch1\u003e1.8.3 - 2025-08-29\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eremoved: remove entry points to pure parser by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1375\"\u003eInstagram/LibCST#1375\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixed: fixes match statements to work with PositionProvider by \u003ca href=\"https://github.com/imsut\"\u003e\u003ccode\u003e@​imsut\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1389\"\u003eInstagram/LibCST#1389\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hunterhogan\"\u003e\u003ccode\u003e@​hunterhogan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1378\"\u003eInstagram/LibCST#1378\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thomas-serre-sonarsource\"\u003e\u003ccode\u003e@​thomas-serre-sonarsource\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1379\"\u003eInstagram/LibCST#1379\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/imsut\"\u003e\u003ccode\u003e@​imsut\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1389\"\u003eInstagram/LibCST#1389\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.3\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.3\u003c/a\u003e\u003c/p\u003e\n\u003ch1\u003e1.8.2 - 2025-06-13\u003c/h1\u003e\n\u003ch1\u003eFixed\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix(dependency): add back typing-extensions for 3.9 by \u003ca href=\"https://github.com/Lee-W\"\u003e\u003ccode\u003e@​Lee-W\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1358\"\u003eInstagram/LibCST#1358\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Lee-W\"\u003e\u003ccode\u003e@​Lee-W\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1358\"\u003eInstagram/LibCST#1358\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.1...v1.8.2\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.1...v1.8.2\u003c/a\u003e\u003c/p\u003e\n\u003ch1\u003e1.8.1 - 2025-06-10\u003c/h1\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd helper to convert nodes to matchers by \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1351\"\u003eInstagram/LibCST#1351\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eUpdated\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid raising bare Exception by \u003ca href=\"https://github.com/zaicruvoir1rominet\"\u003e\u003ccode\u003e@​zaicruvoir1rominet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1168\"\u003eInstagram/LibCST#1168\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade PyYAML-ft version and use new module name by \u003ca href=\"https://github.com/lysnikolaou\"\u003e\u003ccode\u003e@​lysnikolaou\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1353\"\u003eInstagram/LibCST#1353\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/7c906eb47c02dca8d5b4273a032805516361c8cb\"\u003e\u003ccode\u003e7c906eb\u003c/code\u003e\u003c/a\u003e bump version to 1.8.5 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1407\"\u003e#1407\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/de5635394b5627cb86656147ba2f96e835ed3d44\"\u003e\u003ccode\u003ede56353\u003c/code\u003e\u003c/a\u003e fix: circular import error (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1406\"\u003e#1406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/47cacb69a32520be52975527e0cc87a4b4d5cd77\"\u003e\u003ccode\u003e47cacb6\u003c/code\u003e\u003c/a\u003e bump version to 1.8.4 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1402\"\u003e#1402\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/3b5329aa2022d97972d2f58eefe61b759b8e56c1\"\u003e\u003ccode\u003e3b5329a\u003c/code\u003e\u003c/a\u003e feat: add support for PEP758 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1401\"\u003e#1401\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/48668dfabb25e4bbdd35f81407498f5f5e47bf88\"\u003e\u003ccode\u003e48668df\u003c/code\u003e\u003c/a\u003e Support parsing of t-strings \u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1374\"\u003e#1374\u003c/a\u003e  (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1398\"\u003e#1398\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/0c82bfa76166ed38409a97de8974f9aaf3e7e572\"\u003e\u003ccode\u003e0c82bfa\u003c/code\u003e\u003c/a\u003e build(deps): bump regex from 1.11.1 to 1.11.2 in /native (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1399\"\u003e#1399\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/f40d8351450ca9adfe5270bd86ec7951e83221f4\"\u003e\u003ccode\u003ef40d835\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1400\"\u003e#1400\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/d721a06c3fc3ab9210acd180cec5aaca856e1bc7\"\u003e\u003ccode\u003ed721a06\u003c/code\u003e\u003c/a\u003e generate Attribute nodes when applying type annotations (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1396\"\u003e#1396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/e064729b4c04b834754c7be7f43a4dfb38972570\"\u003e\u003ccode\u003ee064729\u003c/code\u003e\u003c/a\u003e build(deps): bump pypa/cibuildwheel from 3.0.1 to 3.1.4 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1395\"\u003e#1395\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/f746afd537910d99bd8226a1c1edbf5bc69630eb\"\u003e\u003ccode\u003ef746afd\u003c/code\u003e\u003c/a\u003e build(deps): bump rayon from 1.10.0 to 1.11.0 in /native (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1394\"\u003e#1394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.7.0...v1.8.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `numpy` from 2.2.0 to 2.3.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/numpy/numpy/releases\"\u003enumpy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.3.4 (Oct 15,  2025)\u003c/h2\u003e\n\u003ch1\u003eNumPy 2.3.4 Release Notes\u003c/h1\u003e\n\u003cp\u003eThe NumPy 2.3.4 release is a patch release split between a number of maintenance\nupdates and bug fixes. This release supports Python versions 3.11-3.14. This\nrelease is based on Python 3.14.0 final.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cp\u003eThe \u003ccode\u003enpymath\u003c/code\u003e and \u003ccode\u003enpyrandom\u003c/code\u003e libraries now have a \u003ccode\u003e.lib\u003c/code\u003e rather than a\n\u003ccode\u003e.a\u003c/code\u003e file extension on win-arm64, for compatibility for building with MSVC and\n\u003ccode\u003esetuptools\u003c/code\u003e. Please note that using these static libraries is discouraged\nand for existing projects using it, it's best to use it with a matching\ncompiler toolchain, which is \u003ccode\u003eclang-cl\u003c/code\u003e on Windows on Arm.\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/29750\"\u003egh-29750\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eA total of 17 people contributed to this release. People with a \u0026quot;+\u0026quot; by their\nnames contributed a patch for the first time.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e!DWesl\u003c/li\u003e\n\u003cli\u003eCharles Harris\u003c/li\u003e\n\u003cli\u003eChristian Barbia +\u003c/li\u003e\n\u003cli\u003eEvgeni Burovski\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eMaaz +\u003c/li\u003e\n\u003cli\u003eMateusz Sokół\u003c/li\u003e\n\u003cli\u003eMatti Picus\u003c/li\u003e\n\u003cli\u003eNathan Goldbaum\u003c/li\u003e\n\u003cli\u003eRalf Gommers\u003c/li\u003e\n\u003cli\u003eRiku Sakamoto +\u003c/li\u003e\n\u003cli\u003eSandeep Gupta +\u003c/li\u003e\n\u003cli\u003eSayed Awad\u003c/li\u003e\n\u003cli\u003eSebastian Berg\u003c/li\u003e\n\u003cli\u003eSergey Fedorov +\u003c/li\u003e\n\u003cli\u003eWarren Weckesser\u003c/li\u003e\n\u003cli\u003edependabot[bot]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePull requests merged\u003c/h2\u003e\n\u003cp\u003eA total of 30 pull requests were merged for this release.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/29725\"\u003e#29725\u003c/a\u003e: MAINT: Prepare 2.3.x for further development\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/29781\"\u003e#29781\u003c/a\u003e: MAINT: Pin some upstream dependences\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/29782\"\u003e#29782\u003c/a\u003e: BLD: enable x86-simd-sort to build on KNL with -mavx512f\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/29783\"\u003e#29783\u003c/a\u003e: BUG: Include python-including headers first (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/29281\"\u003e#29281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/29784\"\u003e#29784\u003c/a\u003e: TYP: fix np.number and np.*integer method declaration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/29785\"\u003e#29785\u003c/a\u003e: TYP: mypy 1.18.1\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/1458b9e79d1a5755eae9adcb346758f449b6b430\"\u003e\u003ccode\u003e1458b9e\u003c/code\u003e\u003c/a\u003e REL: Prepare for the NumPy 2.3.4 release (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/29955\"\u003e#29955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/7583bed3577d8b5e7e74a24a6337d530b045f0bc\"\u003e\u003ccode\u003e7583bed\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/29950\"\u003e#29950\u003c/a\u003e from charris/backport-29885\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/318675152646f184a24da3f9b8742de202c99bfb\"\u003e\u003ccode\u003e3186751\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/29949\"\u003e#29949\u003c/a\u003e from charris/backport-29948\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/7fd2ad9eff9cb04bcea5e2b6f89e8870329c5c93\"\u003e\u003ccode\u003e7fd2ad9\u003c/code\u003e\u003c/a\u003e STY: rename \u003ccode\u003e@classmethod\u003c/code\u003e arg to \u003ccode\u003ecls\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/fe8447d7aefe7c63ab37d426e6d725e857fb45f7\"\u003e\u003ccode\u003efe8447d\u003c/code\u003e\u003c/a\u003e MAINT: Simplify string arena growth strategy (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/29885\"\u003e#29885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/a90f073415846b378ab166b5a2f9acf87876853b\"\u003e\u003ccode\u003ea90f073\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/29940\"\u003e#29940\u003c/a\u003e from charris/backport-29937\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/55d91abd9564835cc0e0dcc92d84b25dcfaff1d9\"\u003e\u003ccode\u003e55d91ab\u003c/code\u003e\u003c/a\u003e MAINT: Bump pypa/cibuildwheel from 3.1.4 to 3.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/e2f038314bb736930f74c127eed8843d29f59c55\"\u003e\u003ccode\u003ee2f0383\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/29926\"\u003e#29926\u003c/a\u003e from charris/backport-29609\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/b427e83710abd344168f156ab212a8d19f0d2185\"\u003e\u003ccode\u003eb427e83\u003c/code\u003e\u003c/a\u003e BUG: fix negative samples generated by Wald distribution (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/29609\"\u003e#29609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/36363d6534eb9e786f998a56ccc59f0ba1bc1efe\"\u003e\u003ccode\u003e36363d6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/29922\"\u003e#29922\u003c/a\u003e from charris/backport-29914\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/numpy/numpy/compare/v2.2.0...v2.3.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pandas` from 2.2.3 to 2.3.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pandas-dev/pandas/releases\"\u003epandas's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ePandas 2.3.3\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 2.3.3.\nThis release includes some improvements and fixes to the future string data type (preview feature for the upcoming pandas 3.0). We recommend that all users upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/pandas-docs/version/2.3/whatsnew/v2.3.3.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\nPandas 2.3.3 supports Python 3.9 and higher, and is the first release to support Python 3.14.\u003c/p\u003e\n\u003cp\u003eThe release will be available on the conda-forge channel:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install pandas --channel conda-forge\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr via PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython3 -m pip install --upgrade pandas\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003ch2\u003ePandas 2.3.2\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 2.3.2.\nThis release includes some improvements and fixes to the future string data type (preview feature for the upcoming pandas 3.0). We recommend that all users upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/pandas-docs/version/2.3/whatsnew/v2.3.2.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\nPandas 2.3.2 supports Python 3.9 and higher.\u003c/p\u003e\n\u003cp\u003eThe release will be available on the conda-forge channel:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install pandas --channel conda-forge\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr via PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython3 -m pip install --upgrade pandas\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003ch2\u003ePandas 2.3.1\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 2.3.1.\nThis release includes some improvements and fixes to the future string data type (preview feature for the upcoming pandas 3.0). We recommend that all users upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/pandas-docs/version/2.3.1/whatsnew/v2.3.1.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\nPandas 2.3.1 supports Python 3.9 and hi...\n\n_Description has been truncated_","html_url":"https://github.com/SatcherInstitute/health-equity-tracker/pull/4529","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/SatcherInstitute%2Fhealth-equity-tracker/issues/4529","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/4529/packages"}},{"old_version":"1.7.0","new_version":"1.8.5","update_type":"minor","path":null,"pr_created_at":"2025-10-20T17:12:17.000Z","version_change":"1.7.0 → 1.8.5","issue":{"uuid":"3533243963","node_id":"PR_kwDOP8wAgs6urK6V","number":930,"state":"closed","title":"Bump libcst from 1.7.0 to 1.8.5","user":"dependabot[bot]","labels":["dependencies","python","test-needed","missing-coverage"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-10-20T17:15:23.000Z","author_association":null,"state_reason":null,"created_at":"2025-10-20T17:12:17.000Z","updated_at":"2025-10-20T17:15:32.000Z","time_to_close":186,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"libcst","old_version":"1.7.0","new_version":"1.8.5","repository_url":"https://github.com/Instagram/LibCST"}],"path":null,"ecosystem":"pip"},"body":"Bumps [libcst](https://github.com/Instagram/LibCST) from 1.7.0 to 1.8.5.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/releases\"\u003elibcst's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.8.5\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: circular import error by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1406\"\u003eInstagram/LibCST#1406\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.4...v1.8.5\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.4...v1.8.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.8.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efixed: generate Attribute nodes when applying type annotations by \u003ca href=\"https://github.com/tungol\"\u003e\u003ccode\u003e@​tungol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1396\"\u003eInstagram/LibCST#1396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded:Support parsing of t-strings \u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1374\"\u003e#1374\u003c/a\u003e  by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1398\"\u003eInstagram/LibCST#1398\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded: add support for PEP758 by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1401\"\u003eInstagram/LibCST#1401\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tungol\"\u003e\u003ccode\u003e@​tungol\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1396\"\u003eInstagram/LibCST#1396\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.4\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.8.2\u003c/h2\u003e\n\u003ch1\u003eFixed\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix(dependency): add back typing-extensions for 3.9 by \u003ca href=\"https://github.com/Lee-W\"\u003e\u003ccode\u003e@​Lee-W\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1358\"\u003eInstagram/LibCST#1358\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Lee-W\"\u003e\u003ccode\u003e@​Lee-W\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1358\"\u003eInstagram/LibCST#1358\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.1...v1.8.2\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.1...v1.8.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.8.1\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd helper to convert nodes to matchers by \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1351\"\u003eInstagram/LibCST#1351\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eUpdated\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid raising bare Exception by \u003ca href=\"https://github.com/zaicruvoir1rominet\"\u003e\u003ccode\u003e@​zaicruvoir1rominet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1168\"\u003eInstagram/LibCST#1168\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade PyYAML-ft version and use new module name by \u003ca href=\"https://github.com/lysnikolaou\"\u003e\u003ccode\u003e@​lysnikolaou\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1353\"\u003eInstagram/LibCST#1353\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lysnikolaou\"\u003e\u003ccode\u003e@​lysnikolaou\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1353\"\u003eInstagram/LibCST#1353\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.0...v1.8.1\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.0...v1.8.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.8.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow configuring empty formatter lists in codemod CLI by \u003ca href=\"https://github.com/ngoldbaum\"\u003e\u003ccode\u003e@​ngoldbaum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1319\"\u003eInstagram/LibCST#1319\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePublish several new binary wheels\n\u003cul\u003e\n\u003cli\u003emacos intel by \u003ca href=\"https://github.com/hadialqattan\"\u003e\u003ccode\u003e@​hadialqattan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1316\"\u003eInstagram/LibCST#1316\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ewindows arm64 by \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1304\"\u003eInstagram/LibCST#1304\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e3.13 CPython free-threaded by \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1333\"\u003eInstagram/LibCST#1333\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(only on \u003ca href=\"https://test.pypi.org/project/libcst/#history\"\u003etest.pypi.org\u003c/a\u003e) 3.14 and 3.14 CPython free-threaded by \u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1345\"\u003eInstagram/LibCST#1345\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1331\"\u003eInstagram/LibCST#1331\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eEnable support for free-threaded CPython by \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1295\"\u003eInstagram/LibCST#1295\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1335\"\u003eInstagram/LibCST#1335\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/blob/main/CHANGELOG.md\"\u003elibcst's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.8.5 - 2025-09-25\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efixed: circular import error by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1406\"\u003eInstagram/LibCST#1406\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.8.4 - 2025-09-09\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efixed: generate Attribute nodes when applying type annotations by \u003ca href=\"https://github.com/tungol\"\u003e\u003ccode\u003e@​tungol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1396\"\u003eInstagram/LibCST#1396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded: Support parsing of t-strings \u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1374\"\u003e#1374\u003c/a\u003e  by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1398\"\u003eInstagram/LibCST#1398\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded: add support for PEP758 by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1401\"\u003eInstagram/LibCST#1401\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tungol\"\u003e\u003ccode\u003e@​tungol\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1396\"\u003eInstagram/LibCST#1396\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.4\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.4\u003c/a\u003e\u003c/p\u003e\n\u003ch1\u003e1.8.3 - 2025-08-29\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eremoved: remove entry points to pure parser by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1375\"\u003eInstagram/LibCST#1375\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixed: fixes match statements to work with PositionProvider by \u003ca href=\"https://github.com/imsut\"\u003e\u003ccode\u003e@​imsut\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1389\"\u003eInstagram/LibCST#1389\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hunterhogan\"\u003e\u003ccode\u003e@​hunterhogan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1378\"\u003eInstagram/LibCST#1378\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thomas-serre-sonarsource\"\u003e\u003ccode\u003e@​thomas-serre-sonarsource\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1379\"\u003eInstagram/LibCST#1379\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/imsut\"\u003e\u003ccode\u003e@​imsut\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1389\"\u003eInstagram/LibCST#1389\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.3\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.3\u003c/a\u003e\u003c/p\u003e\n\u003ch1\u003e1.8.2 - 2025-06-13\u003c/h1\u003e\n\u003ch1\u003eFixed\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix(dependency): add back typing-extensions for 3.9 by \u003ca href=\"https://github.com/Lee-W\"\u003e\u003ccode\u003e@​Lee-W\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1358\"\u003eInstagram/LibCST#1358\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Lee-W\"\u003e\u003ccode\u003e@​Lee-W\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1358\"\u003eInstagram/LibCST#1358\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.1...v1.8.2\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.1...v1.8.2\u003c/a\u003e\u003c/p\u003e\n\u003ch1\u003e1.8.1 - 2025-06-10\u003c/h1\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd helper to convert nodes to matchers by \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1351\"\u003eInstagram/LibCST#1351\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eUpdated\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid raising bare Exception by \u003ca href=\"https://github.com/zaicruvoir1rominet\"\u003e\u003ccode\u003e@​zaicruvoir1rominet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1168\"\u003eInstagram/LibCST#1168\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade PyYAML-ft version and use new module name by \u003ca href=\"https://github.com/lysnikolaou\"\u003e\u003ccode\u003e@​lysnikolaou\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1353\"\u003eInstagram/LibCST#1353\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/7c906eb47c02dca8d5b4273a032805516361c8cb\"\u003e\u003ccode\u003e7c906eb\u003c/code\u003e\u003c/a\u003e bump version to 1.8.5 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1407\"\u003e#1407\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/de5635394b5627cb86656147ba2f96e835ed3d44\"\u003e\u003ccode\u003ede56353\u003c/code\u003e\u003c/a\u003e fix: circular import error (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1406\"\u003e#1406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/47cacb69a32520be52975527e0cc87a4b4d5cd77\"\u003e\u003ccode\u003e47cacb6\u003c/code\u003e\u003c/a\u003e bump version to 1.8.4 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1402\"\u003e#1402\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/3b5329aa2022d97972d2f58eefe61b759b8e56c1\"\u003e\u003ccode\u003e3b5329a\u003c/code\u003e\u003c/a\u003e feat: add support for PEP758 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1401\"\u003e#1401\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/48668dfabb25e4bbdd35f81407498f5f5e47bf88\"\u003e\u003ccode\u003e48668df\u003c/code\u003e\u003c/a\u003e Support parsing of t-strings \u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1374\"\u003e#1374\u003c/a\u003e  (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1398\"\u003e#1398\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/0c82bfa76166ed38409a97de8974f9aaf3e7e572\"\u003e\u003ccode\u003e0c82bfa\u003c/code\u003e\u003c/a\u003e build(deps): bump regex from 1.11.1 to 1.11.2 in /native (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1399\"\u003e#1399\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/f40d8351450ca9adfe5270bd86ec7951e83221f4\"\u003e\u003ccode\u003ef40d835\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1400\"\u003e#1400\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/d721a06c3fc3ab9210acd180cec5aaca856e1bc7\"\u003e\u003ccode\u003ed721a06\u003c/code\u003e\u003c/a\u003e generate Attribute nodes when applying type annotations (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1396\"\u003e#1396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/e064729b4c04b834754c7be7f43a4dfb38972570\"\u003e\u003ccode\u003ee064729\u003c/code\u003e\u003c/a\u003e build(deps): bump pypa/cibuildwheel from 3.0.1 to 3.1.4 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1395\"\u003e#1395\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/f746afd537910d99bd8226a1c1edbf5bc69630eb\"\u003e\u003ccode\u003ef746afd\u003c/code\u003e\u003c/a\u003e build(deps): bump rayon from 1.10.0 to 1.11.0 in /native (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1394\"\u003e#1394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.7.0...v1.8.5\"\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=libcst\u0026package-manager=pip\u0026previous-version=1.7.0\u0026new-version=1.8.5)](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/neuron7x/TradePulse/pull/930","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/neuron7x%2FTradePulse/issues/930","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/930/packages"}},{"old_version":"1.7.0","new_version":"1.8.5","update_type":"minor","path":"the dev-dependencies group across 1 directory","pr_created_at":"2025-10-13T09:01:41.537Z","version_change":"1.7.0 → 1.8.5","issue":{"uuid":"2901967766","node_id":"PR_kwDOMt9I9c6s-IOW","number":80,"state":"closed","title":"[pip][dev] (deps-dev): Bump libcst from 1.7.0 to 1.8.5 in the dev-dependencies group across 1 directory","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-10-13T09:01:41.537Z","updated_at":"2025-10-13T10:56:20.236Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"[pip][dev] (deps-dev): Bump","packages":[{"name":"libcst","old_version":"1.7.0","new_version":"1.8.5","repository_url":"https://github.com/Instagram/LibCST"}],"path":"the dev-dependencies group across 1 directory","ecosystem":"pip"},"body":"Bumps the dev-dependencies group with 1 update in the / directory: [libcst](https://github.com/Instagram/LibCST).\n\nUpdates `libcst` from 1.7.0 to 1.8.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/releases\"\u003elibcst's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.8.5\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: circular import error by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1406\"\u003eInstagram/LibCST#1406\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.4...v1.8.5\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.4...v1.8.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.8.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efixed: generate Attribute nodes when applying type annotations by \u003ca href=\"https://github.com/tungol\"\u003e\u003ccode\u003e@​tungol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1396\"\u003eInstagram/LibCST#1396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded:Support parsing of t-strings \u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1374\"\u003e#1374\u003c/a\u003e  by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1398\"\u003eInstagram/LibCST#1398\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded: add support for PEP758 by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1401\"\u003eInstagram/LibCST#1401\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tungol\"\u003e\u003ccode\u003e@​tungol\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1396\"\u003eInstagram/LibCST#1396\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.4\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.8.2\u003c/h2\u003e\n\u003ch1\u003eFixed\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix(dependency): add back typing-extensions for 3.9 by \u003ca href=\"https://github.com/Lee-W\"\u003e\u003ccode\u003e@​Lee-W\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1358\"\u003eInstagram/LibCST#1358\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Lee-W\"\u003e\u003ccode\u003e@​Lee-W\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1358\"\u003eInstagram/LibCST#1358\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.1...v1.8.2\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.1...v1.8.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.8.1\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd helper to convert nodes to matchers by \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1351\"\u003eInstagram/LibCST#1351\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eUpdated\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid raising bare Exception by \u003ca href=\"https://github.com/zaicruvoir1rominet\"\u003e\u003ccode\u003e@​zaicruvoir1rominet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1168\"\u003eInstagram/LibCST#1168\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade PyYAML-ft version and use new module name by \u003ca href=\"https://github.com/lysnikolaou\"\u003e\u003ccode\u003e@​lysnikolaou\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1353\"\u003eInstagram/LibCST#1353\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lysnikolaou\"\u003e\u003ccode\u003e@​lysnikolaou\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1353\"\u003eInstagram/LibCST#1353\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.0...v1.8.1\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.0...v1.8.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.8.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow configuring empty formatter lists in codemod CLI by \u003ca href=\"https://github.com/ngoldbaum\"\u003e\u003ccode\u003e@​ngoldbaum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1319\"\u003eInstagram/LibCST#1319\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePublish several new binary wheels\n\u003cul\u003e\n\u003cli\u003emacos intel by \u003ca href=\"https://github.com/hadialqattan\"\u003e\u003ccode\u003e@​hadialqattan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1316\"\u003eInstagram/LibCST#1316\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ewindows arm64 by \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1304\"\u003eInstagram/LibCST#1304\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e3.13 CPython free-threaded by \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1333\"\u003eInstagram/LibCST#1333\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(only on \u003ca href=\"https://test.pypi.org/project/libcst/#history\"\u003etest.pypi.org\u003c/a\u003e) 3.14 and 3.14 CPython free-threaded by \u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1345\"\u003eInstagram/LibCST#1345\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1331\"\u003eInstagram/LibCST#1331\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eEnable support for free-threaded CPython by \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1295\"\u003eInstagram/LibCST#1295\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1335\"\u003eInstagram/LibCST#1335\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/blob/main/CHANGELOG.md\"\u003elibcst's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.8.5 - 2025-09-25\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efixed: circular import error by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1406\"\u003eInstagram/LibCST#1406\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.8.4 - 2025-09-09\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efixed: generate Attribute nodes when applying type annotations by \u003ca href=\"https://github.com/tungol\"\u003e\u003ccode\u003e@​tungol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1396\"\u003eInstagram/LibCST#1396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded: Support parsing of t-strings \u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1374\"\u003e#1374\u003c/a\u003e  by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1398\"\u003eInstagram/LibCST#1398\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded: add support for PEP758 by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1401\"\u003eInstagram/LibCST#1401\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tungol\"\u003e\u003ccode\u003e@​tungol\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1396\"\u003eInstagram/LibCST#1396\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.4\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.4\u003c/a\u003e\u003c/p\u003e\n\u003ch1\u003e1.8.3 - 2025-08-29\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eremoved: remove entry points to pure parser by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1375\"\u003eInstagram/LibCST#1375\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixed: fixes match statements to work with PositionProvider by \u003ca href=\"https://github.com/imsut\"\u003e\u003ccode\u003e@​imsut\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1389\"\u003eInstagram/LibCST#1389\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hunterhogan\"\u003e\u003ccode\u003e@​hunterhogan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1378\"\u003eInstagram/LibCST#1378\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thomas-serre-sonarsource\"\u003e\u003ccode\u003e@​thomas-serre-sonarsource\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1379\"\u003eInstagram/LibCST#1379\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/imsut\"\u003e\u003ccode\u003e@​imsut\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1389\"\u003eInstagram/LibCST#1389\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.3\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.3\u003c/a\u003e\u003c/p\u003e\n\u003ch1\u003e1.8.2 - 2025-06-13\u003c/h1\u003e\n\u003ch1\u003eFixed\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix(dependency): add back typing-extensions for 3.9 by \u003ca href=\"https://github.com/Lee-W\"\u003e\u003ccode\u003e@​Lee-W\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1358\"\u003eInstagram/LibCST#1358\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Lee-W\"\u003e\u003ccode\u003e@​Lee-W\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1358\"\u003eInstagram/LibCST#1358\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.1...v1.8.2\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.1...v1.8.2\u003c/a\u003e\u003c/p\u003e\n\u003ch1\u003e1.8.1 - 2025-06-10\u003c/h1\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd helper to convert nodes to matchers by \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1351\"\u003eInstagram/LibCST#1351\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eUpdated\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid raising bare Exception by \u003ca href=\"https://github.com/zaicruvoir1rominet\"\u003e\u003ccode\u003e@​zaicruvoir1rominet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1168\"\u003eInstagram/LibCST#1168\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade PyYAML-ft version and use new module name by \u003ca href=\"https://github.com/lysnikolaou\"\u003e\u003ccode\u003e@​lysnikolaou\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1353\"\u003eInstagram/LibCST#1353\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/7c906eb47c02dca8d5b4273a032805516361c8cb\"\u003e\u003ccode\u003e7c906eb\u003c/code\u003e\u003c/a\u003e bump version to 1.8.5 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1407\"\u003e#1407\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/de5635394b5627cb86656147ba2f96e835ed3d44\"\u003e\u003ccode\u003ede56353\u003c/code\u003e\u003c/a\u003e fix: circular import error (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1406\"\u003e#1406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/47cacb69a32520be52975527e0cc87a4b4d5cd77\"\u003e\u003ccode\u003e47cacb6\u003c/code\u003e\u003c/a\u003e bump version to 1.8.4 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1402\"\u003e#1402\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/3b5329aa2022d97972d2f58eefe61b759b8e56c1\"\u003e\u003ccode\u003e3b5329a\u003c/code\u003e\u003c/a\u003e feat: add support for PEP758 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1401\"\u003e#1401\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/48668dfabb25e4bbdd35f81407498f5f5e47bf88\"\u003e\u003ccode\u003e48668df\u003c/code\u003e\u003c/a\u003e Support parsing of t-strings \u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1374\"\u003e#1374\u003c/a\u003e  (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1398\"\u003e#1398\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/0c82bfa76166ed38409a97de8974f9aaf3e7e572\"\u003e\u003ccode\u003e0c82bfa\u003c/code\u003e\u003c/a\u003e build(deps): bump regex from 1.11.1 to 1.11.2 in /native (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1399\"\u003e#1399\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/f40d8351450ca9adfe5270bd86ec7951e83221f4\"\u003e\u003ccode\u003ef40d835\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1400\"\u003e#1400\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/d721a06c3fc3ab9210acd180cec5aaca856e1bc7\"\u003e\u003ccode\u003ed721a06\u003c/code\u003e\u003c/a\u003e generate Attribute nodes when applying type annotations (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1396\"\u003e#1396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/e064729b4c04b834754c7be7f43a4dfb38972570\"\u003e\u003ccode\u003ee064729\u003c/code\u003e\u003c/a\u003e build(deps): bump pypa/cibuildwheel from 3.0.1 to 3.1.4 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1395\"\u003e#1395\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/f746afd537910d99bd8226a1c1edbf5bc69630eb\"\u003e\u003ccode\u003ef746afd\u003c/code\u003e\u003c/a\u003e build(deps): bump rayon from 1.10.0 to 1.11.0 in /native (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1394\"\u003e#1394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.7.0...v1.8.5\"\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=libcst\u0026package-manager=pip\u0026previous-version=1.7.0\u0026new-version=1.8.5)](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/github/annotated-logger/pull/80","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/github%2Fannotated-logger/issues/80","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/80/packages"}},{"old_version":"1.7.0","new_version":"1.8.5","update_type":"minor","path":null,"pr_created_at":"2025-10-12T21:05:15.000Z","version_change":"1.7.0 → 1.8.5","issue":{"uuid":"3507867234","node_id":"PR_kwDOMt9I9c6tWSC9","number":82,"state":"closed","title":"[pip] (deps): Bump the dev-dependencies group across 1 directory with 4 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-10-17T20:25:40.000Z","author_association":null,"state_reason":null,"created_at":"2025-10-12T21:05:15.000Z","updated_at":"2025-10-17T20:25:42.000Z","time_to_close":429625,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"[pip] (deps): Bump","group_name":"dev-dependencies","update_count":4,"packages":[{"name":"idna","old_version":"3.10","new_version":"3.11","repository_url":"https://github.com/kjd/idna"},{"name":"libcst","old_version":"1.7.0","new_version":"1.8.5","repository_url":"https://github.com/Instagram/LibCST"},{"name":"textual","old_version":"6.2.1","new_version":"6.3.0","repository_url":"https://github.com/Textualize/textual"},{"name":"virtualenv","old_version":"20.34.0","new_version":"20.35.3","repository_url":"https://github.com/pypa/virtualenv"}],"path":null,"ecosystem":"pip"},"body":"Bumps the dev-dependencies group with 4 updates in the / directory: [idna](https://github.com/kjd/idna), [libcst](https://github.com/Instagram/LibCST), [textual](https://github.com/Textualize/textual) and [virtualenv](https://github.com/pypa/virtualenv).\n\nUpdates `idna` from 3.10 to 3.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kjd/idna/blob/master/HISTORY.rst\"\u003eidna's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e3.11 (2025-10-12)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate to Unicode 16.0.0, including significant changes to UTS46\nprocessing. As a result of Unicode ending support for it, transitional\nprocessing no longer has an effect and returns the same result.\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14, lowest supported version is Python 3.8.\u003c/li\u003e\n\u003cli\u003eVarious updates to packaging, including PEP 740 support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/ad949ee3052c2265c66e3df2dd8871a5832ba327\"\u003e\u003ccode\u003ead949ee\u003c/code\u003e\u003c/a\u003e Release v3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/cae4ba779e0a543823894bd4136651c187944da8\"\u003e\u003ccode\u003ecae4ba7\u003c/code\u003e\u003c/a\u003e Second release candidate for 3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/8adb305165c77c4a45d1568a70ead75d2197692c\"\u003e\u003ccode\u003e8adb305\u003c/code\u003e\u003c/a\u003e Add space in RST link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/74cb2b652bb06133b0c4ab52cc98221be63162cf\"\u003e\u003ccode\u003e74cb2b6\u003c/code\u003e\u003c/a\u003e Release candidate for 3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/05dab09fdde5bbf7d52f757c4dc62e0ba934cca8\"\u003e\u003ccode\u003e05dab09\u003c/code\u003e\u003c/a\u003e Format idna-data with ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/90eac78b737d26613776b490432fc6d926b15c55\"\u003e\u003ccode\u003e90eac78\u003c/code\u003e\u003c/a\u003e Apply ruff formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/a31ce7ecc0b767e40abb5ce28744ac567b73f366\"\u003e\u003ccode\u003ea31ce7e\u003c/code\u003e\u003c/a\u003e Remove errant test vectors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/81f03334211c78c1832991ce70ebafb3cbfbb79c\"\u003e\u003ccode\u003e81f0333\u003c/code\u003e\u003c/a\u003e Omit vectors known to be broken in test suite\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/a0f32578c0cac28c7ffbb4c860c92eb2b9b579bd\"\u003e\u003ccode\u003ea0f3257\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into unicode-16-uts46-changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/38d98860e6a1ab92fd35ab09ea4739feabf339a3\"\u003e\u003ccode\u003e38d9886\u003c/code\u003e\u003c/a\u003e Remove extra UTS46 test vector\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kjd/idna/compare/v3.10...v3.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `libcst` from 1.7.0 to 1.8.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/releases\"\u003elibcst's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.8.5\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: circular import error by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1406\"\u003eInstagram/LibCST#1406\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.4...v1.8.5\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.4...v1.8.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.8.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efixed: generate Attribute nodes when applying type annotations by \u003ca href=\"https://github.com/tungol\"\u003e\u003ccode\u003e@​tungol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1396\"\u003eInstagram/LibCST#1396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded:Support parsing of t-strings \u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1374\"\u003e#1374\u003c/a\u003e  by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1398\"\u003eInstagram/LibCST#1398\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded: add support for PEP758 by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1401\"\u003eInstagram/LibCST#1401\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tungol\"\u003e\u003ccode\u003e@​tungol\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1396\"\u003eInstagram/LibCST#1396\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.4\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.8.2\u003c/h2\u003e\n\u003ch1\u003eFixed\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix(dependency): add back typing-extensions for 3.9 by \u003ca href=\"https://github.com/Lee-W\"\u003e\u003ccode\u003e@​Lee-W\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1358\"\u003eInstagram/LibCST#1358\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Lee-W\"\u003e\u003ccode\u003e@​Lee-W\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1358\"\u003eInstagram/LibCST#1358\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.1...v1.8.2\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.1...v1.8.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.8.1\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd helper to convert nodes to matchers by \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1351\"\u003eInstagram/LibCST#1351\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eUpdated\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid raising bare Exception by \u003ca href=\"https://github.com/zaicruvoir1rominet\"\u003e\u003ccode\u003e@​zaicruvoir1rominet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1168\"\u003eInstagram/LibCST#1168\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade PyYAML-ft version and use new module name by \u003ca href=\"https://github.com/lysnikolaou\"\u003e\u003ccode\u003e@​lysnikolaou\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1353\"\u003eInstagram/LibCST#1353\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lysnikolaou\"\u003e\u003ccode\u003e@​lysnikolaou\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1353\"\u003eInstagram/LibCST#1353\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.0...v1.8.1\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.0...v1.8.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.8.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow configuring empty formatter lists in codemod CLI by \u003ca href=\"https://github.com/ngoldbaum\"\u003e\u003ccode\u003e@​ngoldbaum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1319\"\u003eInstagram/LibCST#1319\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePublish several new binary wheels\n\u003cul\u003e\n\u003cli\u003emacos intel by \u003ca href=\"https://github.com/hadialqattan\"\u003e\u003ccode\u003e@​hadialqattan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1316\"\u003eInstagram/LibCST#1316\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ewindows arm64 by \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1304\"\u003eInstagram/LibCST#1304\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e3.13 CPython free-threaded by \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1333\"\u003eInstagram/LibCST#1333\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(only on \u003ca href=\"https://test.pypi.org/project/libcst/#history\"\u003etest.pypi.org\u003c/a\u003e) 3.14 and 3.14 CPython free-threaded by \u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1345\"\u003eInstagram/LibCST#1345\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1331\"\u003eInstagram/LibCST#1331\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eEnable support for free-threaded CPython by \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1295\"\u003eInstagram/LibCST#1295\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1335\"\u003eInstagram/LibCST#1335\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/blob/main/CHANGELOG.md\"\u003elibcst's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.8.5 - 2025-09-25\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efixed: circular import error by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1406\"\u003eInstagram/LibCST#1406\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.8.4 - 2025-09-09\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efixed: generate Attribute nodes when applying type annotations by \u003ca href=\"https://github.com/tungol\"\u003e\u003ccode\u003e@​tungol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1396\"\u003eInstagram/LibCST#1396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded: Support parsing of t-strings \u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1374\"\u003e#1374\u003c/a\u003e  by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1398\"\u003eInstagram/LibCST#1398\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded: add support for PEP758 by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1401\"\u003eInstagram/LibCST#1401\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tungol\"\u003e\u003ccode\u003e@​tungol\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1396\"\u003eInstagram/LibCST#1396\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.4\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.4\u003c/a\u003e\u003c/p\u003e\n\u003ch1\u003e1.8.3 - 2025-08-29\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eremoved: remove entry points to pure parser by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1375\"\u003eInstagram/LibCST#1375\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixed: fixes match statements to work with PositionProvider by \u003ca href=\"https://github.com/imsut\"\u003e\u003ccode\u003e@​imsut\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1389\"\u003eInstagram/LibCST#1389\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hunterhogan\"\u003e\u003ccode\u003e@​hunterhogan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1378\"\u003eInstagram/LibCST#1378\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thomas-serre-sonarsource\"\u003e\u003ccode\u003e@​thomas-serre-sonarsource\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1379\"\u003eInstagram/LibCST#1379\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/imsut\"\u003e\u003ccode\u003e@​imsut\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1389\"\u003eInstagram/LibCST#1389\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.3\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.3\u003c/a\u003e\u003c/p\u003e\n\u003ch1\u003e1.8.2 - 2025-06-13\u003c/h1\u003e\n\u003ch1\u003eFixed\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix(dependency): add back typing-extensions for 3.9 by \u003ca href=\"https://github.com/Lee-W\"\u003e\u003ccode\u003e@​Lee-W\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1358\"\u003eInstagram/LibCST#1358\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Lee-W\"\u003e\u003ccode\u003e@​Lee-W\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1358\"\u003eInstagram/LibCST#1358\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.1...v1.8.2\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.1...v1.8.2\u003c/a\u003e\u003c/p\u003e\n\u003ch1\u003e1.8.1 - 2025-06-10\u003c/h1\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd helper to convert nodes to matchers by \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1351\"\u003eInstagram/LibCST#1351\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eUpdated\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid raising bare Exception by \u003ca href=\"https://github.com/zaicruvoir1rominet\"\u003e\u003ccode\u003e@​zaicruvoir1rominet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1168\"\u003eInstagram/LibCST#1168\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade PyYAML-ft version and use new module name by \u003ca href=\"https://github.com/lysnikolaou\"\u003e\u003ccode\u003e@​lysnikolaou\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1353\"\u003eInstagram/LibCST#1353\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/7c906eb47c02dca8d5b4273a032805516361c8cb\"\u003e\u003ccode\u003e7c906eb\u003c/code\u003e\u003c/a\u003e bump version to 1.8.5 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1407\"\u003e#1407\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/de5635394b5627cb86656147ba2f96e835ed3d44\"\u003e\u003ccode\u003ede56353\u003c/code\u003e\u003c/a\u003e fix: circular import error (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1406\"\u003e#1406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/47cacb69a32520be52975527e0cc87a4b4d5cd77\"\u003e\u003ccode\u003e47cacb6\u003c/code\u003e\u003c/a\u003e bump version to 1.8.4 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1402\"\u003e#1402\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/3b5329aa2022d97972d2f58eefe61b759b8e56c1\"\u003e\u003ccode\u003e3b5329a\u003c/code\u003e\u003c/a\u003e feat: add support for PEP758 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1401\"\u003e#1401\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/48668dfabb25e4bbdd35f81407498f5f5e47bf88\"\u003e\u003ccode\u003e48668df\u003c/code\u003e\u003c/a\u003e Support parsing of t-strings \u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1374\"\u003e#1374\u003c/a\u003e  (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1398\"\u003e#1398\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/0c82bfa76166ed38409a97de8974f9aaf3e7e572\"\u003e\u003ccode\u003e0c82bfa\u003c/code\u003e\u003c/a\u003e build(deps): bump regex from 1.11.1 to 1.11.2 in /native (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1399\"\u003e#1399\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/f40d8351450ca9adfe5270bd86ec7951e83221f4\"\u003e\u003ccode\u003ef40d835\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1400\"\u003e#1400\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/d721a06c3fc3ab9210acd180cec5aaca856e1bc7\"\u003e\u003ccode\u003ed721a06\u003c/code\u003e\u003c/a\u003e generate Attribute nodes when applying type annotations (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1396\"\u003e#1396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/e064729b4c04b834754c7be7f43a4dfb38972570\"\u003e\u003ccode\u003ee064729\u003c/code\u003e\u003c/a\u003e build(deps): bump pypa/cibuildwheel from 3.0.1 to 3.1.4 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1395\"\u003e#1395\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/f746afd537910d99bd8226a1c1edbf5bc69630eb\"\u003e\u003ccode\u003ef746afd\u003c/code\u003e\u003c/a\u003e build(deps): bump rayon from 1.10.0 to 1.11.0 in /native (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1394\"\u003e#1394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.7.0...v1.8.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `textual` from 6.2.1 to 6.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Textualize/textual/releases\"\u003etextual's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eThe Pithonic release\u003c/h2\u003e\n\u003cp\u003eVersion 6.3.0 adds support for Python 3.14, but drops support for Python3.8.\u003c/p\u003e\n\u003cp\u003eIf you are updating, you may also want to update \u003ccode\u003etextual-dev\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThere is also a new CSS rule, and a fix for code highlighting.\u003c/p\u003e\n\u003cp\u003eEnjoy!\u003c/p\u003e\n\u003ch2\u003e[6.3.0] - 2025-10-11\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded scrollbar-visibility rule \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6156\"\u003eTextualize/textual#6156\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed highlight not auto-detecting lexer \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6167\"\u003eTextualize/textual#6167\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python3.8 \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6121/\"\u003eTextualize/textual#6121\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded support for Python3.14 \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6121/\"\u003eTextualize/textual#6121\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/Textualize/textual/blob/main/CHANGELOG.md\"\u003etextual's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[6.3.0] - 2025-10-11\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded scrollbar-visibility rule \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6156\"\u003eTextualize/textual#6156\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed highlight not auto-detecting lexer \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6167\"\u003eTextualize/textual#6167\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python3.8 \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6121/\"\u003eTextualize/textual#6121\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded support for Python3.14 \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6121/\"\u003eTextualize/textual#6121\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/Textualize/textual/commit/eed9aa0ccc3ae263e56b38f9763e556572c0496d\"\u003e\u003ccode\u003eeed9aa0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/textual/issues/6121\"\u003e#6121\u003c/a\u003e from TomJGooding/build-update-supported-python-versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/2ca685d1ca7bbdbe82af3634f77daa46940cff02\"\u003e\u003ccode\u003e2ca685d\u003c/code\u003e\u003c/a\u003e fix date\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/ea089d5ae15ccd5b4187851be97ecbde4023b275\"\u003e\u003ccode\u003eea089d5\u003c/code\u003e\u003c/a\u003e bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/def653b8bd1be282b6a3211bf0a7e90f5dab9a7a\"\u003e\u003ccode\u003edef653b\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into build-update-supported-python-versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/f1c6becbc2f80486800ad68a27967b82f8ff1d64\"\u003e\u003ccode\u003ef1c6bec\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/textual/issues/6160\"\u003e#6160\u003c/a\u003e from gvx/main\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/bce43d523d7c854a280c3ba238669c9d3dfb0233\"\u003e\u003ccode\u003ebce43d5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/textual/issues/6169\"\u003e#6169\u003c/a\u003e from Textualize/content-optimization\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/395185e5c942fe3bdf83835933d49f4bc9ff1dc1\"\u003e\u003ccode\u003e395185e\u003c/code\u003e\u003c/a\u003e remove print\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/f06cd6e0362fd3e2d3f35815c16bcdadc52c1991\"\u003e\u003ccode\u003ef06cd6e\u003c/code\u003e\u003c/a\u003e optimization\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/156eb68ffca7c3d7c4fb6a7b52fcfbf10b4857f6\"\u003e\u003ccode\u003e156eb68\u003c/code\u003e\u003c/a\u003e ci: remove allow-prereleases for Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/218cabca5ba6c6203d819dbfd623ec2a25d392bd\"\u003e\u003ccode\u003e218cabc\u003c/code\u003e\u003c/a\u003e changelog\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Textualize/textual/compare/v6.2.1...v6.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `virtualenv` from 20.34.0 to 20.35.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/virtualenv/releases\"\u003evirtualenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e20.35.3\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erelease 20.35.1 by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2976\"\u003epypa/virtualenv#2976\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert out effort to extract discovery by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2978\"\u003epypa/virtualenv#2978\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erelease 20.35.2 by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2980\"\u003epypa/virtualenv#2980\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etest_too_many_open_files fails by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2979\"\u003epypa/virtualenv#2979\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pypa/virtualenv/compare/20.35.1...20.35.3\"\u003ehttps://github.com/pypa/virtualenv/compare/20.35.1...20.35.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e20.35.2\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erelease 20.35.1 by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2976\"\u003epypa/virtualenv#2976\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert out effort to extract discovery by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2978\"\u003epypa/virtualenv#2978\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pypa/virtualenv/compare/20.35.1...20.35.2\"\u003ehttps://github.com/pypa/virtualenv/compare/20.35.1...20.35.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e20.35.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erelease 20.34.0 by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2954\"\u003epypa/virtualenv#2954\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: Decouple discovery module by \u003ca href=\"https://github.com/esafak\"\u003e\u003ccode\u003e@​esafak\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2956\"\u003epypa/virtualenv#2956\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: ensure creation of python3.exe and python3 on Windows by \u003ca href=\"https://github.com/esafak\"\u003e\u003ccode\u003e@​esafak\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2957\"\u003epypa/virtualenv#2957\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Use getattr for tcl/tk library paths by \u003ca href=\"https://github.com/esafak\"\u003e\u003ccode\u003e@​esafak\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2945\"\u003epypa/virtualenv#2945\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Import fs_is_case_sensitive absolutely in py_info.py by \u003ca href=\"https://github.com/esafak\"\u003e\u003ccode\u003e@​esafak\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2960\"\u003epypa/virtualenv#2960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeclare 3.14 support by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2970\"\u003epypa/virtualenv#2970\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erelease 20.35.0 by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2971\"\u003epypa/virtualenv#2971\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Patch get_interpreter to handle missing cache and app_data by \u003ca href=\"https://github.com/esafak\"\u003e\u003ccode\u003e@​esafak\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2974\"\u003epypa/virtualenv#2974\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix backwards incompatible changes on PythonInfo by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2975\"\u003epypa/virtualenv#2975\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pypa/virtualenv/compare/20.34.0...20.35.1\"\u003ehttps://github.com/pypa/virtualenv/compare/20.34.0...20.35.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e20.35.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erelease 20.34.0 by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2954\"\u003epypa/virtualenv#2954\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: Decouple discovery module by \u003ca href=\"https://github.com/esafak\"\u003e\u003ccode\u003e@​esafak\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2956\"\u003epypa/virtualenv#2956\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: ensure creation of python3.exe and python3 on Windows by \u003ca href=\"https://github.com/esafak\"\u003e\u003ccode\u003e@​esafak\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2957\"\u003epypa/virtualenv#2957\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Use getattr for tcl/tk library paths by \u003ca href=\"https://github.com/esafak\"\u003e\u003ccode\u003e@​esafak\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2945\"\u003epypa/virtualenv#2945\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Import fs_is_case_sensitive absolutely in py_info.py by \u003ca href=\"https://github.com/esafak\"\u003e\u003ccode\u003e@​esafak\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2960\"\u003epypa/virtualenv#2960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump pypa/gh-action-pypi-publish from 1.12.3 to 1.13.0 in /.github/workflows by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2964\"\u003epypa/virtualenv#2964\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeclare 3.14 support by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/virtualenv/pull/2970\"\u003epypa/virtualenv#2970\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/virtualenv/blob/main/docs/changelog.rst\"\u003evirtualenv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev20.35.3 (2025-10-10)\u003c/h2\u003e\n\u003cp\u003eBugfixes - 20.35.3\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e- Accept RuntimeError in `test_too_many_open_files`, by :user:`esafak` (:issue:`2935`)\n\u003ch2\u003ev20.35.2 (2025-10-10)\u003c/h2\u003e\n\u003cp\u003eBugfixes - 20.35.2\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRevert out changes related to the extraction of the discovery module - by :user:\u003ccode\u003egaborbernat\u003c/code\u003e. (:issue:\u003ccode\u003e2978\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev20.35.1 (2025-10-09)\u003c/h2\u003e\n\u003cp\u003eBugfixes - 20.35.1\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e- Patch get_interpreter to handle missing cache and app_data - by :user:`esafak` (:issue:`2972`)\n- Fix backwards incompatible changes to ``PythonInfo`` - by :user:`gaborbernat`. (:issue:`2975`)\n\u003ch2\u003ev20.35.0 (2025-10-08)\u003c/h2\u003e\n\u003cp\u003eFeatures - 20.35.0\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd AppData and Cache protocols to discovery for decoupling - by :user:\u003ccode\u003eesafak\u003c/code\u003e. (:issue:\u003ccode\u003e2074\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure python3.exe and python3 on Windows for Python 3 - by :user:\u003ccode\u003eesafak\u003c/code\u003e. (:issue:\u003ccode\u003e2774\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes - 20.35.0\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e- Replaced direct references to tcl/tk library paths with getattr - by :user:`esafak` (:issue:`2944`)\n- Restore absolute import of fs_is_case_sensitive - by :user:`esafak`. (:issue:`2955`)\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/virtualenv/commit/8a1160e2bab063f6d6ab6295052cece8dd805cba\"\u003e\u003ccode\u003e8a1160e\u003c/code\u003e\u003c/a\u003e release 20.35.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/virtualenv/commit/a07135f34ad8f30c9921f05dc913ccd83e06679d\"\u003e\u003ccode\u003ea07135f\u003c/code\u003e\u003c/a\u003e test_too_many_open_files fails (\u003ca href=\"https://redirect.github.com/pypa/virtualenv/issues/2979\"\u003e#2979\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/virtualenv/commit/e265338ec6e4e5437763f4a3ddef9b9f9cbc6a26\"\u003e\u003ccode\u003ee265338\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pypa/virtualenv/issues/2980\"\u003e#2980\u003c/a\u003e from gaborbernat/release-20.35.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/virtualenv/commit/53872861ccf957ef7df2ba2020fba759f7b9c914\"\u003e\u003ccode\u003e5387286\u003c/code\u003e\u003c/a\u003e release 20.35.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/virtualenv/commit/9b47ce9616bbac8379a6cb682b4429be935ed515\"\u003e\u003ccode\u003e9b47ce9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pypa/virtualenv/issues/2978\"\u003e#2978\u003c/a\u003e from gaborbernat/2977\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/virtualenv/commit/c5674f250657081691dfacfd84b683ff058d9b5c\"\u003e\u003ccode\u003ec5674f2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pypa/virtualenv/issues/2976\"\u003e#2976\u003c/a\u003e from pypa/release-20.35.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/virtualenv/commit/78a8dc2d1262eef0e48da8dc153f492a6e26f198\"\u003e\u003ccode\u003e78a8dc2\u003c/code\u003e\u003c/a\u003e release 20.35.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/virtualenv/commit/2dbf4f2269b87782ddf9a9a0e6ff47096f9f62cc\"\u003e\u003ccode\u003e2dbf4f2\u003c/code\u003e\u003c/a\u003e Fix backwards incompatible changes on PythonInfo (\u003ca href=\"https://redirect.github.com/pypa/virtualenv/issues/2975\"\u003e#2975\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/virtualenv/commit/de1820dd472786383f0ee393524141880fe4e055\"\u003e\u003ccode\u003ede1820d\u003c/code\u003e\u003c/a\u003e fix: Patch get_interpreter to handle missing cache and app_data (\u003ca href=\"https://redirect.github.com/pypa/virtualenv/issues/2974\"\u003e#2974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/virtualenv/commit/8e1ecc705a502705931e7576b8dd72bab90cde91\"\u003e\u003ccode\u003e8e1ecc7\u003c/code\u003e\u003c/a\u003e release 20.35.0 (\u003ca href=\"https://redirect.github.com/pypa/virtualenv/issues/2971\"\u003e#2971\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/virtualenv/compare/20.34.0...20.35.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot 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/github/annotated-logger/pull/82","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/github%2Fannotated-logger/issues/82","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/82/packages"}},{"old_version":"1.8.2","new_version":"1.8.5","update_type":"patch","path":null,"pr_created_at":"2025-10-06T05:51:24.000Z","version_change":"1.8.2 → 1.8.5","issue":{"uuid":"2888893847","node_id":"PR_kwDOGLHsfc6sMQWX","number":4724,"state":"closed","title":"Bump the ofe-minor-and-patch-updates group across 1 directory with 22 updates","user":"dependabot[bot]","labels":["dependencies","python","release-chore"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-10-07T01:50:55.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-10-06T05:51:24.000Z","updated_at":"2025-10-07T01:50:56.000Z","time_to_close":71971,"merged_at":"2025-10-07T01:50:55.000Z","merged_by":"aslam-quad","closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"ofe-minor-and-patch-updates","update_count":22,"packages":[{"name":"asgiref","old_version":"3.9.1","new_version":"3.10.0","repository_url":"https://github.com/django/asgiref"},{"name":"certifi","old_version":"2025.8.3","new_version":"2025.10.5","repository_url":"https://github.com/certifi/python-certifi"},{"name":"click","old_version":"8.2.1","new_version":"8.3.0","repository_url":"https://github.com/pallets/click"},{"name":"django-allauth","old_version":"65.11.1","new_version":"65.12.0","repository_url":"https://github.com/sponsors/pennersr"},{"name":"google-api-core","old_version":"2.25.1","new_version":"2.25.2","repository_url":"https://github.com/googleapis/python-api-core"},{"name":"google-api-python-client","old_version":"2.179.0","new_version":"2.184.0","repository_url":"https://github.com/googleapis/google-api-python-client"},{"name":"google-auth","old_version":"2.40.3","new_version":"2.41.1","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"google-cloud-build","old_version":"3.31.3","new_version":"3.32.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-compute","old_version":"1.35.0","new_version":"1.38.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-storage","old_version":"3.3.1","new_version":"3.4.0","repository_url":"https://github.com/googleapis/python-storage"},{"name":"grpcio","old_version":"1.74.0","new_version":"1.75.1","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-status","old_version":"1.74.0","new_version":"1.75.1"},{"name":"httplib2","old_version":"0.30.0","new_version":"0.31.0","repository_url":"https://github.com/httplib2/httplib2"},{"name":"identify","old_version":"2.6.13","new_version":"2.6.15","repository_url":"https://github.com/pre-commit/identify"},{"name":"isort","old_version":"6.0.1","new_version":"6.1.0","repository_url":"https://github.com/PyCQA/isort"},{"name":"libcst","old_version":"1.8.2","new_version":"1.8.5","repository_url":"https://github.com/Instagram/LibCST"},{"name":"pycparser","old_version":"2.22","new_version":"2.23","repository_url":"https://github.com/eliben/pycparser"},{"name":"pylint","old_version":"3.3.8","new_version":"3.3.9","repository_url":"https://github.com/pylint-dev/pylint"},{"name":"pyparsing","old_version":"3.2.3","new_version":"3.2.5","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"ruamel-yaml-clib","old_version":"0.2.12","new_version":"0.2.14"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.37.0","repository_url":"https://github.com/Kludex/uvicorn"}],"path":null,"ecosystem":"pip"},"body":"Bumps the ofe-minor-and-patch-updates group with 22 updates in the /community/front-end/ofe directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [asgiref](https://github.com/django/asgiref) | `3.9.1` | `3.10.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.8.3` | `2025.10.5` |\n| [click](https://github.com/pallets/click) | `8.2.1` | `8.3.0` |\n| [django-allauth](https://github.com/sponsors/pennersr) | `65.11.1` | `65.12.0` |\n| [google-api-core](https://github.com/googleapis/python-api-core) | `2.25.1` | `2.25.2` |\n| [google-api-python-client](https://github.com/googleapis/google-api-python-client) | `2.179.0` | `2.184.0` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.40.3` | `2.41.1` |\n| [google-cloud-build](https://github.com/googleapis/google-cloud-python) | `3.31.3` | `3.32.0` |\n| [google-cloud-compute](https://github.com/googleapis/google-cloud-python) | `1.35.0` | `1.38.0` |\n| [google-cloud-storage](https://github.com/googleapis/python-storage) | `3.3.1` | `3.4.0` |\n| [grpcio](https://github.com/grpc/grpc) | `1.74.0` | `1.75.1` |\n| [grpcio-status](https://grpc.io) | `1.74.0` | `1.75.1` |\n| [httplib2](https://github.com/httplib2/httplib2) | `0.30.0` | `0.31.0` |\n| [identify](https://github.com/pre-commit/identify) | `2.6.13` | `2.6.15` |\n| [isort](https://github.com/PyCQA/isort) | `6.0.1` | `6.1.0` |\n| [libcst](https://github.com/Instagram/LibCST) | `1.8.2` | `1.8.5` |\n| [pycparser](https://github.com/eliben/pycparser) | `2.22` | `2.23` |\n| [pylint](https://github.com/pylint-dev/pylint) | `3.3.8` | `3.3.9` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.3` | `3.2.5` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| ruamel-yaml-clib | `0.2.12` | `0.2.14` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.37.0` |\n\n\nUpdates `asgiref` from 3.9.1 to 3.10.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django/asgiref/blob/main/CHANGELOG.txt\"\u003easgiref's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.10.0 (2025-10-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded AsyncSingleThreadContext context manager to ensure multiple AsyncToSync\ninvocations use the same thread. (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/511\"\u003e#511\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.9.2 (2025-09-23)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdds support for Python 3.14.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixes wsgi.errors file descriptor in WsgiToAsgi adapter.\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/django/asgiref/commit/f587b122af17bdba5749c30b96d2237bc1c2dfdf\"\u003e\u003ccode\u003ef587b12\u003c/code\u003e\u003c/a\u003e Releasing 3.10.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/b08087c3b6df811a0524585c4d4dafdc6b12c222\"\u003e\u003ccode\u003eb08087c\u003c/code\u003e\u003c/a\u003e Added AsyncSingleThreadContext (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/511\"\u003e#511\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/3471a0c09bd043d61c299308c0c8519ab6c0f774\"\u003e\u003ccode\u003e3471a0c\u003c/code\u003e\u003c/a\u003e Releasing 3.9.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/4f892bd261cee9afe51d67333e9bc7cd98b39a35\"\u003e\u003ccode\u003e4f892bd\u003c/code\u003e\u003c/a\u003e Remove Python 3.8 from tox\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/83cd6f3c6f59a66999446c2893cdb3fcae3c03c5\"\u003e\u003ccode\u003e83cd6f3\u003c/code\u003e\u003c/a\u003e Run CI against Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/796b9f14fd92d3131c7c39fab308ddd986d271eb\"\u003e\u003ccode\u003e796b9f1\u003c/code\u003e\u003c/a\u003e Fix incorrect Trailer header (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/531\"\u003e#531\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/29b108b0a9a5eddae3e282ba33915412a855e529\"\u003e\u003ccode\u003e29b108b\u003c/code\u003e\u003c/a\u003e Fixed \u003ca href=\"https://redirect.github.com/django/asgiref/issues/529\"\u003e#529\u003c/a\u003e: wsgi.errors should be a StringIO (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/530\"\u003e#530\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/django/asgiref/compare/3.9.1...3.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2025.8.3 to 2025.10.5\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/fb14ac49a976b1695d84b1ac1307276a20b3aac9\"\u003e\u003ccode\u003efb14ac4\u003c/code\u003e\u003c/a\u003e 2025.10.05 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/371\"\u003e#371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/2c7c7ee6b76a118191b685a4cc028d4241f22eb7\"\u003e\u003ccode\u003e2c7c7ee\u003c/code\u003e\u003c/a\u003e Add Python 3.14 classifier in setup.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/1a5cb7b3771bba256755f88b3dcf3ac13f064622\"\u003e\u003ccode\u003e1a5cb7b\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.6.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/367\"\u003e#367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/dea59605ef2b266c2e0e67938e8c8535a04b1211\"\u003e\u003ccode\u003edea5960\u003c/code\u003e\u003c/a\u003e Bump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/83566b7c993eef772facdaff59c7bba105675329\"\u003e\u003ccode\u003e83566b7\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.2.2 to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ca2e121bdb304fd01f802d3b1ee6a65684f569f2\"\u003e\u003ccode\u003eca2e121\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4.3.0 to 5.0.0\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.08.03...2025.10.05\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.2.1 to 8.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.3.0\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecation, or introduce potentially breaking changes.\u003c/p\u003e\n\u003cp\u003eWe encourage everyone to upgrade. You can read more about our \u003ca href=\"https://palletsprojects.com/versions\"\u003eVersion Support Policy\u003c/a\u003e on our website.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.3.0/\"\u003ehttps://pypi.org/project/click/8.3.0/\u003c/a\u003e\nChanges:  \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-0\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-0\u003c/a\u003e\nMilestone \u003ca href=\"https://github.com/pallets/click/milestone/27\"\u003ehttps://github.com/pallets/click/milestone/27\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eImproved flag option handling\u003c/strong\u003e: Reworked the relationship between \u003ccode\u003eflag_value\u003c/code\u003e\nand \u003ccode\u003edefault\u003c/code\u003e parameters for better consistency:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter value is now preserved as-is and passed directly\nto CLI functions (no more unexpected transformations)\u003c/li\u003e\n\u003cli\u003eException: flag options with \u003ccode\u003edefault=True\u003c/code\u003e maintain backward compatibility\nby defaulting to their \u003ccode\u003eflag_value\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter can now be any type (\u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003eNone\u003c/code\u003e, etc.)\u003c/li\u003e\n\u003cli\u003eFixes inconsistencies reported in: \u003ca href=\"https://redirect.github.com/pallets/click/issues/1992\"\u003e#1992\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2514\"\u003e#2514\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2610\"\u003e#2610\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3024\"\u003e#3024\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003edefault\u003c/code\u003e to be set on \u003ccode\u003eArgument\u003c/code\u003e for \u003ccode\u003enargs = -1\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2164\"\u003e#2164\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for \u003ccode\u003enargs\u003c/code\u003e option in combination with flag\noption \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for nargs option in combination with flag option \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix handling of quoted and escaped parameters in Fish autocompletion. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2995\"\u003e#2995\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3013\"\u003e#3013\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLazily import \u003ccode\u003eshutil\u003c/code\u003e.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3023\"\u003e#3023\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProperly forward exception information to resources registered with\n\u003ccode\u003eclick.core.Context.with_resource()\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3058\"\u003e#3058\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression related to EOF handling in CliRunner.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2939\"\u003e#2939\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2940\"\u003e#2940\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.2.2\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.2.2 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.2.2/\"\u003ehttps://pypi.org/project/click/8.2.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-2-2\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-2-2\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/25\"\u003ehttps://github.com/pallets/click/milestone/25\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix reconciliation of \u003ccode\u003edefault\u003c/code\u003e, \u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003etype\u003c/code\u003e parameters for\nflag options, as well as parsing and normalization of environment variables.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/2952\"\u003e#2952\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2956\"\u003e#2956\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typing issue in \u003ccode\u003eBadParameter\u003c/code\u003e and \u003ccode\u003eMissingParameter\u003c/code\u003e exceptions for the\nparameter \u003ccode\u003eparam_hint\u003c/code\u003e that did not allow for a sequence of string where the\nunderlying functino \u003ccode\u003e_join_param_hints\u003c/code\u003e allows for it. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2777\"\u003e#2777\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2990\"\u003e#2990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse the value of \u003ccode\u003eEnum\u003c/code\u003e choices to render their default value in help\nscreen. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2911\"\u003e#2911\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3004\"\u003e#3004\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix completion for the Z shell (\u003ccode\u003ezsh\u003c/code\u003e) for completion items containing\ncolons. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2703\"\u003e#2703\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2846\"\u003e#2846\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't include envvar in error hint when not configured. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2971\"\u003e#2971\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2972\"\u003e#2972\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/pallets/click/blob/main/CHANGES.rst\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.3.0\u003c/h2\u003e\n\u003cp\u003eReleased 2025-09-17\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eImproved flag option handling\u003c/strong\u003e: Reworked the relationship between \u003ccode\u003eflag_value\u003c/code\u003e\nand \u003ccode\u003edefault\u003c/code\u003e parameters for better consistency:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter value is now preserved as-is and passed directly\nto CLI functions (no more unexpected transformations)\u003c/li\u003e\n\u003cli\u003eException: flag options with \u003ccode\u003edefault=True\u003c/code\u003e maintain backward compatibility\nby defaulting to their \u003ccode\u003eflag_value\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter can now be any type (\u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003eNone\u003c/code\u003e, etc.)\u003c/li\u003e\n\u003cli\u003eFixes inconsistencies reported in: :issue:\u003ccode\u003e1992\u003c/code\u003e :issue:\u003ccode\u003e2514\u003c/code\u003e :issue:\u003ccode\u003e2610\u003c/code\u003e\n:issue:\u003ccode\u003e3024\u003c/code\u003e :pr:\u003ccode\u003e3030\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003edefault\u003c/code\u003e to be set on \u003ccode\u003eArgument\u003c/code\u003e for \u003ccode\u003enargs = -1\u003c/code\u003e. :issue:\u003ccode\u003e2164\u003c/code\u003e\n:pr:\u003ccode\u003e3030\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for \u003ccode\u003enargs\u003c/code\u003e option in combination with flag\noption :issue:\u003ccode\u003e2813\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix handling of quoted and escaped parameters in Fish autocompletion. :issue:\u003ccode\u003e2995\u003c/code\u003e :pr:\u003ccode\u003e3013\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLazily import \u003ccode\u003eshutil\u003c/code\u003e. :pr:\u003ccode\u003e3023\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProperly forward exception information to resources registered with\n\u003ccode\u003eclick.core.Context.with_resource()\u003c/code\u003e. :issue:\u003ccode\u003e2447\u003c/code\u003e :pr:\u003ccode\u003e3058\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression related to EOF handling in CliRunner. :issue:\u003ccode\u003e2939\u003c/code\u003e :pr:\u003ccode\u003e2940\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.2.2\u003c/h2\u003e\n\u003cp\u003eReleased 2025-07-31\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix reconciliation of \u003ccode\u003edefault\u003c/code\u003e, \u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003etype\u003c/code\u003e parameters for\nflag options, as well as parsing and normalization of environment variables.\n:issue:\u003ccode\u003e2952\u003c/code\u003e :pr:\u003ccode\u003e2956\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix typing issue in \u003ccode\u003eBadParameter\u003c/code\u003e and \u003ccode\u003eMissingParameter\u003c/code\u003e exceptions for the\nparameter \u003ccode\u003eparam_hint\u003c/code\u003e that did not allow for a sequence of string where the\nunderlying function \u003ccode\u003e_join_param_hints\u003c/code\u003e allows for it. :issue:\u003ccode\u003e2777\u003c/code\u003e :pr:\u003ccode\u003e2990\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUse the value of \u003ccode\u003eEnum\u003c/code\u003e choices to render their default value in help\nscreen. Refs :issue:\u003ccode\u003e2911\u003c/code\u003e :pr:\u003ccode\u003e3004\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix completion for the Z shell (\u003ccode\u003ezsh\u003c/code\u003e) for completion items containing\ncolons. :issue:\u003ccode\u003e2703\u003c/code\u003e :pr:\u003ccode\u003e2846\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDon't include envvar in error hint when not configured. :issue:\u003ccode\u003e2971\u003c/code\u003e :pr:\u003ccode\u003e2972\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix a rare race in \u003ccode\u003eclick.testing.StreamMixer\u003c/code\u003e's finalization that manifested\nas a \u003ccode\u003eValueError\u003c/code\u003e on close in a multi-threaded test session.\n:issue:\u003ccode\u003e2993\u003c/code\u003e :pr:\u003ccode\u003e2991\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/pallets/click/commit/00fadb8904387158ce6e9aa1573be770446895c1\"\u003e\u003ccode\u003e00fadb8\u003c/code\u003e\u003c/a\u003e Release version 8.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/2a0e3ba907927ade6951d5732b775f11b54cb766\"\u003e\u003ccode\u003e2a0e3ba\u003c/code\u003e\u003c/a\u003e testing/CliRunner: Fix regression related to EOF introduced in 262bdf0 (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/e11a1efc3395e998a1521a0dc35672a799e78d30\"\u003e\u003ccode\u003ee11a1ef\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into fix-cli-runner-prompt-eof-handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/36deba8a95a2585de1a2aa4475b7f054f52830ac\"\u003e\u003ccode\u003e36deba8\u003c/code\u003e\u003c/a\u003e Forward exception information to resources registered in a context (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3058\"\u003e#3058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/f2cae7ae997cd32311cab3dede4c2b89fe05e191\"\u003e\u003ccode\u003ef2cae7a\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Add summary of PR to changelog for 8.3.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/7c7ec36354f49d1a092cb077fa4881ea4d70ba01\"\u003e\u003ccode\u003e7c7ec36\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Split resource exception handling tests in single and nested\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/92129c552da88ac30b578132031efa4b003ecc46\"\u003e\u003ccode\u003e92129c5\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Added exception forwarding to context tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/555fa9bb37770a6845a98be60b0c84876775552e\"\u003e\u003ccode\u003e555fa9b\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Forward exception data to exit stack when calling \u003ccode\u003e__exit__\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/16fe802a3f96c4c8fa3cd382f1a7577fda0c5321\"\u003e\u003ccode\u003e16fe802\u003c/code\u003e\u003c/a\u003e Add more tests on \u003ccode\u003eEnum\u003c/code\u003e rendering (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3053\"\u003e#3053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/d36de6fc67882f23d7a7d61cd4c0e25e0f88b0ac\"\u003e\u003ccode\u003ed36de6f\u003c/code\u003e\u003c/a\u003e Add more tests on Enum rendering their item's names and not values\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.2.1...8.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-allauth` from 65.11.1 to 65.12.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/pennersr/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-api-core` from 2.25.1 to 2.25.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-api-core/releases\"\u003egoogle-api-core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.25.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/compare/v2.25.1...v2.25.2\"\u003e2.25.2\u003c/a\u003e (2025-10-01)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate credentials_file argument (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/841\"\u003e#841\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-api-core/commit/324eb7464d6ade9a8c2e413d4695bc7d7adfcb3d\"\u003e324eb74\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix async tests and round-off error in test expectations (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/837\"\u003e#837\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-api-core/commit/14a59789e144905bd6c82180ad07a52bf1f84f02\"\u003e14a5978\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-api-core/blob/main/CHANGELOG.md\"\u003egoogle-api-core's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/compare/v2.25.1...v2.25.2\"\u003e2.25.2\u003c/a\u003e (2025-10-01)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate credentials_file argument (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/841\"\u003e#841\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-api-core/commit/324eb7464d6ade9a8c2e413d4695bc7d7adfcb3d\"\u003e324eb74\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix async tests and round-off error in test expectations (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/837\"\u003e#837\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-api-core/commit/14a59789e144905bd6c82180ad07a52bf1f84f02\"\u003e14a5978\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/commit/4587c0bac93bc693bfb8b5b51b294f8177ee8217\"\u003e\u003ccode\u003e4587c0b\u003c/code\u003e\u003c/a\u003e chore(main): release 2.25.2 (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/838\"\u003e#838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/commit/324eb7464d6ade9a8c2e413d4695bc7d7adfcb3d\"\u003e\u003ccode\u003e324eb74\u003c/code\u003e\u003c/a\u003e fix: deprecate credentials_file argument (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/841\"\u003e#841\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-api-core/commit/14a59789e144905bd6c82180ad07a52bf1f84f02\"\u003e\u003ccode\u003e14a5978\u003c/code\u003e\u003c/a\u003e fix: fix async tests and round-off error in test expectations (\u003ca href=\"https://redirect.github.com/googleapis/python-api-core/issues/837\"\u003e#837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/python-api-core/compare/v2.25.1...v2.25.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-api-python-client` from 2.179.0 to 2.184.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-api-python-client/releases\"\u003egoogle-api-python-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.184.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/compare/v2.183.0...v2.184.0\"\u003e2.184.0\u003c/a\u003e (2025-09-30)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eaiplatform:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/6d830b0bf7136396a0bbbfcca085a4d25f77d2a5\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/6d830b0bf7136396a0bbbfcca085a4d25f77d2a5\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ealloydb:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/c5baca732c76b520dc2a3bd24d865150fc7241d2\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/c5baca732c76b520dc2a3bd24d865150fc7241d2\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eandroidmanagement:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/37d9cacc272e0c7d063c798538017f5d93928349\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/37d9cacc272e0c7d063c798538017f5d93928349\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebackupdr:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/9442d50d83d99779978ad8c78f060d7dd81875a9\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/9442d50d83d99779978ad8c78f060d7dd81875a9\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebeyondcorp:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/1c7b14beaec6527f9d5ee94b8c25834530d550f8\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/1c7b14beaec6527f9d5ee94b8c25834530d550f8\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebigquery:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/e597e8cd946e626e4933b0623b04fc890788421f\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/e597e8cd946e626e4933b0623b04fc890788421f\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecertificatemanager:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/8103d979c6a49aea9a4767da6d2c21bb3cfd4316\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/8103d979c6a49aea9a4767da6d2c21bb3cfd4316\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003echecks:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/76f11597add11565281c85f63976dacd150ccdf1\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/76f11597add11565281c85f63976dacd150ccdf1\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecloudidentity:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/48ef36e008af1c2c4e582467c380ea7ef932d9d3\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/48ef36e008af1c2c4e582467c380ea7ef932d9d3\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecloudscheduler:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/e7c1a304146103814287280dc184e2fa36ff4de3\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/e7c1a304146103814287280dc184e2fa36ff4de3\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecompute:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/dad1b28292640a4910be2dfccfa7393143b067b5\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/dad1b28292640a4910be2dfccfa7393143b067b5\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003econtactcenterinsights:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/875ca98176ebe365aab1378c1b42ba2cc6433989\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/875ca98176ebe365aab1378c1b42ba2cc6433989\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003econtainer:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/67ec89a5ce13e636cdece6268224ecff16081377\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/67ec89a5ce13e636cdece6268224ecff16081377\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edialogflow:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/18f204690386d9d5c111a01ad321a50f240266cf\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/18f204690386d9d5c111a01ad321a50f240266cf\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ediscoveryengine:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/74265e6935cb31ae8be52e93b87bcc87b458b4fe\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/74265e6935cb31ae8be52e93b87bcc87b458b4fe\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edlp:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/2cd4dd1c084fd3b9185549f84d2dd1d7b10ff9a6\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/2cd4dd1c084fd3b9185549f84d2dd1d7b10ff9a6\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edocs:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/60dab3207e030361020395ae611cb7e8164233dc\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/60dab3207e030361020395ae611cb7e8164233dc\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edocumentai:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/9ef10c06c4dafae8332c3a934d470eb1d356a304\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/9ef10c06c4dafae8332c3a934d470eb1d356a304\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003efirebaseappdistribution:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/0499205d24a30b49ecd7daefc84f8f1b98d43ee3\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/0499205d24a30b49ecd7daefc84f8f1b98d43ee3\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003efirebaseapphosting:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/873fe995f8b36eb247161528d5c9d873a4cf4a76\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/873fe995f8b36eb247161528d5c9d873a4cf4a76\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003efirestore:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/54e550995df5b4d47367303e7a5a39625275ad24\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/54e550995df5b4d47367303e7a5a39625275ad24\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eintegrations:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/7a2c0b6536835c43371a11eaf499c86f11b4e398\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/7a2c0b6536835c43371a11eaf499c86f11b4e398\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emigrationcenter:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/fe3809427c52eeac3eb3d33d1ae2f5e76b89826d\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/fe3809427c52eeac3eb3d33d1ae2f5e76b89826d\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eoracledatabase:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/c8f9301d0a116e971fa9e9c79d59f22c285ae0b2\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/c8f9301d0a116e971fa9e9c79d59f22c285ae0b2\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eoslogin:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/e7ad756e90e296018335bab4ed630023e2da3b4f\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/e7ad756e90e296018335bab4ed630023e2da3b4f\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eplaces:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/5f5b8563e930c85669417d9378687a189081ee67\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/5f5b8563e930c85669417d9378687a189081ee67\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003erecaptchaenterprise:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/6dfb3ed8516a78458fab64cb79abae8a96d05470\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/6dfb3ed8516a78458fab64cb79abae8a96d05470\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003esaasservicemgmt:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/865353450158266e8d505f0b8170b1a0710c1f27\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/865353450158266e8d505f0b8170b1a0710c1f27\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eserviceconsumermanagement:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/6b819e78e9003619a9ffca9811358f407eebaf83\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/6b819e78e9003619a9ffca9811358f407eebaf83\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eservicemanagement:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/8fbaca3ec2a60c9c9bfbda5c93980e66cff07bad\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/8fbaca3ec2a60c9c9bfbda5c93980e66cff07bad\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eserviceusage:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/781371b027ca978e2c38864f7d53f645306d21e9\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/781371b027ca978e2c38864f7d53f645306d21e9\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003esqladmin:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/e53f47018c6248f9f048ca5418a48f05d5fe09a8\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/e53f47018c6248f9f048ca5418a48f05d5fe09a8\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estorage:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/53cb3d9e10219db874e65113448c28dabcee404a\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/53cb3d9e10219db874e65113448c28dabcee404a\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etexttospeech:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/ff0931d871f06884e6afd093644aa403313d964b\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/ff0931d871f06884e6afd093644aa403313d964b\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etpu:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/4254558da3975611ece872d592eb104bf091acb5\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/4254558da3975611ece872d592eb104bf091acb5\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ewebfonts:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/ce0f981f1f25630bc2768a697aa8da218c6e6af1\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/ce0f981f1f25630bc2768a697aa8da218c6e6af1\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edataflow:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/64b88544581231cd164dd9faa4d146924f1d16ee\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/64b88544581231cd164dd9faa4d146924f1d16ee\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edatastore:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/350d08137cd8f43fcbc473d77bcf693a2e00d917\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/350d08137cd8f43fcbc473d77bcf693a2e00d917\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eiamcredentials:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/079eeee6fb972c9e5cd595dff5b51d1e0530217a\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/079eeee6fb972c9e5cd595dff5b51d1e0530217a\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elogging:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/262129516dfd7cf518e6abbe4050d96ac647bcf3\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/262129516dfd7cf518e6abbe4050d96ac647bcf3\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e724c158\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/googleapis/google-api-python-client/commit/9764b8385a5de37b636a6aedb87a8db9402845a3\"\u003e\u003ccode\u003e9764b83\u003c/code\u003e\u003c/a\u003e chore(main): release 2.184.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2665\"\u003e#2665\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/724c15856f20b2cc8c71c1d29a2bf0bc7f740f7c\"\u003e\u003ccode\u003e724c158\u003c/code\u003e\u003c/a\u003e chore: Update discovery artifacts (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2664\"\u003e#2664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/9695453e9391b20e1c5ba015f5ff2028b433b2b5\"\u003e\u003ccode\u003e9695453\u003c/code\u003e\u003c/a\u003e chore(main): release 2.183.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2662\"\u003e#2662\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8934c764cc08e15aa0e013a2f97a59967296ef9a\"\u003e\u003ccode\u003e8934c76\u003c/code\u003e\u003c/a\u003e chore: Update discovery artifacts (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2661\"\u003e#2661\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/35a5d161fb8ff76faca28548237ca7d6a4d569ba\"\u003e\u003ccode\u003e35a5d16\u003c/code\u003e\u003c/a\u003e chore(main): release 2.182.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2654\"\u003e#2654\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/c9e33f4aee974b1512cc6a3ac0e1607917976f9d\"\u003e\u003ccode\u003ec9e33f4\u003c/code\u003e\u003c/a\u003e chore: Update discovery artifacts (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2659\"\u003e#2659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/46a12bd7a803f46f13aa2764209a03009a9f8f1e\"\u003e\u003ccode\u003e46a12bd\u003c/code\u003e\u003c/a\u003e chore: Update discovery artifacts (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2653\"\u003e#2653\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/dbfca7cb04959166e3365bcd035f7b7bbbcb5320\"\u003e\u003ccode\u003edbfca7c\u003c/code\u003e\u003c/a\u003e chore(main): release 2.181.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2651\"\u003e#2651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/0413210177b2e5d812cd21ce6246b73a2929d610\"\u003e\u003ccode\u003e0413210\u003c/code\u003e\u003c/a\u003e chore: Update discovery artifacts (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2650\"\u003e#2650\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/93540745d63276ff4bc3ac682619bb43920baa05\"\u003e\u003ccode\u003e9354074\u003c/code\u003e\u003c/a\u003e chore(main): release 2.180.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2644\"\u003e#2644\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-api-python-client/compare/v2.179.0...v2.184.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-auth` from 2.40.3 to 2.41.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-auth-library-python/releases\"\u003egoogle-auth's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.41.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.41.0...v2.41.1\"\u003e2.41.1\u003c/a\u003e (2025-09-30)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSuppress deprecation warning for ADC (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1815\"\u003e#1815\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/751ce3f625eb24029e9f0c59c081bdd3e18eb583\"\u003e751ce3f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.41.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.40.3...v2.41.0\"\u003e2.41.0\u003c/a\u003e (2025-09-29)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for cachetools 6.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1773\"\u003e#1773\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/af18060d521baf86c219d66a26631decb3b28e79\"\u003eaf18060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd trust boundary support for service accounts and impersonation. (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1778\"\u003e#1778\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/99be2ce19401296718f880c7a80cd2e841df78bf\"\u003e99be2ce\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecating \u003ca href=\"https://googleapis.dev/python/google-auth/latest/reference/google.auth.html#google.auth.load_credentials_from_dict\"\u003eload_credentials_from_dict\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/58b66ec8069bfe5304c7da512fe89a8e838ce1ca\"\u003e58b66ec\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeprecating \u003ca href=\"https://googleapis.dev/python/google-auth/latest/reference/google.auth.html#google.auth.load_credentials_from_file\"\u003eload_credentials_from_file\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/58b66ec8069bfe5304c7da512fe89a8e838ce1ca\"\u003e58b66ec\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix type error in credentials.py for python 3.7 and 3.8 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1805\"\u003e#1805\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/c30a6a781d3e385598a0ac28a370a7f4800010cc\"\u003ec30a6a7\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate user guide to include x509 feature. (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1802\"\u003e#1802\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/2d89ab4d85568564e1f462f5b463991ffd9b82b1\"\u003e2d89ab4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-auth-library-python/blob/main/CHANGELOG.md\"\u003egoogle-auth's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.41.0...v2.41.1\"\u003e2.41.1\u003c/a\u003e (2025-09-30)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSuppress deprecation warning for ADC (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1815\"\u003e#1815\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/751ce3f625eb24029e9f0c59c081bdd3e18eb583\"\u003e751ce3f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.40.3...v2.41.0\"\u003e2.41.0\u003c/a\u003e (2025-09-29)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for cachetools 6.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1773\"\u003e#1773\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/af18060d521baf86c219d66a26631decb3b28e79\"\u003eaf18060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd trust boundary support for service accounts and impersonation. (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1778\"\u003e#1778\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/99be2ce19401296718f880c7a80cd2e841df78bf\"\u003e99be2ce\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecating \u003ca href=\"https://googleapis.dev/python/google-auth/latest/reference/google.auth.html#google.auth.load_credentials_from_dict\"\u003eload_credentials_from_dict\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/58b66ec8069bfe5304c7da512fe89a8e838ce1ca\"\u003e58b66ec\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeprecating \u003ca href=\"https://googleapis.dev/python/google-auth/latest/reference/google.auth.html#google.auth.load_credentials_from_file\"\u003eload_credentials_from_file\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/58b66ec8069bfe5304c7da512fe89a8e838ce1ca\"\u003e58b66ec\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix type error in credentials.py for python 3.7 and 3.8 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1805\"\u003e#1805\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/c30a6a781d3e385598a0ac28a370a7f4800010cc\"\u003ec30a6a7\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate user guide to include x509 feature. (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1802\"\u003e#1802\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/2d89ab4d85568564e1f462f5b463991ffd9b82b1\"\u003e2d89ab4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/ebf33636bc3e525de37f331b75fade6b61c950cb\"\u003e\u003ccode\u003eebf3363\u003c/code\u003e\u003c/a\u003e chore(main): release 2.41.1 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1816\"\u003e#1816\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/751ce3f625eb24029e9f0c59c081bdd3e18eb583\"\u003e\u003ccode\u003e751ce3f\u003c/code\u003e\u003c/a\u003e fix: suppress deprecation warning for ADC (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1815\"\u003e#1815\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/819199ac180e368823e1364695273aa41851cc6e\"\u003e\u003ccode\u003e819199a\u003c/code\u003e\u003c/a\u003e chore(main): release 2.41.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1797\"\u003e#1797\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/58b66ec8069bfe5304c7da512fe89a8e838ce1ca\"\u003e\u003ccode\u003e58b66ec\u003c/code\u003e\u003c/a\u003e fix: Deprecating generic load methods and adding warnings on few cred types (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/1e8a867a84c26c249ad9bf659d9bdf61183883c7\"\u003e\u003ccode\u003e1e8a867\u003c/code\u003e\u003c/a\u003e chore: update owners (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1813\"\u003e#1813\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/c30a6a781d3e385598a0ac28a370a7f4800010cc\"\u003e\u003ccode\u003ec30a6a7\u003c/code\u003e\u003c/a\u003e fix: fix type error in credentials.py for python 3.7 and 3.8 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1805\"\u003e#1805\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/03dfee20e3c2d6e232e12eb78ef4201244ce7c13\"\u003e\u003ccode\u003e03dfee2\u003c/code\u003e\u003c/a\u003e chore: secret update (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1806\"\u003e#1806\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/2d89ab4d85568564e1f462f5b463991ffd9b82b1\"\u003e\u003ccode\u003e2d89ab4\u003c/code\u003e\u003c/a\u003e docs: update user guide to include x509 feature. (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1802\"\u003e#1802\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/03e640ed4ba4a6afbbe4462beb43a95b60744ed7\"\u003e\u003ccode\u003e03e640e\u003c/code\u003e\u003c/a\u003e chore: update secret (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1803\"\u003e#1803\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/99be2ce19401296718f880c7a80cd2e841df78bf\"\u003e\u003ccode\u003e99be2ce\u003c/code\u003e\u003c/a\u003e feat: Add trust boundary support for service accounts and impersonation. (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1778\"\u003e#1778\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.40.3...v2.41.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-build` from 3.31.3 to 3.32.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/releases\"\u003egoogle-cloud-build's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-build: v3.32.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-build-v3.31.3...google-cloud-build-v3.32.0\"\u003e3.32.0\u003c/a\u003e (2025-08-29)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd option to enable nested virtualization if available (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/47981a80a477c714e489410d4e77979ec1404b27\"\u003e47981a8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate comments for \u003ccode\u003emachine_type\u003c/code\u003e and \u003ccode\u003edisk_size_gb\u003c/code\u003e (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/47981a80a477c714e489410d4e77979ec1404b27\"\u003e47981a8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/b0c7b29b16476d60a616a39b6fd1b600c25dc753\"\u003e\u003ccode\u003eb0c7b29\u003c/code\u003e\u003c/a\u003e chore: release main (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14321\"\u003e#14321\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/25504f3752d1e2c63d4f3f56114b7529c5f10b2e\"\u003e\u003ccode\u003e25504f3\u003c/code\u003e\u003c/a\u003e chore: [google-cloud-geminidataanalytics] update Python generator version to ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/077a8ffd3e2890dc1277bf516f4126bfdf666a96\"\u003e\u003ccode\u003e077a8ff\u003c/code\u003e\u003c/a\u003e chore: [google-cloud-run] update Python generator version to 1.25.1 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14200\"\u003e#14200\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/4d08928433140722727f7953d5caefa5fc676c47\"\u003e\u003ccode\u003e4d08928\u003c/code\u003e\u003c/a\u003e chore: [google-ai-generativelanguage] update Python generator version to 1.25...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/7d1e79ed15ccf56ce744a8c45ddefa5a6e6ca46e\"\u003e\u003ccode\u003e7d1e79e\u003c/code\u003e\u003c/a\u003e chore: [Many APIs] update Python generator version to 1.25.1 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14313\"\u003e#14313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/86d0606c0b0d35a16926f630a630603ac768fbb5\"\u003e\u003ccode\u003e86d0606\u003c/code\u003e\u003c/a\u003e chore: [google-shopping-merchant-accounts] update Python generator version to...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/6c265645d13eb3bff5cc519a33965f8670871358\"\u003e\u003ccode\u003e6c26564\u003c/code\u003e\u003c/a\u003e chore: [Many APIs] update Python generator version to 1.25.1 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14316\"\u003e#14316\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/08076ef884baddfe523d0be8cdfafe5637ee073b\"\u003e\u003ccode\u003e08076ef\u003c/code\u003e\u003c/a\u003e chore: [google-apps-chat] update Python generator version to 1.25.1 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14294\"\u003e#14294\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/b533146158a0009952cf0767da42a711d9a20f0f\"\u003e\u003ccode\u003eb533146\u003c/code\u003e\u003c/a\u003e chore: [Many APIs] update Python generator version to 1.25.1 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14310\"\u003e#14310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/eb26719e1cceb0915a533b33e9f992a5f521a263\"\u003e\u003ccode\u003eeb26719\u003c/code\u003e\u003c/a\u003e chore: [Many APIs] update Python generator version to 1.25.1 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14315\"\u003e#14315\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-build-v3.31.3...google-cloud-build-v3.32.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-compute` from 1.35.0 to 1.38.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/releases\"\u003egoogle-cloud-compute's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-compute: v1.38.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-compute-v1.37.0...google-cloud-compute-v1.38.0\"\u003e1.38.0\u003c/a\u003e (2025-09-22)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[google-cloud-compute] Update Compute Engine v1 API to revision 20250902 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14434\"\u003e#14434\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/daf5ab81499ccb7bf29c74b616af9f6235c12526\"\u003edaf5ab8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-cloud-compute: v1.37.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-compute-v1.36.0...google-cloud-compute-v1.37.0\"\u003e1.37.0\u003c/a\u003e (2025-09-04)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[google-cloud-compute] Update Compute Engine v1 API to revision 20250810 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/1091\"\u003e#1091\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14324\"\u003e#14324\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/6cdbcee600286643cba8caf3c2219e9810b317fe\"\u003e6cdbcee\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-cloud-compute: v1.36.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-compute-v1.35.0...google-cloud-compute-v1.36.0\"\u003e1.36.0\u003c/a\u003e (2025-08-29)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[google-cloud-compute] Update Compute Engine v1 API to revision 20250807 (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/51732d38da49f8a0598d58b204dc7d9c86ee0e52\"\u003e51732d3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/5e2ba929d44fefe28a3376a74344d314ea8c3f99\"\u003e\u003ccode\u003e5e2ba92\u003c/code\u003e\u003c/a\u003e chore: release main (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14505\"\u003e#14505\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/ac6a7213bd0fee9291ae0ab8aa0009cc334b0156\"\u003e\u003ccode\u003eac6a721\u003c/code\u003e\u003c/a\u003e feat: [google-cloud-texttospeech] add Gemini TTS Multispeaker API fields (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14\"\u003e#14\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/6842396f3662264aa1beca9a5a08f9d0f171483a\"\u003e\u003ccode\u003e6842396\u003c/code\u003e\u003c/a\u003e docs: [google-cloud-cloudsecuritycompliance] updated documentation for APIs (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/94387fbab5eb311da34cebfbd6f5f599f8078a18\"\u003e\u003ccode\u003e94387fb\u003c/code\u003e\u003c/a\u003e feat: [google-cloud-dataplex] A new service \u003ccode\u003eBusinessGlossaryService\u003c/code\u003e is adde...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/709f283915c348c549ddba1b56a133c192e6caae\"\u003e\u003ccode\u003e709f283\u003c/code\u003e\u003c/a\u003e chore: add link to PyPI history in CHANGELOG.md (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14506\"\u003e#14506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/26730096e491346f02af2a82138224a110485e74\"\u003e\u003ccode\u003e2673009\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20250919T072957Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14501\"\u003e#14501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/db0680bd38e8707d5eb974b1b820cf9219a61463\"\u003e\u003ccode\u003edb0680b\u003c/code\u003e\u003c/a\u003e chore: remove obsolete scripts (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14444\"\u003e#14444\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/8be8e45fe4b0e1e0885b870a4d8dd9793a9a5cd4\"\u003e\u003ccode\u003e8be8e45\u003c/code\u003e\u003c/a\u003e chore: remove testing/.gitignore (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14445\"\u003e#14445\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/5877dca12c8c5171e924bd1a30263b04b9ecbc3b\"\u003e\u003ccode\u003e5877dca\u003c/code\u003e\u003c/a\u003e chore: remove redundant files (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14446\"\u003e#14446\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/f9fc5fccd48d87af3edb9668e5e962d097457d58\"\u003e\u003ccode\u003ef9fc5fc\u003c/code\u003e\u003c/a\u003e fix!: Moved Company enums to a separate file (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14455\"\u003e#14455\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-compute-v1.35.0...google-cloud-compute-v1.38.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-storage` from 3.3.1 to 3.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-storage/releases\"\u003egoogle-cloud-storage's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.4.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-storage/compare/v3.3.1...v3.4.0\"\u003e3.4.0\u003c/a\u003e (2025-09-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eexperimental:\u003c/strong\u003e Add async grpc client (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1537\"\u003e#1537\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/ac57b8d819a49aef0ed0cb5bb630bf11012f43e3\"\u003eac57b8d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eexperimental:\u003c/strong\u003e Add grpc client (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1533\"\u003e#1533\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/5674587f2aa347ec2787f2bc1e847eaa294bc1ca\"\u003e5674587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGAPIC generation failed with 'Directory not empty' (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1542\"\u003e#1542\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/c80d8207a8661b84c56cd66bb34de7b5704675b8\"\u003ec80d820\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-storage/blob/main/CHANGELOG.md\"\u003egoogle-cloud-storage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-storage/compare/v3.3.1...v3.4.0\"\u003e3.4.0\u003c/a\u003e (2025-09-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eexperimental:\u003c/strong\u003e Add async grpc client (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1537\"\u003e#1537\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/ac57b8d819a49aef0ed0cb5bb630bf11012f43e3\"\u003eac57b8d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eexperimental:\u003c/strong\u003e Add grpc client (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1533\"\u003e#1533\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/5674587f2aa347ec2787f2bc1e847eaa294bc1ca\"\u003e5674587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGAPIC generation failed with 'Directory not empty' (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1542\"\u003e#1542\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/c80d8207a8661b84c56cd66bb34de7b5704675b8\"\u003ec80d820\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/fd8e9119d81ea6b53e9af591d5d464c91b263c51\"\u003e\u003ccode\u003efd8e911\u003c/code\u003e\u003c/a\u003e chore(main): release 3.4.0 (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1543\"\u003e#1543\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/ac57b8d819a49aef0ed0cb5bb630bf11012f43e3\"\u003e\u003ccode\u003eac57b8d\u003c/code\u003e\u003c/a\u003e feat(experimental): add async grpc client (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1537\"\u003e#1537\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/5674587f2aa347ec2787f2bc1e847eaa294bc1ca\"\u003e\u003ccode\u003e5674587\u003c/code\u003e\u003c/a\u003e feat(experimental): Add grpc client (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1533\"\u003e#1533\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/dc3756d00c75438a8e7097b2f9160dc47ca73e03\"\u003e\u003ccode\u003edc3756d\u003c/code\u003e\u003c/a\u003e chore: Update gapic-generator-python to 1.26.2 (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1540\"\u003e#1540\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/c80d8207a8661b84c56cd66bb34de7b5704675b8\"\u003e\u003ccode\u003ec80d820\u003c/code\u003e\u003c/a\u003e fix: GAPIC generation failed with 'Directory not empty' (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1542\"\u003e#1542\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/b4ce8dad8fc08be8d4c67fa3dc33c7867d7df822\"\u003e\u003ccode\u003eb4ce8da\u003c/code\u003e\u003c/a\u003e chore: add argparse to run samples as script (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1538\"\u003e#1538\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/87f71961d6a498e8bf74c4f995b4c0f98190892d\"\u003e\u003ccode\u003e87f7196\u003c/code\u003e\u003c/a\u003e chore: update Python generator version to 1.25.1 (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1535\"\u003e#1535\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/67326df83ced2678987f98f1daa926c6849ab925\"\u003e\u003ccode\u003e67326df\u003c/code\u003e\u003c/a\u003e chore: fix the gapic unit tests (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1536\"\u003e#1536\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/python-storage/compare/v3.3.1...v3.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `grpcio` from 1.74.0 to 1.75.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/grpc/grpc/releases\"\u003egrpcio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v1.75.1\u003c/h2\u003e\n\u003cp\u003eThis is release gRPC Core 1.75.1 (gemini).\u003c/p\u003e\n\u003cp\u003eFor gRPC documentation, see \u003ca href=\"https://grpc.io/\"\u003egrpc.io\u003c/a\u003e. For previous releases, see \u003ca href=\"https://github.com/grpc/grpc/releases\"\u003eReleases\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis release contains refinements, improvements, and bug fixes.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003ePython\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRelease grpcio wheels with Python 3.14 support (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40403\"\u003e#40403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAsyncio: fixes grpc shutdown race condition occurring during python interpreter finalizations. (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40447\"\u003e#40447\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eThis also addresses previously reported issues with empty error message on Python interpreter exit (\u003ccode\u003eError in sys.excepthook:\u003c/code\u003e/\u003ccode\u003eOriginal exception was:\u003c/code\u003e empty): \u003ca href=\"https://redirect.github.com/grpc/grpc/issues/36655\"\u003e#36655\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/grpc/grpc/issues/38679\"\u003e#38679\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/grpc/grpc/issues/33342\"\u003e#33342\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003ePython 3.14: preserve current behavior when using grpc.aio async methods outside of a running event loop. (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40750\"\u003e#40750\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eNote: using async methods outside of a running event loop is \u003ca href=\"https://docs.python.org/3.14/library/asyncio-policy.html#asyncio-policies\"\u003ediscouraged\u003c/a\u003e by Python, and \u003cstrong\u003ewill be deprecated in future gRPC releases\u003c/strong\u003e. Please use the \u003ca href=\"https://docs.python.org/3.14/library/asyncio-runner.html#asyncio.run\"\u003easyncio.run()\u003c/a\u003e function (or \u003ca href=\"https://docs.python.org/3.14/library/asyncio-runner.html#asyncio.Runner\"\u003easyncio.Runner\u003c/a\u003e for custom loop factories). For interactive mode, use dedicated \u003ca href=\"https://docs.python.org/3/library/asyncio.html#asyncio-cli\"\u003easyncio REPL\u003c/a\u003e: \u003ccode\u003epython -m asyncio\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/grpc/grpc/compare/v1.75.0...v1.75.1\"\u003ehttps://github.com/grpc/grpc/compare/v1.75.0...v1.75.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eRelease v1.75.0\u003c/h2\u003e\n\u003cp\u003eThis is release 1.75.0 (\u003ca href=\"https://github.com/grpc/grpc/blob/master/doc/g_stands_for.md\"\u003egemini\u003c/a\u003e) of gRPC Core.\u003c/p\u003e\n\u003cp\u003eFor gRPC documentation, see \u003ca href=\"https://grpc.io/\"\u003egrpc.io\u003c/a\u003e. For previous releases, see \u003ca href=\"https://github.com/grpc/grpc/releases\"\u003eReleases\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis release contains refinements, improvements, and bug fixes, with highlights listed below.\u003c/p\u003e\n\u003ch2\u003eCore\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[Security] Cherry Pick Spiffe Verification. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/40515\"\u003e#40515\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Python][Typeguard] Part 3 - Add Typeguard to AIO stack in tests. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/40217\"\u003e#40217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[c-ares] update version to 1.34.5. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/39508\"\u003e#39508\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[pick_first] fix bug that caused us to stop attempting to connect. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/40162\"\u003e#40162\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eC++\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[OTel C++] Implement retry metrics. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/39195\"\u003e#39195\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eObjective-C\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix data race by adding custom getter for \u003ccode\u003estate\u003c/code\u003e property with \u003ccode\u003e@synchronized\u003c/code\u003e locking. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/40146\"\u003e#40146\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePython\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003egRPC Python (grpcio) now depends on \u003ccode\u003etyping-extensions~=4.13\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40137\"\u003e#40137\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate musllinux wheels from \u003ccode\u003emusllinux_1_1\u003c/code\u003e to \u003ccode\u003emusllinux_1_2\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40317\"\u003e#40317\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eDropping \u003ccode\u003emusllinux_1_1\u003c/code\u003e because it reached EOL in November 2024\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/grpc...\n\n_Description has been truncated_","html_url":"https://github.com/GoogleCloudPlatform/cluster-toolkit/pull/4724","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/GoogleCloudPlatform%2Fcluster-toolkit/issues/4724","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/4724/packages"}},{"old_version":"1.8.4","new_version":"1.8.5","update_type":"patch","path":null,"pr_created_at":"2025-10-03T17:11:58.000Z","version_change":"1.8.4 → 1.8.5","issue":{"uuid":"3481857963","node_id":"PR_kwDOIEpTDs6r_zJU","number":850,"state":"open","title":"build: bump libcst from 1.8.4 to 1.8.5","user":"dependabot[bot]","labels":["dependencies:pyproject"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-10-03T17:11:58.000Z","updated_at":"2025-10-04T17:09:32.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build","packages":[{"name":"libcst","old_version":"1.8.4","new_version":"1.8.5","repository_url":"https://github.com/Instagram/LibCST"}],"path":null,"ecosystem":"pip"},"body":"Bumps [libcst](https://github.com/Instagram/LibCST) from 1.8.4 to 1.8.5.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/releases\"\u003elibcst's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.8.5\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: circular import error by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1406\"\u003eInstagram/LibCST#1406\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.4...v1.8.5\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.4...v1.8.5\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/blob/main/CHANGELOG.md\"\u003elibcst's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.8.5 - 2025-09-25\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efixed: circular import error by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1406\"\u003eInstagram/LibCST#1406\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/7c906eb47c02dca8d5b4273a032805516361c8cb\"\u003e\u003ccode\u003e7c906eb\u003c/code\u003e\u003c/a\u003e bump version to 1.8.5 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1407\"\u003e#1407\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/de5635394b5627cb86656147ba2f96e835ed3d44\"\u003e\u003ccode\u003ede56353\u003c/code\u003e\u003c/a\u003e fix: circular import error (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1406\"\u003e#1406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.4...v1.8.5\"\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=libcst\u0026package-manager=pip\u0026previous-version=1.8.4\u0026new-version=1.8.5)](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/ansys/pystk/pull/850","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ansys%2Fpystk/issues/850","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/850/packages"}},{"old_version":"~=1.8.2","new_version":"~=1.8.5","update_type":"patch","path":null,"pr_created_at":"2025-10-01T21:08:33.000Z","version_change":"~=1.8.2 → ~=1.8.5","issue":{"uuid":"2879652386","node_id":"PR_kwDOI_U7IM6rpAIi","number":261,"state":"open","title":"Update libcst requirement from ~=1.8.2 to ~=1.8.5","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:33.000Z","updated_at":"2025-10-02T15:01:10.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Update","packages":[{"name":"libcst","old_version":"~=1.8.2","new_version":"~=1.8.5","repository_url":"https://github.com/Instagram/LibCST"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [libcst](https://github.com/Instagram/LibCST) 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/Instagram/LibCST/releases\"\u003elibcst's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.8.5\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: circular import error by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1406\"\u003eInstagram/LibCST#1406\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.4...v1.8.5\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.4...v1.8.5\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/blob/main/CHANGELOG.md\"\u003elibcst's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.8.5 - 2025-09-25\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efixed: circular import error by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1406\"\u003eInstagram/LibCST#1406\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.8.4 - 2025-09-09\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efixed: generate Attribute nodes when applying type annotations by \u003ca href=\"https://github.com/tungol\"\u003e\u003ccode\u003e@​tungol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1396\"\u003eInstagram/LibCST#1396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded: Support parsing of t-strings \u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1374\"\u003e#1374\u003c/a\u003e  by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1398\"\u003eInstagram/LibCST#1398\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded: add support for PEP758 by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1401\"\u003eInstagram/LibCST#1401\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tungol\"\u003e\u003ccode\u003e@​tungol\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1396\"\u003eInstagram/LibCST#1396\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.4\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.4\u003c/a\u003e\u003c/p\u003e\n\u003ch1\u003e1.8.3 - 2025-08-29\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eremoved: remove entry points to pure parser by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1375\"\u003eInstagram/LibCST#1375\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixed: fixes match statements to work with PositionProvider by \u003ca href=\"https://github.com/imsut\"\u003e\u003ccode\u003e@​imsut\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1389\"\u003eInstagram/LibCST#1389\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hunterhogan\"\u003e\u003ccode\u003e@​hunterhogan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1378\"\u003eInstagram/LibCST#1378\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thomas-serre-sonarsource\"\u003e\u003ccode\u003e@​thomas-serre-sonarsource\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1379\"\u003eInstagram/LibCST#1379\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/imsut\"\u003e\u003ccode\u003e@​imsut\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1389\"\u003eInstagram/LibCST#1389\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.3\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.3\u003c/a\u003e\u003c/p\u003e\n\u003ch1\u003e1.8.2 - 2025-06-13\u003c/h1\u003e\n\u003ch1\u003eFixed\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix(dependency): add back typing-extensions for 3.9 by \u003ca href=\"https://github.com/Lee-W\"\u003e\u003ccode\u003e@​Lee-W\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1358\"\u003eInstagram/LibCST#1358\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Lee-W\"\u003e\u003ccode\u003e@​Lee-W\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1358\"\u003eInstagram/LibCST#1358\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.1...v1.8.2\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.1...v1.8.2\u003c/a\u003e\u003c/p\u003e\n\u003ch1\u003e1.8.1 - 2025-06-10\u003c/h1\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd helper to convert nodes to matchers by \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1351\"\u003eInstagram/LibCST#1351\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eUpdated\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid raising bare Exception by \u003ca href=\"https://github.com/zaicruvoir1rominet\"\u003e\u003ccode\u003e@​zaicruvoir1rominet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1168\"\u003eInstagram/LibCST#1168\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade PyYAML-ft version and use new module name by \u003ca href=\"https://github.com/lysnikolaou\"\u003e\u003ccode\u003e@​lysnikolaou\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1353\"\u003eInstagram/LibCST#1353\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/7c906eb47c02dca8d5b4273a032805516361c8cb\"\u003e\u003ccode\u003e7c906eb\u003c/code\u003e\u003c/a\u003e bump version to 1.8.5 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1407\"\u003e#1407\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/de5635394b5627cb86656147ba2f96e835ed3d44\"\u003e\u003ccode\u003ede56353\u003c/code\u003e\u003c/a\u003e fix: circular import error (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1406\"\u003e#1406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/47cacb69a32520be52975527e0cc87a4b4d5cd77\"\u003e\u003ccode\u003e47cacb6\u003c/code\u003e\u003c/a\u003e bump version to 1.8.4 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1402\"\u003e#1402\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/3b5329aa2022d97972d2f58eefe61b759b8e56c1\"\u003e\u003ccode\u003e3b5329a\u003c/code\u003e\u003c/a\u003e feat: add support for PEP758 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1401\"\u003e#1401\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/48668dfabb25e4bbdd35f81407498f5f5e47bf88\"\u003e\u003ccode\u003e48668df\u003c/code\u003e\u003c/a\u003e Support parsing of t-strings \u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1374\"\u003e#1374\u003c/a\u003e  (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1398\"\u003e#1398\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/0c82bfa76166ed38409a97de8974f9aaf3e7e572\"\u003e\u003ccode\u003e0c82bfa\u003c/code\u003e\u003c/a\u003e build(deps): bump regex from 1.11.1 to 1.11.2 in /native (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1399\"\u003e#1399\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/f40d8351450ca9adfe5270bd86ec7951e83221f4\"\u003e\u003ccode\u003ef40d835\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1400\"\u003e#1400\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/d721a06c3fc3ab9210acd180cec5aaca856e1bc7\"\u003e\u003ccode\u003ed721a06\u003c/code\u003e\u003c/a\u003e generate Attribute nodes when applying type annotations (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1396\"\u003e#1396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/e064729b4c04b834754c7be7f43a4dfb38972570\"\u003e\u003ccode\u003ee064729\u003c/code\u003e\u003c/a\u003e build(deps): bump pypa/cibuildwheel from 3.0.1 to 3.1.4 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1395\"\u003e#1395\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/f746afd537910d99bd8226a1c1edbf5bc69630eb\"\u003e\u003ccode\u003ef746afd\u003c/code\u003e\u003c/a\u003e build(deps): bump rayon from 1.10.0 to 1.11.0 in /native (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1394\"\u003e#1394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.5\"\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/261","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/AllSpiceIO%2Fpy-allspice/issues/261","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/261/packages"}},{"old_version":"1.8.2","new_version":"1.8.5","update_type":"patch","path":"/community/front-end/ofe","pr_created_at":"2025-10-01T10:06:03.000Z","version_change":"1.8.2 → 1.8.5","issue":{"uuid":"2877628451","node_id":"PR_kwDOGLHsfc6rhSAj","number":4712,"state":"closed","title":"Bump the ofe-minor-and-patch-updates group in /community/front-end/ofe with 18 updates","user":"dependabot[bot]","labels":["dependencies","python","release-chore"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2025-10-06T05:32:45.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-10-01T10:06:03.000Z","updated_at":"2025-10-06T05:32:45.000Z","time_to_close":415602,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"ofe-minor-and-patch-updates","update_count":18,"packages":[{"name":"asgiref","old_version":"3.9.1","new_version":"3.9.2","repository_url":"https://github.com/django/asgiref"},{"name":"click","old_version":"8.2.1","new_version":"8.3.0","repository_url":"https://github.com/pallets/click"},{"name":"django-allauth","old_version":"65.11.1","new_version":"65.11.2","repository_url":"https://github.com/sponsors/pennersr"},{"name":"google-api-python-client","old_version":"2.179.0","new_version":"2.183.0","repository_url":"https://github.com/googleapis/google-api-python-client"},{"name":"google-auth","old_version":"2.40.3","new_version":"2.41.1","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"google-cloud-build","old_version":"3.31.3","new_version":"3.32.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-compute","old_version":"1.35.0","new_version":"1.38.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-storage","old_version":"3.3.1","new_version":"3.4.0","repository_url":"https://github.com/googleapis/python-storage"},{"name":"grpcio","old_version":"1.74.0","new_version":"1.75.1","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-status","old_version":"1.74.0","new_version":"1.75.1"},{"name":"httplib2","old_version":"0.30.0","new_version":"0.31.0","repository_url":"https://github.com/httplib2/httplib2"},{"name":"identify","old_version":"2.6.13","new_version":"2.6.14","repository_url":"https://github.com/pre-commit/identify"},{"name":"libcst","old_version":"1.8.2","new_version":"1.8.5","repository_url":"https://github.com/Instagram/LibCST"},{"name":"pycparser","old_version":"2.22","new_version":"2.23","repository_url":"https://github.com/eliben/pycparser"},{"name":"pyparsing","old_version":"3.2.3","new_version":"3.2.5","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"ruamel-yaml-clib","old_version":"0.2.12","new_version":"0.2.14"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.37.0","repository_url":"https://github.com/Kludex/uvicorn"}],"path":"/community/front-end/ofe","ecosystem":"pip"},"body":"Bumps the ofe-minor-and-patch-updates group in /community/front-end/ofe with 18 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [asgiref](https://github.com/django/asgiref) | `3.9.1` | `3.9.2` |\n| [click](https://github.com/pallets/click) | `8.2.1` | `8.3.0` |\n| [django-allauth](https://github.com/sponsors/pennersr) | `65.11.1` | `65.11.2` |\n| [google-api-python-client](https://github.com/googleapis/google-api-python-client) | `2.179.0` | `2.183.0` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.40.3` | `2.41.1` |\n| [google-cloud-build](https://github.com/googleapis/google-cloud-python) | `3.31.3` | `3.32.0` |\n| [google-cloud-compute](https://github.com/googleapis/google-cloud-python) | `1.35.0` | `1.38.0` |\n| [google-cloud-storage](https://github.com/googleapis/python-storage) | `3.3.1` | `3.4.0` |\n| [grpcio](https://github.com/grpc/grpc) | `1.74.0` | `1.75.1` |\n| [grpcio-status](https://grpc.io) | `1.74.0` | `1.75.1` |\n| [httplib2](https://github.com/httplib2/httplib2) | `0.30.0` | `0.31.0` |\n| [identify](https://github.com/pre-commit/identify) | `2.6.13` | `2.6.14` |\n| [libcst](https://github.com/Instagram/LibCST) | `1.8.2` | `1.8.5` |\n| [pycparser](https://github.com/eliben/pycparser) | `2.22` | `2.23` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.3` | `3.2.5` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| ruamel-yaml-clib | `0.2.12` | `0.2.14` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.37.0` |\n\nUpdates `asgiref` from 3.9.1 to 3.9.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django/asgiref/blob/main/CHANGELOG.txt\"\u003easgiref's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.9.2 (2025-09-23)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdds support for Python 3.14.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixes wsgi.errors file descriptor in WsgiToAsgi adapter.\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/django/asgiref/commit/3471a0c09bd043d61c299308c0c8519ab6c0f774\"\u003e\u003ccode\u003e3471a0c\u003c/code\u003e\u003c/a\u003e Releasing 3.9.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/4f892bd261cee9afe51d67333e9bc7cd98b39a35\"\u003e\u003ccode\u003e4f892bd\u003c/code\u003e\u003c/a\u003e Remove Python 3.8 from tox\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/83cd6f3c6f59a66999446c2893cdb3fcae3c03c5\"\u003e\u003ccode\u003e83cd6f3\u003c/code\u003e\u003c/a\u003e Run CI against Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/796b9f14fd92d3131c7c39fab308ddd986d271eb\"\u003e\u003ccode\u003e796b9f1\u003c/code\u003e\u003c/a\u003e Fix incorrect Trailer header (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/531\"\u003e#531\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/29b108b0a9a5eddae3e282ba33915412a855e529\"\u003e\u003ccode\u003e29b108b\u003c/code\u003e\u003c/a\u003e Fixed \u003ca href=\"https://redirect.github.com/django/asgiref/issues/529\"\u003e#529\u003c/a\u003e: wsgi.errors should be a StringIO (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/530\"\u003e#530\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/django/asgiref/compare/3.9.1...3.9.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.2.1 to 8.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.3.0\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecation, or introduce potentially breaking changes.\u003c/p\u003e\n\u003cp\u003eWe encourage everyone to upgrade. You can read more about our \u003ca href=\"https://palletsprojects.com/versions\"\u003eVersion Support Policy\u003c/a\u003e on our website.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.3.0/\"\u003ehttps://pypi.org/project/click/8.3.0/\u003c/a\u003e\nChanges:  \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-0\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-0\u003c/a\u003e\nMilestone \u003ca href=\"https://github.com/pallets/click/milestone/27\"\u003ehttps://github.com/pallets/click/milestone/27\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eImproved flag option handling\u003c/strong\u003e: Reworked the relationship between \u003ccode\u003eflag_value\u003c/code\u003e\nand \u003ccode\u003edefault\u003c/code\u003e parameters for better consistency:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter value is now preserved as-is and passed directly\nto CLI functions (no more unexpected transformations)\u003c/li\u003e\n\u003cli\u003eException: flag options with \u003ccode\u003edefault=True\u003c/code\u003e maintain backward compatibility\nby defaulting to their \u003ccode\u003eflag_value\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter can now be any type (\u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003eNone\u003c/code\u003e, etc.)\u003c/li\u003e\n\u003cli\u003eFixes inconsistencies reported in: \u003ca href=\"https://redirect.github.com/pallets/click/issues/1992\"\u003e#1992\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2514\"\u003e#2514\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2610\"\u003e#2610\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3024\"\u003e#3024\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003edefault\u003c/code\u003e to be set on \u003ccode\u003eArgument\u003c/code\u003e for \u003ccode\u003enargs = -1\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2164\"\u003e#2164\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for \u003ccode\u003enargs\u003c/code\u003e option in combination with flag\noption \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for nargs option in combination with flag option \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix handling of quoted and escaped parameters in Fish autocompletion. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2995\"\u003e#2995\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3013\"\u003e#3013\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLazily import \u003ccode\u003eshutil\u003c/code\u003e.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3023\"\u003e#3023\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProperly forward exception information to resources registered with\n\u003ccode\u003eclick.core.Context.with_resource()\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3058\"\u003e#3058\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression related to EOF handling in CliRunner.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2939\"\u003e#2939\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2940\"\u003e#2940\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.2.2\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.2.2 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.2.2/\"\u003ehttps://pypi.org/project/click/8.2.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-2-2\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-2-2\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/25\"\u003ehttps://github.com/pallets/click/milestone/25\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix reconciliation of \u003ccode\u003edefault\u003c/code\u003e, \u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003etype\u003c/code\u003e parameters for\nflag options, as well as parsing and normalization of environment variables.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/2952\"\u003e#2952\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2956\"\u003e#2956\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typing issue in \u003ccode\u003eBadParameter\u003c/code\u003e and \u003ccode\u003eMissingParameter\u003c/code\u003e exceptions for the\nparameter \u003ccode\u003eparam_hint\u003c/code\u003e that did not allow for a sequence of string where the\nunderlying functino \u003ccode\u003e_join_param_hints\u003c/code\u003e allows for it. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2777\"\u003e#2777\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2990\"\u003e#2990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse the value of \u003ccode\u003eEnum\u003c/code\u003e choices to render their default value in help\nscreen. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2911\"\u003e#2911\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3004\"\u003e#3004\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix completion for the Z shell (\u003ccode\u003ezsh\u003c/code\u003e) for completion items containing\ncolons. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2703\"\u003e#2703\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2846\"\u003e#2846\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't include envvar in error hint when not configured. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2971\"\u003e#2971\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2972\"\u003e#2972\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/pallets/click/blob/main/CHANGES.rst\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.3.0\u003c/h2\u003e\n\u003cp\u003eReleased 2025-09-17\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eImproved flag option handling\u003c/strong\u003e: Reworked the relationship between \u003ccode\u003eflag_value\u003c/code\u003e\nand \u003ccode\u003edefault\u003c/code\u003e parameters for better consistency:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter value is now preserved as-is and passed directly\nto CLI functions (no more unexpected transformations)\u003c/li\u003e\n\u003cli\u003eException: flag options with \u003ccode\u003edefault=True\u003c/code\u003e maintain backward compatibility\nby defaulting to their \u003ccode\u003eflag_value\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter can now be any type (\u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003eNone\u003c/code\u003e, etc.)\u003c/li\u003e\n\u003cli\u003eFixes inconsistencies reported in: :issue:\u003ccode\u003e1992\u003c/code\u003e :issue:\u003ccode\u003e2514\u003c/code\u003e :issue:\u003ccode\u003e2610\u003c/code\u003e\n:issue:\u003ccode\u003e3024\u003c/code\u003e :pr:\u003ccode\u003e3030\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003edefault\u003c/code\u003e to be set on \u003ccode\u003eArgument\u003c/code\u003e for \u003ccode\u003enargs = -1\u003c/code\u003e. :issue:\u003ccode\u003e2164\u003c/code\u003e\n:pr:\u003ccode\u003e3030\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for \u003ccode\u003enargs\u003c/code\u003e option in combination with flag\noption :issue:\u003ccode\u003e2813\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix handling of quoted and escaped parameters in Fish autocompletion. :issue:\u003ccode\u003e2995\u003c/code\u003e :pr:\u003ccode\u003e3013\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLazily import \u003ccode\u003eshutil\u003c/code\u003e. :pr:\u003ccode\u003e3023\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProperly forward exception information to resources registered with\n\u003ccode\u003eclick.core.Context.with_resource()\u003c/code\u003e. :issue:\u003ccode\u003e2447\u003c/code\u003e :pr:\u003ccode\u003e3058\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression related to EOF handling in CliRunner. :issue:\u003ccode\u003e2939\u003c/code\u003e :pr:\u003ccode\u003e2940\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.2.2\u003c/h2\u003e\n\u003cp\u003eReleased 2025-07-31\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix reconciliation of \u003ccode\u003edefault\u003c/code\u003e, \u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003etype\u003c/code\u003e parameters for\nflag options, as well as parsing and normalization of environment variables.\n:issue:\u003ccode\u003e2952\u003c/code\u003e :pr:\u003ccode\u003e2956\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix typing issue in \u003ccode\u003eBadParameter\u003c/code\u003e and \u003ccode\u003eMissingParameter\u003c/code\u003e exceptions for the\nparameter \u003ccode\u003eparam_hint\u003c/code\u003e that did not allow for a sequence of string where the\nunderlying function \u003ccode\u003e_join_param_hints\u003c/code\u003e allows for it. :issue:\u003ccode\u003e2777\u003c/code\u003e :pr:\u003ccode\u003e2990\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUse the value of \u003ccode\u003eEnum\u003c/code\u003e choices to render their default value in help\nscreen. Refs :issue:\u003ccode\u003e2911\u003c/code\u003e :pr:\u003ccode\u003e3004\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix completion for the Z shell (\u003ccode\u003ezsh\u003c/code\u003e) for completion items containing\ncolons. :issue:\u003ccode\u003e2703\u003c/code\u003e :pr:\u003ccode\u003e2846\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDon't include envvar in error hint when not configured. :issue:\u003ccode\u003e2971\u003c/code\u003e :pr:\u003ccode\u003e2972\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix a rare race in \u003ccode\u003eclick.testing.StreamMixer\u003c/code\u003e's finalization that manifested\nas a \u003ccode\u003eValueError\u003c/code\u003e on close in a multi-threaded test session.\n:issue:\u003ccode\u003e2993\u003c/code\u003e :pr:\u003ccode\u003e2991\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/pallets/click/commit/00fadb8904387158ce6e9aa1573be770446895c1\"\u003e\u003ccode\u003e00fadb8\u003c/code\u003e\u003c/a\u003e Release version 8.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/2a0e3ba907927ade6951d5732b775f11b54cb766\"\u003e\u003ccode\u003e2a0e3ba\u003c/code\u003e\u003c/a\u003e testing/CliRunner: Fix regression related to EOF introduced in 262bdf0 (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/e11a1efc3395e998a1521a0dc35672a799e78d30\"\u003e\u003ccode\u003ee11a1ef\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into fix-cli-runner-prompt-eof-handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/36deba8a95a2585de1a2aa4475b7f054f52830ac\"\u003e\u003ccode\u003e36deba8\u003c/code\u003e\u003c/a\u003e Forward exception information to resources registered in a context (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3058\"\u003e#3058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/f2cae7ae997cd32311cab3dede4c2b89fe05e191\"\u003e\u003ccode\u003ef2cae7a\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Add summary of PR to changelog for 8.3.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/7c7ec36354f49d1a092cb077fa4881ea4d70ba01\"\u003e\u003ccode\u003e7c7ec36\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Split resource exception handling tests in single and nested\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/92129c552da88ac30b578132031efa4b003ecc46\"\u003e\u003ccode\u003e92129c5\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Added exception forwarding to context tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/555fa9bb37770a6845a98be60b0c84876775552e\"\u003e\u003ccode\u003e555fa9b\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Forward exception data to exit stack when calling \u003ccode\u003e__exit__\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/16fe802a3f96c4c8fa3cd382f1a7577fda0c5321\"\u003e\u003ccode\u003e16fe802\u003c/code\u003e\u003c/a\u003e Add more tests on \u003ccode\u003eEnum\u003c/code\u003e rendering (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3053\"\u003e#3053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/d36de6fc67882f23d7a7d61cd4c0e25e0f88b0ac\"\u003e\u003ccode\u003ed36de6f\u003c/code\u003e\u003c/a\u003e Add more tests on Enum rendering their item's names and not values\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.2.1...8.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-allauth` from 65.11.1 to 65.11.2\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/pennersr/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-api-python-client` from 2.179.0 to 2.183.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-api-python-client/releases\"\u003egoogle-api-python-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.183.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/compare/v2.182.0...v2.183.0\"\u003e2.183.0\u003c/a\u003e (2025-09-23)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eaiplatform:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/dd56bd7c1810c19d22cd4efe55c0e11674f384ee\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/dd56bd7c1810c19d22cd4efe55c0e11674f384ee\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8934c764cc08e15aa0e013a2f97a59967296ef9a\"\u003e8934c76\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eandroidmanagement:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/51107a656275120000ab499bc8af75ccf4bcd933\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/51107a656275120000ab499bc8af75ccf4bcd933\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8934c764cc08e15aa0e013a2f97a59967296ef9a\"\u003e8934c76\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebigquery:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/ce919522452b844c8c9b7a9621737b8fdb8a948d\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/ce919522452b844c8c9b7a9621737b8fdb8a948d\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8934c764cc08e15aa0e013a2f97a59967296ef9a\"\u003e8934c76\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebigtableadmin:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/ebae81ea64e6b7794d00a3fc556f0d3cbb9a1c4b\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/ebae81ea64e6b7794d00a3fc556f0d3cbb9a1c4b\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8934c764cc08e15aa0e013a2f97a59967296ef9a\"\u003e8934c76\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003echat:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/ccc9bde48e5128aa1cfe4b3559791f24a7feec1e\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/ccc9bde48e5128aa1cfe4b3559791f24a7feec1e\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8934c764cc08e15aa0e013a2f97a59967296ef9a\"\u003e8934c76\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecloudcommerceprocurement:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/6acd1a9da6162f553550f0a2285e7ae63c2945fd\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/6acd1a9da6162f553550f0a2285e7ae63c2945fd\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8934c764cc08e15aa0e013a2f97a59967296ef9a\"\u003e8934c76\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecloudidentity:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/957b7dcd5fe6d67929fa68003a2e2fe52ca59f74\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/957b7dcd5fe6d67929fa68003a2e2fe52ca59f74\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8934c764cc08e15aa0e013a2f97a59967296ef9a\"\u003e8934c76\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecloudkms:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/975916ba57714af3800d9b943210d0a608ae922d\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/975916ba57714af3800d9b943210d0a608ae922d\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8934c764cc08e15aa0e013a2f97a59967296ef9a\"\u003e8934c76\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecompute:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/583463137fa260a774b425c2b17630dae4fd9953\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/583463137fa260a774b425c2b17630dae4fd9953\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8934c764cc08e15aa0e013a2f97a59967296ef9a\"\u003e8934c76\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003econnectors:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/b6be6cb309d31288787685d4e01a43bd6277556f\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/b6be6cb309d31288787685d4e01a43bd6277556f\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8934c764cc08e15aa0e013a2f97a59967296ef9a\"\u003e8934c76\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edataform:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/bfd0bca858052c8dc84584c103a3b4bb1494757a\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/bfd0bca858052c8dc84584c103a3b4bb1494757a\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8934c764cc08e15aa0e013a2f97a59967296ef9a\"\u003e8934c76\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ediscoveryengine:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/51c34c4bfbc94ff6c6211dfc4a6dcb1785845930\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/51c34c4bfbc94ff6c6211dfc4a6dcb1785845930\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8934c764cc08e15aa0e013a2f97a59967296ef9a\"\u003e8934c76\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edlp:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/888f7b33f791fa9fe02bfea06a0704b017eec684\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/888f7b33f791fa9fe02bfea06a0704b017eec684\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8934c764cc08e15aa0e013a2f97a59967296ef9a\"\u003e8934c76\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edocumentai:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/50eb5b6bd4e83df7ecacbfc5cbc2cd7d1db58773\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/50eb5b6bd4e83df7ecacbfc5cbc2cd7d1db58773\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8934c764cc08e15aa0e013a2f97a59967296ef9a\"\u003e8934c76\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edomains:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/b3ab658cc884f18e940e83cfa6844227bedc9eba\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/b3ab658cc884f18e940e83cfa6844227bedc9eba\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8934c764cc08e15aa0e013a2f97a59967296ef9a\"\u003e8934c76\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeventarc:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/105e7c99eaf1b91dbad2e09d967ec7998c866025\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/105e7c99eaf1b91dbad2e09d967ec7998c866025\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8934c764cc08e15aa0e013a2f97a59967296ef9a\"\u003e8934c76\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003efirebaseappdistribution:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/7f3ac1010be4fa207d7b477575c671d5652f1767\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/7f3ac1010be4fa207d7b477575c671d5652f1767\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8934c764cc08e15aa0e013a2f97a59967296ef9a\"\u003e8934c76\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emigrationcenter:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/8805f0858edfc57c8707a8405a8d79c5a423bd32\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/8805f0858edfc57c8707a8405a8d79c5a423bd32\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8934c764cc08e15aa0e013a2f97a59967296ef9a\"\u003e8934c76\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003enetapp:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/a40b629454024d4bcfa156c3c5c19176eb09026c\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/a40b629454024d4bcfa156c3c5c19176eb09026c\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8934c764cc08e15aa0e013a2f97a59967296ef9a\"\u003e8934c76\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003enetworkconnectivity:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/c5b7beda6b1ce2435fe4b00bf775d6d4cd3f7345\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/c5b7beda6b1ce2435fe4b00bf775d6d4cd3f7345\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8934c764cc08e15aa0e013a2f97a59967296ef9a\"\u003e8934c76\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003enetworksecurity:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/db1452ba34c8d8e4cae5c30046993449db6fa336\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/db1452ba34c8d8e4cae5c30046993449db6fa336\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8934c764cc08e15aa0e013a2f97a59967296ef9a\"\u003e8934c76\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eoracledatabase:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/dc6914b7527d4f99e12ce6913a3bab787bb4297c\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/dc6914b7527d4f99e12ce6913a3bab787bb4297c\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8934c764cc08e15aa0e013a2f97a59967296ef9a\"\u003e8934c76\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eretail:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/7f362b739c62e66080ba7a5765972865a20064a9\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/7f362b739c62e66080ba7a5765972865a20064a9\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8934c764cc08e15aa0e013a2f97a59967296ef9a\"\u003e8934c76\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003esqladmin:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/cb86c15ebc719b02425ba6f5fc4694ae7cdec2f4\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/cb86c15ebc719b02425ba6f5fc4694ae7cdec2f4\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8934c764cc08e15aa0e013a2f97a59967296ef9a\"\u003e8934c76\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eworkloadmanager:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/b5aaa05ab795abfe10e741bb65877df4d89301c2\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/b5aaa05ab795abfe10e741bb65877df4d89301c2\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8934c764cc08e15aa0e013a2f97a59967296ef9a\"\u003e8934c76\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.182.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/compare/v2.181.0...v2.182.0\"\u003e2.182.0\u003c/a\u003e (2025-09-16)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eaiplatform:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/e8eefdc62fb7bf1f8b70e6c670afa014208b5421\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/e8eefdc62fb7bf1f8b70e6c670afa014208b5421\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/46a12bd7a803f46f13aa2764209a03009a9f8f1e\"\u003e46a12bd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ealloydb:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/b34a3254b1d84f3e3da4096ffcd66ae435d82375\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/b34a3254b1d84f3e3da4096ffcd66ae435d82375\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/c9e33f4aee974b1512cc6a3ac0e1607917976f9d\"\u003ec9e33f4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eanalyticshub:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/67b3e55e7b36b6cdfdc324483ef019cb8c9072e4\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/67b3e55e7b36b6cdfdc324483ef019cb8c9072e4\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/46a12bd7a803f46f13aa2764209a03009a9f8f1e\"\u003e46a12bd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eandroidpublisher:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/2e9b68d8cf6ec0075a73c5e4592aaa27e0d38ced\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/2e9b68d8cf6ec0075a73c5e4592aaa27e0d38ced\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/46a12bd7a803f46f13aa2764209a03009a9f8f1e\"\u003e46a12bd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapigee:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/bdb05bf2a5494979afc57a4f66bc5e78ac6172f1\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/bdb05bf2a5494979afc57a4f66bc5e78ac6172f1\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/c9e33f4aee974b1512cc6a3ac0e1607917976f9d\"\u003ec9e33f4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapihub:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/9fea79faa088afde920c5c16d3c7ae3d14ba6d2f\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/9fea79faa088afde920c5c16d3c7ae3d14ba6d2f\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/c9e33f4aee974b1512cc6a3ac0e1607917976f9d\"\u003ec9e33f4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebackupdr:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/b6465d09d94fb5b87eab86a858f697889d182426\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/b6465d09d94fb5b87eab86a858f697889d182426\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/c9e33f4aee974b1512cc6a3ac0e1607917976f9d\"\u003ec9e33f4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecloudcommerceprocurement:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/e77e2707a7947e9412299ed8499490f002a2bd25\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/e77e2707a7947e9412299ed8499490f002a2bd25\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/46a12bd7a803f46f13aa2764209a03009a9f8f1e\"\u003e46a12bd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecompute:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/d7ec4689bc525691ddb134ded1faed58eb1e3493\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/d7ec4689bc525691ddb134ded1faed58eb1e3493\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/c9e33f4aee974b1512cc6a3ac0e1607917976f9d\"\u003ec9e33f4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003econnectors:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/353b32550b03044840da559b8df504a1d866889e\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/353b32550b03044840da559b8df504a1d866889e\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/46a12bd7a803f46f13aa2764209a03009a9f8f1e\"\u003e46a12bd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003econtaineranalysis:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/c26d46fdcde6fb9682f72c8a12f3b57de312269e\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/c26d46fdcde6fb9682f72c8a12f3b57de312269e\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/c9e33f4aee974b1512cc6a3ac0e1607917976f9d\"\u003ec9e33f4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edatamigration:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/e2078e6715a81d469aa15f5fcec722276a3ee895\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/e2078e6715a81d469aa15f5fcec722276a3ee895\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/46a12bd7a803f46f13aa2764209a03009a9f8f1e\"\u003e46a12bd\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/googleapis/google-api-python-client/commit/9695453e9391b20e1c5ba015f5ff2028b433b2b5\"\u003e\u003ccode\u003e9695453\u003c/code\u003e\u003c/a\u003e chore(main): release 2.183.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2662\"\u003e#2662\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8934c764cc08e15aa0e013a2f97a59967296ef9a\"\u003e\u003ccode\u003e8934c76\u003c/code\u003e\u003c/a\u003e chore: Update discovery artifacts (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2661\"\u003e#2661\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/35a5d161fb8ff76faca28548237ca7d6a4d569ba\"\u003e\u003ccode\u003e35a5d16\u003c/code\u003e\u003c/a\u003e chore(main): release 2.182.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2654\"\u003e#2654\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/c9e33f4aee974b1512cc6a3ac0e1607917976f9d\"\u003e\u003ccode\u003ec9e33f4\u003c/code\u003e\u003c/a\u003e chore: Update discovery artifacts (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2659\"\u003e#2659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/46a12bd7a803f46f13aa2764209a03009a9f8f1e\"\u003e\u003ccode\u003e46a12bd\u003c/code\u003e\u003c/a\u003e chore: Update discovery artifacts (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2653\"\u003e#2653\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/dbfca7cb04959166e3365bcd035f7b7bbbcb5320\"\u003e\u003ccode\u003edbfca7c\u003c/code\u003e\u003c/a\u003e chore(main): release 2.181.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2651\"\u003e#2651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/0413210177b2e5d812cd21ce6246b73a2929d610\"\u003e\u003ccode\u003e0413210\u003c/code\u003e\u003c/a\u003e chore: Update discovery artifacts (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2650\"\u003e#2650\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/93540745d63276ff4bc3ac682619bb43920baa05\"\u003e\u003ccode\u003e9354074\u003c/code\u003e\u003c/a\u003e chore(main): release 2.180.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2644\"\u003e#2644\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/e9389d4ceacb5df759e0c41475429ddd60d70578\"\u003e\u003ccode\u003ee9389d4\u003c/code\u003e\u003c/a\u003e chore: Update discovery artifacts (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2647\"\u003e#2647\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/8b109032b71ca0b95b106af3ce470b7193d73148\"\u003e\u003ccode\u003e8b10903\u003c/code\u003e\u003c/a\u003e chore: Update discovery artifacts (\u003ca href=\"https://redirect.github.com/googleapis/google-api-python-client/issues/2643\"\u003e#2643\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/google-api-python-client/compare/v2.179.0...v2.183.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-auth` from 2.40.3 to 2.41.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-auth-library-python/releases\"\u003egoogle-auth's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.41.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.41.0...v2.41.1\"\u003e2.41.1\u003c/a\u003e (2025-09-30)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSuppress deprecation warning for ADC (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1815\"\u003e#1815\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/751ce3f625eb24029e9f0c59c081bdd3e18eb583\"\u003e751ce3f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.41.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.40.3...v2.41.0\"\u003e2.41.0\u003c/a\u003e (2025-09-29)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for cachetools 6.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1773\"\u003e#1773\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/af18060d521baf86c219d66a26631decb3b28e79\"\u003eaf18060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd trust boundary support for service accounts and impersonation. (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1778\"\u003e#1778\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/99be2ce19401296718f880c7a80cd2e841df78bf\"\u003e99be2ce\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecating \u003ca href=\"https://googleapis.dev/python/google-auth/latest/reference/google.auth.html#google.auth.load_credentials_from_dict\"\u003eload_credentials_from_dict\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/58b66ec8069bfe5304c7da512fe89a8e838ce1ca\"\u003e58b66ec\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeprecating \u003ca href=\"https://googleapis.dev/python/google-auth/latest/reference/google.auth.html#google.auth.load_credentials_from_file\"\u003eload_credentials_from_file\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/58b66ec8069bfe5304c7da512fe89a8e838ce1ca\"\u003e58b66ec\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix type error in credentials.py for python 3.7 and 3.8 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1805\"\u003e#1805\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/c30a6a781d3e385598a0ac28a370a7f4800010cc\"\u003ec30a6a7\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate user guide to include x509 feature. (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1802\"\u003e#1802\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/2d89ab4d85568564e1f462f5b463991ffd9b82b1\"\u003e2d89ab4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-auth-library-python/blob/main/CHANGELOG.md\"\u003egoogle-auth's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.41.0...v2.41.1\"\u003e2.41.1\u003c/a\u003e (2025-09-30)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSuppress deprecation warning for ADC (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1815\"\u003e#1815\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/751ce3f625eb24029e9f0c59c081bdd3e18eb583\"\u003e751ce3f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.40.3...v2.41.0\"\u003e2.41.0\u003c/a\u003e (2025-09-29)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for cachetools 6.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1773\"\u003e#1773\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/af18060d521baf86c219d66a26631decb3b28e79\"\u003eaf18060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd trust boundary support for service accounts and impersonation. (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1778\"\u003e#1778\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/99be2ce19401296718f880c7a80cd2e841df78bf\"\u003e99be2ce\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecating \u003ca href=\"https://googleapis.dev/python/google-auth/latest/reference/google.auth.html#google.auth.load_credentials_from_dict\"\u003eload_credentials_from_dict\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/58b66ec8069bfe5304c7da512fe89a8e838ce1ca\"\u003e58b66ec\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeprecating \u003ca href=\"https://googleapis.dev/python/google-auth/latest/reference/google.auth.html#google.auth.load_credentials_from_file\"\u003eload_credentials_from_file\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/58b66ec8069bfe5304c7da512fe89a8e838ce1ca\"\u003e58b66ec\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix type error in credentials.py for python 3.7 and 3.8 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1805\"\u003e#1805\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/c30a6a781d3e385598a0ac28a370a7f4800010cc\"\u003ec30a6a7\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate user guide to include x509 feature. (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1802\"\u003e#1802\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/2d89ab4d85568564e1f462f5b463991ffd9b82b1\"\u003e2d89ab4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/ebf33636bc3e525de37f331b75fade6b61c950cb\"\u003e\u003ccode\u003eebf3363\u003c/code\u003e\u003c/a\u003e chore(main): release 2.41.1 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1816\"\u003e#1816\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/751ce3f625eb24029e9f0c59c081bdd3e18eb583\"\u003e\u003ccode\u003e751ce3f\u003c/code\u003e\u003c/a\u003e fix: suppress deprecation warning for ADC (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1815\"\u003e#1815\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/819199ac180e368823e1364695273aa41851cc6e\"\u003e\u003ccode\u003e819199a\u003c/code\u003e\u003c/a\u003e chore(main): release 2.41.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1797\"\u003e#1797\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/58b66ec8069bfe5304c7da512fe89a8e838ce1ca\"\u003e\u003ccode\u003e58b66ec\u003c/code\u003e\u003c/a\u003e fix: Deprecating generic load methods and adding warnings on few cred types (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/1e8a867a84c26c249ad9bf659d9bdf61183883c7\"\u003e\u003ccode\u003e1e8a867\u003c/code\u003e\u003c/a\u003e chore: update owners (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1813\"\u003e#1813\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/c30a6a781d3e385598a0ac28a370a7f4800010cc\"\u003e\u003ccode\u003ec30a6a7\u003c/code\u003e\u003c/a\u003e fix: fix type error in credentials.py for python 3.7 and 3.8 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1805\"\u003e#1805\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/03dfee20e3c2d6e232e12eb78ef4201244ce7c13\"\u003e\u003ccode\u003e03dfee2\u003c/code\u003e\u003c/a\u003e chore: secret update (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1806\"\u003e#1806\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/2d89ab4d85568564e1f462f5b463991ffd9b82b1\"\u003e\u003ccode\u003e2d89ab4\u003c/code\u003e\u003c/a\u003e docs: update user guide to include x509 feature. (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1802\"\u003e#1802\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/03e640ed4ba4a6afbbe4462beb43a95b60744ed7\"\u003e\u003ccode\u003e03e640e\u003c/code\u003e\u003c/a\u003e chore: update secret (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1803\"\u003e#1803\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/99be2ce19401296718f880c7a80cd2e841df78bf\"\u003e\u003ccode\u003e99be2ce\u003c/code\u003e\u003c/a\u003e feat: Add trust boundary support for service accounts and impersonation. (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1778\"\u003e#1778\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.40.3...v2.41.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-build` from 3.31.3 to 3.32.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/releases\"\u003egoogle-cloud-build's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-build: v3.32.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-build-v3.31.3...google-cloud-build-v3.32.0\"\u003e3.32.0\u003c/a\u003e (2025-08-29)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd option to enable nested virtualization if available (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/47981a80a477c714e489410d4e77979ec1404b27\"\u003e47981a8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate comments for \u003ccode\u003emachine_type\u003c/code\u003e and \u003ccode\u003edisk_size_gb\u003c/code\u003e (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/47981a80a477c714e489410d4e77979ec1404b27\"\u003e47981a8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/b0c7b29b16476d60a616a39b6fd1b600c25dc753\"\u003e\u003ccode\u003eb0c7b29\u003c/code\u003e\u003c/a\u003e chore: release main (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14321\"\u003e#14321\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/25504f3752d1e2c63d4f3f56114b7529c5f10b2e\"\u003e\u003ccode\u003e25504f3\u003c/code\u003e\u003c/a\u003e chore: [google-cloud-geminidataanalytics] update Python generator version to ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/077a8ffd3e2890dc1277bf516f4126bfdf666a96\"\u003e\u003ccode\u003e077a8ff\u003c/code\u003e\u003c/a\u003e chore: [google-cloud-run] update Python generator version to 1.25.1 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14200\"\u003e#14200\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/4d08928433140722727f7953d5caefa5fc676c47\"\u003e\u003ccode\u003e4d08928\u003c/code\u003e\u003c/a\u003e chore: [google-ai-generativelanguage] update Python generator version to 1.25...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/7d1e79ed15ccf56ce744a8c45ddefa5a6e6ca46e\"\u003e\u003ccode\u003e7d1e79e\u003c/code\u003e\u003c/a\u003e chore: [Many APIs] update Python generator version to 1.25.1 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14313\"\u003e#14313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/86d0606c0b0d35a16926f630a630603ac768fbb5\"\u003e\u003ccode\u003e86d0606\u003c/code\u003e\u003c/a\u003e chore: [google-shopping-merchant-accounts] update Python generator version to...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/6c265645d13eb3bff5cc519a33965f8670871358\"\u003e\u003ccode\u003e6c26564\u003c/code\u003e\u003c/a\u003e chore: [Many APIs] update Python generator version to 1.25.1 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14316\"\u003e#14316\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/08076ef884baddfe523d0be8cdfafe5637ee073b\"\u003e\u003ccode\u003e08076ef\u003c/code\u003e\u003c/a\u003e chore: [google-apps-chat] update Python generator version to 1.25.1 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14294\"\u003e#14294\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/b533146158a0009952cf0767da42a711d9a20f0f\"\u003e\u003ccode\u003eb533146\u003c/code\u003e\u003c/a\u003e chore: [Many APIs] update Python generator version to 1.25.1 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14310\"\u003e#14310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/eb26719e1cceb0915a533b33e9f992a5f521a263\"\u003e\u003ccode\u003eeb26719\u003c/code\u003e\u003c/a\u003e chore: [Many APIs] update Python generator version to 1.25.1 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14315\"\u003e#14315\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-build-v3.31.3...google-cloud-build-v3.32.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-compute` from 1.35.0 to 1.38.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/releases\"\u003egoogle-cloud-compute's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-compute: v1.38.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-compute-v1.37.0...google-cloud-compute-v1.38.0\"\u003e1.38.0\u003c/a\u003e (2025-09-22)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[google-cloud-compute] Update Compute Engine v1 API to revision 20250902 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14434\"\u003e#14434\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/daf5ab81499ccb7bf29c74b616af9f6235c12526\"\u003edaf5ab8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-cloud-compute: v1.37.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-compute-v1.36.0...google-cloud-compute-v1.37.0\"\u003e1.37.0\u003c/a\u003e (2025-09-04)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[google-cloud-compute] Update Compute Engine v1 API to revision 20250810 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/1091\"\u003e#1091\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14324\"\u003e#14324\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/6cdbcee600286643cba8caf3c2219e9810b317fe\"\u003e6cdbcee\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-cloud-compute: v1.36.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-compute-v1.35.0...google-cloud-compute-v1.36.0\"\u003e1.36.0\u003c/a\u003e (2025-08-29)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[google-cloud-compute] Update Compute Engine v1 API to revision 20250807 (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/51732d38da49f8a0598d58b204dc7d9c86ee0e52\"\u003e51732d3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/5e2ba929d44fefe28a3376a74344d314ea8c3f99\"\u003e\u003ccode\u003e5e2ba92\u003c/code\u003e\u003c/a\u003e chore: release main (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14505\"\u003e#14505\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/ac6a7213bd0fee9291ae0ab8aa0009cc334b0156\"\u003e\u003ccode\u003eac6a721\u003c/code\u003e\u003c/a\u003e feat: [google-cloud-texttospeech] add Gemini TTS Multispeaker API fields (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14\"\u003e#14\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/6842396f3662264aa1beca9a5a08f9d0f171483a\"\u003e\u003ccode\u003e6842396\u003c/code\u003e\u003c/a\u003e docs: [google-cloud-cloudsecuritycompliance] updated documentation for APIs (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/94387fbab5eb311da34cebfbd6f5f599f8078a18\"\u003e\u003ccode\u003e94387fb\u003c/code\u003e\u003c/a\u003e feat: [google-cloud-dataplex] A new service \u003ccode\u003eBusinessGlossaryService\u003c/code\u003e is adde...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/709f283915c348c549ddba1b56a133c192e6caae\"\u003e\u003ccode\u003e709f283\u003c/code\u003e\u003c/a\u003e chore: add link to PyPI history in CHANGELOG.md (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14506\"\u003e#14506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/26730096e491346f02af2a82138224a110485e74\"\u003e\u003ccode\u003e2673009\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20250919T072957Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14501\"\u003e#14501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/db0680bd38e8707d5eb974b1b820cf9219a61463\"\u003e\u003ccode\u003edb0680b\u003c/code\u003e\u003c/a\u003e chore: remove obsolete scripts (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14444\"\u003e#14444\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/8be8e45fe4b0e1e0885b870a4d8dd9793a9a5cd4\"\u003e\u003ccode\u003e8be8e45\u003c/code\u003e\u003c/a\u003e chore: remove testing/.gitignore (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14445\"\u003e#14445\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/5877dca12c8c5171e924bd1a30263b04b9ecbc3b\"\u003e\u003ccode\u003e5877dca\u003c/code\u003e\u003c/a\u003e chore: remove redundant files (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14446\"\u003e#14446\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/f9fc5fccd48d87af3edb9668e5e962d097457d58\"\u003e\u003ccode\u003ef9fc5fc\u003c/code\u003e\u003c/a\u003e fix!: Moved Company enums to a separate file (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14455\"\u003e#14455\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-compute-v1.35.0...google-cloud-compute-v1.38.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-storage` from 3.3.1 to 3.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-storage/releases\"\u003egoogle-cloud-storage's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.4.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-storage/compare/v3.3.1...v3.4.0\"\u003e3.4.0\u003c/a\u003e (2025-09-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eexperimental:\u003c/strong\u003e Add async grpc client (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1537\"\u003e#1537\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/ac57b8d819a49aef0ed0cb5bb630bf11012f43e3\"\u003eac57b8d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eexperimental:\u003c/strong\u003e Add grpc client (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1533\"\u003e#1533\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/5674587f2aa347ec2787f2bc1e847eaa294bc1ca\"\u003e5674587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGAPIC generation failed with 'Directory not empty' (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1542\"\u003e#1542\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/c80d8207a8661b84c56cd66bb34de7b5704675b8\"\u003ec80d820\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-storage/blob/main/CHANGELOG.md\"\u003egoogle-cloud-storage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-storage/compare/v3.3.1...v3.4.0\"\u003e3.4.0\u003c/a\u003e (2025-09-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eexperimental:\u003c/strong\u003e Add async grpc client (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1537\"\u003e#1537\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/ac57b8d819a49aef0ed0cb5bb630bf11012f43e3\"\u003eac57b8d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eexperimental:\u003c/strong\u003e Add grpc client (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1533\"\u003e#1533\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/5674587f2aa347ec2787f2bc1e847eaa294bc1ca\"\u003e5674587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGAPIC generation failed with 'Directory not empty' (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1542\"\u003e#1542\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-storage/commit/c80d8207a8661b84c56cd66bb34de7b5704675b8\"\u003ec80d820\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/fd8e9119d81ea6b53e9af591d5d464c91b263c51\"\u003e\u003ccode\u003efd8e911\u003c/code\u003e\u003c/a\u003e chore(main): release 3.4.0 (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1543\"\u003e#1543\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/ac57b8d819a49aef0ed0cb5bb630bf11012f43e3\"\u003e\u003ccode\u003eac57b8d\u003c/code\u003e\u003c/a\u003e feat(experimental): add async grpc client (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1537\"\u003e#1537\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/5674587f2aa347ec2787f2bc1e847eaa294bc1ca\"\u003e\u003ccode\u003e5674587\u003c/code\u003e\u003c/a\u003e feat(experimental): Add grpc client (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1533\"\u003e#1533\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/dc3756d00c75438a8e7097b2f9160dc47ca73e03\"\u003e\u003ccode\u003edc3756d\u003c/code\u003e\u003c/a\u003e chore: Update gapic-generator-python to 1.26.2 (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1540\"\u003e#1540\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/c80d8207a8661b84c56cd66bb34de7b5704675b8\"\u003e\u003ccode\u003ec80d820\u003c/code\u003e\u003c/a\u003e fix: GAPIC generation failed with 'Directory not empty' (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1542\"\u003e#1542\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/b4ce8dad8fc08be8d4c67fa3dc33c7867d7df822\"\u003e\u003ccode\u003eb4ce8da\u003c/code\u003e\u003c/a\u003e chore: add argparse to run samples as script (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1538\"\u003e#1538\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/87f71961d6a498e8bf74c4f995b4c0f98190892d\"\u003e\u003ccode\u003e87f7196\u003c/code\u003e\u003c/a\u003e chore: update Python generator version to 1.25.1 (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1535\"\u003e#1535\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-storage/commit/67326df83ced2678987f98f1daa926c6849ab925\"\u003e\u003ccode\u003e67326df\u003c/code\u003e\u003c/a\u003e chore: fix the gapic unit tests (\u003ca href=\"https://redirect.github.com/googleapis/python-storage/issues/1536\"\u003e#1536\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/python-storage/compare/v3.3.1...v3.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `grpcio` from 1.74.0 to 1.75.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/grpc/grpc/releases\"\u003egrpcio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v1.75.1\u003c/h2\u003e\n\u003cp\u003eThis is release gRPC Core 1.75.1 (gemini).\u003c/p\u003e\n\u003cp\u003eFor gRPC documentation, see \u003ca href=\"https://grpc.io/\"\u003egrpc.io\u003c/a\u003e. For previous releases, see \u003ca href=\"https://github.com/grpc/grpc/releases\"\u003eReleases\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis release contains refinements, improvements, and bug fixes.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003ePython\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRelease grpcio wheels with Python 3.14 support (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40403\"\u003e#40403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAsyncio: fixes grpc shutdown race condition occurring during python interpreter finalizations. (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40447\"\u003e#40447\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eThis also addresses previously reported issues with empty error message on Python interpreter exit (\u003ccode\u003eError in sys.excepthook:\u003c/code\u003e/\u003ccode\u003eOriginal exception was:\u003c/code\u003e empty): \u003ca href=\"https://redirect.github.com/grpc/grpc/issues/36655\"\u003e#36655\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/grpc/grpc/issues/38679\"\u003e#38679\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/grpc/grpc/issues/33342\"\u003e#33342\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003ePython 3.14: preserve current behavior when using grpc.aio async methods outside of a running event loop. (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40750\"\u003e#40750\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eNote: using async methods outside of a running event loop is \u003ca href=\"https://docs.python.org/3.14/library/asyncio-policy.html#asyncio-policies\"\u003ediscouraged\u003c/a\u003e by Python, and \u003cstrong\u003ewill be deprecated in future gRPC releases\u003c/strong\u003e. Please use the \u003ca href=\"https://docs.python.org/3.14/library/asyncio-runner.html#asyncio.run\"\u003easyncio.run()\u003c/a\u003e function (or \u003ca href=\"https://docs.python.org/3.14/library/asyncio-runner.html#asyncio.Runner\"\u003easyncio.Runner\u003c/a\u003e for custom loop factories). For interactive mode, use dedicated \u003ca href=\"https://docs.python.org/3/library/asyncio.html#asyncio-cli\"\u003easyncio REPL\u003c/a\u003e: \u003ccode\u003epython -m asyncio\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/grpc/grpc/compare/v1.75.0...v1.75.1\"\u003ehttps://github.com/grpc/grpc/compare/v1.75.0...v1.75.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eRelease v1.75.0\u003c/h2\u003e\n\u003cp\u003eThis is release 1.75.0 (\u003ca href=\"https://github.com/grpc/grpc/blob/master/doc/g_stands_for.md\"\u003egemini\u003c/a\u003e) of gRPC Core.\u003c/p\u003e\n\u003cp\u003eFor gRPC documentation, see \u003ca href=\"https://grpc.io/\"\u003egrpc.io\u003c/a\u003e. For previous releases, see \u003ca href=\"https://github.com/grpc/grpc/releases\"\u003eReleases\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis release contains refinements, improvements, and bug fixes, with highlights listed below.\u003c/p\u003e\n\u003ch2\u003eCore\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[Security] Cherry Pick Spiffe Verification. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/40515\"\u003e#40515\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Python][Typeguard] Part 3 - Add Typeguard to AIO stack in tests. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/40217\"\u003e#40217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[c-ares] update version to 1.34.5. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/39508\"\u003e#39508\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[pick_first] fix bug that caused us to stop attempting to connect. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/40162\"\u003e#40162\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eC++\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[OTel C++] Implement retry metrics. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/39195\"\u003e#39195\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eObjective-C\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix data race by adding custom getter for \u003ccode\u003estate\u003c/code\u003e property with \u003ccode\u003e@synchronized\u003c/code\u003e locking. (\u003ca href=\"https://redirect.github.com/grpc/grpc/pull/40146\"\u003e#40146\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePython\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003egRPC Python (grpcio) now depends on \u003ccode\u003etyping-extensions~=4.13\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40137\"\u003e#40137\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate musllinux wheels from \u003ccode\u003emusllinux_1_1\u003c/code\u003e to \u003ccode\u003emusllinux_1_2\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40317\"\u003e#40317\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eDropping \u003ccode\u003emusllinux_1_1\u003c/code\u003e because it reached EOL in November 2024\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/grpc/grpc/commit/9b63ce0d513672c5daad4f28342f03863c5589e5\"\u003e\u003ccode\u003e9b63ce0\u003c/code\u003e\u003c/a\u003e [Backport][v1.75.x][Fix] PHP macOS build: composer sha sum update, harden ins...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/3ab7404867bcb4d8515839ddf6ff7f2134b3d3ec\"\u003e\u003ccode\u003e3ab7404\u003c/code\u003e\u003c/a\u003e [Release] Bump version to 1.75.1 (on v1.75.x branch) (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40773\"\u003e#40773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/876e1d1c8bb8dca840fba61d7950ac2e2d459df7\"\u003e\u003ccode\u003e876e1d1\u003c/code\u003e\u003c/a\u003e [Backport][v1.75.x][Python] Handle python3.14 get_event_loop behavior changes...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/74ec067e2839a4625a74b966880737a5085a13cc\"\u003e\u003ccode\u003e74ec067\u003c/code\u003e\u003c/a\u003e [Backport][v1.75.x][Python][Support 3.14] Enable 3.14 supported wheels (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40726\"\u003e#40726\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/ff24d38a8115dbf1ab95337a348cda878de18ecf\"\u003e\u003ccode\u003eff24d38\u003c/code\u003e\u003c/a\u003e [Backport][v1.75.x][Python] aio: skip grpc/aio shutdown if py interpreter is ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/093085cc925e0d5aa6e92bc29e917f9bdc00add2\"\u003e\u003ccode\u003e093085c\u003c/code\u003e\u003c/a\u003e [build] Fix objc boringssl build backport (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40689\"\u003e#40689\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/8c4561390682661cc8cb374ec734bc1d742ad88f\"\u003e\u003ccode\u003e8c45613\u003c/code\u003e\u003c/a\u003e [release] Bump release version on v1.75.x branch to v1.75.0 (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40644\"\u003e#40644\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/d382f40fc0f6cb522cb81f2e9ac111621687c598\"\u003e\u003ccode\u003ed382f40\u003c/code\u003e\u003c/a\u003e [Backport][v1.75.x][Python][Support 3.14] Enable Python 3.14 interpreters for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/e6db4753b460db05f69883ca73191587a4732976\"\u003e\u003ccode\u003ee6db475\u003c/code\u003e\u003c/a\u003e [Backport][v1.75.x][Python] Build manylinux aarch64 without cross-compilation...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc/commit/77dc9c8c2595b2d4c031dfa58a4174ea33105908\"\u003e\u003ccode\u003e77dc9c8\u003c/code\u003e\u003c/a\u003e [Backport][v1.75.x][Python] Updating rules_python to 1.5.4 (\u003ca href=\"https://redirect.github.com/grpc/grpc/issues/40607\"\u003e#40607\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/grpc/grpc/compare/v1.74.0...v1.75.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `grpcio-status` from 1.74.0 to 1.75.1\n\nUpdates `httplib2` from 0.30.0 to 0.31.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/httplib2/httplib2/blob/master/CHANGELOG\"\u003ehttplib2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.31.0\u003c/p\u003e\n\u003cp\u003ehttps: avoid costly load_verify_locations when SSL certificate validation is disabled\n\u003ca href=\"https://redirect.github.com/httplib2/httplib2/pull/249\"\u003ehttplib2/httplib2#249\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e0.30.2\u003c/p\u003e\n\u003cp\u003eNo changes in library. Fix automatic pypi release from CI.\u003c/p\u003e\n\u003cp\u003e0.30.1\u003c/p\u003e\n\u003cp\u003erestore socks proxy support, was broken in 0.30.0\n\u003ca href=\"https://redirect.github.com/httplib2/httplib2/issues/251\"\u003ehttplib2/httplib2#251\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/httplib2/httplib2/commit/26cfea5d07a5817cf214d9978c856c91abf4e078\"\u003e\u003ccode\u003e26cfea5\u003c/code\u003e\u003c/a\u003e v0.31.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/httplib2/httplib2/commit/cbd3d21004374997167d9b8ab36b4ec211881a57\"\u003e\u003ccode\u003ecbd3d21\u003c/code\u003e\u003c/a\u003e chore: CI use trusted publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/httplib2/httplib2/commit/147d7d5d00b4cd383dbdda839089237aa0c2a836\"\u003e\u003ccode\u003e147d7d5\u003c/code\u003e\u003c/a\u003e https: avoid costly load_verify_locations when SSL certificate validation is ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/httplib2/httplib2/commit/d9278ceafb7a05be9998a7a4b1cb7d6d3f689ee5\"\u003e\u003ccode\u003ed9278ce\u003c/code\u003e\u003c/a\u003e v0.30.2 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/httplib2/httplib2/commit/c4b740552037dfec4cfb0592720fe8cfb2089b6b\"\u003e\u003ccode\u003ec4b7405\u003c/code\u003e\u003c/a\u003e chore: CI cache update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/httplib2/httplib2/commit/6cfe2e6b5aff994f07fa0dcddfacf6d3a7999b1b\"\u003e\u003ccode\u003e6cfe2e6\u003c/code\u003e\u003c/a\u003e v0.30.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/httplib2/httplib2/commit/4b8777f88d958b2540d9d0622f98a4df64bd20d3\"\u003e\u003ccode\u003e4b8777f\u003c/code\u003e\u003c/a\u003e chore: update pytest plugins\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/httplib2/httplib2/commit/2a97a860b5beb78b86438de519216a2455394dd4\"\u003e\u003ccode\u003e2a97a86\u003c/code\u003e\u003c/a\u003e restore socks proxy support, was broken in py2/3 merge\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/httplib2/httplib2/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 `identify` from 2.6.13 to 2.6.14\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/6667ae3392c3e2178469779352012d4518c8cdc0\"\u003e\u003ccode\u003e6667ae3\u003c/code\u003e\u003c/a\u003e v2.6.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/0ce88278a87decaf8a7b266074a0044a8fb8dd5c\"\u003e\u003ccode\u003e0ce8827\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/identify/issues/537\"\u003e#537\u003c/a\u003e from LNSD/add-meson-options-support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/29d1fcc8d1dafe99cf82e4c3a6200acdd17490fd\"\u003e\u003ccode\u003e29d1fcc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/identify/issues/536\"\u003e#536\u003c/a\u003e from mike325/fix/add_robot_filetype\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/daf602344d904fd56a85ae76f0a2594ddcebc479\"\u003e\u003ccode\u003edaf6023\u003c/code\u003e\u003c/a\u003e Add support for \u003ccode\u003emeson.options\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/6d493646beb1b740c4b871dd7692b5ab453c1beb\"\u003e\u003ccode\u003e6d49364\u003c/code\u003e\u003c/a\u003e fix: add robot filetype\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/53fdb98ef92dc697d7b84cf07dbb3e6e5d7493f6\"\u003e\u003ccode\u003e53fdb98\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/identify/issues/531\"\u003e#531\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/identify/commit/ffc2322be9c429f69761a777a2f9f1adc87680d0\"\u003e\u003ccode\u003effc2322\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pre-commit/identify/compare/v2.6.13...v2.6.14\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `libcst` from 1.8.2 to 1.8.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://gi...\n\n_Description has been truncated_","html_url":"https://github.com/GoogleCloudPlatform/cluster-toolkit/pull/4712","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/GoogleCloudPlatform%2Fcluster-toolkit/issues/4712","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/4712/packages"}},{"old_version":"0.4.1","new_version":"1.8.5","update_type":"major","path":null,"pr_created_at":"2025-09-29T17:17:07.000Z","version_change":"0.4.1 → 1.8.5","issue":{"uuid":"3465891736","node_id":"PR_kwDOPaG6oc6rJm2y","number":8119,"state":"open","title":"Bump libcst from 0.4.1 to 1.8.5","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-29T17:17:07.000Z","updated_at":"2025-09-29T17:17:08.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"libcst","old_version":"0.4.1","new_version":"1.8.5","repository_url":"https://github.com/Instagram/LibCST"}],"path":null,"ecosystem":"pip"},"body":"Bumps [libcst](https://github.com/Instagram/LibCST) from 0.4.1 to 1.8.5.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/releases\"\u003elibcst's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.8.5\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: circular import error by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1406\"\u003eInstagram/LibCST#1406\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.4...v1.8.5\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.4...v1.8.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.8.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efixed: generate Attribute nodes when applying type annotations by \u003ca href=\"https://github.com/tungol\"\u003e\u003ccode\u003e@​tungol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1396\"\u003eInstagram/LibCST#1396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded:Support parsing of t-strings \u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1374\"\u003e#1374\u003c/a\u003e  by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1398\"\u003eInstagram/LibCST#1398\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded: add support for PEP758 by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1401\"\u003eInstagram/LibCST#1401\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tungol\"\u003e\u003ccode\u003e@​tungol\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1396\"\u003eInstagram/LibCST#1396\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.4\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.8.2\u003c/h2\u003e\n\u003ch1\u003eFixed\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix(dependency): add back typing-extensions for 3.9 by \u003ca href=\"https://github.com/Lee-W\"\u003e\u003ccode\u003e@​Lee-W\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1358\"\u003eInstagram/LibCST#1358\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Lee-W\"\u003e\u003ccode\u003e@​Lee-W\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1358\"\u003eInstagram/LibCST#1358\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.1...v1.8.2\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.1...v1.8.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.8.1\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd helper to convert nodes to matchers by \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1351\"\u003eInstagram/LibCST#1351\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eUpdated\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid raising bare Exception by \u003ca href=\"https://github.com/zaicruvoir1rominet\"\u003e\u003ccode\u003e@​zaicruvoir1rominet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1168\"\u003eInstagram/LibCST#1168\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade PyYAML-ft version and use new module name by \u003ca href=\"https://github.com/lysnikolaou\"\u003e\u003ccode\u003e@​lysnikolaou\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1353\"\u003eInstagram/LibCST#1353\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lysnikolaou\"\u003e\u003ccode\u003e@​lysnikolaou\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1353\"\u003eInstagram/LibCST#1353\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.0...v1.8.1\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.0...v1.8.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.8.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow configuring empty formatter lists in codemod CLI by \u003ca href=\"https://github.com/ngoldbaum\"\u003e\u003ccode\u003e@​ngoldbaum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1319\"\u003eInstagram/LibCST#1319\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePublish several new binary wheels\n\u003cul\u003e\n\u003cli\u003emacos intel by \u003ca href=\"https://github.com/hadialqattan\"\u003e\u003ccode\u003e@​hadialqattan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1316\"\u003eInstagram/LibCST#1316\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ewindows arm64 by \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1304\"\u003eInstagram/LibCST#1304\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e3.13 CPython free-threaded by \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1333\"\u003eInstagram/LibCST#1333\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(only on \u003ca href=\"https://test.pypi.org/project/libcst/#history\"\u003etest.pypi.org\u003c/a\u003e) 3.14 and 3.14 CPython free-threaded by \u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1345\"\u003eInstagram/LibCST#1345\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1331\"\u003eInstagram/LibCST#1331\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eEnable support for free-threaded CPython by \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1295\"\u003eInstagram/LibCST#1295\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1335\"\u003eInstagram/LibCST#1335\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/blob/main/CHANGELOG.md\"\u003elibcst's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.8.5 - 2025-09-25\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efixed: circular import error by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1406\"\u003eInstagram/LibCST#1406\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.8.4 - 2025-09-09\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efixed: generate Attribute nodes when applying type annotations by \u003ca href=\"https://github.com/tungol\"\u003e\u003ccode\u003e@​tungol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1396\"\u003eInstagram/LibCST#1396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded: Support parsing of t-strings \u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1374\"\u003e#1374\u003c/a\u003e  by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1398\"\u003eInstagram/LibCST#1398\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadded: add support for PEP758 by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1401\"\u003eInstagram/LibCST#1401\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tungol\"\u003e\u003ccode\u003e@​tungol\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1396\"\u003eInstagram/LibCST#1396\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.4\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.4\u003c/a\u003e\u003c/p\u003e\n\u003ch1\u003e1.8.3 - 2025-08-29\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eremoved: remove entry points to pure parser by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1375\"\u003eInstagram/LibCST#1375\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixed: fixes match statements to work with PositionProvider by \u003ca href=\"https://github.com/imsut\"\u003e\u003ccode\u003e@​imsut\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1389\"\u003eInstagram/LibCST#1389\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hunterhogan\"\u003e\u003ccode\u003e@​hunterhogan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1378\"\u003eInstagram/LibCST#1378\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thomas-serre-sonarsource\"\u003e\u003ccode\u003e@​thomas-serre-sonarsource\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1379\"\u003eInstagram/LibCST#1379\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/imsut\"\u003e\u003ccode\u003e@​imsut\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1389\"\u003eInstagram/LibCST#1389\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.3\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.2...v1.8.3\u003c/a\u003e\u003c/p\u003e\n\u003ch1\u003e1.8.2 - 2025-06-13\u003c/h1\u003e\n\u003ch1\u003eFixed\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix(dependency): add back typing-extensions for 3.9 by \u003ca href=\"https://github.com/Lee-W\"\u003e\u003ccode\u003e@​Lee-W\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1358\"\u003eInstagram/LibCST#1358\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Lee-W\"\u003e\u003ccode\u003e@​Lee-W\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1358\"\u003eInstagram/LibCST#1358\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.1...v1.8.2\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.1...v1.8.2\u003c/a\u003e\u003c/p\u003e\n\u003ch1\u003e1.8.1 - 2025-06-10\u003c/h1\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd helper to convert nodes to matchers by \u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1351\"\u003eInstagram/LibCST#1351\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eUpdated\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid raising bare Exception by \u003ca href=\"https://github.com/zaicruvoir1rominet\"\u003e\u003ccode\u003e@​zaicruvoir1rominet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1168\"\u003eInstagram/LibCST#1168\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade PyYAML-ft version and use new module name by \u003ca href=\"https://github.com/lysnikolaou\"\u003e\u003ccode\u003e@​lysnikolaou\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1353\"\u003eInstagram/LibCST#1353\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/7c906eb47c02dca8d5b4273a032805516361c8cb\"\u003e\u003ccode\u003e7c906eb\u003c/code\u003e\u003c/a\u003e bump version to 1.8.5 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1407\"\u003e#1407\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/de5635394b5627cb86656147ba2f96e835ed3d44\"\u003e\u003ccode\u003ede56353\u003c/code\u003e\u003c/a\u003e fix: circular import error (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1406\"\u003e#1406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/47cacb69a32520be52975527e0cc87a4b4d5cd77\"\u003e\u003ccode\u003e47cacb6\u003c/code\u003e\u003c/a\u003e bump version to 1.8.4 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1402\"\u003e#1402\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/3b5329aa2022d97972d2f58eefe61b759b8e56c1\"\u003e\u003ccode\u003e3b5329a\u003c/code\u003e\u003c/a\u003e feat: add support for PEP758 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1401\"\u003e#1401\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/48668dfabb25e4bbdd35f81407498f5f5e47bf88\"\u003e\u003ccode\u003e48668df\u003c/code\u003e\u003c/a\u003e Support parsing of t-strings \u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1374\"\u003e#1374\u003c/a\u003e  (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1398\"\u003e#1398\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/0c82bfa76166ed38409a97de8974f9aaf3e7e572\"\u003e\u003ccode\u003e0c82bfa\u003c/code\u003e\u003c/a\u003e build(deps): bump regex from 1.11.1 to 1.11.2 in /native (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1399\"\u003e#1399\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/f40d8351450ca9adfe5270bd86ec7951e83221f4\"\u003e\u003ccode\u003ef40d835\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1400\"\u003e#1400\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/d721a06c3fc3ab9210acd180cec5aaca856e1bc7\"\u003e\u003ccode\u003ed721a06\u003c/code\u003e\u003c/a\u003e generate Attribute nodes when applying type annotations (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1396\"\u003e#1396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/e064729b4c04b834754c7be7f43a4dfb38972570\"\u003e\u003ccode\u003ee064729\u003c/code\u003e\u003c/a\u003e build(deps): bump pypa/cibuildwheel from 3.0.1 to 3.1.4 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1395\"\u003e#1395\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/f746afd537910d99bd8226a1c1edbf5bc69630eb\"\u003e\u003ccode\u003ef746afd\u003c/code\u003e\u003c/a\u003e build(deps): bump rayon from 1.10.0 to 1.11.0 in /native (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1394\"\u003e#1394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Instagram/LibCST/compare/v0.4.1...v1.8.5\"\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=libcst\u0026package-manager=pip\u0026previous-version=0.4.1\u0026new-version=1.8.5)](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/GSM2017PMK-OSV/main-trunk/pull/8119","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/GSM2017PMK-OSV%2Fmain-trunk/issues/8119","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/8119/packages"}},{"old_version":"1.8.4","new_version":"1.8.5","update_type":"patch","path":null,"pr_created_at":"2025-09-29T13:08:32.000Z","version_change":"1.8.4 → 1.8.5","issue":{"uuid":"2870583836","node_id":"PR_kwDOOuPJ9s6rGaIc","number":76,"state":"closed","title":"Bump libcst from 1.8.4 to 1.8.5","user":"dependabot[bot]","labels":["CLA Signed","dependencies","python"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":"2025-09-29T18:07:51.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-29T13:08:32.000Z","updated_at":"2025-09-29T18:07:51.000Z","time_to_close":17959,"merged_at":"2025-09-29T18:07:51.000Z","merged_by":"luccabb","closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"libcst","old_version":"1.8.4","new_version":"1.8.5","repository_url":"https://github.com/Instagram/LibCST"}],"path":null,"ecosystem":"pip"},"body":"Bumps [libcst](https://github.com/Instagram/LibCST) from 1.8.4 to 1.8.5.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/releases\"\u003elibcst's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.8.5\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: circular import error by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1406\"\u003eInstagram/LibCST#1406\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.4...v1.8.5\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.4...v1.8.5\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/blob/main/CHANGELOG.md\"\u003elibcst's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.8.5 - 2025-09-25\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efixed: circular import error by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1406\"\u003eInstagram/LibCST#1406\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/7c906eb47c02dca8d5b4273a032805516361c8cb\"\u003e\u003ccode\u003e7c906eb\u003c/code\u003e\u003c/a\u003e bump version to 1.8.5 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1407\"\u003e#1407\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/de5635394b5627cb86656147ba2f96e835ed3d44\"\u003e\u003ccode\u003ede56353\u003c/code\u003e\u003c/a\u003e fix: circular import error (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1406\"\u003e#1406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.4...v1.8.5\"\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=libcst\u0026package-manager=pip\u0026previous-version=1.8.4\u0026new-version=1.8.5)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nYou can trigger a rebase of this PR 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/facebookresearch/clusterscope/pull/76","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/facebookresearch%2Fclusterscope/issues/76","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/76/packages"}},{"old_version":"1.8.4","new_version":"1.8.5","update_type":"patch","path":null,"pr_created_at":"2025-09-29T04:17:32.000Z","version_change":"1.8.4 → 1.8.5","issue":{"uuid":"2868963653","node_id":"PR_kwDOAjat186rAOlF","number":7527,"state":"closed","title":"Bump libcst from 1.8.4 to 1.8.5","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-09-29T08:21:45.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-29T04:17:32.000Z","updated_at":"2025-09-29T08:21:46.000Z","time_to_close":14653,"merged_at":"2025-09-29T08:21:45.000Z","merged_by":"jenshnielsen","closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"libcst","old_version":"1.8.4","new_version":"1.8.5","repository_url":"https://github.com/Instagram/LibCST"}],"path":null,"ecosystem":"pip"},"body":"Bumps [libcst](https://github.com/Instagram/LibCST) from 1.8.4 to 1.8.5.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/releases\"\u003elibcst's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.8.5\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: circular import error by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1406\"\u003eInstagram/LibCST#1406\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.4...v1.8.5\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.4...v1.8.5\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/blob/main/CHANGELOG.md\"\u003elibcst's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.8.5 - 2025-09-25\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efixed: circular import error by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1406\"\u003eInstagram/LibCST#1406\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/7c906eb47c02dca8d5b4273a032805516361c8cb\"\u003e\u003ccode\u003e7c906eb\u003c/code\u003e\u003c/a\u003e bump version to 1.8.5 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1407\"\u003e#1407\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/de5635394b5627cb86656147ba2f96e835ed3d44\"\u003e\u003ccode\u003ede56353\u003c/code\u003e\u003c/a\u003e fix: circular import error (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1406\"\u003e#1406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.4...v1.8.5\"\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=libcst\u0026package-manager=pip\u0026previous-version=1.8.4\u0026new-version=1.8.5)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nYou can trigger a rebase of this PR 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/microsoft/Qcodes/pull/7527","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/microsoft%2FQcodes/issues/7527","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/7527/packages"}},{"old_version":"1.8.4","new_version":"1.8.5","update_type":"patch","path":null,"pr_created_at":"2025-09-26T22:10:30.000Z","version_change":"1.8.4 → 1.8.5","issue":{"uuid":"2865628362","node_id":"PR_kwDOKghJ_s6qzgTK","number":185,"state":"open","title":"build(deps-dev): bump libcst from 1.8.4 to 1.8.5","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"NONE","state_reason":null,"created_at":"2025-09-26T22:10:30.000Z","updated_at":"2025-09-26T22:10:31.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps-dev)","packages":[{"name":"libcst","old_version":"1.8.4","new_version":"1.8.5","repository_url":"https://github.com/Instagram/LibCST"}],"path":null,"ecosystem":"pip"},"body":"Bumps [libcst](https://github.com/Instagram/LibCST) from 1.8.4 to 1.8.5.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/releases\"\u003elibcst's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.8.5\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: circular import error by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1406\"\u003eInstagram/LibCST#1406\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.4...v1.8.5\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.4...v1.8.5\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/blob/main/CHANGELOG.md\"\u003elibcst's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.8.5 - 2025-09-25\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efixed: circular import error by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1406\"\u003eInstagram/LibCST#1406\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/7c906eb47c02dca8d5b4273a032805516361c8cb\"\u003e\u003ccode\u003e7c906eb\u003c/code\u003e\u003c/a\u003e bump version to 1.8.5 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1407\"\u003e#1407\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/de5635394b5627cb86656147ba2f96e835ed3d44\"\u003e\u003ccode\u003ede56353\u003c/code\u003e\u003c/a\u003e fix: circular import error (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1406\"\u003e#1406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.4...v1.8.5\"\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=libcst\u0026package-manager=pip\u0026previous-version=1.8.4\u0026new-version=1.8.5)](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/YisusChrist/AnimeSnap/pull/185","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/YisusChrist%2FAnimeSnap/issues/185","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/185/packages"}},{"old_version":"1.8.4","new_version":"1.8.5","update_type":"patch","path":null,"pr_created_at":"2025-09-26T18:08:57.000Z","version_change":"1.8.4 → 1.8.5","issue":{"uuid":"2865086370","node_id":"PR_kwDOKUysK86qxb-i","number":208,"state":"closed","title":"build(deps-dev): bump libcst from 1.8.4 to 1.8.5","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":"2025-09-26T18:09:10.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-26T18:08:57.000Z","updated_at":"2025-09-26T18:09:10.000Z","time_to_close":13,"merged_at":"2025-09-26T18:09:10.000Z","merged_by":"github-actions[bot]","closed_by":null,"dependency_metadata":{"prefix":"build(deps-dev)","packages":[{"name":"libcst","old_version":"1.8.4","new_version":"1.8.5","repository_url":"https://github.com/Instagram/LibCST"}],"path":null,"ecosystem":"pip"},"body":"Bumps [libcst](https://github.com/Instagram/LibCST) from 1.8.4 to 1.8.5.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/releases\"\u003elibcst's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.8.5\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: circular import error by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1406\"\u003eInstagram/LibCST#1406\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.4...v1.8.5\"\u003ehttps://github.com/Instagram/LibCST/compare/v1.8.4...v1.8.5\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Instagram/LibCST/blob/main/CHANGELOG.md\"\u003elibcst's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.8.5 - 2025-09-25\u003c/h1\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efixed: circular import error by \u003ca href=\"https://github.com/drinkmorewaterr\"\u003e\u003ccode\u003e@​drinkmorewaterr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Instagram/LibCST/pull/1406\"\u003eInstagram/LibCST#1406\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/7c906eb47c02dca8d5b4273a032805516361c8cb\"\u003e\u003ccode\u003e7c906eb\u003c/code\u003e\u003c/a\u003e bump version to 1.8.5 (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1407\"\u003e#1407\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Instagram/LibCST/commit/de5635394b5627cb86656147ba2f96e835ed3d44\"\u003e\u003ccode\u003ede56353\u003c/code\u003e\u003c/a\u003e fix: circular import error (\u003ca href=\"https://redirect.github.com/Instagram/LibCST/issues/1406\"\u003e#1406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Instagram/LibCST/compare/v1.8.4...v1.8.5\"\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=libcst\u0026package-manager=pip\u0026previous-version=1.8.4\u0026new-version=1.8.5)](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/YisusChrist/iltransfer/pull/208","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/YisusChrist%2Filtransfer/issues/208","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/208/packages"}}]}